Unrestricted depth-three lower bound: restriction path data #
Adapted from OpenAI's formalization at revision adc7f1241b42e322a6451854ab7e4b4c146bf78a.
Source: https://github.com/openai/math/blob/adc7f1241b42e322a6451854ab7e4b4c146bf78a/lean/OAI/Computability/DepthThree/RestrictionPathData.lean
Imports, namespaces, module visibility, documentation, and formatting are adapted for complexitylib. The source theorem statements and mathematical proofs are retained.
There is an extension of the restriction violating every clause on the path.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Choose a witnessing assignment for a compatible path, or all false otherwise.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Live variables revealed by a prefix of the clause path.
Equations
- Complexity.DepthThreeLowerBound.pathPrefixSet C σ P h = Complexity.DepthThreeLowerBound.revealed (fun (i : I) => (C i).scope) (Complexity.DepthThreeLowerBound.liveSet σ) (List.take (↑h + 1) P)
Instances For
Live variables revealed by the complete clause path.
Equations
- Complexity.DepthThreeLowerBound.pathFinalSet C σ P = Complexity.DepthThreeLowerBound.revealed (fun (i : I) => (C i).scope) (Complexity.DepthThreeLowerBound.liveSet σ) P
Instances For
The revealed variables viewed as elements of the restriction's live set.
Equations
Instances For
The covered-clause count at a path prefix under its witnessing assignment.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The product of reciprocal covered-clause counts along the path.
Equations
- Complexity.DepthThreeLowerBound.pathWeight C σ P = ∏ h : Fin P.length, (↑(Complexity.DepthThreeLowerBound.pathCoveredCount C σ P h))⁻¹
Instances For
Sum the weights of compatible paths of a fixed length.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Sum the compatible-path costs over all allowed lengths.
Equations
- Complexity.DepthThreeLowerBound.restrictionCost C b σ = ∑ j ∈ Finset.range (Fintype.card V / (b + 1) + 1), Complexity.DepthThreeLowerBound.pathCost C b σ j