Counting one-way summary states #
Binary occurrences cost one bit; special occurrences cost the logarithm of their actual register cardinality. The count has no guessed-output-bit factor.
def
Algebraic.Aggregate.Capacity.registerBits
{J : Type}
{State : J → Type}
[(j : J) → Fintype (State j)]
(op : Op State)
:
The register capacity of a single operation.
Equations
Instances For
theorem
Algebraic.Aggregate.Capacity.card_summaryRegister_le
{J : Type}
{State : J → Type}
[(j : J) → Fintype (State j)]
(op : Op State)
:
The finite summary register fits in its charged number of bits.
theorem
Algebraic.Aggregate.Capacity.capacity_le_of_register_bits
{J : Type}
{State : J → Type}
{n g : ℕ}
[(j : J) → Fintype (State j)]
(p : Program (signature State) n g)
(bits : ℕ)
(hb : 1 ≤ bits)
(h : ∀ (gate : SpecialGate p), Nat.clog 2 (Fintype.card (Register p gate)) ≤ bits)
:
A uniform bound on every register charges at most bits per gate.
theorem
Algebraic.Aggregate.Capacity.capacity_le_of_register_card
{J : Type}
{State : J → Type}
{n g : ℕ}
[(j : J) → Fintype (State j)]
(p : Program (signature State) n g)
(bits : ℕ)
(hb : 1 ≤ bits)
(h : ∀ (gate : SpecialGate p), Fintype.card (Register p gate) ≤ 2 ^ bits)
:
Uniform state cardinalities give a uniform gatewise capacity bound.