Documentation

Complexitylib.Circuits.DepthThree.LowerBound.Internal.RestrictionClause

Unrestricted depth-three lower bound: restriction clause #

Adapted from OpenAI's formalization at revision adc7f1241b42e322a6451854ab7e4b4c146bf78a. Source: https://github.com/openai/math/blob/adc7f1241b42e322a6451854ab7e4b4c146bf78a/lean/OAI/Computability/DepthThree/RestrictionClause.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.liveClause {V : Type uDepth1} [Fintype V] (σ : Restriction V) (C : Clause V) :

The live literals of a clause under a restriction.

Equations
Instances For
    @[simp]
    theorem Complexity.DepthThreeLowerBound.mem_liveClause {V : Type uDepth1} [Fintype V] (σ : Restriction V) (C : Clause V) (l : Literal (Live σ)) :
    l ∈ liveClause σ C ↔ (↑l.1, l.2) ∈ C
    noncomputable def Complexity.DepthThreeLowerBound.restrictClause {V : Type uDepth1} [Fintype V] (σ : Restriction V) (C : Clause V) :

    Simplify a clause after fixing the restricted coordinates.

    Equations
    Instances For
      noncomputable def Complexity.DepthThreeLowerBound.residualClauseEval {W : Type uDepth2} (C : Option (Clause W)) (x : Cube W) :

      Evaluate the remaining part of a clause on its live variables.

      Equations
      Instances For
        theorem Complexity.DepthThreeLowerBound.restrictClause_some_eq {V : Type uDepth1} [Fintype V] {σ : Restriction V} {C : Clause V} {D : Clause (Live σ)} (h : restrictClause σ C = some D) :
        D = liveClause σ C

        The conjunction of residual clauses after a restriction.

        Equations
        Instances For
          noncomputable def Complexity.DepthThreeLowerBound.restrictCNF {V : Type uDepth1} [Fintype V] (σ : Restriction V) (H : CNF V) :
          CNF (Live σ)

          Apply a restriction to every clause in a CNF.

          Equations
          Instances For
            @[simp]
            theorem Complexity.DepthThreeLowerBound.restrictCNF_eval {V : Type uDepth1} [Fintype V] (σ : Restriction V) (H : CNF V) (z : Cube (Live σ)) :
            (restrictCNF σ H).eval z = H.eval (fill σ z)