Boolean circuit families — definitions #
This module lifts the finite Circuit model to one circuit at every positive
input length. Because Circuit deliberately requires a nonzero input arity,
the answer on the unique empty input is stored separately as emptyOutput.
The first component of circuits n is the number of internal gates. Family
size counts internal and output gates, but not primary-input vertices or the
free per-edge negation flags.
A circuit computes the length-N member of a Boolean function family.
Equations
- c.ComputesOnLength f = c.Computes (f N)
Instances For
A nonuniform family of single-output circuits over B.
At each positive length n, the dependent pair contains an internal-gate
count G and a circuit Circuit B n 1 G. The unique length-zero input is
handled by emptyOutput, since the base circuit model deliberately requires
at least one input wire.
- emptyOutput : Bool
The family's answer on the unique length-zero input, stored directly because
Circuitrequires a positive input arity. For each positive length
n, an internal-gate countGpaired with a single-output circuit onninputs andGinternal gates.
Instances For
Number of internal gates in the positive-length circuit.
Equations
- F.internalGateCount n = (F.circuits n).fst
Instances For
The circuit selected by the family at positive input length n.
Instances For
The Boolean function family computed by F, including its explicit
length-zero answer.
Instances For
A pointwise size bound for a circuit family.
Equations
- F.SizeBoundedBy s = ∀ (n : ℕ), F.size n ≤ s n
Instances For
A pointwise depth bound for a circuit family.
Equations
- F.DepthBoundedBy d = ∀ (n : ℕ), F.depth n ≤ d n
Instances For
A family has polynomial size when one natural-coefficient polynomial bounds its size at every input length.
Equations
- F.PolynomialSize = ∃ (p : Polynomial ℕ), F.SizeBoundedBy fun (n : ℕ) => Polynomial.eval n p
Instances For
F computes the Boolean function family f at every length.