Documentation

Complexitylib.Circuits.DepthThree.LowerBound.Internal.SparseTestCodes

Unrestricted depth-three lower bound: sparse test codes #

Adapted from OpenAI's formalization at revision adc7f1241b42e322a6451854ab7e4b4c146bf78a. Source: https://github.com/openai/math/blob/adc7f1241b42e322a6451854ab7e4b4c146bf78a/lean/OAI/Computability/DepthThree/SparseTestCodes.lean

Imports, namespaces, module visibility, documentation, and formatting are adapted for complexitylib. The source theorem statements and mathematical proofs are retained.

@[reducible, inline]

A finite encoding of a sparse clause.

Equations
Instances For
    @[reducible, inline]
    abbrev Complexity.DepthThreeLowerBound.SparseTestCode (V : Type uDepth2) (b L : ℕ) :
    Type uDepth2

    A finite encoding of a sparse CNF test.

    Equations
    Instances For

      Decode a sparse clause code to its set of literals.

      Equations
      Instances For
        @[simp]
        theorem Complexity.DepthThreeLowerBound.SparseClauseCode.mem_decode {V : Type uDepth4} [Fintype V] {b : ℕ} (c : SparseClauseCode V b) (l : Literal V) :
        l ∈ c.decode ↔ ∃ (i : Fin b), c i = some l
        @[simp]

        Decode a sparse test code to its CNF.

        Equations
        • One or more equations did not get rendered due to their size.
        • x_2.decode = []
        Instances For
          noncomputable def Complexity.DepthThreeLowerBound.SparseTestCode.eval {V : Type uDepth10} [Fintype V] {b L : ℕ} (c : SparseTestCode V b L) (x : Cube V) :

          Evaluate the CNF decoded from a sparse test code.

          Equations
          Instances For
            @[simp]
            theorem Complexity.DepthThreeLowerBound.SparseTestCode.decode_none {V : Type uDepth13} [Fintype V] (b L : ℕ) :
            (decode fun (x : Fin L) => none) = []
            @[simp]
            theorem Complexity.DepthThreeLowerBound.SparseTestCode.eval_none {V : Type uDepth14} [Fintype V] (b L : ℕ) (x : Cube V) :
            eval (fun (x : Fin L) => none) x = true
            theorem Complexity.DepthThreeLowerBound.SparseTestCode.eval_cons_empty {V : Type uDepth15} [Fintype V] {b L : ℕ} (c : SparseTestCode V b L) (x : Cube V) :
            eval (Fin.cons (some fun (x : Fin b) => none) c) x = false
            theorem Complexity.DepthThreeLowerBound.SparseTestCode.exists_eval_eq {V : Type uDepth17} [Fintype V] (H : CNF V) {b L : ℕ} (hw : H.WidthAtMost b) (hlen : List.length H ≤ L) :
            ∃ (c : SparseTestCode V b L), ∀ (x : Cube V), c.eval x = H.eval x