Documentation

LeanPool.NavierStokesAndEuler.Euler.FiniteGradeDiagonal

The finite residual convolution is exactly the source's sum over i+j=n.

theorem EulerFiniteGrades.bounded_pairs_eq_antidiagonal (M n : ) (hn : n M) :
{ijFinset.range (M + 1) ×ˢ Finset.range (M + 1) | ij.1 + ij.2 = n} = Finset.antidiagonal n
theorem EulerFiniteGrades.convolution_eq_antidiagonal {V : Type u_1} {W : Type u_2} {Q : Type u_3} [AddCommGroup V] [Module V] [AddCommGroup W] [Module W] [AddCommGroup Q] [Module Q] (M n : ) (hn : n M) (B : V →ₗ[] W →ₗ[] Q) (u : V) (v : W) :
convolution M B u v n = ijFinset.antidiagonal n, (B (u ij.1)) (v ij.2)
theorem EulerFiniteGrades.convolution_eq_range {V : Type u_1} {W : Type u_2} {Q : Type u_3} [AddCommGroup V] [Module V] [AddCommGroup W] [Module W] [AddCommGroup Q] [Module Q] (M n : ) (hn : n M) (B : V →ₗ[] W →ₗ[] Q) (u : V) (v : W) :
convolution M B u v n = iFinset.range (n + 1), (B (u i)) (v (n - i))
theorem EulerFiniteGrades.convolution_congr_below {V : Type u_1} {W : Type u_2} {Q : Type u_3} [AddCommGroup V] [Module V] [AddCommGroup W] [Module W] [AddCommGroup Q] [Module Q] (M n : ) (hn : n M) (B : V →ₗ[] W →ₗ[] Q) (u u' : V) (v v' : W) (hu : in, u i = u' i) (hv : in, v i = v' i) :
convolution M B u v n = convolution M B u' v' n

No coefficient above the target grade enters its slow convolution.