Documentation

Complexitylib.Circuits.DepthThree.LowerBound.Internal.SparseStreams

Unrestricted depth-three lower bound: sparse streams #

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

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

inductive Complexity.DepthThreeLowerBound.SparseDecisionTree (Label : Type uDepth1) :
Type uDepth1

The binary decision tree recording a sparsification process.

Instances For

    The sequence of branch choices leading to a leaf.

    Equations
    Instances For
      def Complexity.DepthThreeLowerBound.SparseDecisionTree.streamBit {Label : Type uDepth2} [DecidableEq Label] (t : SparseDecisionTree Label) (p : t.Leaf) (i : Label) (k : ℕ) :

      Read a branch bit from a leaf's choice stream.

      Equations
      Instances For
        def Complexity.DepthThreeLowerBound.SparseDecisionTree.padded {Label : Type uDepth2} [DecidableEq Label] (t : SparseDecisionTree Label) (N : Label → ℕ) (p : t.Leaf) (i : Label) (k : Fin (N i)) :

        Pad a leaf's choice stream to the specified common length.

        Equations
        Instances For
          theorem Complexity.DepthThreeLowerBound.SparseDecisionTree.padded_injective {Label : Type uDepth2} [DecidableEq Label] (t : SparseDecisionTree Label) (N : Label → ℕ) (hN : ∀ (p : t.Leaf) (i : Label), (t.stream p i).length ≤ N i) :
          theorem Complexity.DepthThreeLowerBound.SparseDecisionTree.padded_trueCount {Label : Type uDepth2} [DecidableEq Label] (t : SparseDecisionTree Label) (N : Label → ℕ) (p : t.Leaf) (i : Label) (h : (t.stream p i).length ≤ N i) :
          theorem Complexity.DepthThreeLowerBound.SparseDecisionTree.card_le_prod_admitted {Label : Type uDepth2} [DecidableEq Label] [Fintype Label] (t : SparseDecisionTree Label) (N : Label → ℕ) (hN : ∀ (p : t.Leaf) (i : Label), (t.stream p i).length ≤ N i) (admitted : (i : Label) → Finset (Fin (N i) → Bool)) (hmem : ∀ (p : t.Leaf) (i : Label), t.padded N p i ∈ admitted i) :
          Fintype.card t.Leaf ≤ ∏ i : Label, (admitted i).card
          theorem Complexity.DepthThreeLowerBound.SparseDecisionTree.card_le_prod_lowWeight {Label : Type uDepth2} [DecidableEq Label] [Fintype Label] (t : SparseDecisionTree Label) (N r : Label → ℕ) (hN : ∀ (p : t.Leaf) (i : Label), (t.stream p i).length ≤ N i) (hones : ∀ (p : t.Leaf) (i : Label), r i * List.count true (t.stream p i) ≤ N i) :
          Fintype.card t.Leaf ≤ ∏ i : Label, {w : Fin (N i) → Bool | r i * trueCount w ≤ N i}.card