Documentation

LeanPool.HighContrastHomogenization.Entry.Multiscale.Global.PartialChangeMetric

High-contrast homogenization: Entry.Multiscale.Global.PartialChangeMetric #

Imported from the Apache-2.0 HighContrastHomogenization development at commit 7a13dbcd8d6609264a713373f5c69ceeac870472.

The metric part of a partial geometry change #

The projective-metric bookkeeping of a partial geometry change, serving p.global.selection: the geometry update moves the current metric a distance exactly ε towards the target when the target is not reached, and the residual distance to the target drops by ε.

theorem HCPolySupport.HighContrast.Multiscale.partial_change_metric {d : ℕ} (P : MeasureTheory.Measure (CoeffSpace d)) (jStar : ℕ) (ε δ : ℝ) (m : Mat d) (k n : ℤ) (L : ℕ) (hm : Matrix.PosDef m) (hε : 0 < ε) (hδ : δ ∈ Set.Ico 0 1) (hsym : ∀ (j : ℤ), IsSymmetricBlockMat (adaptedMean P (Geometry.explicitRoundedGrid jStar m) j)) (hpos : ∀ (j : ℤ), Book.Ch02.BlockPosDef (adaptedMean P (Geometry.explicitRoundedGrid jStar m) j)) (hsymP : IsSymmetricBlockMat (adaptedMean P (Geometry.explicitRoundedGrid jStar (geometryUpdate ε m (explicitCanonicalMetric (adaptedMean P (Geometry.explicitRoundedGrid jStar m) (n + 2 * ↑L))))) (n + ↑L))) (hposP : Book.Ch02.BlockPosDef (adaptedMean P (Geometry.explicitRoundedGrid jStar (geometryUpdate ε m (explicitCanonicalMetric (adaptedMean P (Geometry.explicitRoundedGrid jStar m) (n + 2 * ↑L))))) (n + ↑L))) (hmono : BlockMatLoewnerLE (adaptedMean P (Geometry.explicitRoundedGrid jStar m) (n + 2 * ↑L)) (adaptedMean P (Geometry.explicitRoundedGrid jStar m) k)) (hfar : ε < projectiveDistance m (explicitCanonicalMetric (adaptedMean P (Geometry.explicitRoundedGrid jStar m) (n + 2 * ↑L)))) (hbr₁ : BlockMatLoewnerLE (blockScale (1 - δ) (adaptedMean P (Geometry.explicitRoundedGrid jStar m) (n + 2 * ↑L))) (adaptedMean P (Geometry.explicitRoundedGrid jStar (geometryUpdate ε m (explicitCanonicalMetric (adaptedMean P (Geometry.explicitRoundedGrid jStar m) (n + 2 * ↑L))))) (n + ↑L))) (hbr₂ : BlockMatLoewnerLE (adaptedMean P (Geometry.explicitRoundedGrid jStar (geometryUpdate ε m (explicitCanonicalMetric (adaptedMean P (Geometry.explicitRoundedGrid jStar m) (n + 2 * ↑L))))) (n + ↑L)) (blockScale (1 + δ) (adaptedMean P (Geometry.explicitRoundedGrid jStar m) (n + 2 * ↑L)))) :

p.global.selection: the metric part of a partial geometry change. m₊ = geometryUpdate ε m m⋆ with m⋆ = m(𝐀_{n+2L,q}) not reached (d_pr([m],[m⋆]) > ε, so d_pr([m₊],[m⋆]) = d_pr([m],[m⋆]) - ε by Geometry.projectiveDistance_geometryUpdate_eq_min), 𝐀_{n+2L,q} ≤ 𝐀_{k,q} (explicitCanonicalMetric_projectiveDistance_le_logDet), and the bridge sandwich e.global.selection.geometry.comparison (explicitCanonicalMetric_projectiveDistance_le_of_deltaSandwich), glued by projectiveDistance_triangle and the symmetry of projectiveDistance.