Barrington at the family level: NC¹ ⊆ polynomial-size width-5 branching programs #
Circuits/BarringtonLength.lean proves the textbook per-formula bound
barrington_representation_depth_four (a formula of depth d compiles to a
width-5 program of length ≤ 4^d). This module lifts that to families: a
family of formulas of logarithmic depth
(NC¹) is computed, formula by formula, by a family of width-5 permutation
branching programs of polynomial length. That is the class-level polynomial-size
direction of Barrington's characterization, in the nonuniform (per-length) setting.
The families here range over the same ℕ → Bool assignments the Barrington
development already uses, so FormulaFamily.logDepth_polyLength_bp follows by
applying the per-formula bound pointwise, together with the arithmetic fact that
4^{c·log₂ n + c} is bounded by a polynomial in n.
Main definitions and results #
FormulaFamily,FormulaFamily.LogDepth— a family of Boolean formulas and the logarithmic-depth (NC¹) regime.four_pow_logDepth_le_poly— the reusable arithmetic conversion from logarithmic depth to a polynomial4 ^ depthbound.FormulaFamily.logDepth_polyLength_bp— the family-level containment.
A family of Boolean formulas, one per input length.
Equations
Instances For
Barrington, family level: NC¹ ⊆ polynomial-size width-5 branching
programs. A logarithmic-depth formula family is computed, formula by formula,
by a family of width-5 permutation branching programs whose length is bounded
by a fixed polynomial C·(n+1)^p in the input length — with each program
evaluating to a nonidentity 5-cycle exactly when its formula is true.
Family-level Barrington, Boolean-decision form. A logarithmic-depth formula
family is decided by a family of polynomial-length width-5 branching
programs together with a family of query points: reading whether program R n
moves point x n computes formula F n.