Polarization #
Ported from scottnarmstrong/Superdiffusion at 7f20476385d4af418f110303085ad0740c9eba46. Module imports, support namespace and local option directives adapted for Lean Pool.
Polarization on doubled vectors #
Finite-dimensional algebra converting the diagonal of an arbitrary bilinear
form on BlockVec d into its unique symmetric representing BlockMat d.
def
Algsuperdiff.Section24.CoarseMatrixDerivative.Internal.blockVecComp
{d : ℕ}
(P : HCPolySupport.BlockVec d)
:
Coordinates of a block vector in the two-component basis.
Equations
Instances For
theorem
Algsuperdiff.Section24.CoarseMatrixDerivative.Internal.blockVec_eq_sum_blockBasis
{d : ℕ}
(P : HCPolySupport.BlockVec d)
:
noncomputable def
Algsuperdiff.Section24.CoarseMatrixDerivative.Internal.blockQuadFormEntry
{d : ℕ}
(B : HCPolySupport.BlockVec d → ℝ)
(α β : HCPolySupport.BlockCoord d)
:
A polarized matrix entry reconstructed from a quadratic form.
Equations
- One or more equations did not get rendered due to their size.
Instances For
noncomputable def
Algsuperdiff.Section24.CoarseMatrixDerivative.Internal.blockMatOfQuadForm
{d : ℕ}
(B : HCPolySupport.BlockVec d → ℝ)
:
The block matrix reconstructed by polarizing a quadratic form.
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[simp]
theorem
Algsuperdiff.Section24.CoarseMatrixDerivative.Internal.blockMatEntry_blockMatOfQuadForm
{d : ℕ}
(B : HCPolySupport.BlockVec d → ℝ)
(α β : HCPolySupport.BlockCoord d)
:
theorem
Algsuperdiff.Section24.CoarseMatrixDerivative.Internal.blockQuadFormEntry_symm
{d : ℕ}
(B : HCPolySupport.BlockVec d → ℝ)
(α β : HCPolySupport.BlockCoord d)
:
theorem
Algsuperdiff.Section24.CoarseMatrixDerivative.Internal.sum_left
{d : ℕ}
(φ : HCPolySupport.BlockVec d → HCPolySupport.BlockVec d → ℝ)
(hadd_l : ∀ (X Y Z : HCPolySupport.BlockVec d), φ (X + Y) Z = φ X Z + φ Y Z)
(hsmul_l : ∀ (c : ℝ) (X Y : HCPolySupport.BlockVec d), φ (c • X) Y = c * φ X Y)
{ι : Type u_1}
(s : Finset ι)
(f : ι → ℝ)
(g : ι → HCPolySupport.BlockVec d)
(Y : HCPolySupport.BlockVec d)
:
theorem
Algsuperdiff.Section24.CoarseMatrixDerivative.Internal.sum_right
{d : ℕ}
(φ : HCPolySupport.BlockVec d → HCPolySupport.BlockVec d → ℝ)
(hadd_r : ∀ (X Y Z : HCPolySupport.BlockVec d), φ X (Y + Z) = φ X Y + φ X Z)
(hsmul_r : ∀ (c : ℝ) (X Y : HCPolySupport.BlockVec d), φ X (c • Y) = c * φ X Y)
{ι : Type u_1}
(s : Finset ι)
(f : ι → ℝ)
(g : ι → HCPolySupport.BlockVec d)
(X : HCPolySupport.BlockVec d)
:
theorem
Algsuperdiff.Section24.CoarseMatrixDerivative.Internal.bilin_apply_eq_sum
{d : ℕ}
(φ : HCPolySupport.BlockVec d → HCPolySupport.BlockVec d → ℝ)
(hadd_l : ∀ (X Y Z : HCPolySupport.BlockVec d), φ (X + Y) Z = φ X Z + φ Y Z)
(hsmul_l : ∀ (c : ℝ) (X Y : HCPolySupport.BlockVec d), φ (c • X) Y = c * φ X Y)
(hadd_r : ∀ (X Y Z : HCPolySupport.BlockVec d), φ X (Y + Z) = φ X Y + φ X Z)
(hsmul_r : ∀ (c : ℝ) (X Y : HCPolySupport.BlockVec d), φ X (c • Y) = c * φ X Y)
(P Q : HCPolySupport.BlockVec d)
:
φ P Q = ∑ α : HCPolySupport.BlockCoord d,
∑ β : HCPolySupport.BlockCoord d,
blockVecComp P α * blockVecComp Q β * φ (HCPolySupport.blockBasis α) (HCPolySupport.blockBasis β)
theorem
Algsuperdiff.Section24.CoarseMatrixDerivative.Internal.blockMatEntry_blockMatOfQuadForm_bilin
{d : ℕ}
(φ : HCPolySupport.BlockVec d → HCPolySupport.BlockVec d → ℝ)
(hadd_l : ∀ (X Y Z : HCPolySupport.BlockVec d), φ (X + Y) Z = φ X Z + φ Y Z)
(hadd_r : ∀ (X Y Z : HCPolySupport.BlockVec d), φ X (Y + Z) = φ X Y + φ X Z)
(α β : HCPolySupport.BlockCoord d)
:
HCPolySupport.blockMatEntry (blockMatOfQuadForm fun (X : HCPolySupport.BlockVec d) => φ X X) α β = (φ (HCPolySupport.blockBasis α) (HCPolySupport.blockBasis β) + φ (HCPolySupport.blockBasis β) (HCPolySupport.blockBasis α)) / 2
theorem
Algsuperdiff.Section24.CoarseMatrixDerivative.Internal.blockVecDot_blockMatVecMul_blockMatOfQuadForm_of_bilin
{d : ℕ}
(φ : HCPolySupport.BlockVec d → HCPolySupport.BlockVec d → ℝ)
(hadd_l : ∀ (X Y Z : HCPolySupport.BlockVec d), φ (X + Y) Z = φ X Z + φ Y Z)
(hsmul_l : ∀ (c : ℝ) (X Y : HCPolySupport.BlockVec d), φ (c • X) Y = c * φ X Y)
(hadd_r : ∀ (X Y Z : HCPolySupport.BlockVec d), φ X (Y + Z) = φ X Y + φ X Z)
(hsmul_r : ∀ (c : ℝ) (X Y : HCPolySupport.BlockVec d), φ X (c • Y) = c * φ X Y)
(P : HCPolySupport.BlockVec d)
:
HCPolySupport.blockVecDot P
(HCPolySupport.blockMatVecMul (blockMatOfQuadForm fun (X : HCPolySupport.BlockVec d) => φ X X) P) = φ P P