Fixed-arity nonuniform Barrington families -- definitions #
The earlier Barrington family layer evaluates syntax on total assignments
ℕ → Bool. This file defines the fixed-arity objects needed for an actual
class of typed Boolean-function families:
- the formula selected at arity
nmay mention only variables belown; - the positive-arity branching program selected at arity
n + 1may query only variables belown + 1; - the unique zero-bit answer of a branching-program family is stored separately, because a nonempty instruction necessarily carries a variable index.
Both objects denote BoolFunFamily, so the eventual equivalence has the
correct fixed-arity semantic domain.
A nonuniform family of formulas with an explicit arity bound on every member.
- formula : ℕ → BoolFormula
The formula selected at each input length.
Every variable mentioned by the length-
nformula is belown.
Instances For
The typed Boolean-function family denoted by a fixed-arity formula family.
Out-of-range variables are canonically set to false, though variables_lt
ensures they are not read.
Equations
- F.function n input = Complexity.BoolFormula.eval input.toTotal (F.formula n)
Instances For
The formula depth at each input length.
Instances For
A fixed-arity formula family computes a typed Boolean-function family.
Instances For
A nonuniform width-w branching-program family with explicit positive
input arities and a separate zero-input answer.
- emptyOutput : Bool
The answer on the unique zero-bit input.
The program at input length
n + 1.The point whose movement decides acceptance at input length
n + 1.- variables_lt (n : ℕ) (instruction : BPInstr w) : instruction ∈ self.positiveProgram n → instruction.var < n + 1
The length-
n + 1program queries only variables belown + 1.
Instances For
The program length at each typed input length. The separately stored zero-input answer has length zero.
Equations
- R.length 0 = 0
- R.length n.succ = List.length (R.positiveProgram n)
Instances For
The typed Boolean-function family decided by movement of the designated query point.
Equations
- R.function 0 x_2 = R.emptyOutput
- R.function n.succ input = decide ((Complexity.BP.eval input.toTotal (R.positiveProgram n)) (R.positiveQuery n) ≠ R.positiveQuery n)
Instances For
A fixed-arity branching-program family has polynomial length.
Instances For
A fixed-arity branching-program family decides a typed Boolean-function family.
Instances For
Typed Boolean-function families computed by variable-bounded, logarithmic-depth formula families.
Equations
Instances For
Typed Boolean-function families decided by variable-bounded,
polynomial-length width-5 permutation branching-program families.
Equations
- Complexity.Width5BP = {f : Complexity.BoolFunFamily | ∃ (R : Complexity.FixedArityBPFamily 5), R.PolynomialLength ∧ R.Decides f}