The converse direction of Barrington's theorem -- proof internals #
This file proves correctness and logarithmic depth for balanced branching-program evaluation, then lifts that construction to polynomial-length families.
theorem
Complexity.BP.eval_reachesFormula_internal
{w : ℕ}
(α : ℕ → Bool)
(d : ℕ)
(p : BP w)
(x y : Fin w)
:
List.length p ≤ 2 ^ d → (BoolFormula.eval α (reachesFormula d p x y) = true ↔ (eval α p) x = y)
theorem
Complexity.BPFamily.toFormulaFamily_computes_internal
{w : ℕ}
{R : BPFamily w}
{x : ℕ → Fin w}
{f : ℕ → (ℕ → Bool) → Bool}
(h : R.DecidesOnTotalAssignments x f)
:
theorem
Complexity.BPFamily.toFormulaFamily_logDepth_internal
{R : BPFamily 5}
{x : ℕ → Fin 5}
(h : R.PolynomialLength)
:
(R.toFormulaFamily x).LogDepth