Documentation

Complexitylib.Circuits.DepthThree.LowerBound.Internal.CircuitNormalization

Unrestricted depth-three lower bound: circuit normalization #

Adapted from OpenAI's formalization at revision adc7f1241b42e322a6451854ab7e4b4c146bf78a. Source: https://github.com/openai/math/blob/adc7f1241b42e322a6451854ab7e4b4c146bf78a/lean/OAI/Computability/DepthThree/CircuitNormalization.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.RawClause.literals {V : Type uDepth1} (C : RawClause V) :

The finite set of literals occurring in a raw clause.

Equations
Instances For

    Normalize a raw clause, accounting for constants and complementary literals.

    Equations
    Instances For
      noncomputable def Complexity.DepthThreeLowerBound.Circuit3.middleCNF {V : Type uDepth1} (C : Circuit3 V) (j : Fin C.middleCount) :
      CNF V

      Represent a middle gate as the conjunction of its normalized bottom clauses.

      Equations
      Instances For
        theorem Complexity.DepthThreeLowerBound.Circuit3.mem_middleCNF {V : Type uDepth1} (C : Circuit3 V) (j : Fin C.middleCount) (D : Clause V) :
        D ∈ C.middleCNF j ↔ ∃ i ∈ C.middle j, (C.bottom i).normalize = some D
        @[simp]
        theorem Complexity.DepthThreeLowerBound.Circuit3.middleCNF_implies_output {V : Type uDepth1} (C : Circuit3 V) {j : Fin C.middleCount} (hj : j ∈ C.top) {x : Cube V} (hx : (C.middleCNF j).eval x = true) :
        C.eval x = true