ShellSum #
Ported from scottnarmstrong/Superdiffusion at 7f20476385d4af418f110303085ad0740c9eba46. Module imports, support namespace and local option directives adapted for Lean Pool.
The additive layer on the frozen shell-field carrier #
The frozen ShellField carrier of ABK26 bundles a matrix value field with its
stored first and second derivatives; up to now the repository only carried the
multiplicative actions (amplitude scaling, translation, spatial and triadic
scaling, negation, signed-permutation conjugation). This module adds the
missing additive operations.
All three defining clauses of the frozen carrier are additive: the two HasFDerivAt
clauses by Has.sum, and entrywise antisymmetry linearly. So there is no
structural obstruction, and the sum of shell fields carries honest derivative
data rather than a re-derived one.
The resulting shellIncrement omega n m is a genuine ShellField whose values
are exactly the stream increment k_m - k_n of the manuscript, by
shellIncrement_apply_eq_cutoff_sub.
Main definitions #
ShellField.zero,ShellField.add,ShellField.sum: the additive layer.shellIncrement: the finite stream increment as a shell field.
Main results #
ShellField.zero_apply,ShellField.add_apply,ShellField.sum_applyand their first- and second-derivative analogues: the defining pointwise characterizations.shellIncrement_apply: the increment's values are the proved regular-field incrementfiniteShellIncrement.shellIncrement_apply_eq_cutoff_sub: the increment's values are literallyk_m x - k_n x.
References #
- ABK26,
e.Bosc.def,e.Bosc.decomp.
Migration cache (mathlib v4.33.1): ContinuousLinearMap.add on the nested second-derivative
fibre needs ContinuousAdd (Vec d →L[ℝ] Mat d) as a hypothesis (the codomain of the outer map).
A blind search for that hypothesis tries the IsTopologicalAddGroup.toContinuousAdd route only
after first wandering, unsuccessfully, through every Vec d →L[ℝ] Mat d-as-endomorphism-ring
candidate (IsSemitopologicalSemiring, IsTopologicalSemiring, down through CStarAlgebra,
NormedRing, Field, …), and gives up before ever reaching the right one. Naming the direct
term sidesteps that search entirely; it is what the nested-level caches below build on.
Migration cache (mathlib v4.33.1): pin the nested second-derivative fibre's
TopologicalSpace/IsTopologicalAddGroup/ContinuousAdd directly via
ContinuousLinearMap.topologicalSpace / ContinuousLinearMap.topologicalAddGroup, now that the
one-level-down hypothesis (instContinuousAddVecMatCLM above) resolves immediately instead of
wandering. An earlier version of this cache instead proved ContinuousAdd at the nested type via
a bare inferInstance-built private theorem turned into a local instance; under mathlib
v4.33.0 that candidate's explicit (d : ℕ) argument fails to unify with the ambient section d
at the actual Continuous.add use sites below (tryResolve reports a stray metavariable), even
though the identical goal succeeds when posed in isolation. Building ContinuousAdd directly
from a plain (non-local) instance avoids that failure entirely.
The zero shell field #
The identically zero shell field, with zero derivative data.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Binary sums #
Continuity of the summed second-derivative field, as a standalone lemma. Ordinary instance
search for ContinuousAdd on the nested second-derivative fibre leaves d tied to an unresolved
metavariable at every use site below (mathlib v4.33.0), even though the identical goal resolves
immediately once posed on its own; supplying instContinuousAddVecVecMatCLM explicitly via @
sidesteps that search rather than relying on it.
The pointwise sum of two shell fields, with the summed derivative data.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Finite sums #
Continuity of the finite-summed second-derivative field, as a standalone lemma; see
continuous_add_secondDeriv for why the needed instances are supplied explicitly via @
rather than left to search.
The pointwise Finset sum of shell fields, with the summed derivative
data. This is the finite-sum carrier required by the literal oscillation
event of e.Bosc.def.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Translation commutes with finite sums of shell fields.
The finite stream increment k_m - k_n as a genuine shell field: the
literal sum of the shells with indices in (n, m], carrying honest first and
second derivative data.
Equations
Instances For
The increment shell field has exactly the values of the proved regular-coefficient-field increment.
The values of the increment shell field are literally k_m x - k_n x.
This is the identification the literal oscillation event e.Bosc.def needs.