Documentation

Mathlib.Geometry.Manifold.VectorField

Vector fields in manifolds #

We study functions of the form V : ฮ  (x : M) โ†’ TangentSpace I x on a manifold, i.e., vector fields.

We define the pullback of a vector field under a map, as VectorField.mpullback I I' f V x := (mfderiv I I' f x).inverse (V (f x)) (together with the same notion within a set). Note that the pullback uses the junk-value pattern: if the derivative of the map is not invertible, then pullback is given the junk value zero.

We start developing API around this notion.

All these are given in the VectorField namespace because pullbacks, Lie brackets, and so on, are notions that make sense in a variety of contexts. We also prefix the notions with m to distinguish the manifold notions from the vector space notions.

For notions that come naturally in other namespaces for dot notation, we specify vectorField in the name to lift ambiguities. For instance, the fact that the Lie bracket of two smooth vector fields is smooth will be ContMDiffAt.mlieBracket_vectorField.

Note that a smoothness assumption for a vector field is written by seeing the vector field as a function from M to its tangent bundle through a coercion, as in: MDifferentiableWithinAt I I.tangent (fun y โ†ฆ (V y : TangentBundle I M)) s x.

instance instIsManifoldOfNatWithTopENatOfMinSmoothness {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {H : Type u_2} [TopologicalSpace H] {E : Type u_3} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {I : ModelWithCorners ๐•œ E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {n : โ„•} [n.AtLeastTwo] [IsManifold I (minSmoothness ๐•œ (OfNat.ofNat n)) M] :
instance instIsManifoldOfNatWithTopENatOfMinSmoothness_1 {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {H : Type u_2} [TopologicalSpace H] {E : Type u_3} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {I : ModelWithCorners ๐•œ E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] [IsManifold I (minSmoothness ๐•œ 1) M] :
instance instIsManifoldMinSmoothnessOfNatWithTopENat {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {H : Type u_2} [TopologicalSpace H] {E : Type u_3} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {I : ModelWithCorners ๐•œ E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] [IsManifold I (minSmoothness ๐•œ 3) M] :
IsManifold I (minSmoothness ๐•œ 2) M
instance instIsManifoldMinSmoothnessOfNatWithTopENat_1 {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {H : Type u_2} [TopologicalSpace H] {E : Type u_3} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {I : ModelWithCorners ๐•œ E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] [IsManifold I (minSmoothness ๐•œ 2) M] :
IsManifold I (minSmoothness ๐•œ 1) M

Pullback of vector fields in manifolds #

def VectorField.mpullbackWithin {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {H : Type u_2} [TopologicalSpace H] {E : Type u_3} [NormedAddCommGroup E] [NormedSpace ๐•œ E] (I : ModelWithCorners ๐•œ E H) {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {H' : Type u_5} [TopologicalSpace H'] {E' : Type u_6} [NormedAddCommGroup E'] [NormedSpace ๐•œ E'] (I' : ModelWithCorners ๐•œ E' H') {M' : Type u_7} [TopologicalSpace M'] [ChartedSpace H' M'] (f : M โ†’ M') (V : (x : M') โ†’ TangentSpace I' x) (s : Set M) (x : M) :

The pullback of a vector field under a map between manifolds, within a set s. If the derivative of the map within s is not invertible, then pullback is given the junk value zero.

Equations
Instances For
    def VectorField.mpullback {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {H : Type u_2} [TopologicalSpace H] {E : Type u_3} [NormedAddCommGroup E] [NormedSpace ๐•œ E] (I : ModelWithCorners ๐•œ E H) {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {H' : Type u_5} [TopologicalSpace H'] {E' : Type u_6} [NormedAddCommGroup E'] [NormedSpace ๐•œ E'] (I' : ModelWithCorners ๐•œ E' H') {M' : Type u_7} [TopologicalSpace M'] [ChartedSpace H' M'] (f : M โ†’ M') (V : (x : M') โ†’ TangentSpace I' x) (x : M) :

    The pullback of a vector field under a map between manifolds. If the derivative of the map is not invertible, then pullback is given the junk value zero.

    Equations
    Instances For
      theorem VectorField.mpullbackWithin_apply {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {H : Type u_2} [TopologicalSpace H] {E : Type u_3} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {I : ModelWithCorners ๐•œ E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {H' : Type u_5} [TopologicalSpace H'] {E' : Type u_6} [NormedAddCommGroup E'] [NormedSpace ๐•œ E'] {I' : ModelWithCorners ๐•œ E' H'} {M' : Type u_7} [TopologicalSpace M'] [ChartedSpace H' M'] {f : M โ†’ M'} {s : Set M} {x : M} {V : (x : M') โ†’ TangentSpace I' x} :
      mpullbackWithin I I' f V s x = (mfderivWithin I I' f s x).inverse (V (f x))
      theorem VectorField.mpullbackWithin_smul_apply {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {H : Type u_2} [TopologicalSpace H] {E : Type u_3} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {I : ModelWithCorners ๐•œ E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {H' : Type u_5} [TopologicalSpace H'] {E' : Type u_6} [NormedAddCommGroup E'] [NormedSpace ๐•œ E'] {I' : ModelWithCorners ๐•œ E' H'} {M' : Type u_7} [TopologicalSpace M'] [ChartedSpace H' M'] {f : M โ†’ M'} {s : Set M} {x : M} {V : (x : M') โ†’ TangentSpace I' x} {c : ๐•œ} :
      mpullbackWithin I I' f (c โ€ข V) s x = c โ€ข mpullbackWithin I I' f V s x
      theorem VectorField.mpullbackWithin_smul {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {H : Type u_2} [TopologicalSpace H] {E : Type u_3} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {I : ModelWithCorners ๐•œ E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {H' : Type u_5} [TopologicalSpace H'] {E' : Type u_6} [NormedAddCommGroup E'] [NormedSpace ๐•œ E'] {I' : ModelWithCorners ๐•œ E' H'} {M' : Type u_7} [TopologicalSpace M'] [ChartedSpace H' M'] {f : M โ†’ M'} {s : Set M} {V : (x : M') โ†’ TangentSpace I' x} {c : ๐•œ} :
      mpullbackWithin I I' f (c โ€ข V) s = c โ€ข mpullbackWithin I I' f V s
      theorem VectorField.mpullbackWithin_add_apply {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {H : Type u_2} [TopologicalSpace H] {E : Type u_3} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {I : ModelWithCorners ๐•œ E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {H' : Type u_5} [TopologicalSpace H'] {E' : Type u_6} [NormedAddCommGroup E'] [NormedSpace ๐•œ E'] {I' : ModelWithCorners ๐•œ E' H'} {M' : Type u_7} [TopologicalSpace M'] [ChartedSpace H' M'] {f : M โ†’ M'} {s : Set M} {x : M} {V Vโ‚ : (x : M') โ†’ TangentSpace I' x} :
      mpullbackWithin I I' f (V + Vโ‚) s x = mpullbackWithin I I' f V s x + mpullbackWithin I I' f Vโ‚ s x
      theorem VectorField.mpullbackWithin_add {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {H : Type u_2} [TopologicalSpace H] {E : Type u_3} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {I : ModelWithCorners ๐•œ E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {H' : Type u_5} [TopologicalSpace H'] {E' : Type u_6} [NormedAddCommGroup E'] [NormedSpace ๐•œ E'] {I' : ModelWithCorners ๐•œ E' H'} {M' : Type u_7} [TopologicalSpace M'] [ChartedSpace H' M'] {f : M โ†’ M'} {s : Set M} {V Vโ‚ : (x : M') โ†’ TangentSpace I' x} :
      mpullbackWithin I I' f (V + Vโ‚) s = mpullbackWithin I I' f V s + mpullbackWithin I I' f Vโ‚ s
      theorem VectorField.mpullbackWithin_neg_apply {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {H : Type u_2} [TopologicalSpace H] {E : Type u_3} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {I : ModelWithCorners ๐•œ E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {H' : Type u_5} [TopologicalSpace H'] {E' : Type u_6} [NormedAddCommGroup E'] [NormedSpace ๐•œ E'] {I' : ModelWithCorners ๐•œ E' H'} {M' : Type u_7} [TopologicalSpace M'] [ChartedSpace H' M'] {f : M โ†’ M'} {s : Set M} {x : M} {V : (x : M') โ†’ TangentSpace I' x} :
      mpullbackWithin I I' f (-V) s x = -mpullbackWithin I I' f V s x
      theorem VectorField.mpullbackWithin_neg {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {H : Type u_2} [TopologicalSpace H] {E : Type u_3} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {I : ModelWithCorners ๐•œ E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {H' : Type u_5} [TopologicalSpace H'] {E' : Type u_6} [NormedAddCommGroup E'] [NormedSpace ๐•œ E'] {I' : ModelWithCorners ๐•œ E' H'} {M' : Type u_7} [TopologicalSpace M'] [ChartedSpace H' M'] {f : M โ†’ M'} {s : Set M} {V : (x : M') โ†’ TangentSpace I' x} :
      mpullbackWithin I I' f (-V) s = -mpullbackWithin I I' f V s
      theorem VectorField.mpullbackWithin_id {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {H : Type u_2} [TopologicalSpace H] {E : Type u_3} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {I : ModelWithCorners ๐•œ E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {s : Set M} {x : M} {V : (x : M) โ†’ TangentSpace I x} (h : UniqueMDiffWithinAt I s x) :
      mpullbackWithin I I id V s x = V x
      theorem VectorField.mpullback_apply {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {H : Type u_2} [TopologicalSpace H] {E : Type u_3} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {I : ModelWithCorners ๐•œ E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {H' : Type u_5} [TopologicalSpace H'] {E' : Type u_6} [NormedAddCommGroup E'] [NormedSpace ๐•œ E'] {I' : ModelWithCorners ๐•œ E' H'} {M' : Type u_7} [TopologicalSpace M'] [ChartedSpace H' M'] {f : M โ†’ M'} {x : M} {V : (x : M') โ†’ TangentSpace I' x} :
      mpullback I I' f V x = (mfderiv I I' f x).inverse (V (f x))
      theorem VectorField.mpullback_smul_apply {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {H : Type u_2} [TopologicalSpace H] {E : Type u_3} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {I : ModelWithCorners ๐•œ E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {H' : Type u_5} [TopologicalSpace H'] {E' : Type u_6} [NormedAddCommGroup E'] [NormedSpace ๐•œ E'] {I' : ModelWithCorners ๐•œ E' H'} {M' : Type u_7} [TopologicalSpace M'] [ChartedSpace H' M'] {f : M โ†’ M'} {x : M} {V : (x : M') โ†’ TangentSpace I' x} {c : ๐•œ} :
      mpullback I I' f (c โ€ข V) x = c โ€ข mpullback I I' f V x
      theorem VectorField.mpullback_smul {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {H : Type u_2} [TopologicalSpace H] {E : Type u_3} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {I : ModelWithCorners ๐•œ E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {H' : Type u_5} [TopologicalSpace H'] {E' : Type u_6} [NormedAddCommGroup E'] [NormedSpace ๐•œ E'] {I' : ModelWithCorners ๐•œ E' H'} {M' : Type u_7} [TopologicalSpace M'] [ChartedSpace H' M'] {f : M โ†’ M'} {V : (x : M') โ†’ TangentSpace I' x} {c : ๐•œ} :
      mpullback I I' f (c โ€ข V) = c โ€ข mpullback I I' f V
      theorem VectorField.mpullback_add_apply {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {H : Type u_2} [TopologicalSpace H] {E : Type u_3} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {I : ModelWithCorners ๐•œ E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {H' : Type u_5} [TopologicalSpace H'] {E' : Type u_6} [NormedAddCommGroup E'] [NormedSpace ๐•œ E'] {I' : ModelWithCorners ๐•œ E' H'} {M' : Type u_7} [TopologicalSpace M'] [ChartedSpace H' M'] {f : M โ†’ M'} {x : M} {V Vโ‚ : (x : M') โ†’ TangentSpace I' x} :
      mpullback I I' f (V + Vโ‚) x = mpullback I I' f V x + mpullback I I' f Vโ‚ x
      theorem VectorField.mpullback_add {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {H : Type u_2} [TopologicalSpace H] {E : Type u_3} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {I : ModelWithCorners ๐•œ E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {H' : Type u_5} [TopologicalSpace H'] {E' : Type u_6} [NormedAddCommGroup E'] [NormedSpace ๐•œ E'] {I' : ModelWithCorners ๐•œ E' H'} {M' : Type u_7} [TopologicalSpace M'] [ChartedSpace H' M'] {f : M โ†’ M'} {V Vโ‚ : (x : M') โ†’ TangentSpace I' x} :
      mpullback I I' f (V + Vโ‚) = mpullback I I' f V + mpullback I I' f Vโ‚
      theorem VectorField.mpullback_neg_apply {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {H : Type u_2} [TopologicalSpace H] {E : Type u_3} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {I : ModelWithCorners ๐•œ E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {H' : Type u_5} [TopologicalSpace H'] {E' : Type u_6} [NormedAddCommGroup E'] [NormedSpace ๐•œ E'] {I' : ModelWithCorners ๐•œ E' H'} {M' : Type u_7} [TopologicalSpace M'] [ChartedSpace H' M'] {f : M โ†’ M'} {x : M} {V : (x : M') โ†’ TangentSpace I' x} :
      mpullback I I' f (-V) x = -mpullback I I' f V x
      theorem VectorField.mpullback_neg {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {H : Type u_2} [TopologicalSpace H] {E : Type u_3} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {I : ModelWithCorners ๐•œ E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {H' : Type u_5} [TopologicalSpace H'] {E' : Type u_6} [NormedAddCommGroup E'] [NormedSpace ๐•œ E'] {I' : ModelWithCorners ๐•œ E' H'} {M' : Type u_7} [TopologicalSpace M'] [ChartedSpace H' M'] {f : M โ†’ M'} {V : (x : M') โ†’ TangentSpace I' x} :
      mpullback I I' f (-V) = -mpullback I I' f V
      @[simp]
      theorem VectorField.mpullbackWithin_univ {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {H : Type u_2} [TopologicalSpace H] {E : Type u_3} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {I : ModelWithCorners ๐•œ E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {H' : Type u_5} [TopologicalSpace H'] {E' : Type u_6} [NormedAddCommGroup E'] [NormedSpace ๐•œ E'] {I' : ModelWithCorners ๐•œ E' H'} {M' : Type u_7} [TopologicalSpace M'] [ChartedSpace H' M'] {f : M โ†’ M'} {V : (x : M') โ†’ TangentSpace I' x} :
      theorem VectorField.mpullbackWithin_eq_pullbackWithin {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_3} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {E' : Type u_6} [NormedAddCommGroup E'] [NormedSpace ๐•œ E'] {f : E โ†’ E'} {V : E' โ†’ E'} {s : Set E} :
      mpullbackWithin (modelWithCornersSelf ๐•œ E) (modelWithCornersSelf ๐•œ E') f V s = pullbackWithin ๐•œ f V s
      theorem VectorField.mpullback_eq_pullback {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_3} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {E' : Type u_6} [NormedAddCommGroup E'] [NormedSpace ๐•œ E'] {f : E โ†’ E'} {V : E' โ†’ E'} :
      mpullback (modelWithCornersSelf ๐•œ E) (modelWithCornersSelf ๐•œ E') f V = pullback ๐•œ f V
      @[simp]
      theorem VectorField.mpullback_id {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {H : Type u_2} [TopologicalSpace H] {E : Type u_3} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {I : ModelWithCorners ๐•œ E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {V : (x : M) โ†’ TangentSpace I x} :
      mpullback I I id V = V

      Regularity of pullback of vector fields #

      In this paragraph, we assume that the model space is complete, to ensure that the set of invertible linear maps is open and that inversion is a smooth map there. Otherwise, the pullback of vector fields could behave wildly, even at points where the derivative of the map is invertible.

      theorem MDifferentiableWithinAt.mpullbackWithin_vectorField_inter {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {H : Type u_2} [TopologicalSpace H] {E : Type u_3} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {I : ModelWithCorners ๐•œ E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {H' : Type u_5} [TopologicalSpace H'] {E' : Type u_6} [NormedAddCommGroup E'] [NormedSpace ๐•œ E'] {I' : ModelWithCorners ๐•œ E' H'} {M' : Type u_7} [TopologicalSpace M'] [ChartedSpace H' M'] {f : M โ†’ M'} {s : Set M} {xโ‚€ : M} {V : (x : M') โ†’ TangentSpace I' x} {n : WithTop โ„•โˆž} {t : Set M'} [IsManifold I 2 M] [IsManifold I' 2 M'] [CompleteSpace E] (hV : MDifferentiableWithinAt I' I'.tangent (fun (y : M') => { proj := y, snd := V y }) t (f xโ‚€)) (hf : ContMDiffWithinAt I I' n f s xโ‚€) (hf' : (mfderivWithin I I' f s xโ‚€).IsInvertible) (hxโ‚€ : xโ‚€ โˆˆ s) (hs : UniqueMDiffOn I s) (hmn : 2 โ‰ค n) :
      MDifferentiableWithinAt I I.tangent (fun (y : M) => { proj := y, snd := VectorField.mpullbackWithin I I' f V s y }) (s โˆฉ f โปยน' t) xโ‚€

      The pullback of a differentiable vector field by a C^n function with 2 โ‰ค n is differentiable. Version within a set at a point.

      theorem MDifferentiableWithinAt.mpullbackWithin_vectorField_inter_of_eq {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {H : Type u_2} [TopologicalSpace H] {E : Type u_3} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {I : ModelWithCorners ๐•œ E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {H' : Type u_5} [TopologicalSpace H'] {E' : Type u_6} [NormedAddCommGroup E'] [NormedSpace ๐•œ E'] {I' : ModelWithCorners ๐•œ E' H'} {M' : Type u_7} [TopologicalSpace M'] [ChartedSpace H' M'] {f : M โ†’ M'} {s : Set M} {xโ‚€ : M} {V : (x : M') โ†’ TangentSpace I' x} {n : WithTop โ„•โˆž} {t : Set M'} {yโ‚€ : M'} [IsManifold I 2 M] [IsManifold I' 2 M'] [CompleteSpace E] (hV : MDifferentiableWithinAt I' I'.tangent (fun (y : M') => { proj := y, snd := V y }) t yโ‚€) (hf : ContMDiffWithinAt I I' n f s xโ‚€) (hf' : (mfderivWithin I I' f s xโ‚€).IsInvertible) (hxโ‚€ : xโ‚€ โˆˆ s) (hs : UniqueMDiffOn I s) (hmn : 2 โ‰ค n) (h : yโ‚€ = f xโ‚€) :
      MDifferentiableWithinAt I I.tangent (fun (y : M) => { proj := y, snd := VectorField.mpullbackWithin I I' f V s y }) (s โˆฉ f โปยน' t) xโ‚€
      theorem MDifferentiableOn.mpullbackWithin_vectorField_inter {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {H : Type u_2} [TopologicalSpace H] {E : Type u_3} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {I : ModelWithCorners ๐•œ E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {H' : Type u_5} [TopologicalSpace H'] {E' : Type u_6} [NormedAddCommGroup E'] [NormedSpace ๐•œ E'] {I' : ModelWithCorners ๐•œ E' H'} {M' : Type u_7} [TopologicalSpace M'] [ChartedSpace H' M'] {f : M โ†’ M'} {s : Set M} {V : (x : M') โ†’ TangentSpace I' x} {n : WithTop โ„•โˆž} {t : Set M'} [IsManifold I 2 M] [IsManifold I' 2 M'] [CompleteSpace E] (hV : MDifferentiableOn I' I'.tangent (fun (y : M') => { proj := y, snd := V y }) t) (hf : ContMDiffOn I I' n f s) (hf' : โˆ€ x โˆˆ s โˆฉ f โปยน' t, (mfderivWithin I I' f s x).IsInvertible) (hs : UniqueMDiffOn I s) (hmn : 2 โ‰ค n) :
      MDifferentiableOn I I.tangent (fun (y : M) => { proj := y, snd := VectorField.mpullbackWithin I I' f V s y }) (s โˆฉ f โปยน' t)

      The pullback of a differentiable vector field by a C^n function with 2 โ‰ค n is differentiable. Version on a set.

      theorem MDifferentiableWithinAt.mpullback_vectorField_preimage {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {H : Type u_2} [TopologicalSpace H] {E : Type u_3} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {I : ModelWithCorners ๐•œ E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {H' : Type u_5} [TopologicalSpace H'] {E' : Type u_6} [NormedAddCommGroup E'] [NormedSpace ๐•œ E'] {I' : ModelWithCorners ๐•œ E' H'} {M' : Type u_7} [TopologicalSpace M'] [ChartedSpace H' M'] {f : M โ†’ M'} {xโ‚€ : M} {V : (x : M') โ†’ TangentSpace I' x} {n : WithTop โ„•โˆž} {t : Set M'} [IsManifold I 2 M] [IsManifold I' 2 M'] [CompleteSpace E] (hV : MDifferentiableWithinAt I' I'.tangent (fun (y : M') => { proj := y, snd := V y }) t (f xโ‚€)) (hf : ContMDiffAt I I' n f xโ‚€) (hf' : (mfderiv I I' f xโ‚€).IsInvertible) (hmn : 2 โ‰ค n) :
      MDifferentiableWithinAt I I.tangent (fun (y : M) => { proj := y, snd := VectorField.mpullback I I' f V y }) (f โปยน' t) xโ‚€

      The pullback of a differentiable vector field by a C^n function with 2 โ‰ค n is differentiable. Version within a set at a point, but with full pullback.

      theorem MDifferentiableWithinAt.mpullback_vectorField_preimage_of_eq {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {H : Type u_2} [TopologicalSpace H] {E : Type u_3} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {I : ModelWithCorners ๐•œ E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {H' : Type u_5} [TopologicalSpace H'] {E' : Type u_6} [NormedAddCommGroup E'] [NormedSpace ๐•œ E'] {I' : ModelWithCorners ๐•œ E' H'} {M' : Type u_7} [TopologicalSpace M'] [ChartedSpace H' M'] {f : M โ†’ M'} {xโ‚€ : M} {V : (x : M') โ†’ TangentSpace I' x} {n : WithTop โ„•โˆž} {t : Set M'} {yโ‚€ : M'} [IsManifold I 2 M] [IsManifold I' 2 M'] [CompleteSpace E] (hV : MDifferentiableWithinAt I' I'.tangent (fun (y : M') => { proj := y, snd := V y }) t yโ‚€) (hf : ContMDiffAt I I' n f xโ‚€) (hf' : (mfderiv I I' f xโ‚€).IsInvertible) (hmn : 2 โ‰ค n) (hyโ‚€ : yโ‚€ = f xโ‚€) :
      MDifferentiableWithinAt I I.tangent (fun (y : M) => { proj := y, snd := VectorField.mpullback I I' f V y }) (f โปยน' t) xโ‚€

      The pullback of a differentiable vector field by a C^n function with 2 โ‰ค n is differentiable. Version within a set at a point, but with full pullback.

      theorem MDifferentiableOn.mpullback_vectorField_preimage {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {H : Type u_2} [TopologicalSpace H] {E : Type u_3} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {I : ModelWithCorners ๐•œ E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {H' : Type u_5} [TopologicalSpace H'] {E' : Type u_6} [NormedAddCommGroup E'] [NormedSpace ๐•œ E'] {I' : ModelWithCorners ๐•œ E' H'} {M' : Type u_7} [TopologicalSpace M'] [ChartedSpace H' M'] {f : M โ†’ M'} {V : (x : M') โ†’ TangentSpace I' x} {n : WithTop โ„•โˆž} {t : Set M'} [IsManifold I 2 M] [IsManifold I' 2 M'] [CompleteSpace E] (hV : MDifferentiableOn I' I'.tangent (fun (y : M') => { proj := y, snd := V y }) t) (hf : ContMDiff I I' n f) (hf' : โˆ€ x โˆˆ f โปยน' t, (mfderiv I I' f x).IsInvertible) (hmn : 2 โ‰ค n) :
      MDifferentiableOn I I.tangent (fun (y : M) => { proj := y, snd := VectorField.mpullback I I' f V y }) (f โปยน' t)

      The pullback of a differentiable vector field by a C^n function with 2 โ‰ค n is differentiable. Version on a set, but with full pullback

      theorem MDifferentiableAt.mpullback_vectorField {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {H : Type u_2} [TopologicalSpace H] {E : Type u_3} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {I : ModelWithCorners ๐•œ E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {H' : Type u_5} [TopologicalSpace H'] {E' : Type u_6} [NormedAddCommGroup E'] [NormedSpace ๐•œ E'] {I' : ModelWithCorners ๐•œ E' H'} {M' : Type u_7} [TopologicalSpace M'] [ChartedSpace H' M'] {f : M โ†’ M'} {xโ‚€ : M} {V : (x : M') โ†’ TangentSpace I' x} {n : WithTop โ„•โˆž} [IsManifold I 2 M] [IsManifold I' 2 M'] [CompleteSpace E] (hV : MDifferentiableAt I' I'.tangent (fun (y : M') => { proj := y, snd := V y }) (f xโ‚€)) (hf : ContMDiffAt I I' n f xโ‚€) (hf' : (mfderiv I I' f xโ‚€).IsInvertible) (hmn : 2 โ‰ค n) :
      MDifferentiableAt I I.tangent (fun (y : M) => { proj := y, snd := VectorField.mpullback I I' f V y }) xโ‚€

      The pullback of a differentiable vector field by a C^n function with 2 โ‰ค n is differentiable. Version at a point.

      theorem MDifferentiable.mpullback_vectorField {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {H : Type u_2} [TopologicalSpace H] {E : Type u_3} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {I : ModelWithCorners ๐•œ E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {H' : Type u_5} [TopologicalSpace H'] {E' : Type u_6} [NormedAddCommGroup E'] [NormedSpace ๐•œ E'] {I' : ModelWithCorners ๐•œ E' H'} {M' : Type u_7} [TopologicalSpace M'] [ChartedSpace H' M'] {f : M โ†’ M'} {V : (x : M') โ†’ TangentSpace I' x} {n : WithTop โ„•โˆž} [IsManifold I 2 M] [IsManifold I' 2 M'] [CompleteSpace E] (hV : MDifferentiable I' I'.tangent fun (y : M') => { proj := y, snd := V y }) (hf : ContMDiff I I' n f) (hf' : โˆ€ (x : M), (mfderiv I I' f x).IsInvertible) (hmn : 2 โ‰ค n) :
      MDifferentiable I I.tangent fun (y : M) => { proj := y, snd := VectorField.mpullback I I' f V y }

      The pullback of a differentiable vector field by a C^n function with 2 โ‰ค n is differentiable.