Documentation

LeanPool.HighContrastHomogenization.Entry.Setup.ProjectiveDistance

High-contrast homogenization: Entry.Setup.ProjectiveDistance #

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

Projective Distance #

The block calculus of the doubled matrices, the canonical metric m(F) built from it, and the projective distance d_pr the printed statements are stated with. The module serves e.scale.selection.projective.distance, with the canonical metric e.scale.selection.canonical.metric and the reflection ๐‘ of e.renormalization.geometry.update as the constructions its definition reads through.

The arithmetic the printed displays perform on doubled blocks #

The paper writes ordinary matrix operations on 2d-by-2d matrices โ€” a difference P - I_{2d}, a trace, a logarithm of a determinant, the operator norm |M|, the normalization F^{-1/2} H F^{-1/2}, and the swap block ๐‘ โ€” while the development carries a 2d-by-2d matrix as the four-field BlockMat d. This file is the translation layer those displays need, and nothing else: each definition is the named operation read through toFullBlockMat.

Conventions, stated because a reader comparing this file to the manuscript must not have to guess:

blockSwap is CoarseGraining's Book.Ch02.blockR, which is already the printed matrix; it is named here only so that the printed symbol ๐‘ has a Lean name.

The operator norm |H| of a doubled block: Mathlib's L2 operator norm of the 2d-by-2d matrix.

Equations
Instances For

    The swap block ๐‘ = ((0, I_d), (I_d, 0)) near e.scale.selection.projective.distance. This is CoarseGraining's reflection block Book.Ch02.blockR; the printed display is that matrix.

    Equations
    Instances For

      The canonical metric m(F) #

      Near e.scale.selection.canonical.metric:

      Set ๐‘ := ((0, I_d), (I_d, 0)). For a positive 2d-by-2d block F, define m(F) := (F^{1/2}(F^{-1/2}๐‘F^{-1}๐‘F^{-1/2})^{1/2}F^{1/2})_{22}^{-1} > 0.

      The definition matches the printed display symbol for symbol. F^{1/2} and the inner (ยท)^{1/2} are matSqrt, the canonical positive semidefinite square root of HCPoly/Setup/BlockAlgebra.lean; ๐‘ is blockSwap; (ยท)_{22} is the lower-right d-by-d block, the .lowerRight field of the doubled block; and the outer (ยท)^{-1} is the inverse of that d-by-d matrix.

      The printed hypothesis "positive F" and the printed assertion m(F) > 0 are not part of the definition: the first stays with the consumer, and the second is a statement about the value, proved separately. Off the positive blocks every root and inverse takes its junk value.

      An alternative characterization defines m(E) as the positive factor of the factorization M(E) = G_{โˆ’g(E)}^t diag(m(E), m(E)^{-1}) G_{โˆ’g(E)} of the canonical block M(E) = E # E^โ™ฏ and reaches the printed formula through a geometric-mean layer. The printed display is a closed expression in F and is written here as such, which is why the definition below is called explicitCanonicalMetric.

      The canonical metric m(F) = (F^{1/2}(F^{-1/2}๐‘F^{-1}๐‘F^{-1/2})^{1/2}F^{1/2})_{22}^{-1} (e.scale.selection.canonical.metric), the printed closed expression.

      The canonicalMetric of the published HCPoly library (HCPoly/Setup/TransportObjects.lean) is the same quantity, defined by a characterization rather than by a formula: it is canonMetric (toFullBlockMat F), the positive factor of the canonical factorization M(F) = G_{โˆ’g}^t diag(m, m^{-1}) G_{โˆ’g} (HCPoly/Geometry/Canonical.lean), selected by the uniqueness of that factorization. That the factor is given by the expression below is a theorem about positive F, not a definitional identity, and nothing in this library proves it, so the two definitions keep different names.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For

        The projective distance d_pr([๐”ช_0],[๐”ช_1]) #

        Near e.scale.selection.projective.distance:

        For positive d-by-d matrices ๐”ช_0, ๐”ช_1, define d_pr([๐”ช_0],[๐”ช_1]) := ยฝ log (ฮป_max(๐”ช_0^{-1/2}๐”ช_1๐”ช_0^{-1/2}) / ฮป_min(๐”ช_0^{-1/2}๐”ช_1๐”ช_0^{-1/2})).

        The extreme eigenvalues are written in their Loewner forms, which is how the setup layer already writes ฮป_max: specBound M of HCPoly/Setup/BlockAlgebra.lean is inf {t โ‰ฅ 0 : M โ‰ค tI}, the largest eigenvalue of a symmetric positive semidefinite M, and specMin below is the dual sup {t : tI โ‰ค M}. No matrix square root and no eigenvalue family enters a scalar quantity; that convention is the setup layer's, not this file's.

        Three things are recorded because a reader comparing this file to the manuscript would otherwise have to reconstruct them:

        An alternative definition writes the distance through the two relative sizes, ยฝ(log relSize(๐”ช_1,๐”ช_0) + log relSize(๐”ช_0,๐”ช_1)), and proves the printed form as a theorem (projDist_eq_norm_form). That shape is not adopted: it is the printed display only after that theorem, and a definition may not embed a proved identity. The d-by-d normalization ๐”ช_0^{-1/2}๐”ช_1๐”ช_0^{-1/2} is the analogue of normalizedBlock, and that shape is adopted.

        noncomputable def HCPolySupport.HighContrast.specMin {d : โ„•} (M : Mat d) :

        The smallest eigenvalue of a symmetric matrix, in Loewner form: sup {t : t I โ‰ค M}. This is the dual of specBound, which is inf {t โ‰ฅ 0 : M โ‰ค t I}.

        Equations
        Instances For
          noncomputable def HCPolySupport.HighContrast.normalizedMat {d : โ„•} (mโ‚€ mโ‚ : Mat d) :
          Mat d

          The normalized matrix ๐”ช_0^{-1/2} ๐”ช_1 ๐”ช_0^{-1/2}, the root being the canonical positive semidefinite square root of ๐”ช_0โปยน.

          Equations
          Instances For
            def HCPolySupport.HighContrast.ProjectiveEq {d : โ„•} (mโ‚€ mโ‚ : Mat d) :

            The projective class relation [๐”ช_0] = [๐”ช_1]: the two matrices differ by a positive scalar. This is the case distinction the geometry update e.renormalization.geometry.update makes.

            Equations
            Instances For
              noncomputable def HCPolySupport.HighContrast.projectiveDistance {d : โ„•} (mโ‚€ mโ‚ : Mat d) :

              The projective distance d_pr([๐”ช_0],[๐”ช_1]) = ยฝ log (ฮป_max(๐”ช_0^{-1/2}๐”ช_1๐”ช_0^{-1/2}) / ฮป_min(๐”ช_0^{-1/2}๐”ช_1๐”ช_0^{-1/2})) (e.scale.selection.projective.distance).

              Equations
              • One or more equations did not get rendered due to their size.
              Instances For