Actions #
Ported from scottnarmstrong/Superdiffusion at 7f20476385d4af418f110303085ad0740c9eba46. Module imports, support namespace and local option directives adapted for Lean Pool.
Exact transformations of regular shell fields #
The actions in this module are the literal transformations used in ABK26: amplitude scaling, real spatial translation, spatial scaling, triadic shell scaling, negation, and signed-permutation conjugation. Each transformation acts on the stored first and second derivatives by the exact chain rule.
Instance caches for the derivative carriers #
The derivative carrier Vec d →L[ℝ] Mat d and the Hessian carrier
Vec d →L[ℝ] (Vec d →L[ℝ] Mat d) are searched hundreds of times while
elaborating this file. Caching the recurring classes once at module level
(outside the section, so that every declaration sees them) turns each search
into a single step. Every cache below is literally the instance Lean would
otherwise rediscover.
The distributive scalar action on the shell derivative carrier.
Equations
Instances For
Amplitude scaling #
Continuous scalar multiplication of matrix values.
Equations
- Algsuperdiff.Frozen.Assumptions.ShellField.valueScaleMap c = { toFun := fun (M : HCPolySupport.Mat d) => c • M, continuous_toFun := ⋯ }
Instances For
Continuous scalar multiplication of first derivatives.
Equations
- Algsuperdiff.Frozen.Assumptions.ShellField.derivScaleMap c = { toFun := fun (D : HCPolySupport.Vec d →L[ℝ] HCPolySupport.Mat d) => c • D, continuous_toFun := ⋯ }
Instances For
Continuous scalar multiplication of second derivatives.
Equations
- Algsuperdiff.Frozen.Assumptions.ShellField.secondDerivScaleMap c = { toFun := fun (H : HCPolySupport.Vec d →L[ℝ] HCPolySupport.Vec d →L[ℝ] HCPolySupport.Mat d) => c • H, continuous_toFun := ⋯ }
Instances For
Scale the values and both stored derivatives of an ambient shell.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Multiply every matrix value by c.
Equations
Instances For
Real spatial translations #
Continuous translation of the spatial argument.
Equations
- Algsuperdiff.Frozen.Assumptions.ShellField.translateMap z = { toFun := fun (x : HCPolySupport.Vec d) => x + z, continuous_toFun := ⋯ }
Instances For
Translate the values and both stored derivatives of an ambient shell.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Real translation in the manuscript convention j(x + z).
Equations
Instances For
Translation by the zero vector is the identity on shell fields.
Spatial scaling and triadic shell scaling #
Continuous dilation of the spatial argument.
Equations
- Algsuperdiff.Frozen.Assumptions.ShellField.spatialMap r = { toFun := fun (x : HCPolySupport.Vec d) => r • x, continuous_toFun := ⋯ }
Instances For
The second-derivative chain rule for spatial dilation.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The continuous-map bundle for the second-derivative dilation action.
Equations
- Algsuperdiff.Frozen.Assumptions.ShellField.spatialSecondDerivativeContinuousMap r = { toFun := ⇑(Algsuperdiff.Frozen.Assumptions.ShellField.spatialSecondDerivativeMap r), continuous_toFun := ⋯ }
Instances For
Dilate a shell's spatial argument with the corresponding derivative factors.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Precompose with x ↦ r • x; the derivative carries the chain-rule
factor r.
Equations
Instances For
Combined amplitude and spatial scaling.
Equations
Instances For
The literal marginal scaling action 3^(γ k) j(3^(-k) ·).
Equations
- Algsuperdiff.Frozen.Assumptions.ShellField.triadicScale gamma k j = Algsuperdiff.Frozen.Assumptions.ShellField.rescale (Real.rpow 3 (gamma * ↑k)) (3 ^ k)⁻¹ j
Instances For
Negation #
Value and derivative negation, as required by J3.
Equations
Instances For
Signed-permutation conjugation #
Matrix multiplication bundled as a continuous linear map on vectors.
Equations
- Algsuperdiff.Frozen.Assumptions.ShellField.matVecContinuousLinearMap R = { toLinearMap := Matrix.toLin' R, cont := ⋯ }
Instances For
The linear map sending a matrix to its conjugate by R.
Equations
- Algsuperdiff.Frozen.Assumptions.ShellField.conjugateLinearMap R = { toFun := fun (M : HCPolySupport.Mat d) => HCPolySupport.matTranspose R * M * R, map_add' := ⋯, map_smul' := ⋯ }
Instances For
Matrix conjugation bundled as a continuous linear map.
Equations
- Algsuperdiff.Frozen.Assumptions.ShellField.conjugateContinuousLinearMap R = { toLinearMap := Algsuperdiff.Frozen.Assumptions.ShellField.conjugateLinearMap R, cont := ⋯ }
Instances For
The exact derivative action D ↦ (M ↦ RᵀMR) ∘ D ∘ (v ↦ Rv).
Equations
- One or more equations did not get rendered due to their size.
Instances For
The exact Hessian action
H ↦ (v ↦ w ↦ Rᵀ H (Rv) (Rw) R).
Equations
- One or more equations did not get rendered due to their size.
Instances For
The continuous matrix-value map used by the rotation action.
Equations
- Algsuperdiff.Frozen.Assumptions.ShellField.rotateValueMap R = { toFun := ⇑(Algsuperdiff.Frozen.Assumptions.ShellField.conjugateContinuousLinearMap R), continuous_toFun := ⋯ }
Instances For
The continuous spatial map used by the rotation action.
Equations
- Algsuperdiff.Frozen.Assumptions.ShellField.rotateDomainMap R = { toFun := ⇑(Algsuperdiff.Frozen.Assumptions.ShellField.matVecContinuousLinearMap R), continuous_toFun := ⋯ }
Instances For
The continuous first-derivative map used by the rotation action.
Equations
- Algsuperdiff.Frozen.Assumptions.ShellField.rotateDerivativeContinuousMap R = { toFun := ⇑(Algsuperdiff.Frozen.Assumptions.ShellField.rotateDerivativeMap R), continuous_toFun := ⋯ }
Instances For
The continuous second-derivative map used by the rotation action.
Equations
- Algsuperdiff.Frozen.Assumptions.ShellField.rotateSecondDerivativeContinuousMap R = { toFun := ⇑(Algsuperdiff.Frozen.Assumptions.ShellField.rotateSecondDerivativeMap R), continuous_toFun := ⋯ }
Instances For
Rotate a shell's argument, values and stored derivatives together.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The signed-permutation action j(x) ↦ Rᵀ j(Rx) R.