Documentation

Complexitylib.Circuits.DepthThree.LowerBound.Internal.SparseBranch

Unrestricted depth-three lower bound: sparse branch #

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

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

def Complexity.DepthThreeLowerBound.sparseBatchUpdate {V : Type uDepth1} [instDecidableEqV : DecidableEq V] (A B : Finset (Clause V)) :

Insert a batch of clauses and remove clauses it subsumes.

Equations
Instances For
    @[simp]
    theorem Complexity.DepthThreeLowerBound.mem_sparseBatchUpdate {V : Type uDepth1} [instDecidableEqV : DecidableEq V] {A B : Finset (Clause V)} {C : Clause V} :
    C ∈ sparseBatchUpdate A B ↔ C ∈ B ∨ C ∈ A ∧ ¬∃ D ∈ B, D ⊆ C
    theorem Complexity.DepthThreeLowerBound.sparseBatchUpdate_mono_left {V : Type uDepth1} [instDecidableEqV : DecidableEq V] {A A' B : Finset (Clause V)} (h : A ⊆ A') :
    theorem Complexity.DepthThreeLowerBound.sparseBatchUpdate_dominates {V : Type uDepth1} [instDecidableEqV : DecidableEq V] (A B : Finset (Clause V)) {C : Clause V} (hC : C ∈ A) :
    ∃ D ∈ sparseBatchUpdate A B, D ⊆ C
    theorem Complexity.DepthThreeLowerBound.sparseBatchUpdate_satisfies {V : Type uDepth1} [instDecidableEqV : DecidableEq V] (A B : Finset (Clause V)) (x : Cube V) :
    (∀ C ∈ sparseBatchUpdate A B, C.eval x = true) ↔ (∀ C ∈ A, C.eval x = true) ∧ ∀ D ∈ B, D.eval x = true
    structure Complexity.DepthThreeLowerBound.SparseState (V : Type uDepth2) :
    Type uDepth2

    Active clauses together with the clauses introduced by sparsification.

    • active : Finset (Clause V)

      The currently active clauses.

    • side : Finset (Literal V)

      Side clauses accumulated during branching.

    • added : Finset (Clause V)

      Clauses introduced by the sparsification process.

    Instances For
      noncomputable def Complexity.DepthThreeLowerBound.SparseState.toCNF {V : Type uDepth1} (s : SparseState V) :
      CNF V

      Read the active clause family as a CNF.

      Equations
      Instances For
        noncomputable def Complexity.DepthThreeLowerBound.SparseState.eval {V : Type uDepth1} (s : SparseState V) (x : Cube V) :

        Evaluate the CNF represented by a sparsification state.

        Equations
        Instances For

          The normalization, width, and containment invariants of a sparsification state.

          Instances For
            @[simp]
            theorem Complexity.DepthThreeLowerBound.SparseState.eval_eq_true {V : Type uDepth1} (s : SparseState V) (x : Cube V) :
            s.eval x = true ↔ (∀ C ∈ s.active, C.eval x = true) ∧ ∀ l ∈ s.side, l.eval x = true

            Update both active and introduced clauses with an insertion batch.

            Equations
            Instances For
              @[simp]
              theorem Complexity.DepthThreeLowerBound.SparseState.batchUpdate_side {V : Type uDepth1} [instDecidableEqV : DecidableEq V] (s : SparseState V) (B : Finset (Clause V)) :
              theorem Complexity.DepthThreeLowerBound.SparseState.eval_batchUpdate_eq_true {V : Type uDepth1} [instDecidableEqV : DecidableEq V] (s : SparseState V) (B : Finset (Clause V)) (x : Cube V) :
              (s.batchUpdate B).eval x = true ↔ s.eval x = true ∧ ∀ C ∈ B, C.eval x = true
              structure Complexity.DepthThreeLowerBound.InsertionBatch {V : Type uDepth1} (s : SparseState V) (i : ℕ) :
              Type uDepth1

              A uniform batch of fresh clauses used in a sparsification step.

              Instances For
                theorem Complexity.DepthThreeLowerBound.InsertionBatch.antichain {V : Type uDepth1} [instDecidableEqV : DecidableEq V] {s : SparseState V} {i : ℕ} (B : InsertionBatch s i) (D : Clause V) :
                D ∈ B.clauses → ∀ E ∈ B.clauses, D ⊆ E → D = E
                theorem Complexity.DepthThreeLowerBound.InsertionBatch.fresh {V : Type uDepth1} {s : SparseState V} {i b : ℕ} (B : InsertionBatch s i) (hs : s.Valid b) (D : Clause V) :
                D ∈ B.clauses → ∀ A ∈ s.active, ¬A ⊆ D
                theorem Complexity.DepthThreeLowerBound.InsertionBatch.not_mem_active {V : Type uDepth1} {s : SparseState V} {i b : ℕ} (B : InsertionBatch s i) (hs : s.Valid b) {D : Clause V} (hD : D ∈ B.clauses) :
                D ∉ s.active
                theorem Complexity.DepthThreeLowerBound.InsertionBatch.removed_strict {V : Type uDepth1} [instDecidableEqV : DecidableEq V] {s : SparseState V} {i b : ℕ} (B : InsertionBatch s i) (hs : s.Valid b) {C : Clause V} (hC : C ∈ s.active) (hnot : C ∉ sparseBatchUpdate s.active B.clauses) :
                ∃ D ∈ B.clauses, D ⊂ C
                theorem Complexity.DepthThreeLowerBound.InsertionBatch.normalized {V : Type uDepth1} {s : SparseState V} {i b : ℕ} (B : InsertionBatch s i) (hs : s.Valid b) {D : Clause V} (hD : D ∈ B.clauses) :
                theorem Complexity.DepthThreeLowerBound.InsertionBatch.width_le {V : Type uDepth1} {s : SparseState V} {i b : ℕ} (B : InsertionBatch s i) (hs : s.Valid b) {D : Clause V} (hD : D ∈ B.clauses) :
                theorem Complexity.DepthThreeLowerBound.InsertionBatch.valid_batchUpdate {V : Type uDepth1} [instDecidableEqV : DecidableEq V] {s : SparseState V} {i b : ℕ} (B : InsertionBatch s i) (hs : s.Valid b) :
                structure Complexity.DepthThreeLowerBound.SignedSunflower {V : Type uDepth1} [instDecidableEqV : DecidableEq V] (s : SparseState V) (i r : ℕ) :
                Type uDepth1

                A uniform signed-clause sunflower selected from the active family.

                Instances For
                  theorem Complexity.DepthThreeLowerBound.SignedSunflower.card_family_ge_two {V : Type uDepth1} [instDecidableEqV : DecidableEq V] {s : SparseState V} {i r : ℕ} (f : SignedSunflower s i r) :
                  theorem Complexity.DepthThreeLowerBound.SignedSunflower.size_ge_two {V : Type uDepth1} [instDecidableEqV : DecidableEq V] {s : SparseState V} {i r : ℕ} (f : SignedSunflower s i r) :
                  2 ≤ i
                  theorem Complexity.DepthThreeLowerBound.SignedSunflower.size_le {V : Type uDepth1} [instDecidableEqV : DecidableEq V] {s : SparseState V} {i r b : ℕ} (f : SignedSunflower s i r) (hs : s.Valid b) :
                  i ≤ b
                  def Complexity.DepthThreeLowerBound.SignedSunflower.petals {V : Type uDepth1} [instDecidableEqV : DecidableEq V] {s : SparseState V} {i r : ℕ} (f : SignedSunflower s i r) :

                  The sunflower clauses with their common core removed.

                  Equations
                  Instances For
                    @[simp]
                    theorem Complexity.DepthThreeLowerBound.SignedSunflower.mem_petals {V : Type uDepth1} [instDecidableEqV : DecidableEq V] {s : SparseState V} {i r : ℕ} (f : SignedSunflower s i r) (D : Clause V) :
                    D ∈ f.petals ↔ ∃ A ∈ f.family, A \ f.core = D
                    def Complexity.DepthThreeLowerBound.SignedSunflower.coreBatch {V : Type uDepth1} [instDecidableEqV : DecidableEq V] {s : SparseState V} {i r : ℕ} (f : SignedSunflower s i r) :

                    The insertion batch for the sunflower's core branch.

                    Equations
                    • f.coreBatch = { clauses := {f.core}, size := Finset.card f.core, nonempty := ⋯, size_pos := ⋯, size_lt := ⋯, uniform := ⋯, subclause := ⋯, pairwise_disjoint := ⋯ }
                    Instances For
                      def Complexity.DepthThreeLowerBound.SignedSunflower.petalBatch {V : Type uDepth1} [instDecidableEqV : DecidableEq V] {s : SparseState V} {i r : ℕ} (f : SignedSunflower s i r) :

                      The insertion batch for the sunflower's petal branch.

                      Equations
                      • f.petalBatch = { clauses := f.petals, size := i - Finset.card f.core, nonempty := ⋯, size_pos := ⋯, size_lt := ⋯, uniform := ⋯, subclause := ⋯, pairwise_disjoint := ⋯ }
                      Instances For
                        def Complexity.DepthThreeLowerBound.SignedSunflower.batch {V : Type uDepth1} [instDecidableEqV : DecidableEq V] {s : SparseState V} {i r : ℕ} (f : SignedSunflower s i r) (choice : Bool) :

                        Choose the core or petal insertion batch.

                        Equations
                        Instances For
                          def Complexity.DepthThreeLowerBound.SignedSunflower.coreBranch {V : Type uDepth1} [instDecidableEqV : DecidableEq V] {s : SparseState V} {i r : ℕ} (f : SignedSunflower s i r) :

                          The sparsification state obtained by taking the core branch.

                          Equations
                          Instances For
                            def Complexity.DepthThreeLowerBound.SignedSunflower.petalBranch {V : Type uDepth1} [instDecidableEqV : DecidableEq V] {s : SparseState V} {i r : ℕ} (f : SignedSunflower s i r) :

                            The sparsification state obtained by taking the petal branch.

                            Equations
                            • One or more equations did not get rendered due to their size.
                            Instances For
                              def Complexity.DepthThreeLowerBound.SignedSunflower.branch {V : Type uDepth1} [instDecidableEqV : DecidableEq V] {s : SparseState V} {i r : ℕ} (f : SignedSunflower s i r) (choice : Bool) :

                              Choose the core or petal successor state.

                              Equations
                              Instances For
                                @[simp]
                                theorem Complexity.DepthThreeLowerBound.SignedSunflower.branch_active {V : Type uDepth1} [instDecidableEqV : DecidableEq V] {s : SparseState V} {i r : ℕ} (f : SignedSunflower s i r) (choice : Bool) :
                                @[simp]
                                theorem Complexity.DepthThreeLowerBound.SignedSunflower.branch_added {V : Type uDepth1} [instDecidableEqV : DecidableEq V] {s : SparseState V} {i r : ℕ} (f : SignedSunflower s i r) (choice : Bool) :
                                theorem Complexity.DepthThreeLowerBound.SignedSunflower.batch_card {V : Type uDepth1} [instDecidableEqV : DecidableEq V] {s : SparseState V} {i r : ℕ} (f : SignedSunflower s i r) (choice : Bool) :
                                (f.batch choice).clauses.card = if choice = true then r else 1
                                theorem Complexity.DepthThreeLowerBound.SignedSunflower.coreBranch_valid {V : Type uDepth1} [instDecidableEqV : DecidableEq V] {s : SparseState V} {i r b : ℕ} (f : SignedSunflower s i r) (hs : s.Valid b) :
                                theorem Complexity.DepthThreeLowerBound.SignedSunflower.petalBranch_valid {V : Type uDepth1} [instDecidableEqV : DecidableEq V] {s : SparseState V} {i r b : ℕ} (f : SignedSunflower s i r) (hs : s.Valid b) :
                                theorem Complexity.DepthThreeLowerBound.SignedSunflower.branch_valid {V : Type uDepth1} [instDecidableEqV : DecidableEq V] {s : SparseState V} {i r b : ℕ} (f : SignedSunflower s i r) (choice : Bool) (hs : s.Valid b) :
                                (f.branch choice).Valid b
                                theorem Complexity.DepthThreeLowerBound.SignedSunflower.petals_true_of_core_false {V : Type uDepth1} [instDecidableEqV : DecidableEq V] {s : SparseState V} {i r : ℕ} (f : SignedSunflower s i r) (x : Cube V) (hA : ∀ C ∈ s.active, C.eval x = true) (hC : f.core.eval x = false) (P : Clause V) :
                                P ∈ f.petals → P.eval x = true
                                theorem Complexity.DepthThreeLowerBound.SignedSunflower.eval_coreBranch {V : Type uDepth1} [instDecidableEqV : DecidableEq V] {s : SparseState V} {i r : ℕ} (f : SignedSunflower s i r) (x : Cube V) :
                                f.coreBranch.eval x = (s.eval x && f.core.eval x)
                                theorem Complexity.DepthThreeLowerBound.SignedSunflower.eval_petalBranch {V : Type uDepth1} [instDecidableEqV : DecidableEq V] {s : SparseState V} {i r : ℕ} (f : SignedSunflower s i r) (x : Cube V) :