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:
|M|is Mathlib's L2 operator norm, asHCPoly/Entry/Geometry/QuadraticForm.leanalready fixes it forMat d.F^{-1/2}ismatSqrt (Fโปยน), the canonical positive semidefinite square root of the inverse fixed inHCPoly/Setup/BlockAlgebra.lean; on a block that is not positive definite the inverse and the root take their junk values there, sonormalizedBlockcarries no positivity hypothesis and the printed hypothesisF > 0stays with the consumer.blockLogDetislog (det H), which is Mathlib's junklogof a nonpositive determinant off the positive blocks, again by the same convention.
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.
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.
Instances For
The canonical metric m(F) #
Near e.scale.selection.canonical.metric:
Set
๐ := ((0, I_d), (I_d, 0)). For a positive2d-by-2dblockF, definem(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-dmatrices๐ช_0, ๐ช_1, defined_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:
- The printed argument is the projective class
[๐ช], and the function here takes representatives. Thatd_prdepends only on the classes โ it is invariant under๐ช_i โฆ c ๐ช_iwithc > 0โ is a statement about the value and is proved, not definitional. The class itself is rendered as the relationProjectiveEq, which is what the case split of the geometry updatee.renormalization.geometry.updatetests. - The printed hypothesis "positive
๐ช_0, ๐ช_1" is not part of the definition. Off the positive matrices,๐ช_0โปยนand its square root take the junk values ofHCPoly/Setup/BlockAlgebra.lean,specMinof a matrix with an empty lower-threshold set is totalized bysSup, andlogof a nonpositive quotient is Mathlib's junklog. - The quotient is written as printed,
ฮป_max / ฮป_min, not as the productฮป_max(X) ยท ฮป_max(Xโปยน); the two agree on positiveX, but only the first is the display.
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.
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
- HCPolySupport.HighContrast.specMin M = sSup {t : โ | HCPolySupport.MatLoewnerLE (t โข 1) M}
Instances For
The normalized matrix ๐ช_0^{-1/2} ๐ช_1 ๐ช_0^{-1/2}, the root being the canonical
positive semidefinite square root of ๐ช_0โปยน.
Equations
Instances For
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
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.