Tuple identities for shared-seed block condensation #
Head/tail transport and the empty tuple case connect the block-source induction to the finite weighted-output contract. These identities retain the seed once and require no independence between source blocks.
theorem
Algebraic.Cutwidth.Extractor.Internal.blockCondenser_zero
{α : Type u_1}
{Seed : Type u_2}
{Ω : Type u_3}
[Fintype α]
[Fintype Seed]
[Fintype Ω]
(C : α → Seed → Ω)
(p : (Fin 0 → α) → ℝ)
(hp : IsProbabilityWeight p)
(K : ℕ)
:
∃ (q : Seed → (Fin 0 → Ω) → ℝ),
(∀ (y : Seed), IsBlockSource (q y) K) ∧ (weightedSeededOutput p fun (x : Fin 0 → α) (y : Seed) (i : Fin 0) => C (x i) y) = seedFamilyWeight q