Unrestricted depth-three lower bound: sparse test codes #
Adapted from OpenAI's formalization at revision adc7f1241b42e322a6451854ab7e4b4c146bf78a.
Source: https://github.com/openai/math/blob/adc7f1241b42e322a6451854ab7e4b4c146bf78a/lean/OAI/Computability/DepthThree/SparseTestCodes.lean
Imports, namespaces, module visibility, documentation, and formatting are adapted for complexitylib. The source theorem statements and mathematical proofs are retained.
@[reducible, inline]
A finite encoding of a sparse clause.
Equations
Instances For
@[reducible, inline]
A finite encoding of a sparse CNF test.
Equations
Instances For
noncomputable def
Complexity.DepthThreeLowerBound.SparseClauseCode.decode
{V : Type uDepth3}
[Fintype V]
{b : ℕ}
(c : SparseClauseCode V b)
:
Clause V
Decode a sparse clause code to its set of literals.
Instances For
theorem
Complexity.DepthThreeLowerBound.SparseClauseCode.exists_decode_of_card_le
{V : Type uDepth6}
[Fintype V]
(C : Clause V)
{b : ℕ}
(hC : Finset.card C ≤ b)
:
∃ (c : SparseClauseCode V b), c.decode = C
theorem
Complexity.DepthThreeLowerBound.SparseClauseCode.exists_decode_of_normalized
{V : Type uDepth7}
[Fintype V]
(C : Clause V)
{b : ℕ}
(hn : C.Normalized)
(hw : C.width ≤ b)
:
∃ (c : SparseClauseCode V b), c.decode = C
theorem
Complexity.DepthThreeLowerBound.SparseClauseCode.card_eq
{V : Type uDepth8}
[Fintype V]
(b : ℕ)
:
@[simp]
theorem
Complexity.DepthThreeLowerBound.SparseTestCode.decode_cons_some
{V : Type uDepth12}
[Fintype V]
{b L : ℕ}
(d : SparseClauseCode V b)
(c : SparseTestCode V b L)
:
theorem
Complexity.DepthThreeLowerBound.SparseTestCode.exists_decode_of_normalized
{V : Type uDepth16}
[Fintype V]
(H : CNF V)
(b L : ℕ)
:
H.Normalized → H.WidthAtMost b → List.length H ≤ L → ∃ (c : SparseTestCode V b L), c.decode = H
theorem
Complexity.DepthThreeLowerBound.SparseTestCode.exists_eval_eq
{V : Type uDepth17}
[Fintype V]
(H : CNF V)
{b L : ℕ}
(hw : H.WidthAtMost b)
(hlen : List.length H ≤ L)
:
∃ (c : SparseTestCode V b L), ∀ (x : Cube V), c.eval x = H.eval x
theorem
Complexity.DepthThreeLowerBound.SparseTestCode.card_eq
{V : Type uDepth18}
[Fintype V]
(b L : ℕ)
: