Explicit description counts and hard powers for the native Boolean circuit model #
For a finite signature σ, Signature.lineCount σ w counts the lines that can be formed from w
available wires, and Signature.orderedBudget σ n m G counts the topologically ordered circuit
descriptions with n inputs, m designated outputs, and at most G internal gates. Because every
function in Circuit.functionsAtMost I n m G is computed by some such description, at most
σ.orderedBudget n m G functions on n inputs and m outputs have circuits of size at most G
(Circuit.card_functionsAtMost_le). Any finite family of functions larger than the ordered-syntax
budget therefore contains a function requiring more than G gates
(Circuit.exists_hard_in_family).
For the native De Morgan basis Boolean.signature (which charges constants, NOT, AND, and OR),
boolean_lineCount_le bounds lineCount w by 5 * (w + 1) ^ 2, and boolean_orderedBudget_le
and boolean_orderedBudget_le_pow bound orderedBudget n m q. Combining this with the exact
number maxTransientDepth g + cyclePeriod g of distinct powers of a finite map g
(FunctionalGraph.card_range_iterate) shows that whenever the ordered-syntax budget for q gates
is smaller than maxTransientDepth g + cyclePeriod g, some power g^[T] with
T < maxTransientDepth g + cyclePeriod g requires more than q gates
(exists_hard_power_of_budget_lt, exists_hard_power).
Main definitions #
Cslib.Circuits.Signature.lineCount: number of lines overσfromwavailable wires.Cslib.Circuits.Signature.orderedBudget: number of topologically ordered circuits withninputs,moutputs, and at mostGgates.Cslib.Circuits.Circuit.functionsAtMost: functions computed by circuits of size at mostG.Cslib.Circuits.Boolean.Iteration.lowerBudget: explicit exponential gate threshold2 ^ k / (1024 * (k + 1)).
Main results #
Cslib.Circuits.Circuit.card_functionsAtMost_le: at mostσ.orderedBudget n m Gfunctions have circuits of size at mostG.Cslib.Circuits.Circuit.exists_hard_in_family: a family larger thanσ.orderedBudget n m Gcontains a function requiring more thanGgates.Cslib.Circuits.Boolean.Iteration.boolean_lineCount_le,Cslib.Circuits.Boolean.Iteration.boolean_orderedBudget_le,Cslib.Circuits.Boolean.Iteration.boolean_orderedBudget_le_pow: explicit syntax bounds for the native De Morgan basis.Cslib.Circuits.Boolean.Iteration.exists_hard_power_of_budget_lt,Cslib.Circuits.Boolean.Iteration.exists_hard_power: existence of a hard power belowmaxTransientDepth g + cyclePeriod g.
References #
- Adapted from lean/Proofs/{CircuitCounting,NumberOfPowers}.lean in S. Schlesinger, Square-root circuit bounds for iterated functions.
At most σ.orderedBudget n m G functions are computed by circuits of size at most G.
Any finite family of functions larger than σ.orderedBudget n m G contains a function
requiring more than G gates.
Explicit exponential gate threshold 2 ^ k / (1024 * (k + 1)) for 2 k-bit modular
counters.
Instances For
The wire count for 2 k inputs and lowerBudget k gates fits in 2 ^ (k + 2).
Counting step. If the ordered-syntax budget for q gates is smaller than the number of
distinct powers maxTransientDepth g + cyclePeriod g, some power below maxTransientDepth g + cyclePeriod g has no circuit with at most q gates.
An explicit exponent form of the counting step, via boolean_orderedBudget_le_pow.