Documentation

Complexitylib.Circuits.DepthThree.LowerBound.Internal.HashBool

Unrestricted depth-three lower bound: hash bool #

Adapted from OpenAI's formalization at revision adc7f1241b42e322a6451854ab7e4b4c146bf78a. Source: https://github.com/openai/math/blob/adc7f1241b42e322a6451854ab7e4b4c146bf78a/lean/OAI/Computability/DepthThree/HashBool.lean

Imports, namespaces, module visibility, documentation, and formatting are adapted for complexitylib. The source theorem statements and mathematical proofs are retained.

Transfer hash fibers between Boolean and field-vector presentations.

Equations
Instances For
    theorem Complexity.DepthThreeLowerBound.BinaryHash.hashBool_fiber_card {d r : ℕ} (x : Fin d → Bool) (hx : x ≠ fun (x : Fin d) => false) (a : Fin r → Bool) :
    Fintype.card { u : Fin (d + r - 1) → Bool // hashBool u x = a } = 2 ^ (d - 1)

    Transfer hash collisions between Boolean and field-vector presentations.

    Equations
    Instances For
      theorem Complexity.DepthThreeLowerBound.BinaryHash.hashBool_collision_card {d r : ℕ} (x y : Fin d → Bool) (hxy : x ≠ y) :
      Fintype.card { u : Fin (d + r - 1) → Bool // hashBool u x = hashBool u y } = 2 ^ (d - 1)
      def Complexity.DepthThreeLowerBound.BinaryHash.boolCoordinateCube {d : ℕ} (T : Finset (Fin d)) (rho : { i : Fin d // i ∉ T } → Bool) :
      Set (Fin d → Bool)

      Boolean assignments on a selected coordinate set.

      Equations
      Instances For
        theorem Complexity.DepthThreeLowerBound.BinaryHash.injOn_hashBool_iff {d r : ℕ} (u : Fin (d + r - 1) → Bool) (T : Finset (Fin d)) (rho : { i : Fin d // i ∉ T } → Bool) :
        def Complexity.DepthThreeLowerBound.BinaryHash.hashBoolBadSeedEquiv {d r : ℕ} (T : Finset (Fin d)) (rho : { i : Fin d // i ∉ T } → Bool) :
        { u : Fin (d + r - 1) → Bool // ¬Set.InjOn (hashBool u) (boolCoordinateCube T rho) } ≃ { u : Seed d r // ¬Set.InjOn (hashF2 u) (coordinateCube T fun (i : { i : Fin d // i ∉ T }) => BinaryAlgebra.bitValue (rho i)) }

        Transfer bad-seed sets from Boolean to field-vector notation.

        Equations
        Instances For
          theorem Complexity.DepthThreeLowerBound.BinaryHash.hashBool_badSeed_card_le {d r : ℕ} (T : Finset (Fin d)) (rho : { i : Fin d // i ∉ T } → Bool) :
          Fintype.card { u : Fin (d + r - 1) → Bool // ¬Set.InjOn (hashBool u) (boolCoordinateCube T rho) } ≤ (2 ^ T.card - 1) * 2 ^ (d - 1)