Unrestricted depth-three lower bound: restriction normalization #
Adapted from OpenAI's formalization at revision adc7f1241b42e322a6451854ab7e4b4c146bf78a.
Source: https://github.com/openai/math/blob/adc7f1241b42e322a6451854ab7e4b4c146bf78a/lean/OAI/Computability/DepthThree/RestrictionNormalization.lean
Imports, namespaces, module visibility, documentation, and formatting are adapted for complexitylib. The source theorem statements and mathematical proofs are retained.
theorem
Complexity.DepthThreeLowerBound.Clause.eval_true_of_not_normalized
{V : Type uDepth1}
{C : Clause V}
(h : ¬C.Normalized)
(x : Cube V)
:
theorem
Complexity.DepthThreeLowerBound.Clause.forbiddenValue_ne_literal
{V : Type uDepth1}
{C : Clause V}
(hC : C.Normalized)
{l : Literal V}
(hl : l ∈ C)
:
theorem
Complexity.DepthThreeLowerBound.Clause.eval_eq_false_iff_forbidden
{V : Type uDepth1}
{C : Clause V}
(hC : C.Normalized)
(x : Cube V)
:
theorem
Complexity.DepthThreeLowerBound.Clause.violation_eq_true_iff_forbidden
{V : Type uDepth1}
{C : Clause V}
(hC : C.Normalized)
(x : Cube V)
:
noncomputable def
Complexity.DepthThreeLowerBound.CNF.normalize
{V : Type uDepth1}
(H : CNF V)
:
CNF V
Discard tautological clauses from a CNF.
Equations
- H.normalize = List.filter (fun (C : Complexity.DepthThreeLowerBound.Clause V) => decide C.Normalized) H
Instances For
theorem
Complexity.DepthThreeLowerBound.CNF.normalize_widthAtMost
{V : Type uDepth1}
{H : CNF V}
{b : ℕ}
(hH : H.WidthAtMost b)
:
H.normalize.WidthAtMost b