Factored-law lifts and exact distance averages #
Keeping the left kernel normalized makes the distance between two factored laws exactly the weighted average of their right-kernel distances. No individual transcript row needs positive transcript mass.
theorem
Algebraic.Cutwidth.Extractor.Internal.rightCoordinateLift_probability
{Z : Type u_1}
{B : Type u_2}
{Q : Type u_3}
[Fintype B]
[Fintype Q]
(r : Z → B → ℝ)
(q : Z → B → Q)
(hr : ∀ (z : Z), IsProbabilityWeight (r z))
(z : Z)
:
theorem
Algebraic.Cutwidth.Extractor.Internal.factoredWeight_rightCoordinateLift
{Z : Type u_1}
{A : Type u_2}
{B : Type u_3}
{Q : Type u_4}
[Fintype Z]
[Fintype A]
[Fintype B]
[Fintype Q]
(w : Z → ℝ)
(l : Z → A → ℝ)
(r : Z → B → ℝ)
(q : Z → B → Q)
:
factoredWeight w l (rightCoordinateLift r q) = mapWeight (fun (p : (Z × B) × A) => ((p.1.1, p.1.2, q p.1.1 p.1.2), p.2)) (factoredWeight w l r)
theorem
Algebraic.Cutwidth.Extractor.Internal.retainedSeedWeight_dist_eq_sum
{Z : Type u_1}
{B : Type u_2}
{Q : Type u_3}
[Fintype Z]
[Fintype B]
[Fintype Q]
(w : Z → ℝ)
(r : Z → B → ℝ)
(q : Z → B → Q)
(nonnegative : ∀ (z : Z), 0 ≤ w z)
(hr : ∀ (z : Z), IsProbabilityWeight (r z))
:
weightDist (retainedSeedWeight w r q) (uniformSecondWeight (retainedSeedWeight w r q)) = ∑ z : Z, w z * weightDist (mapWeight (q z) (r z)) (uniformWeight Q)
theorem
Algebraic.Cutwidth.Extractor.Internal.rightCoordinateRepair_source_eq
{Z : Type u_1}
{B : Type u_2}
{Q : Type u_3}
{X : Type u_4}
[Fintype B]
[Fintype Q]
(w : Z → ℝ)
(r : Z → B → ℝ)
(r' : Z → B × Q → ℝ)
(same : ∀ (z : Z) (b : B), w z * mapWeight Prod.fst (r' z) b = w z * r z b)
(x : Z → B → X)
(z : Z)
(x₀ : X)
:
theorem
Algebraic.Cutwidth.Extractor.Internal.factoredWeight_forget_right_eq
{Z : Type u_1}
{A : Type u_2}
{B : Type u_3}
{Q : Type u_4}
[Fintype Z]
[Fintype A]
[Fintype B]
[Fintype Q]
(w : Z → ℝ)
(l : Z → A → ℝ)
(r : Z → B → ℝ)
(r' : Z → B × Q → ℝ)
(same : ∀ (z : Z) (b : B), w z * mapWeight Prod.fst (r' z) b = w z * r z b)
: