High-contrast homogenization: Entry.Response.Core.SkewShearCongruence #
Imported from the Apache-2.0 HighContrastHomogenization development at commit
7a13dbcd8d6609264a713373f5c69ceeac870472.
The skew-shear congruence of the coarse block #
This file develops the skew-shear congruence that removes the skew part of the coarse block matrix
in the proof of adapted_response_core: it shows the shear conjugation subtracts exactly the skew
component, expresses the sheared block-matrix-vector product and block energy density in terms of
the unsheared ones, and proves the shear preserves the admissible class of Radon measures. It also
proves the helper facts the response-imbalance comparison needs: monotonicity of the canonical
imbalance, the index bound j* < s at a raw sample, and the elementary inequalities relating the
determinant ratio to the scale factor. The congruence serves the response transfer
p.response.transfer; the imbalance helpers serve the comparison e.response.imbalance.comparison.
The skew-shear congruence and response-imbalance helpers #
This file develops the skew-shear congruence for the coarse block matrix in the proof of
adapted_response_core, together with the admissible-class lemmas it rests on and the helper
lemmas for the response-imbalance comparison.
The skew-shear congruence #
The identity coarseBlockMatrix U (fun x => a x - g) = blockCongr (1, 0, g, 1) (coarseBlockMatrix U a)
for a constant skew matrix g (p.response.transfer), together with the admissible-class
lemmas it rests on. It is the mathematical content of annealedBlockOf_respCoeffMinus_eq,
proved here from the CoarseGraining primitives.
Keep the potential of a block state and add g times that potential to its flux.
Equations
- HCPolySupport.HighContrast.Multiscale.shearStateFluxAdd g X = { potential := X.potential, flux := fun (x : HCPolySupport.Vec d) => X.flux x + HCPolySupport.matVecMul g (X.potential x) }
Instances For
Shear a block load by keeping its first component and adding g times that component to the
second.
Equations
- HCPolySupport.HighContrast.Multiscale.shearLoad g P = (P.1, P.2 + HCPolySupport.matVecMul g P.1)
Instances For
Helpers for the response-imbalance comparison #
These private lemmas supply the monotonicity of the canonical imbalance, the determinant and
eigenvalue estimates for positive-definite matrices, and the block positive-definiteness
criterion used in e.response.imbalance.comparison.
With the two premises ε ∈ (0, S.eps0] and σ ∈ (0, ε] that the paper's Step 2 uses, the
raw output gives j_* < s, which is what Annealed.adaptedMean_antitone needs for E_t ≤ E_s.
Without them S.one_le_B0 is unavailable, B may be negative and raw.hs_lo is vacuous.
The canonical imbalance is monotone for the Loewner order: A ≤ B implies 𝔡(A) ≤ 𝔡(B).
This is the Lean content of the middle inequality κ_t ≤ κ_s of
e.response.imbalance.comparison: 𝔡(B) ≤ c unpacks to
B ≤ c·𝐑B⁻¹𝐑 (le_of_imbalance_le), inverse antitonicity turns A ≤ B into
𝐑B⁻¹𝐑 ≤ 𝐑A⁻¹𝐑, and imbalance_le_of_le packs A ≤ c·𝐑A⁻¹𝐑 back up.
1 ≤ 𝔡(A) whenever the primal-adjoint order 𝐑A⁻¹𝐑 ≤ A holds
(e.matrix.annealed.sharp.order, quoted at e.response.imbalance.comparison).
This is the first inequality of e.response.imbalance.comparison.
X ≤ X.det • 1 whenever X is positive-definite and 1 ≤ X: each eigenvalue of X is at
most the product of all of them once every eigenvalue is ≥ 1.
A doubled block whose flattening is positive definite is block positive definite.
The converse of posDef_toFullBlockMat, needed to feed Annealed.adaptedMean_posDef into the
imbalance helpers (e.response.imbalance.comparison).
The determinant-ratio comparison of p.response.transfer: for positive
definite A ≤ B one has 1 ≤ det B / det A and B ≤ (det B / det A) • A.
This is the step "bounding each eigenvalue of E_t^{-1/2} E_s E_t^{-1/2} by their product"
(e.response.imbalance.comparison): congruating A ≤ B by A^{-1/2} produces
X = A^{-1/2} B A^{-1/2} with 1 ≤ X and det X = det B / det A, and
one_le_det_of_one_le / le_det_smul_one_of_one_le apply to X.