Documentation

Complexitylib.Algebraic.LowerBound.Cutwidth.Aggregate.Compressed.Compilation

Compiling jointly compressed aggregate circuits #

The existing ordinary wiring compiler is unchanged. Only the guessed states and observations are compressed, so the original gate count and graph excess are retained.

theorem Algebraic.Cutwidth.Aggregate.Compressed.card_restriction_le {J : Type} {State : J → Type} [(j : J) → CommMonoid (State j)] {M : Type} [CommMonoid M] [Fintype M] {n g m : ℕ} (p : Program (Aggregate.signature State) n g) (compression : Aggregate.Compressed.Factorization p M) (out : Wire n g) (a₀ : Aggregate.Guess p) (K : MultiOutput.Internal.ClosedSet (Aggregate.erase p a₀)) (e : Fin m ≃ ↥(SingleCut.inputsIn K.carrier)) (outside : Fin n → Bool) (hm : 2 ≤ m) (hconn : ∀ u ∈ K.carrier, ∀ v ∈ K.carrier, Relation.ReflTransGen (MultiOutput.Linked (Aggregate.erase p a₀)) u v) {A η C : ℝ} (hAη : 0 ≤ A + η) (hC : 0 ≤ C) (order : Multigraph.OrderingBound A η C) {Krect : ℕ} (hK : 1 < Krect) (hrect : RectangleFree (fun (x : Cslib.BitString n) => p.trace Aggregate.interpretation x out) Krect) :
↑(accepting (restriction (fun (x : Cslib.BitString n) => p.trace Aggregate.interpretation x out) (SingleCut.inputsIn K.carrier) e.symm outside)).card ≤ ((↑n + 3 * ↑g) * 2 ^ ((A + η) * max (↑g - ↑m) 0 + 3 * Real.logb 2 (↑n + 3 * ↑g) + C + 3) + 1) * 2 ^ (Aggregate.Compressed.budget M + 1) * ↑Krect ^ 2

Summing exact guessed computations multiplies the component bound by at most 2 ^ (compressed budget + 1). The one extra bit observes the designated output without an edge.