Unrestricted depth-three lower bound: sparse prefix #
Adapted from OpenAI's formalization at revision adc7f1241b42e322a6451854ab7e4b4c146bf78a.
Source: https://github.com/openai/math/blob/adc7f1241b42e322a6451854ab7e4b4c146bf78a/lean/OAI/Computability/DepthThree/SparsePrefix.lean
Imports, namespaces, module visibility, documentation, and formatting are adapted for complexitylib. The source theorem statements and mathematical proofs are retained.
Numerical hypotheses for the occurrence bounds in sparsification.
Instances For
A minimal eligible sunflower, a branch choice, and its resulting state.
- size : ℕ
The common size of the selected clauses.
- selected : SignedSunflower s self.size (r self.size)
The selected signed sunflower.
- choice : Bool
Choose the core branch or the petal branch.
Instances For
The insertion batch selected by a sparsification step.
Instances For
A finite sequence of valid sparsification steps.
- nil {V : Type uDepth1} [DecidableEq V] {r : ℕ → ℕ} {start : SparseState V} : SparsePath r start start
- snoc {V : Type uDepth1} [DecidableEq V] {r : ℕ → ℕ} {start s t : SparseState V} (path : SparsePath r start s) (step : SparseStep r s t) : SparsePath r start t
Instances For
The number of steps in a sparsification path.
Equations
Instances For
The clauses inserted along a sparsification path.
Equations
- Complexity.DepthThreeLowerBound.SparsePath.nil.insertions x✝ = 0
- (path.snoc step).insertions x✝ = path.insertions x✝ + if step.batch.size = x✝ then step.batch.clauses.card else 0
Instances For
Count processed sunflowers of each size along the path.
Equations
Instances For
Count petal-branch choices of each size along the path.
Equations
- Complexity.DepthThreeLowerBound.SparsePath.nil.petalSteps x✝ = 0
- (path.snoc step).petalSteps x✝ = path.petalSteps x✝ + if step.size = x✝ ∧ step.choice = true then 1 else 0