One-way summaries of whole aggregate circuits #
The primary-input summary reconstructs every gate output. One additional bit handles a designated output that is itself a selected primary input.
def
Algebraic.Aggregate.Capacity.outputKey
{J : Type}
{State : J → Type}
{n g : ℕ}
[(j : J) → CommMonoid (State j)]
(p : Program (signature State) n g)
(U : Finset (Fin n))
(out : Wire n g)
(input : Fin n → Bool)
:
Summarize selected primary inputs, including a selected primary output if present.
Equations
- One or more equations did not get rendered due to their size.
Instances For
theorem
Algebraic.Aggregate.Capacity.outputKey_eq_of_inputs_agree
{J : Type}
{State : J → Type}
{n g : ℕ}
[(j : J) → CommMonoid (State j)]
(p : Program (signature State) n g)
(U : Finset (Fin n))
(out : Wire n g)
(x y : Fin n → Bool)
(h : ∀ i ∈ U, x i = y i)
:
The output summary is determined by the sending party's primary inputs.
theorem
Algebraic.Aggregate.Capacity.trace_eq_of_outputKey_eq
{J : Type}
{State : J → Type}
{n g : ℕ}
[(j : J) → CommMonoid (State j)]
(p : Program (signature State) n g)
(U : Finset (Fin n))
(out : Wire n g)
(x y : Fin n → Bool)
(hk : outputKey p U out x = outputKey p U out y)
(h : ∀ i ∉ U, x i = y i)
:
Equal output summaries determine the output for every fixed complementary input.