Size classes of De Morgan circuit families #
SIZE s is the class of languages decided by De Morgan circuit families with at most s n gates
on n inputs, following [Arora and Barak, Definition 6.1][AroraBarak09], and PPoly is the
class P/poly of languages decided by such families of polynomial size, following their
Definition 6.5. The bound in P/poly is n ^ k + k rather than
n ^ k because of the slice at length 0: a circuit with no inputs has no wire to designate as
its output until it has a gate, so that slice costs at least one constant gate, which 0 ^ k does
not allow when k > 0.
Lupanov's and Shannon's bounds carry over to families: every language has a family with at most
(1 + ε) 2ⁿ/n gates at all large lengths, while some language defeats every family with at most
2ⁿ/n gates at all large lengths and so lies outside P/poly. Since the circuits of a family need
not be related, P/poly also contains every unary language, including languages that no Turing
machine decides.
References #
- [S. Arora and B. Barak, Computational Complexity: A Modern Approach, Section 6.1][AroraBarak09]
SIZE(s): the languages decided by De Morgan circuit families with at most s n gates on
n inputs.
Equations
Instances For
P/poly: the languages decided by De Morgan circuit families of polynomial size.
Equations
- Cslib.Circuits.Boolean.PPoly = ⋃ (k : ℕ), Cslib.Circuits.Boolean.SIZE fun (n : ℕ) => n ^ k + k
Instances For
Lupanov's bound for families: for every ε > 0 there is a length beyond which every
language is decided by a family with at most (1 + ε) 2ⁿ/n gates per circuit.
Shannon's bound for families: some language defeats, at all large lengths, every family
with at most 2ⁿ/n gates per circuit.
Some language is not in P/poly.
A unary language, whose words consist only of trues, is decided by a family with at most
n + 1 gates on n inputs: a constant when the word of length n is not in the language, and
otherwise a conjunction of the inputs, whose extra gate supplies the empty conjunction.