Counting functions computed by finite circuits #
For a finite signature, only finitely many functions can be computed with a fixed gate budget,
even when the carrier is infinite. We enumerate the programs of each size together with an
output wire and collect the scalar functions they compute, so that computableFunctions I n s
is the finite set of functions whose ecomplexity is at most s. Semantic equality and
normalization use classical reasoning; the syntax enumeration is computable.
After merging gates that compute the same function, a circuit with g gates has g! distinct
labeled presentations. This factorial correction sharpens the count used in Shannon's lower bound.
The main bound accepts any uniform bound on the number of lines;
card_computableFunctions_mul_factorial_le_of_arity_le specializes it to operation arities.
Scalar functions computable with at most s gates. Enumerating the programs of each size
with an output wire makes this set finite without requiring a finite carrier.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The functions computable with at most s gates are those of complexity at most s.
Functions computed at an output wire of a program whose g gates compute pairwise distinct
functions. Permuting the gates of such a program, ignoring their order, gives g! distinct gate
lists; this is the factorial saving in the counting bound.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Distinct functions and permutations of their irredundant gates give distinct presentations.
Normalizing a circuit with at most s gates leaves an irredundant program with at most s
gates computing the same function.
Bound the number of computable functions using a uniform line count B. The condition
s ≤ B absorbs the extra factorial factors from circuits with fewer than s gates.
A cardinality bound for any finite signature with bounded arities. The maximum also covers empty signatures and signatures containing only nullary operations.