Unrestricted depth-three lower bound: restriction cylinders #
Adapted from OpenAI's formalization at revision adc7f1241b42e322a6451854ab7e4b4c146bf78a.
Source: https://github.com/openai/math/blob/adc7f1241b42e322a6451854ab7e4b4c146bf78a/lean/OAI/Computability/DepthThree/RestrictionCylinders.lean
Imports, namespaces, module visibility, documentation, and formatting are adapted for complexitylib. The source theorem statements and mathematical proofs are retained.
theorem
Complexity.DepthThreeLowerBound.simultaneous_violation_iff_cylinder
{V : Type uDepth1}
{I : Type uDepth2}
[instDecidableEqV : DecidableEq V]
[instDecidableEqI : DecidableEq I]
(C : I → Clause V)
(T : Finset V)
(P : List I)
(x y : Cube V)
(hn : ∀ i ∈ P, (C i).Normalized)
(hy : ∀ i ∈ P, (C i).violation y = true)
(hout : ∀ v ∉ T, x v = y v)
:
theorem
Complexity.DepthThreeLowerBound.violation_eq_of_covered
{V : Type uDepth1}
{I : Type uDepth2}
[instDecidableEqV : DecidableEq V]
(C : I → Clause V)
(T U : Finset V)
(x y : Cube V)
(i : I)
(hc : residual (fun (i : I) => (C i).scope) T U i = ∅)
(hU : ∀ v ∈ U, x v = y v)
(hout : ∀ v ∉ T, x v = y v)
:
theorem
Complexity.DepthThreeLowerBound.coveredCount_eq_of_agree
{V : Type uDepth1}
{I : Type uDepth2}
[instDecidableEqV : DecidableEq V]
[instFintypeI : Fintype I]
(C : I → Clause V)
(T U : Finset V)
(x y : Cube V)
(hU : ∀ v ∈ U, x v = y v)
(hout : ∀ v ∉ T, x v = y v)
:
coveredCount (fun (i : I) => (C i).scope) T (fun (i : I) => (C i).violation x) U = coveredCount (fun (i : I) => (C i).scope) T (fun (i : I) => (C i).violation y) U
theorem
Complexity.DepthThreeLowerBound.coveredCount_eq_on_larger_cylinder
{V : Type uDepth1}
{I : Type uDepth2}
[instDecidableEqV : DecidableEq V]
[instFintypeI : Fintype I]
(C : I → Clause V)
(T U Z : Finset V)
(x y : Cube V)
(hUZ : U ⊆ Z)
(hZ : ∀ v ∈ Z, x v = y v)
(hout : ∀ v ∉ T, x v = y v)
:
coveredCount (fun (i : I) => (C i).scope) T (fun (i : I) => (C i).violation x) U = coveredCount (fun (i : I) => (C i).scope) T (fun (i : I) => (C i).violation y) U
noncomputable def
Complexity.DepthThreeLowerBound.cylinderCNF
{V : Type uDepth1}
(U : Finset V)
(pattern : Cube V)
:
CNF V
Express a fixed-coordinate cylinder as a CNF.
Equations
Instances For
theorem
Complexity.DepthThreeLowerBound.cylinderCNF_eval
{V : Type uDepth1}
(U : Finset V)
(pattern x : Cube V)
:
theorem
Complexity.DepthThreeLowerBound.cylinderCNF_widthAtMost
{V : Type uDepth1}
(U : Finset V)
(pattern : Cube V)
{b : ℕ}
(hb : 1 ≤ b)
:
(cylinderCNF U pattern).WidthAtMost b
theorem
Complexity.DepthThreeLowerBound.cylinderCNF_normalized
{V : Type uDepth1}
(U : Finset V)
(pattern : Cube V)
:
(cylinderCNF U pattern).Normalized
theorem
Complexity.DepthThreeLowerBound.simultaneous_restricted_violation_iff
{V : Type uDepth1}
{I : Type uDepth2}
[instDecidableEqV : DecidableEq V]
[instDecidableEqI : DecidableEq I]
(C : I → Clause V)
(σ : Restriction V)
(T : Finset V)
(hT : ∀ (v : V), v ∈ T ↔ σ v = none)
(P : List I)
(x y : Cube (Live σ))
(hn : ∀ i ∈ P, (C i).Normalized)
(hy : ∀ i ∈ P, (C i).violation (fill σ y) = true)
: