Unrestricted depth-three lower bound: restriction easy base #
Adapted from OpenAI's formalization at revision adc7f1241b42e322a6451854ab7e4b4c146bf78a.
Source: https://github.com/openai/math/blob/adc7f1241b42e322a6451854ab7e4b4c146bf78a/lean/OAI/Computability/DepthThree/RestrictionEasyBase.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.easyBaseIndices
{V : Type uDepth1}
{I : Type uDepth2}
[instFintypeV : Fintype V]
[instFintypeI : Fintype I]
(C : I → Clause V)
(b : ℕ)
(σ : Restriction V)
:
Finset I
Indices of the easy clauses retained in the base factor.
Equations
- Complexity.DepthThreeLowerBound.easyBaseIndices C b σ = {i : I | ((C i).scope ∩ Complexity.DepthThreeLowerBound.liveSet σ).card ≤ b}
Instances For
noncomputable def
Complexity.DepthThreeLowerBound.easyBaseClause
{V : Type uDepth1}
{I : Type uDepth2}
[instFintypeV : Fintype V]
(C : I → Clause V)
(σ : Restriction V)
(i : I)
:
The clause contributed by one easy-base index.
Equations
- One or more equations did not get rendered due to their size.
Instances For
theorem
Complexity.DepthThreeLowerBound.easyBaseClause_eval
{V : Type uDepth1}
{I : Type uDepth2}
[instFintypeV : Fintype V]
(C : I → Clause V)
(σ : Restriction V)
(i : I)
(x : Cube (Live σ))
:
noncomputable def
Complexity.DepthThreeLowerBound.easyBaseCNF
{V : Type uDepth1}
{I : Type uDepth2}
[instFintypeV : Fintype V]
[instFintypeI : Fintype I]
(C : I → Clause V)
(b : ℕ)
(σ : Restriction V)
:
The CNF formed by the easy-base clauses.
Equations
- One or more equations did not get rendered due to their size.
Instances For
theorem
Complexity.DepthThreeLowerBound.easyBaseCNF_widthAtMost
{V : Type uDepth1}
{I : Type uDepth2}
[instFintypeV : Fintype V]
[instFintypeI : Fintype I]
(C : I → Clause V)
(b : ℕ)
(σ : Restriction V)
:
(easyBaseCNF C b σ).WidthAtMost b
theorem
Complexity.DepthThreeLowerBound.easyBaseCNF_eval_iff_all
{V : Type uDepth1}
{I : Type uDepth2}
[instFintypeV : Fintype V]
[instFintypeI : Fintype I]
(C : I → Clause V)
(b : ℕ)
(σ : Restriction V)
(x : Cube (Live σ))
:
theorem
Complexity.DepthThreeLowerBound.easyBaseCNF_eval_eq_true
{V : Type uDepth1}
{I : Type uDepth2}
[instFintypeV : Fintype V]
[instFintypeI : Fintype I]
(C : I → Clause V)
(b : ℕ)
(σ : Restriction V)
(x : Cube (Live σ))
:
theorem
Complexity.DepthThreeLowerBound.easyBaseCNF_eval_indicator
{V : Type uDepth1}
{I : Type uDepth2}
[instFintypeV : Fintype V]
[instFintypeI : Fintype I]
(C : I → Clause V)
(b : ℕ)
(σ : Restriction V)
(x : Cube (Live σ))
:
def
Complexity.DepthThreeLowerBound.cnfIndexFamily
{V : Type uDepth1}
(H : CNF V)
(i : Fin (List.length H))
:
Clause V
View a CNF list as a clause family indexed by its positions.
Equations
Instances For
theorem
Complexity.DepthThreeLowerBound.cnfIndexFamily_normalized
{V : Type uDepth1}
{H : CNF V}
(hH : H.Normalized)
(i : Fin (List.length H))
:
(cnfIndexFamily H i).Normalized
theorem
Complexity.DepthThreeLowerBound.cnfIndexFamily_width
{V : Type uDepth1}
{H : CNF V}
{k : ℕ}
(hH : H.WidthAtMost k)
(i : Fin (List.length H))
:
@[simp]
theorem
Complexity.DepthThreeLowerBound.indexedCNF_cnfIndexFamily_eval
{V : Type uDepth1}
(H : CNF V)
(x : Cube V)
: