Coarse-graining support: #
Support.CoarseGraining.BlockResponse.Perturbation.BlockEnergyFirstVariation
Imported from the Apache-2.0 CoarseGraining development at commit
c7ddd76c08ade64fed1b8d2ca51be14dfee8deb4.
BlockResponse perturbation -- blockEnergyAverage and scalarFirstVariation #
blockEnergyAverage_blockResponsePairHalfState = quarter scalarVariationEnergySum under IsEllipticFieldOn, together with the three scalarFirstVariation-zero theorems (zero_right, neg_left_zero, neg_left_right) for ae-equal pair-half states under IsBlockMuAdmissible.
The half-pair witness has block energy equal to one quarter of the sum of the primal and adjoint scalar variation energies.
Decoupling lemma for the pure-flux slice.
If a recovered \mu-admissible state at coarse data (0,q) is a.e. a
primal/adjoint half-pair, then the primal member of the half-pair satisfies the
scalar Euler-Lagrange identity for ResponseJ U 0 q a.
Decoupling lemma for the pure-gradient slice.
The sign is forced by the block convention: a recovered \mu-admissible state
at coarse data (p,0) yields the primal scalar Euler-Lagrange identity for
ResponseJ U (-p) 0 a. The final energy statement removes this sign using the
quadratic homogeneity of ResponseJ.
Decoupling lemma for arbitrary block data.
The sign in the primal scalar first variation is dictated by the block
convention: a recovered \mu-admissible state at coarse datum (p,q) yields
the Euler-Lagrange identity for ResponseJ U (-p) q a.