Derivative bounds for the normalized flat primitive kernel #
The expression algebra below is closed under actual differentiation in x.
It bounds all derivatives of the concrete square-root kernel from finitely
many derivatives of its smooth profile and proves continuity in the integral
parameter. Exponential-majorant integrability is supplied separately.
theorem
NavierStokes.FlatKernelBounds.hasDerivAt_denominator
{x t : ℝ}
(ht : 0 ≤ t)
:
HasDerivAt (fun (y : ℝ) => denominator y t) (x * t * (denominator x t)⁻¹) x
theorem
NavierStokes.FlatKernelBounds.hasDerivAt_inv_denominator
{x t : ℝ}
(ht : 0 ≤ t)
:
HasDerivAt (fun (y : ℝ) => (denominator y t)⁻¹) (-(x * t) * (denominator x t)⁻¹ ^ 3) x
theorem
NavierStokes.FlatKernelBounds.hasDerivAt_coordinate
{x t : ℝ}
(ht : 0 ≤ t)
:
HasDerivAt (fun (y : ℝ) => coordinate y t) ((denominator x t)⁻¹ ^ 3) x
Eval used in flat kernel bounds.
Equations
- (NavierStokes.FlatKernelBounds.Expr.const c).eval x✝² x✝¹ x✝ = c
- NavierStokes.FlatKernelBounds.Expr.x.eval x✝² x✝¹ x✝ = x✝¹
- NavierStokes.FlatKernelBounds.Expr.t.eval x✝² x✝¹ x✝ = x✝
- NavierStokes.FlatKernelBounds.Expr.root.eval x✝² x✝¹ x✝ = NavierStokes.FlatKernelBounds.denominator x✝¹ x✝
- NavierStokes.FlatKernelBounds.Expr.invRoot.eval x✝² x✝¹ x✝ = (NavierStokes.FlatKernelBounds.denominator x✝¹ x✝)⁻¹
- (NavierStokes.FlatKernelBounds.Expr.jet k).eval x✝² x✝¹ x✝ = iteratedDeriv k x✝² (NavierStokes.FlatKernelBounds.coordinate x✝¹ x✝)
- (e.add f).eval x✝² x✝¹ x✝ = e.eval x✝² x✝¹ x✝ + f.eval x✝² x✝¹ x✝
- (e.mul f).eval x✝² x✝¹ x✝ = e.eval x✝² x✝¹ x✝ * f.eval x✝² x✝¹ x✝
Instances For
Diff used in flat kernel bounds.
Equations
- One or more equations did not get rendered due to their size.
- (NavierStokes.FlatKernelBounds.Expr.const c).diff = NavierStokes.FlatKernelBounds.Expr.const 0
- NavierStokes.FlatKernelBounds.Expr.x.diff = NavierStokes.FlatKernelBounds.Expr.const 1
- NavierStokes.FlatKernelBounds.Expr.t.diff = NavierStokes.FlatKernelBounds.Expr.const 0
- NavierStokes.FlatKernelBounds.Expr.root.diff = (NavierStokes.FlatKernelBounds.Expr.x.mul NavierStokes.FlatKernelBounds.Expr.t).mul NavierStokes.FlatKernelBounds.Expr.invRoot
- (NavierStokes.FlatKernelBounds.Expr.jet k).diff = (NavierStokes.FlatKernelBounds.Expr.jet (k + 1)).mul (NavierStokes.FlatKernelBounds.Expr.invRoot.pow 3)
- (e.add f).diff = e.diff.add f.diff
- (e.mul f).diff = (e.diff.mul f).add (e.mul f.diff)
Instances For
theorem
NavierStokes.FlatKernelBounds.PolynomialBound.add
{R : ℝ}
{F G : ℝ → ℝ → ℝ}
(hF : PolynomialBound R F)
(hG : PolynomialBound R G)
:
PolynomialBound R fun (x t : ℝ) => F x t + G x t
theorem
NavierStokes.FlatKernelBounds.PolynomialBound.mul
{R : ℝ}
{F G : ℝ → ℝ → ℝ}
(hF : PolynomialBound R F)
(hG : PolynomialBound R G)
:
PolynomialBound R fun (x t : ℝ) => F x t * G x t
The greatest profile derivative order present in a finite expression.
Equations
Instances For
theorem
NavierStokes.FlatKernelBounds.Expr.polynomialBound_of_jetBound
(e : Expr)
{b : ℝ → ℝ}
{R : ℝ}
(hR : 0 ≤ R)
(hjets : ∀ k ≤ e.jetOrder, ∃ (C : ℝ), 0 ≤ C ∧ ∀ (y : ℝ), |y| ≤ R → |iteratedDeriv k b y| ≤ C)
:
PolynomialBound R (e.eval b)
Only finitely many profile jets are needed for a given expression bound.
theorem
NavierStokes.FlatKernelBounds.continuousOn_coordinate_t
(x : ℝ)
:
ContinuousOn (coordinate x) (Set.Ici 0)
theorem
NavierStokes.FlatKernelBounds.kernel_iteratedDeriv_bound_of_jetBounds
{b : ℝ → ℝ}
(hb : ContDiff ℝ (↑⊤) b)
(c : ℝ)
(j n : ℕ)
{R : ℝ}
(hR : 0 ≤ R)
(hjets : ∀ k ≤ n, ∃ (C : ℝ), 0 ≤ C ∧ ∀ (y : ℝ), |y| ≤ R → |iteratedDeriv k b y| ≤ C)
:
An order-n bound uses only the first n profile jets on [-R,R].
The global smoothness assumption identifies the expression with the actual derivative.