Exact reconstruction from primary-input summaries #
Acyclic gate-equation uniqueness supplies topological reconstruction. Splitting a special gate's product requires commutativity, but no inverses or cancellation.
theorem
Algebraic.Aggregate.Capacity.lineSummary_eq_of_selected_agree
{J : Type}
{State : J → Type}
{n g : ℕ}
[(j : J) → CommMonoid (State j)]
(line : Line (signature State) n g)
(U : Finset (Fin n))
(x y : Wire n g → Bool)
(h : ∀ (wire : Wire n g), selected U wire → x wire = y wire)
:
A line summary depends only on the selected primary wires.
theorem
Algebraic.Aggregate.Capacity.line_eval_eq_of_summary_eq
{J : Type}
{State : J → Type}
{n g : ℕ}
[(j : J) → CommMonoid (State j)]
(line : Line (signature State) n g)
(U : Finset (Fin n))
(x y : Wire n g → Bool)
(hs : lineSummary line U x = lineSummary line U y)
(h : ∀ (wire : Wire n g), ¬selected U wire → x wire = y wire)
:
Equal summaries and equal unselected values determine the same gate output.
theorem
Algebraic.Aggregate.Capacity.lineSummary_elim
{J : Type}
{State : J → Type}
{n g : ℕ}
[(j : J) → CommMonoid (State j)]
(line : Line (signature State) n g)
(U : Finset (Fin n))
(input : Fin n → Bool)
(gates : Fin g → Bool)
:
lineSummary line U (Wire.elim input gates) = lineSummary line U (Wire.elim input fun (x : Fin g) => false)
Changing internal gate values does not affect a primary-input summary.
theorem
Algebraic.Aggregate.Capacity.eval_eq_of_key_eq
{J : Type}
{State : J → Type}
{n g : ℕ}
[(j : J) → CommMonoid (State j)]
(p : Program (signature State) n g)
(U : Finset (Fin n))
(x y : Fin n → Bool)
(hk : key p U x = key p U y)
(h : ∀ i ∉ U, x i = y i)
:
Equal keys let the other party reconstruct every gate, regardless of depth.
theorem
Algebraic.Aggregate.Capacity.trace_eq_of_key_eq
{J : Type}
{State : J → Type}
{n g : ℕ}
[(j : J) → CommMonoid (State j)]
(p : Program (signature State) n g)
(U : Finset (Fin n))
(x y : Fin n → Bool)
(hk : key p U x = key p U y)
(h : ∀ i ∉ U, x i = y i)
(wire : Wire n g)
(hw : ¬selected U wire)
:
Gate outputs and unselected primary outputs are reconstructed exactly.