Documentation

TauCeti.Geometry.Manifold.Riemannian.Laplacian

Divergence, Hessian, and Laplace–Beltrami operators #

This file introduces the pointwise Riemannian divergence as the trace of the Levi–Civita covariant derivative, the scalar Hessian obtained by pairing that derivative of the gradient, and the Laplace–Beltrami operator with the convention Δ = div ∘ grad. The orthonormal-basis trace formula makes the relationship between the Laplacian and the Hessian explicit. The operator laws include the Leibniz rule and the chain rule Δ (h ∘ f) = h'(f) Δ f + h''(f) |grad f|² for a real function h, with its special case Δ (log f) = Δ f / f - |grad f|² / f². On a finite-dimensional normed space whose metric is a field of bilinear forms g, the Hessian in linear coordinates is D²f(u, v) - Df(Γ(u, v)) with Γ the Christoffel symbols of g. On a finite-dimensional inner-product space, the operator agrees with Mathlib's flat Laplacian. The Hessian conventions follow Lee, Introduction to Riemannian Manifolds, Chapter 3.

noncomputable def TauCeti.Manifold.divergence {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] [FiniteDimensional ℝ E] {H : Type u_2} [TopologicalSpace H] (I : ModelWithCorners ℝ E H) {M : Type u_3} [TopologicalSpace M] [ChartedSpace H M] [IsManifold I 2 M] [Bundle.RiemannianBundle fun (x : M) => TangentSpace I x] [IsContMDiffRiemannianBundle I 1 E fun (x : M) => TangentSpace I x] (X : (x : M) → TangentSpace I x) (x : M) :

The Riemannian divergence of a vector field, defined as the trace of its Levi–Civita covariant derivative.

Instances For
    theorem TauCeti.Manifold.contMDiff_divergence {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] [FiniteDimensional ℝ E] {H : Type u_2} [TopologicalSpace H] {n m k : WithTop ℕ∞} {I : ModelWithCorners ℝ E H} {M : Type u_3} [TopologicalSpace M] [ChartedSpace H M] [IsManifold I 2 M] [IsManifold I m M] [Bundle.RiemannianBundle fun (x : M) => TangentSpace I x] [IsContMDiffRiemannianBundle I 1 E fun (x : M) => TangentSpace I x] [IsContMDiffRiemannianBundle I k E fun (x : M) => TangentSpace I x] (hm : n + 2 ≤ m) (hk : n + 1 ≤ k) {X : (x : M) → TangentSpace I x} (hX : ContMDiff I I.tangent (n + 1) fun (y : M) => ⟨y, X y⟩) :

    A C^(n + 1) vector field on a C^m Riemannian manifold with C^k metric has C^n divergence when n + 2 ≤ m and n + 1 ≤ k.

    noncomputable def TauCeti.Manifold.hessian {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] [FiniteDimensional ℝ E] {H : Type u_2} [TopologicalSpace H] (I : ModelWithCorners ℝ E H) {M : Type u_3} [TopologicalSpace M] [ChartedSpace H M] [IsManifold I 2 M] [Bundle.RiemannianBundle fun (x : M) => TangentSpace I x] [IsContMDiffRiemannianBundle I 1 E fun (x : M) => TangentSpace I x] (f : M → ℝ) (x : M) (v w : TangentSpace I x) :

    The scalar Hessian of f, pairing the covariant derivative of its gradient with a second tangent vector.

    Instances For
      theorem TauCeti.Manifold.hessian_def {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] [FiniteDimensional ℝ E] {H : Type u_2} [TopologicalSpace H] (I : ModelWithCorners ℝ E H) {M : Type u_3} [TopologicalSpace M] [ChartedSpace H M] [IsManifold I 2 M] [Bundle.RiemannianBundle fun (x : M) => TangentSpace I x] [IsContMDiffRiemannianBundle I 1 E fun (x : M) => TangentSpace I x] (f : M → ℝ) (x : M) (v w : TangentSpace I x) :
      theorem TauCeti.Manifold.hessian_apply_eq_mvfderiv_sub {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] [FiniteDimensional ℝ E] {H : Type u_2} [TopologicalSpace H] {I : ModelWithCorners ℝ E H} {M : Type u_3} [TopologicalSpace M] [ChartedSpace H M] [IsManifold I 2 M] [Bundle.RiemannianBundle fun (x : M) => TangentSpace I x] [IsContMDiffRiemannianBundle I 1 E fun (x : M) => TangentSpace I x] {f : M → ℝ} (x : M) (hf : ContMDiffAt I (modelWithCornersSelf ℝ ℝ) 2 f x) (V W : (y : M) → TangentSpace I y) (hW : (MDiffAt fun (y : M) => ⟨y, W y⟩) x) :
      hessian I f x (V x) (W x) = ((d% fun (y : M) => (d% f y) (W y)) x) (V x) - (d% f x) ((↑(CovariantDerivative.leviCivitaConnection I M) W x) (V x))

      The Hessian applied to a vector field and a differentiable vector field is the directional derivative of the directional derivative of f, minus the derivative in the covariant derivative direction.

      theorem TauCeti.Manifold.hessian_symm {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] [FiniteDimensional ℝ E] {H : Type u_2} [TopologicalSpace H] {I : ModelWithCorners ℝ E H} {M : Type u_3} [TopologicalSpace M] [ChartedSpace H M] [IsManifold I 2 M] [Bundle.RiemannianBundle fun (x : M) => TangentSpace I x] [IsContMDiffRiemannianBundle I 1 E fun (x : M) => TangentSpace I x] {f : M → ℝ} (x : M) (hf : ContMDiffAt I (modelWithCornersSelf ℝ ℝ) 2 f x) (v w : TangentSpace I x) :
      hessian I f x v w = hessian I f x w v

      The Hessian of a twice continuously differentiable function is symmetric for the Levi–Civita connection.

      theorem TauCeti.Manifold.hessian_div_eq_mvfderiv_add {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] [FiniteDimensional ℝ E] {H : Type u_2} [TopologicalSpace H] {I : ModelWithCorners ℝ E H} {M : Type u_3} [TopologicalSpace M] [ChartedSpace H M] [IsManifold I 2 M] [Bundle.RiemannianBundle fun (x : M) => TangentSpace I x] [IsContMDiffRiemannianBundle I 1 E fun (x : M) => TangentSpace I x] {f : M → ℝ} {x : M} (hf : ContMDiffAt I (modelWithCornersSelf ℝ ℝ) 2 f x) {Y : (x : M) → TangentSpace I x} (hY : (MDiffAt fun (x : M) => ⟨x, Y x⟩) x) (hf₀ : f x ≠ 0) (X : (x : M) → TangentSpace I x) :
      (d% f x) (Y x) / f x * ((d% f x) (X x) / f x) + ((d% fun (x : M) => (d% f x) (Y x) / f x) x) (X x) - (d% f x) ((↑(CovariantDerivative.leviCivitaConnection I M) Y x) (X x)) / f x = hessian I f x (X x) (Y x) / f x

      The Hessian divided by a nonvanishing function f: for the Levi-Civita connection D, (Y f / f) (X f / f) + X (Y f / f) - (D_X Y) f / f = Hess f(X,Y) / f where f does not vanish.

      noncomputable def TauCeti.Manifold.laplaceBeltrami {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] [FiniteDimensional ℝ E] {H : Type u_2} [TopologicalSpace H] (I : ModelWithCorners ℝ E H) {M : Type u_3} [TopologicalSpace M] [ChartedSpace H M] [IsManifold I 2 M] [Bundle.RiemannianBundle fun (x : M) => TangentSpace I x] [IsContMDiffRiemannianBundle I 1 E fun (x : M) => TangentSpace I x] (f : M → ℝ) (x : M) :

      The Laplace–Beltrami operator, with the sign convention Δ = div ∘ grad.

      Instances For
        theorem TauCeti.Manifold.mvfderiv_laplaceBeltrami_mgradient_of_laplaceBeltrami_eq_neg_mul {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] [FiniteDimensional ℝ E] {H : Type u_2} [TopologicalSpace H] {I : ModelWithCorners ℝ E H} {M : Type u_3} [TopologicalSpace M] [ChartedSpace H M] [IsManifold I 2 M] [Bundle.RiemannianBundle fun (x : M) => TangentSpace I x] [IsContMDiffRiemannianBundle I 1 E fun (x : M) => TangentSpace I x] {f : M → ℝ} {lam : ℝ} (heig : ∀ (x : M), laplaceBeltrami I f x = -lam * f x) (x : M) :
        (d% (laplaceBeltrami I f) x) (mgradient I f x) = -lam * ‖mgradient I f x‖ ^ 2

        For a Laplace–Beltrami eigenfunction, the derivative of its Laplacian along its gradient is minus the eigenvalue times the squared gradient norm.

        theorem TauCeti.Manifold.contMDiff_laplaceBeltrami {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] [FiniteDimensional ℝ E] {H : Type u_2} [TopologicalSpace H] {n m k : WithTop ℕ∞} {I : ModelWithCorners ℝ E H} {M : Type u_3} [TopologicalSpace M] [ChartedSpace H M] [IsManifold I 2 M] [IsManifold I m M] [Bundle.RiemannianBundle fun (x : M) => TangentSpace I x] [IsContMDiffRiemannianBundle I 1 E fun (x : M) => TangentSpace I x] [IsContMDiffRiemannianBundle I k E fun (x : M) => TangentSpace I x] (hm : n + 2 ≤ m) (hk : n + 1 ≤ k) {f : M → ℝ} (hf : ContMDiff I (modelWithCornersSelf ℝ ℝ) (n + 2) f) :

        On a C^m manifold with a C^k Riemannian metric, the Laplace--Beltrami operator of a C^(n + 2) function is C^n when n + 2 ≤ m and n + 1 ≤ k; like the flat Laplacian, it loses two derivatives. The finite-regularity statement is useful when the operator is used under an integral, where smoothness of the resulting scalar function must be supplied explicitly.

        For a C¹ Riemannian metric, the Laplace--Beltrami operator of a C² function is continuous.

        @[simp]

        The divergence of the zero vector field is zero.

        theorem TauCeti.Manifold.divergence_add {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] [FiniteDimensional ℝ E] {H : Type u_2} [TopologicalSpace H] (I : ModelWithCorners ℝ E H) {M : Type u_3} [TopologicalSpace M] [ChartedSpace H M] [IsManifold I 2 M] [Bundle.RiemannianBundle fun (x : M) => TangentSpace I x] [IsContMDiffRiemannianBundle I 1 E fun (x : M) => TangentSpace I x] (X Y : (x : M) → TangentSpace I x) (x : M) (hX : (MDiffAt fun (y : M) => ⟨y, X y⟩) x) (hY : (MDiffAt fun (y : M) => ⟨y, Y y⟩) x) :
        divergence I (X + Y) x = divergence I X x + divergence I Y x

        Divergence is additive at a point where both vector fields are differentiable.

        theorem TauCeti.Manifold.divergence_smul {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] [FiniteDimensional ℝ E] {H : Type u_2} [TopologicalSpace H] (I : ModelWithCorners ℝ E H) {M : Type u_3} [TopologicalSpace M] [ChartedSpace H M] [IsManifold I 2 M] [Bundle.RiemannianBundle fun (x : M) => TangentSpace I x] [IsContMDiffRiemannianBundle I 1 E fun (x : M) => TangentSpace I x] (c : ℝ) (X : (x : M) → TangentSpace I x) (x : M) (hX : (MDiffAt fun (y : M) => ⟨y, X y⟩) x) :
        divergence I (c • X) x = c * divergence I X x

        Divergence commutes with a real constant at a differentiability point of the field.

        theorem TauCeti.Manifold.divergence_smul_function {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] [FiniteDimensional ℝ E] {H : Type u_2} [TopologicalSpace H] (I : ModelWithCorners ℝ E H) {M : Type u_3} [TopologicalSpace M] [ChartedSpace H M] [IsManifold I 2 M] [Bundle.RiemannianBundle fun (x : M) => TangentSpace I x] [IsContMDiffRiemannianBundle I 1 E fun (x : M) => TangentSpace I x] (f : M → ℝ) (X : (x : M) → TangentSpace I x) (x : M) (hf : MDiffAt f x) (hX : (MDiffAt fun (y : M) => ⟨y, X y⟩) x) :
        divergence I (f • X) x = f x * divergence I X x + (d% f x) (X x)

        Product rule for the divergence at a point where f and X are differentiable: divergence I (f • X) x = f x * divergence I X x + mvfderiv I f x (X x). This is the pointwise input for integrating the Laplace--Beltrami operator by parts.

        theorem TauCeti.Manifold.divergence_finsetSum {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] [FiniteDimensional ℝ E] {H : Type u_2} [TopologicalSpace H] (I : ModelWithCorners ℝ E H) {M : Type u_3} [TopologicalSpace M] [ChartedSpace H M] [IsManifold I 2 M] [Bundle.RiemannianBundle fun (x : M) => TangentSpace I x] [IsContMDiffRiemannianBundle I 1 E fun (x : M) => TangentSpace I x] {ι : Type u_4} (s : Finset ι) (X : ι → (x : M) → TangentSpace I x) (x : M) (hX : ∀ i ∈ s, (MDiffAt fun (y : M) => ⟨y, X i y⟩) x) :
        divergence I (fun (y : M) => ∑ i ∈ s, X i y) x = ∑ i ∈ s, divergence I (X i) x

        Divergence is additive over a finite family of vector fields, at a point where every field is differentiable.

        theorem TauCeti.Manifold.divergence_eq_zero_of_notMem_tsupport {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] [FiniteDimensional ℝ E] {H : Type u_2} [TopologicalSpace H] (I : ModelWithCorners ℝ E H) {M : Type u_3} [TopologicalSpace M] [ChartedSpace H M] [IsManifold I 2 M] [Bundle.RiemannianBundle fun (x : M) => TangentSpace I x] [IsContMDiffRiemannianBundle I 1 E fun (x : M) => TangentSpace I x] {X : (x : M) → TangentSpace I x} {x : M} (hx : x ∉ tsupport X) :
        divergence I X x = 0

        The divergence vanishes off the topological support of a vector field, since the field is zero near such a point. No regularity of the field is needed.

        The divergence of a compactly supported vector field is compactly supported.

        The Laplace--Beltrami operator of a compactly supported function is compactly supported.

        @[simp]
        theorem TauCeti.Manifold.hessian_const {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] [FiniteDimensional ℝ E] {H : Type u_2} [TopologicalSpace H] (I : ModelWithCorners ℝ E H) {M : Type u_3} [TopologicalSpace M] [ChartedSpace H M] [IsManifold I 2 M] [Bundle.RiemannianBundle fun (x : M) => TangentSpace I x] [IsContMDiffRiemannianBundle I 1 E fun (x : M) => TangentSpace I x] (c : ℝ) (x : M) (v w : TangentSpace I x) :
        hessian I (fun (x : M) => c) x v w = 0

        The Hessian of a constant function is zero.

        @[simp]
        theorem TauCeti.Manifold.hessian_zero {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] [FiniteDimensional ℝ E] {H : Type u_2} [TopologicalSpace H] (I : ModelWithCorners ℝ E H) {M : Type u_3} [TopologicalSpace M] [ChartedSpace H M] [IsManifold I 2 M] [Bundle.RiemannianBundle fun (x : M) => TangentSpace I x] [IsContMDiffRiemannianBundle I 1 E fun (x : M) => TangentSpace I x] (x : M) (v w : TangentSpace I x) :
        hessian I 0 x v w = 0

        The Hessian of the zero function is zero.

        theorem TauCeti.Manifold.hessian_add {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] [FiniteDimensional ℝ E] {H : Type u_2} [TopologicalSpace H] (I : ModelWithCorners ℝ E H) {M : Type u_3} [TopologicalSpace M] [ChartedSpace H M] [IsManifold I 2 M] [Bundle.RiemannianBundle fun (x : M) => TangentSpace I x] [IsContMDiffRiemannianBundle I 1 E fun (x : M) => TangentSpace I x] {f g : M → ℝ} (hf : ContMDiff I (modelWithCornersSelf ℝ ℝ) 2 f) (hg : ContMDiff I (modelWithCornersSelf ℝ ℝ) 2 g) (x : M) (v w : TangentSpace I x) :
        hessian I (f + g) x v w = hessian I f x v w + hessian I g x v w

        The Hessian is additive on twice continuously differentiable functions.

        theorem TauCeti.Manifold.hessian_smul {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] [FiniteDimensional ℝ E] {H : Type u_2} [TopologicalSpace H] (I : ModelWithCorners ℝ E H) {M : Type u_3} [TopologicalSpace M] [ChartedSpace H M] [IsManifold I 2 M] [Bundle.RiemannianBundle fun (x : M) => TangentSpace I x] [IsContMDiffRiemannianBundle I 1 E fun (x : M) => TangentSpace I x] (c : ℝ) {f : M → ℝ} (hf : ContMDiff I (modelWithCornersSelf ℝ ℝ) 2 f) (x : M) (v w : TangentSpace I x) :
        hessian I (c • f) x v w = c * hessian I f x v w

        The Hessian commutes with multiplication of a C² function by a real constant.

        @[simp]
        theorem TauCeti.Manifold.laplaceBeltrami_const {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] [FiniteDimensional ℝ E] {H : Type u_2} [TopologicalSpace H] (I : ModelWithCorners ℝ E H) {M : Type u_3} [TopologicalSpace M] [ChartedSpace H M] [IsManifold I 2 M] [Bundle.RiemannianBundle fun (x : M) => TangentSpace I x] [IsContMDiffRiemannianBundle I 1 E fun (x : M) => TangentSpace I x] (c : ℝ) (x : M) :
        laplaceBeltrami I (fun (x : M) => c) x = 0

        The Laplace–Beltrami operator vanishes on constants.

        @[simp]

        The Laplace–Beltrami operator vanishes on the zero function.

        The Laplace–Beltrami operator is additive on C² functions.

        theorem TauCeti.Manifold.laplaceBeltrami_mul {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] [FiniteDimensional ℝ E] {H : Type u_2} [TopologicalSpace H] (I : ModelWithCorners ℝ E H) {M : Type u_3} [TopologicalSpace M] [ChartedSpace H M] [IsManifold I 2 M] [Bundle.RiemannianBundle fun (x : M) => TangentSpace I x] [IsContMDiffRiemannianBundle I 1 E fun (x : M) => TangentSpace I x] {f g : M → ℝ} (hf : ContMDiff I (modelWithCornersSelf ℝ ℝ) 2 f) (hg : ContMDiff I (modelWithCornersSelf ℝ ℝ) 2 g) (x : M) :
        laplaceBeltrami I (f * g) x = f x * laplaceBeltrami I g x + 2 * inner ℝ (mgradient I f x) (mgradient I g x) + g x * laplaceBeltrami I f x

        Leibniz rule for the Laplace--Beltrami operator. For twice continuously differentiable functions, the Laplacian of a product is the sum of the two scalar terms and twice the inner product of their gradients.

        theorem TauCeti.Manifold.laplaceBeltrami_smul {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] [FiniteDimensional ℝ E] {H : Type u_2} [TopologicalSpace H] (I : ModelWithCorners ℝ E H) {M : Type u_3} [TopologicalSpace M] [ChartedSpace H M] [IsManifold I 2 M] [Bundle.RiemannianBundle fun (x : M) => TangentSpace I x] [IsContMDiffRiemannianBundle I 1 E fun (x : M) => TangentSpace I x] (c : ℝ) {f : M → ℝ} (hf : ContMDiff I (modelWithCornersSelf ℝ ℝ) 2 f) (x : M) :

        The Laplace–Beltrami operator commutes with real scalar multiplication on C² functions.

        The Laplace–Beltrami operator commutes with negation on C² functions.

        The Laplace–Beltrami operator is additive with respect to subtraction of C² functions.

        theorem TauCeti.Manifold.laplaceBeltrami_comp {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] [FiniteDimensional ℝ E] {H : Type u_2} [TopologicalSpace H] (I : ModelWithCorners ℝ E H) {M : Type u_3} [TopologicalSpace M] [ChartedSpace H M] [IsManifold I 2 M] [Bundle.RiemannianBundle fun (x : M) => TangentSpace I x] [IsContMDiffRiemannianBundle I 1 E fun (x : M) => TangentSpace I x] {h : ℝ → ℝ} {s : Set ℝ} (hs : IsOpen s) (hh : ContDiffOn ℝ 2 h s) {f : M → ℝ} (hf : ContMDiff I (modelWithCornersSelf ℝ ℝ) 2 f) (hfs : ∀ (y : M), f y ∈ s) (x : M) :
        laplaceBeltrami I (h ∘ f) x = deriv h (f x) * laplaceBeltrami I f x + deriv (deriv h) (f x) * ‖mgradient I f x‖ ^ 2

        Chain rule for the Laplace--Beltrami operator. If h is C² on an open set of real numbers containing all values of a C² function f, then Δ (h ∘ f) = h'(f) Δ f + h''(f) |grad f|².

        theorem TauCeti.Manifold.laplaceBeltrami_log {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] [FiniteDimensional ℝ E] {H : Type u_2} [TopologicalSpace H] (I : ModelWithCorners ℝ E H) {M : Type u_3} [TopologicalSpace M] [ChartedSpace H M] [IsManifold I 2 M] [Bundle.RiemannianBundle fun (x : M) => TangentSpace I x] [IsContMDiffRiemannianBundle I 1 E fun (x : M) => TangentSpace I x] {f : M → ℝ} (hf : ContMDiff I (modelWithCornersSelf ℝ ℝ) 2 f) (hf0 : ∀ (y : M), f y ≠ 0) (x : M) :
        laplaceBeltrami I (fun (y : M) => Real.log (f y)) x = laplaceBeltrami I f x / f x - ‖mgradient I f x‖ ^ 2 / f x ^ 2

        The Laplace--Beltrami operator of the logarithm of a nowhere-vanishing C² function: Δ (log f) = Δ f / f - |grad f|² / f².

        theorem TauCeti.Manifold.divergence_eq_sum_inner {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] [FiniteDimensional ℝ E] {H : Type u_2} [TopologicalSpace H] (I : ModelWithCorners ℝ E H) {M : Type u_3} [TopologicalSpace M] [ChartedSpace H M] [IsManifold I 2 M] [Bundle.RiemannianBundle fun (x : M) => TangentSpace I x] [IsContMDiffRiemannianBundle I 1 E fun (x : M) => TangentSpace I x] {ι : Type u_4} [Fintype ι] (X : (x : M) → TangentSpace I x) (x : M) (b : OrthonormalBasis ι ℝ (TangentSpace I x)) :
        divergence I X x = ∑ i : ι, inner ℝ ((↑(CovariantDerivative.leviCivitaConnection I M) X x) (b i)) (b i)

        In any orthonormal basis, the divergence is the sum of the diagonal inner products of the covariant derivative of the vector field.

        @[simp]
        theorem TauCeti.Manifold.hessian_add_left {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] [FiniteDimensional ℝ E] {H : Type u_2} [TopologicalSpace H] (I : ModelWithCorners ℝ E H) {M : Type u_3} [TopologicalSpace M] [ChartedSpace H M] [IsManifold I 2 M] [Bundle.RiemannianBundle fun (x : M) => TangentSpace I x] [IsContMDiffRiemannianBundle I 1 E fun (x : M) => TangentSpace I x] (f : M → ℝ) (x : M) (v₁ v₂ w : TangentSpace I x) :
        hessian I f x (v₁ + v₂) w = hessian I f x v₁ w + hessian I f x v₂ w
        @[simp]
        theorem TauCeti.Manifold.hessian_smul_left {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] [FiniteDimensional ℝ E] {H : Type u_2} [TopologicalSpace H] (I : ModelWithCorners ℝ E H) {M : Type u_3} [TopologicalSpace M] [ChartedSpace H M] [IsManifold I 2 M] [Bundle.RiemannianBundle fun (x : M) => TangentSpace I x] [IsContMDiffRiemannianBundle I 1 E fun (x : M) => TangentSpace I x] (f : M → ℝ) (x : M) (r : ℝ) (v w : TangentSpace I x) :
        hessian I f x (r • v) w = r * hessian I f x v w
        @[simp]
        theorem TauCeti.Manifold.hessian_zero_left {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] [FiniteDimensional ℝ E] {H : Type u_2} [TopologicalSpace H] (I : ModelWithCorners ℝ E H) {M : Type u_3} [TopologicalSpace M] [ChartedSpace H M] [IsManifold I 2 M] [Bundle.RiemannianBundle fun (x : M) => TangentSpace I x] [IsContMDiffRiemannianBundle I 1 E fun (x : M) => TangentSpace I x] (f : M → ℝ) (x : M) (w : TangentSpace I x) :
        hessian I f x 0 w = 0
        @[simp]
        theorem TauCeti.Manifold.hessian_add_right {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] [FiniteDimensional ℝ E] {H : Type u_2} [TopologicalSpace H] (I : ModelWithCorners ℝ E H) {M : Type u_3} [TopologicalSpace M] [ChartedSpace H M] [IsManifold I 2 M] [Bundle.RiemannianBundle fun (x : M) => TangentSpace I x] [IsContMDiffRiemannianBundle I 1 E fun (x : M) => TangentSpace I x] (f : M → ℝ) (x : M) (v w₁ w₂ : TangentSpace I x) :
        hessian I f x v (w₁ + w₂) = hessian I f x v w₁ + hessian I f x v w₂
        @[simp]
        theorem TauCeti.Manifold.hessian_smul_right {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] [FiniteDimensional ℝ E] {H : Type u_2} [TopologicalSpace H] (I : ModelWithCorners ℝ E H) {M : Type u_3} [TopologicalSpace M] [ChartedSpace H M] [IsManifold I 2 M] [Bundle.RiemannianBundle fun (x : M) => TangentSpace I x] [IsContMDiffRiemannianBundle I 1 E fun (x : M) => TangentSpace I x] (f : M → ℝ) (x : M) (r : ℝ) (v w : TangentSpace I x) :
        hessian I f x v (r • w) = r * hessian I f x v w
        @[simp]
        theorem TauCeti.Manifold.hessian_zero_right {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] [FiniteDimensional ℝ E] {H : Type u_2} [TopologicalSpace H] (I : ModelWithCorners ℝ E H) {M : Type u_3} [TopologicalSpace M] [ChartedSpace H M] [IsManifold I 2 M] [Bundle.RiemannianBundle fun (x : M) => TangentSpace I x] [IsContMDiffRiemannianBundle I 1 E fun (x : M) => TangentSpace I x] (f : M → ℝ) (x : M) (v : TangentSpace I x) :
        hessian I f x v 0 = 0
        theorem TauCeti.Manifold.laplaceBeltrami_eq_sum_hessian {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] [FiniteDimensional ℝ E] {H : Type u_2} [TopologicalSpace H] (I : ModelWithCorners ℝ E H) {M : Type u_3} [TopologicalSpace M] [ChartedSpace H M] [IsManifold I 2 M] [Bundle.RiemannianBundle fun (x : M) => TangentSpace I x] [IsContMDiffRiemannianBundle I 1 E fun (x : M) => TangentSpace I x] {ι : Type u_4} [Fintype ι] (f : M → ℝ) (x : M) (b : OrthonormalBasis ι ℝ (TangentSpace I x)) :
        laplaceBeltrami I f x = ∑ i : ι, hessian I f x (b i) (b i)

        The Laplace–Beltrami operator is the trace of the scalar Hessian in every orthonormal basis.

        theorem TauCeti.Manifold.laplaceBeltrami_sq_le_finrank_mul_sum_hessian_sq {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] [FiniteDimensional ℝ E] {H : Type u_2} [TopologicalSpace H] {I : ModelWithCorners ℝ E H} {M : Type u_3} [TopologicalSpace M] [ChartedSpace H M] [IsManifold I 2 M] [Bundle.RiemannianBundle fun (x : M) => TangentSpace I x] [IsContMDiffRiemannianBundle I 1 E fun (x : M) => TangentSpace I x] (f : M → ℝ) (x : M) {ι : Type u_4} [Fintype ι] (b : OrthonormalBasis ι ℝ (TangentSpace I x)) :
        laplaceBeltrami I f x ^ 2 ≤ ↑(Module.finrank ℝ E) * ∑ i : ι, ∑ j : ι, hessian I f x (b i) (b j) ^ 2

        The squared trace of the Hessian is at most the dimension times its squared norm, expressed in any orthonormal basis. This includes dimension zero.

        theorem TauCeti.Manifold.laplaceBeltrami_eq_finrank_mul_of_hessian_eq_mul_inner {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] [FiniteDimensional ℝ E] {H : Type u_2} [TopologicalSpace H] {I : ModelWithCorners ℝ E H} {M : Type u_3} [TopologicalSpace M] [ChartedSpace H M] [IsManifold I 2 M] [Bundle.RiemannianBundle fun (x : M) => TangentSpace I x] [IsContMDiffRiemannianBundle I 1 E fun (x : M) => TangentSpace I x] {f : M → ℝ} {x : M} {c : ℝ} (h : ∀ (v w : TangentSpace I x), hessian I f x v w = c * inner ℝ v w) :

        If the Hessian of f at x is c times the metric, then Δ f x = n c, where n is the dimension.

        Linear coordinates #

        The Hessian in linear coordinates. On a finite-dimensional real normed space F whose Riemannian metric is the field of bilinear forms g, differentiable at x, the Hessian of a function f that is C² at x is Hess f(u, v) = D²f(u, v) - Df(Γ(u, v)), where Γ is TauCeti.Manifold.christoffelSecondKind g. Tangent vectors are read in the model space through tangentSpaceCastModel.

        The flat model #

        On a finite-dimensional real inner-product space with its standard metric, the Riemannian divergence is the trace of the ordinary Fréchet derivative.

        On a finite-dimensional real inner-product space with its standard metric, the Riemannian Hessian is the second Fréchet derivative.

        At a point x where ∇ f is differentiable, the Laplace–Beltrami operator of the standard Riemannian metric equals Mathlib's flat Laplacian Δ f. This fixes the sign convention as Δ = div ∘ grad.

        For a function f with ContDiff ℝ 2 f on a finite-dimensional real inner product space, the Laplace--Beltrami operator of the standard metric equals Mathlib's flat Laplacian Δ f at every point (convention Δ = div ∘ grad).

        If the installed fibre metric is the standard one, the Laplace–Beltrami operator is Mathlib's flat Laplacian. This transports laplaceBeltrami_eq_laplacian_of_differentiableAt_gradient along an equality of fibre metrics, such as toRiemannianMetric_ofLE, which cannot be rewritten inside the instance-dependent arguments.

        @[simp]

        The squared norm has constant flat Laplace--Beltrami operator.