Documentation

Complexitylib.Circuits.DepthThree.LowerBound.Internal.CircuitDeletion

Unrestricted depth-three lower bound: circuit deletion #

Adapted from OpenAI's formalization at revision adc7f1241b42e322a6451854ab7e4b4c146bf78a. Source: https://github.com/openai/math/blob/adc7f1241b42e322a6451854ab7e4b4c146bf78a/lean/OAI/Computability/DepthThree/CircuitDeletion.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.false_probability {V : Type uDepth1} [Fintype V] (C : Clause V) (hC : C.Normalized) :
(finiteAvg fun (x : Cube V) => 1 - indicator (C.eval x)) = (2 ^ C.width)⁻¹
noncomputable def Complexity.DepthThreeLowerBound.CNF.deleteWide {V : Type uDepth1} (H : CNF V) (k : ℕ) :
CNF V

Discard clauses whose width exceeds the given cutoff.

Equations
Instances For
    @[simp]
    theorem Complexity.DepthThreeLowerBound.CNF.mem_deleteWide {V : Type uDepth1} {H : CNF V} {k : ℕ} {C : Clause V} :
    C ∈ H.deleteWide k ↔ C ∈ H ∧ C.width ≤ k
    @[simp]
    theorem Complexity.DepthThreeLowerBound.CNF.deleteWide_cons {V : Type uDepth1} (C : Clause V) (H : CNF V) (k : ℕ) :
    theorem Complexity.DepthThreeLowerBound.CNF.eval_deleteWide_of_eval {V : Type uDepth1} (H : CNF V) (k : ℕ) {x : Cube V} (hx : H.eval x = true) :
    theorem Complexity.DepthThreeLowerBound.CNF.deletion_error_cons_le {V : Type uDepth1} (C : Clause V) (H : CNF V) (k : ℕ) (x : Cube V) :
    indicator ((deleteWide (C :: H) k).eval x) - indicator (eval (C :: H) x) ≤ indicator ((H.deleteWide k).eval x) - indicator (H.eval x) + if C.width ≤ k then 0 else 1 - indicator (C.eval x)
    theorem Complexity.DepthThreeLowerBound.CNF.deletion_error_bound {V : Type uDepth1} [Fintype V] (H : CNF V) (hH : H.Normalized) (k : ℕ) :
    (finiteAvg fun (x : Cube V) => indicator ((H.deleteWide k).eval x) - indicator (H.eval x)) ≤ ↑(List.length H) * (2 ^ k)⁻¹