Unrestricted depth-three lower bound: restriction keep clause #
Adapted from OpenAI's formalization at revision adc7f1241b42e322a6451854ab7e4b4c146bf78a.
Source: https://github.com/openai/math/blob/adc7f1241b42e322a6451854ab7e4b4c146bf78a/lean/OAI/Computability/DepthThree/RestrictionKeepClause.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.keptLiterals
{V : Type uDepth1}
(R : Finset V)
(C : Clause V)
:
Clause V
Literals retained by the specified coordinate selection.
Equations
- Complexity.DepthThreeLowerBound.keptLiterals R C = {l ∈ C | l.1 ∈ R}
Instances For
theorem
Complexity.DepthThreeLowerBound.keptLiterals_scope
{V : Type uDepth1}
(R : Finset V)
(C : Clause V)
:
noncomputable def
Complexity.DepthThreeLowerBound.keepClause
{V : Type uDepth1}
(R : Finset V)
(pattern : Cube V)
(C : Clause V)
:
Retain the selected literals of a clause.
Equations
- Complexity.DepthThreeLowerBound.keepClause R pattern C = if ∃ l ∈ C, l.1 ∉ R ∧ pattern l.1 = l.2 then none else some (Complexity.DepthThreeLowerBound.keptLiterals R C)
Instances For
theorem
Complexity.DepthThreeLowerBound.keepClause_some_eq
{V : Type uDepth1}
{R : Finset V}
{pattern : Cube V}
{C D : Clause V}
(h : keepClause R pattern C = some D)
:
theorem
Complexity.DepthThreeLowerBound.keepClause_normalized
{V : Type uDepth1}
{R : Finset V}
{pattern : Cube V}
{C D : Clause V}
(hC : C.Normalized)
(h : keepClause R pattern C = some D)
:
noncomputable def
Complexity.DepthThreeLowerBound.keptRestrictedClause
{V : Type uDepth1}
[Fintype V]
(σ : Restriction V)
(R : Finset V)
(pattern : Cube V)
(C : Clause V)
:
Retain selected literals after applying a restriction.
Equations
Instances For
theorem
Complexity.DepthThreeLowerBound.residualClauseEval_bind_restrict
{V : Type uDepth1}
[Fintype V]
(σ : Restriction V)
(C : Option (Clause V))
(x : Cube (Live σ))
: