Documentation

Complexitylib.Circuits.DepthThree.LowerBound.Internal.Balanced

Balanced hardness under both depth-three polarities #

Fix the fresh input bit to recover the original hard function from either output polarity. Input substitution preserves the number of gates. The existing balanced-padding count gives exactly half of the input cube.

theorem Complexity.DepthThreeLowerBound.balancedFamily_lower_bound_proof (A : ℝ) (hA : 0 < A) :
∃ (N : ℕ), ∀ (n : ℕ), N ≤ n → ∀ (b : Bool) (D : Circuit3 (Fin (n + 1))), (D.Computes fun (x : Cube (Fin (n + 1))) => balancedFamily n x ^^ b) → 2 ^ (A * √↑(n + 1)) < ↑D.gateCount
theorem Complexity.DepthThreeLowerBound.balancedFamily_both_polarities_proof (A : ℝ) (hA : 0 < A) :
∃ (N : ℕ), ∀ (n : ℕ), N ≤ n → ∀ (D : Circuit3 (Fin (n + 1))), D.Computes (balancedFamily n) ∨ D.ComputesDual (balancedFamily n) → 2 ^ (A * √↑(n + 1)) < ↑D.gateCount