Documentation

TauCeti.Geometry.Manifold.Riemannian.Pullback.Basic

Pullback Riemannian metrics #

Let b be a family of bilinear forms on the tangent spaces of a manifold N, for instance a Riemannian metric, that is a C^n section near f x₀, where f : M → N is a map that is C^(n+1) at a point x₀. Pulling b back along the differential of f gives at each point x the bilinear form (v, w) ↦ b_{f x}(df_x v, df_x w) on T_x M. This file proves that the family of these forms is C^n at x₀, as a section of the bundle of bilinear forms on the tangent bundle of M.

No injectivity of the differential is assumed: the statement is only about smoothness. When b is positive definite (for instance a Riemannian metric), the pulled-back forms are positive definite exactly where df is injective. This is the regularity input for Riemannian metrics that are defined by pulling back along local diffeomorphisms, such as the metric that a manifold with a geometric structure receives through its charts.

Main results #

References #

Bilinear forms on tangent spaces in bundle coordinates #

theorem Bundle.trivializationAt_bilinearForm_apply {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] {H : Type u_2} [TopologicalSpace H] {I : ModelWithCorners ℝ E H} {M : Type u_3} [TopologicalSpace M] [ChartedSpace H M] [IsManifold I 1 M] {x₀ x : M} (hx : x ∈ (chartAt H x₀).source) (B : TangentSpace I x →L[ℝ] TangentSpace I x →L[ℝ] ℝ) (v w : E) :
((↑(trivializationAt (E →L[ℝ] E →L[ℝ] ℝ) (fun (y : M) => TangentSpace I y →L[ℝ] TangentSpace I y →L[ℝ] ℝ) x₀) ⟨x, B⟩).2 v) w = (B ((tangentCoordChange I x₀ x x) v)) ((tangentCoordChange I x₀ x x) w)

A bilinear form on T_x M, read in the trivialization of the bundle of bilinear forms at x₀, is pulled back along the tangent coordinate change from the chart at x₀ to the chart at x.

@[simp]
theorem Bundle.trivializationAt_self_bilinearForm_apply {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] {H : Type u_2} [TopologicalSpace H] {I : ModelWithCorners ℝ E H} {M : Type u_3} [TopologicalSpace M] [ChartedSpace H M] [IsManifold I 1 M] (x : M) (B : TangentSpace I x →L[ℝ] TangentSpace I x →L[ℝ] ℝ) (v w : E) :
((↑(trivializationAt (E →L[ℝ] E →L[ℝ] ℝ) (fun (y : M) => TangentSpace I y →L[ℝ] TangentSpace I y →L[ℝ] ℝ) x) ⟨x, B⟩).2 v) w = (B v) w

Read in the trivialization at x itself, a bilinear form on T_x M is unchanged.

A bilinear form on T_x M, read in the trivialization at x₀, as a continuous linear function of the form.

Pullbacks of bilinear forms #

theorem Bundle.contMDiffAt_trivializationAt_bilinearForm_pullback {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] {H : Type u_2} [TopologicalSpace H] {I : ModelWithCorners ℝ E H} {M : Type u_3} [TopologicalSpace M] [ChartedSpace H M] [IsManifold I 1 M] {F : Type u_4} [NormedAddCommGroup F] [NormedSpace ℝ F] {H' : Type u_5} [TopologicalSpace H'] {J : ModelWithCorners ℝ F H'} {N : Type u_6} [TopologicalSpace N] [ChartedSpace H' N] [IsManifold J 1 N] {n : WithTop ℕ∞} {EP : Type u_7} [NormedAddCommGroup EP] [NormedSpace ℝ EP] {HP : Type u_8} [TopologicalSpace HP] {IP : ModelWithCorners ℝ EP HP} {P : Type u_9} [TopologicalSpace P] [ChartedSpace HP P] {g : P → M} {f : P → N} {b : (p : P) → TangentSpace J (f p) →L[ℝ] TangentSpace J (f p) →L[ℝ] ℝ} {L : (p : P) → TangentSpace I (g p) →L[ℝ] TangentSpace J (f p)} {p₀ : P} (hg : ContinuousAt g p₀) (hb : ContMDiffAt IP (J.prod (modelWithCornersSelf ℝ (F →L[ℝ] F →L[ℝ] ℝ))) n (fun (p : P) => ⟨f p, b p⟩) p₀) (hL : ContMDiffAt IP (modelWithCornersSelf ℝ (E →L[ℝ] F)) n (inTangentCoordinates I J g f L p₀) p₀) :
ContMDiffAt IP (modelWithCornersSelf ℝ (E →L[ℝ] E →L[ℝ] ℝ)) n (fun (p : P) => (↑(trivializationAt (E →L[ℝ] E →L[ℝ] ℝ) (fun (x : M) => TangentSpace I x →L[ℝ] TangentSpace I x →L[ℝ] ℝ) (g p₀)) ⟨g p, ContinuousLinearMap.precomp ℝ (L p) ∘SL b p ∘SL L p⟩).2) p₀

Pull back a family b p of bilinear forms on the tangent spaces T_{f p} N, depending on a parameter p and C^n along f at p₀, along a family of linear maps L p : T_{g p} M → T_{f p} N that is C^n at p₀ in tangent coordinates. Read in the trivialization of the bundle of bilinear forms on T M at g p₀, the resulting family of bilinear forms (v, w) ↦ b p (L p v, L p w) on T_{g p} M is C^n at p₀.

For g = id this says that the pulled-back forms are a C^n section (Bundle.contMDiffAt_bilinearForm_pullback_of_inTangentCoordinates). Other choices of g, such as a projection M × P → M, give the joint regularity of pullbacks along families of maps.

theorem Bundle.contMDiffAt_bilinearForm_pullback_of_inTangentCoordinates {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] {H : Type u_2} [TopologicalSpace H] {I : ModelWithCorners ℝ E H} {M : Type u_3} [TopologicalSpace M] [ChartedSpace H M] [IsManifold I 1 M] {F : Type u_4} [NormedAddCommGroup F] [NormedSpace ℝ F] {H' : Type u_5} [TopologicalSpace H'] {J : ModelWithCorners ℝ F H'} {N : Type u_6} [TopologicalSpace N] [ChartedSpace H' N] [IsManifold J 1 N] {n : WithTop ℕ∞} {f : M → N} {b : (x : M) → TangentSpace J (f x) →L[ℝ] TangentSpace J (f x) →L[ℝ] ℝ} {L : (x : M) → TangentSpace I x →L[ℝ] TangentSpace J (f x)} {x₀ : M} (hb : ContMDiffAt I (J.prod (modelWithCornersSelf ℝ (F →L[ℝ] F →L[ℝ] ℝ))) n (fun (x : M) => ⟨f x, b x⟩) x₀) (hL : ContMDiffAt I (modelWithCornersSelf ℝ (E →L[ℝ] F)) n (inTangentCoordinates I J id f L x₀) x₀) :
ContMDiffAt I (I.prod (modelWithCornersSelf ℝ (E →L[ℝ] E →L[ℝ] ℝ))) n (fun (x : M) => ⟨x, ContinuousLinearMap.precomp ℝ (L x) ∘SL b x ∘SL L x⟩) x₀

Pull back a family b x of bilinear forms on the tangent spaces T_{f x} N, a C^n section along f at x₀, along a family of linear maps L x : T_x M → T_{f x} N that is C^n at x₀ in tangent coordinates. The result, the family of bilinear forms (v, w) ↦ b x (L x v, L x w), is a C^n section at x₀.

theorem Bundle.contMDiffAt_bilinearForm_pullback {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] {H : Type u_2} [TopologicalSpace H] {I : ModelWithCorners ℝ E H} {M : Type u_3} [TopologicalSpace M] [ChartedSpace H M] [IsManifold I 1 M] {F : Type u_4} [NormedAddCommGroup F] [NormedSpace ℝ F] {H' : Type u_5} [TopologicalSpace H'] {J : ModelWithCorners ℝ F H'} {N : Type u_6} [TopologicalSpace N] [ChartedSpace H' N] [IsManifold J 1 N] {n : WithTop ℕ∞} {b : (y : N) → TangentSpace J y →L[ℝ] TangentSpace J y →L[ℝ] ℝ} {f : M → N} {x₀ : M} (hb : ContMDiffAt J (J.prod (modelWithCornersSelf ℝ (F →L[ℝ] F →L[ℝ] ℝ))) n (fun (y : N) => ⟨y, b y⟩) (f x₀)) (hf : ContMDiffAt I J (n + 1) f x₀) :
ContMDiffAt I (I.prod (modelWithCornersSelf ℝ (E →L[ℝ] E →L[ℝ] ℝ))) n (fun (x : M) => ⟨x, ContinuousLinearMap.precomp ℝ (mfderiv% f x) ∘SL b (f x) ∘SL mfderiv% f x⟩) x₀

The pullback of a family b of bilinear forms on the tangent spaces of N that is a C^n section at f x₀, along a map f that is C^(n+1) at x₀, is a C^n section at x₀: the family of bilinear forms (v, w) ↦ b_{f x}(df_x v, df_x w).

theorem Bundle.ContMDiffRiemannianMetric.contMDiffAt_pullback {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] {H : Type u_2} [TopologicalSpace H] {I : ModelWithCorners ℝ E H} {M : Type u_3} [TopologicalSpace M] [ChartedSpace H M] [IsManifold I 1 M] {F : Type u_4} [NormedAddCommGroup F] [NormedSpace ℝ F] {H' : Type u_5} [TopologicalSpace H'] {J : ModelWithCorners ℝ F H'} {N : Type u_6} [TopologicalSpace N] [ChartedSpace H' N] [IsManifold J 1 N] {n : WithTop ℕ∞} (g : ContMDiffRiemannianMetric J n F fun (y : N) => TangentSpace J y) {f : M → N} {x₀ : M} (hf : ContMDiffAt I J (n + 1) f x₀) :
ContMDiffAt I (I.prod (modelWithCornersSelf ℝ (E →L[ℝ] E →L[ℝ] ℝ))) n (fun (x : M) => ⟨x, ContinuousLinearMap.precomp ℝ (mfderiv% f x) ∘SL g.inner (f x) ∘SL mfderiv% f x⟩) x₀

The pullback of a C^n Riemannian metric g along a map f that is C^(n+1) at x₀, the family of bilinear forms (v, w) ↦ g_{f x}(df_x v, df_x w), is a C^n section at x₀.

noncomputable def Bundle.ContMDiffRiemannianMetric.pullback {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] {H : Type u_2} [TopologicalSpace H] {I : ModelWithCorners ℝ E H} {M : Type u_3} [TopologicalSpace M] [ChartedSpace H M] [IsManifold I 1 M] {F : Type u_4} [NormedAddCommGroup F] [NormedSpace ℝ F] {H' : Type u_5} [TopologicalSpace H'] {J : ModelWithCorners ℝ F H'} {N : Type u_6} [TopologicalSpace N] [ChartedSpace H' N] [IsManifold J 1 N] {n : WithTop ℕ∞} [FiniteDimensional ℝ E] (g : ContMDiffRiemannianMetric J n F fun (y : N) => TangentSpace J y) (f : M → N) (hf : ContMDiff I J (n + 1) f) (hinj : ∀ (x : M), Function.Injective ⇑(mfderiv% f x)) :
ContMDiffRiemannianMetric I n E fun (x : M) => TangentSpace I x

Pull back a smooth Riemannian metric along a smooth immersion. At x, the inner product is the target metric at f x evaluated on the two images under the manifold derivative of f. Injectivity of the derivative makes this form positive definite.

Instances For
    @[simp]
    theorem Bundle.ContMDiffRiemannianMetric.pullback_inner {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] {H : Type u_2} [TopologicalSpace H] {I : ModelWithCorners ℝ E H} {M : Type u_3} [TopologicalSpace M] [ChartedSpace H M] [IsManifold I 1 M] {F : Type u_4} [NormedAddCommGroup F] [NormedSpace ℝ F] {H' : Type u_5} [TopologicalSpace H'] {J : ModelWithCorners ℝ F H'} {N : Type u_6} [TopologicalSpace N] [ChartedSpace H' N] [IsManifold J 1 N] {n : WithTop ℕ∞} [FiniteDimensional ℝ E] (g : ContMDiffRiemannianMetric J n F fun (y : N) => TangentSpace J y) (f : M → N) (hf : ContMDiff I J (n + 1) f) (hinj : ∀ (x : M), Function.Injective ⇑(mfderiv% f x)) (x : M) (v w : TangentSpace I x) :
    (((g.pullback f hf hinj).inner x) v) w = ((g.inner (f x)) ((mfderiv% f x) v)) ((mfderiv% f x) w)

    The pullback metric is obtained by applying the target metric to the two differentials.

    theorem Bundle.ContMDiffRiemannianMetric.pullback_congr {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] {H : Type u_2} [TopologicalSpace H] {I : ModelWithCorners ℝ E H} {M : Type u_3} [TopologicalSpace M] [ChartedSpace H M] [IsManifold I 1 M] {F : Type u_4} [NormedAddCommGroup F] [NormedSpace ℝ F] {H' : Type u_5} [TopologicalSpace H'] {J : ModelWithCorners ℝ F H'} {N : Type u_6} [TopologicalSpace N] [ChartedSpace H' N] [IsManifold J 1 N] {n : WithTop ℕ∞} [FiniteDimensional ℝ E] (g : ContMDiffRiemannianMetric J n F fun (y : N) => TangentSpace J y) {f₁ f₂ : M → N} (h : f₁ = f₂) (hf₁ : ContMDiff I J (n + 1) f₁) (hinj₁ : ∀ (x : M), Function.Injective ⇑(mfderiv% f₁ x)) (hf₂ : ContMDiff I J (n + 1) f₂) (hinj₂ : ∀ (x : M), Function.Injective ⇑(mfderiv% f₂ x)) :
    g.pullback f₁ hf₁ hinj₁ = g.pullback f₂ hf₂ hinj₂

    Pulling back along equal maps gives equal metrics, whatever the regularity and injectivity proofs supplied.

    @[simp]
    theorem Bundle.ContMDiffRiemannianMetric.pullback_id {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] {H : Type u_2} [TopologicalSpace H] {I : ModelWithCorners ℝ E H} {M : Type u_3} [TopologicalSpace M] [ChartedSpace H M] [IsManifold I 1 M] {n : WithTop ℕ∞} [FiniteDimensional ℝ E] (g : ContMDiffRiemannianMetric I n E fun (y : M) => TangentSpace I y) (hf : ContMDiff I I (n + 1) id) (hinj : ∀ (x : M), Function.Injective ⇑(mfderiv% id x)) :
    g.pullback id hf hinj = g

    Pulling a Riemannian metric back along the identity leaves it unchanged.

    theorem Bundle.ContMDiffRiemannianMetric.pullback_comp {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] {H : Type u_2} [TopologicalSpace H] {I : ModelWithCorners ℝ E H} {M : Type u_3} [TopologicalSpace M] [ChartedSpace H M] [IsManifold I 1 M] {F : Type u_4} [NormedAddCommGroup F] [NormedSpace ℝ F] {H' : Type u_5} [TopologicalSpace H'] {J : ModelWithCorners ℝ F H'} {N : Type u_6} [TopologicalSpace N] [ChartedSpace H' N] [IsManifold J 1 N] {n : WithTop ℕ∞} [FiniteDimensional ℝ E] {G : Type u_7} [NormedAddCommGroup G] [NormedSpace ℝ G] {H'' : Type u_8} [TopologicalSpace H''] {K : ModelWithCorners ℝ G H''} {P : Type u_9} [TopologicalSpace P] [ChartedSpace H'' P] [IsManifold K 1 P] [FiniteDimensional ℝ F] (g : ContMDiffRiemannianMetric K n G fun (z : P) => TangentSpace K z) (h : N → P) (f : M → N) (hh : ContMDiff J K (n + 1) h) (hf : ContMDiff I J (n + 1) f) (hinjh : ∀ (y : N), Function.Injective ⇑(mfderiv% h y)) (hinjf : ∀ (x : M), Function.Injective ⇑(mfderiv% f x)) :
    g.pullback (h ∘ f) ⋯ ⋯ = (g.pullback h hh hinjh).pullback f hf hinjf

    Pulling a metric back along a composite is the same as pulling it back successively.

    @[simp]
    theorem Bundle.ContMDiffRiemannianMetric.pullback_rescale {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] {H : Type u_2} [TopologicalSpace H] {I : ModelWithCorners ℝ E H} {M : Type u_3} [TopologicalSpace M] [ChartedSpace H M] [IsManifold I 1 M] {F : Type u_4} [NormedAddCommGroup F] [NormedSpace ℝ F] {H' : Type u_5} [TopologicalSpace H'] {J : ModelWithCorners ℝ F H'} {N : Type u_6} [TopologicalSpace N] [ChartedSpace H' N] [IsManifold J 1 N] {n : WithTop ℕ∞} [FiniteDimensional ℝ E] {g : ContMDiffRiemannianMetric J n F fun (y : N) => TangentSpace J y} {f : M → N} {hf : ContMDiff I J (n + 1) f} {hinj : ∀ (x : M), Function.Injective ⇑(mfderiv% f x)} (h : N → ℝ) (hh : ContMDiff J (modelWithCornersSelf ℝ ℝ) n h) (hh_pos : ∀ (y : N), 0 < h y) :
    (g.rescale h hh hh_pos).pullback f hf hinj = (g.pullback f hf hinj).rescale (h ∘ f) ⋯ ⋯

    Pulling back commutes with conformal rescaling: the pullback of h g is (h ∘ f) times the pullback of g.

    theorem Bundle.ContMDiffRiemannianMetric.pullback_mem_conformalClass_pullback {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] {H : Type u_2} [TopologicalSpace H] {I : ModelWithCorners ℝ E H} {M : Type u_3} [TopologicalSpace M] [ChartedSpace H M] [IsManifold I 1 M] {F : Type u_4} [NormedAddCommGroup F] [NormedSpace ℝ F] {H' : Type u_5} [TopologicalSpace H'] {J : ModelWithCorners ℝ F H'} {N : Type u_6} [TopologicalSpace N] [ChartedSpace H' N] [IsManifold J 1 N] {n : WithTop ℕ∞} [FiniteDimensional ℝ E] {g : ContMDiffRiemannianMetric J n F fun (y : N) => TangentSpace J y} {f : M → N} {hf : ContMDiff I J (n + 1) f} {hinj : ∀ (x : M), Function.Injective ⇑(mfderiv% f x)} {g' : ContMDiffRiemannianMetric J n F fun (y : N) => TangentSpace J y} (h : g' ∈ g.conformalClass) :
    g'.pullback f hf hinj ∈ (g.pullback f hf hinj).conformalClass

    The pullback of a metric conformal to g is conformal to the pullback of g.

    theorem Bundle.ContMDiffRiemannianMetric.conformalClass_pullback {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] {H : Type u_2} [TopologicalSpace H] {I : ModelWithCorners ℝ E H} {M : Type u_3} [TopologicalSpace M] [ChartedSpace H M] [IsManifold I 1 M] {F : Type u_4} [NormedAddCommGroup F] [NormedSpace ℝ F] {H' : Type u_5} [TopologicalSpace H'] {J : ModelWithCorners ℝ F H'} {N : Type u_6} [TopologicalSpace N] [ChartedSpace H' N] [IsManifold J 1 N] {n : WithTop ℕ∞} [FiniteDimensional ℝ E] {g : ContMDiffRiemannianMetric J n F fun (y : N) => TangentSpace J y} {f : M → N} {hf : ContMDiff I J (n + 1) f} {hinj : ∀ (x : M), Function.Injective ⇑(mfderiv% f x)} {f' : N → M} (hf' : ContMDiff J I n f') (hff' : Function.LeftInverse f' f) :
    (g.pullback f hf hinj).conformalClass = (fun (x : ContMDiffRiemannianMetric J n F fun (y : N) => TangentSpace J y) => x.pullback f hf hinj) '' g.conformalClass

    Along a map f with a C^n left inverse, for instance a C^(n+1) diffeomorphism, the conformal class of the pullback of g is the pullback of the conformal class of g.