Documentation

Complexitylib.Circuits.DepthThree.LowerBound.Internal.TupleCounting

Unrestricted depth-three lower bound: tuple counting #

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

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

Every value occurring in the tuple occurs at least twice.

Equations
Instances For
    theorem Complexity.DepthThreeLowerBound.tuple_singleton_of_not {Z : Type uDepth2} [DecidableEq Z] {n : ℕ} (a : Fin n → Z) (h : ¬TupleNoSingleton a) :
    ∃ (i₀ : Fin n), ∀ (i : Fin n), a i = a i₀ → i = i₀
    theorem Complexity.DepthThreeLowerBound.tuple_factor_through {Z : Type uDepth4} [Nonempty Z] [DecidableEq Z] {n h : ℕ} (a : Fin n → Z) (hcard : (Finset.image a Finset.univ).card ≤ h) :
    ∃ (f : Fin h → Z) (g : Fin n → Fin h), (fun (i : Fin n) => f (g i)) = a