Shannon synthesis parameters #
This module specializes the native Shannon circuit cost ledger to the standard
O(2^N / N) address-width choice.
A uniform O(2^N / N) specialization #
The parameter choice and arithmetic below follow the full-column-library
proof in ShannonUpper.lean.
The circuit construction above is new to Algebraic; only the elementary
choice k = floor(log_2 N) - 1 and its inequalities are reused.
Number of short address variables in the uniform specialization.
Equations
- Algebraic.MassProduction.ShannonSynthesis.shannonAddressWidth inputs = Nat.log 2 inputs - 1
Instances For
Number of remaining data variables.
Equations
Instances For
theorem
Algebraic.MassProduction.ShannonSynthesis.shannonAddressWidth_ge_three
(inputs : ℕ)
(inputsLarge : 16 ≤ inputs)
:
theorem
Algebraic.MassProduction.ShannonSynthesis.shannonDataWidth_pos
(inputs : ℕ)
(inputsLarge : 16 ≤ inputs)
:
theorem
Algebraic.MassProduction.ShannonSynthesis.shannonAddressDataSum
(inputs : ℕ)
(inputsLarge : 16 ≤ inputs)
:
The selected address/data split has exactly the original input width.
theorem
Algebraic.MassProduction.ShannonSynthesis.shannonArithmetic
(inputs : ℕ)
(inputsLarge : 16 ≤ inputs)
:
The full native Shannon cost ledger, multiplied by N, is bounded by
27 * 2^N.
theorem
Algebraic.MassProduction.ShannonSynthesis.shannonCostBound_le
(inputs : ℕ)
(inputsLarge : 16 ≤ inputs)
:
The selected finite cost ledger is at most 27 * 2^N / N.