Unrestricted depth-three lower bound: hash triangular #
Adapted from OpenAI's formalization at revision adc7f1241b42e322a6451854ab7e4b4c146bf78a.
Source: https://github.com/openai/math/blob/adc7f1241b42e322a6451854ab7e4b4c146bf78a/lean/OAI/Computability/DepthThree/HashTriangular.lean
Imports, namespaces, module visibility, documentation, and formatting are adapted for complexitylib. The source theorem statements and mathematical proofs are retained.
noncomputable def
Complexity.DepthThreeLowerBound.BinaryHash.lastIndex
{d : ℕ}
(w : Data d)
(hw : w ≠ 0)
:
Fin d
The last nonzero coordinate used as a pivot in the hash argument.
Equations
Instances For
@[instance_reducible]
noncomputable instance
Complexity.DepthThreeLowerBound.BinaryHash.instFintypeNonpivot
{d r : ℕ}
(w : Data d)
(hw : w ≠ 0)
:
theorem
Complexity.DepthThreeLowerBound.BinaryHash.card_nonpivot
{d r : ℕ}
(w : Data d)
(hw : w ≠ 0)
:
theorem
Complexity.DepthThreeLowerBound.BinaryHash.triangularMap_injective
{d r : ℕ}
(w : Data d)
(hw : w ≠ 0)
:
Function.Injective (triangularMap w hw)
theorem
Complexity.DepthThreeLowerBound.BinaryHash.triangularMap_bijective
{d r : ℕ}
(w : Data d)
(hw : w ≠ 0)
:
Function.Bijective (triangularMap w hw)
noncomputable def
Complexity.DepthThreeLowerBound.BinaryHash.triangularEquiv
{d r : ℕ}
(w : Data d)
(hw : w ≠ 0)
:
Invert the triangular map by solving for the pivot coordinates.
Equations
Instances For
@[simp]
theorem
Complexity.DepthThreeLowerBound.BinaryHash.triangularEquiv_fst
{d r : ℕ}
(w : Data d)
(hw : w ≠ 0)
(u : Seed d r)
: