Unrestricted depth-three lower bound: circuit #
Adapted from OpenAI's formalization at revision adc7f1241b42e322a6451854ab7e4b4c146bf78a.
Source: https://github.com/openai/math/blob/adc7f1241b42e322a6451854ab7e4b4c146bf78a/lean/OAI/Computability/DepthThree/Circuit.lean
Imports, namespaces, module visibility, documentation, and formatting are adapted for complexitylib. The source theorem statements and mathematical proofs are retained.
def
Complexity.DepthThreeLowerBound.GateInput.subst
{V : Type uDepth1}
{W : Type uDepth2}
(s : V → W ⊕ Bool)
:
Substitute variables or constants into a gate input, respecting literal signs.
Equations
Instances For
def
Complexity.DepthThreeLowerBound.GateInput.assignment
{V : Type uDepth1}
{W : Type uDepth2}
(s : V → W ⊕ Bool)
(x : Cube W)
:
Cube V
Lift an assignment through a variable-or-constant substitution.
Equations
- Complexity.DepthThreeLowerBound.GateInput.assignment s x v = match s v with | Sum.inl w => x w | Sum.inr b => b
Instances For
theorem
Complexity.DepthThreeLowerBound.Circuit3.bottomCount_le_gateCount
{V : Type uDepth1}
(C : Circuit3 V)
:
theorem
Complexity.DepthThreeLowerBound.Circuit3.middleCount_le_gateCount
{V : Type uDepth1}
(C : Circuit3 V)
:
theorem
Complexity.DepthThreeLowerBound.Circuit3.middle_card_le_gateCount
{V : Type uDepth1}
(C : Circuit3 V)
(j : Fin C.middleCount)
:
@[simp]
theorem
Complexity.DepthThreeLowerBound.Circuit3.middleEval_subst
{V : Type uDepth1}
{W : Type uDepth2}
(C : Circuit3 V)
(s : V → W ⊕ Bool)
(j : Fin C.middleCount)
(x : Cube W)
: