@@ -23,16 +23,20 @@ This is the first of a series of files, organised as follows:
2323 ## Main definitions
2424
2525Let `v : M → TM` be a vector field on `M`, and let `γ : ℝ → M`.
26- * `IsIntegralCurve γ v`: `γ t` is tangent to `v (γ t)` for all `t : ℝ`. That is, `γ` is a global
26+ * `IsMIntegralCurve γ v`: `γ t` is tangent to `v (γ t)` for all `t : ℝ`. That is, `γ` is a global
2727 integral curve of `v`.
28- * `IsIntegralCurveOn γ v s`: `γ t` is tangent to `v (γ t)` for all `t ∈ s`, where `s : Set ℝ`.
29- * `IsIntegralCurveAt γ v t₀`: `γ t` is tangent to `v (γ t)` for all `t` in some open interval
28+ * `IsMIntegralCurveOn γ v s`: `γ t` is tangent to `v (γ t)` for all `t ∈ s`, where `s : Set ℝ`.
29+ * `IsMIntegralCurveAt γ v t₀`: `γ t` is tangent to `v (γ t)` for all `t` in some open interval
3030 around `t₀`. That is, `γ` is a local integral curve of `v`.
3131
32- For `IsIntegralCurveOn γ v s` and `IsIntegralCurveAt γ v t₀`, even though `γ` is defined for all
32+ For `IsMIntegralCurveOn γ v s` and `IsMIntegralCurveAt γ v t₀`, even though `γ` is defined for all
3333time, its value outside of the set `s` or a small interval around `t₀` is irrelevant and considered
3434junk.
3535
36+ ## TODO
37+
38+ * Implement `IsMIntegralCurveWithinAt`.
39+
3640 ## Reference
3741
3842* [ Lee, J. M. (2012). _Introduction to Smooth Manifolds_. Springer New York. ] [lee2012 ]
@@ -52,51 +56,66 @@ variable
5256 {M : Type *} [TopologicalSpace M] [ChartedSpace H M]
5357
5458/-- If `γ : ℝ → M` is $C^1$ on `s : Set ℝ` and `v` is a vector field on `M`,
55- `IsIntegralCurveOn γ v s` means `γ t` is tangent to `v (γ t)` within `s` for all `t ∈ s`. The value
56- of `γ` outside of `s` is irrelevant and considered junk. -/
57- def IsIntegralCurveOn (γ : ℝ → M) (v : (x : M) → TangentSpace I x) (s : Set ℝ) : Prop :=
59+ `IsMIntegralCurveOn γ v s` means `γ t` is tangent to `v (γ t)` for all `t ∈ s`. The value of `γ`
60+ outside of `s` is irrelevant and considered junk. -/
61+ def IsMIntegralCurveOn (γ : ℝ → M) (v : (x : M) → TangentSpace I x) (s : Set ℝ) : Prop :=
5862 ∀ t ∈ s, HasMFDerivWithinAt 𝓘(ℝ, ℝ) I γ s t ((1 : ℝ →L[ℝ] ℝ).smulRight <| v (γ t))
5963
60- /-- If `v` is a vector field on `M` and `t₀ : ℝ`, `IsIntegralCurveAt γ v t₀` means `γ : ℝ → M` is a
64+ @ [deprecated (since := "2025-08-12" )] alias IsIntegralCurveOn := IsMIntegralCurveOn
65+
66+ /-- If `v` is a vector field on `M` and `t₀ : ℝ`, `IsMIntegralCurveAt γ v t₀` means `γ : ℝ → M` is a
6167local integral curve of `v` in a neighbourhood containing `t₀`. The value of `γ` outside of this
62- neighbourhood is irrelevant and considered junk. -/
63- def IsIntegralCurveAt (γ : ℝ → M) (v : (x : M) → TangentSpace I x) (t₀ : ℝ) : Prop :=
68+ interval is irrelevant and considered junk. -/
69+ def IsMIntegralCurveAt (γ : ℝ → M) (v : (x : M) → TangentSpace I x) (t₀ : ℝ) : Prop :=
6470 ∀ᶠ t in 𝓝 t₀, HasMFDerivAt 𝓘(ℝ, ℝ) I γ t ((1 : ℝ →L[ℝ] ℝ).smulRight <| v (γ t))
6571
66- /-- If `v : M → TM` is a vector field on `M`, `IsIntegralCurve γ v` means `γ : ℝ → M` is a global
72+ @ [deprecated (since := "2025-08-12" )] alias IsIntegralCurveAt := IsMIntegralCurveAt
73+
74+ /-- If `v : M → TM` is a vector field on `M`, `IsMIntegralCurve γ v` means `γ : ℝ → M` is a global
6775integral curve of `v`. That is, `γ t` is tangent to `v (γ t)` for all `t : ℝ`. -/
68- def IsIntegralCurve (γ : ℝ → M) (v : (x : M) → TangentSpace I x) : Prop :=
76+ def IsMIntegralCurve (γ : ℝ → M) (v : (x : M) → TangentSpace I x) : Prop :=
6977 ∀ t : ℝ, HasMFDerivAt 𝓘(ℝ, ℝ) I γ t ((1 : ℝ →L[ℝ] ℝ).smulRight (v (γ t)))
7078
79+ @ [deprecated (since := "2025-08-12" )] alias IsIntegralCurve := IsMIntegralCurve
80+
7181variable {γ γ' : ℝ → M} {v : (x : M) → TangentSpace I x} {s s' : Set ℝ} {t₀ : ℝ}
7282
73- lemma IsIntegralCurve.isIntegralCurveOn (h : IsIntegralCurve γ v) (s : Set ℝ) :
74- IsIntegralCurveOn γ v s := fun t _ ↦ (h t).hasMFDerivWithinAt
83+ lemma IsMIntegralCurve.isMIntegralCurveOn (h : IsMIntegralCurve γ v) (s : Set ℝ) :
84+ IsMIntegralCurveOn γ v s := fun t _ ↦ (h t).hasMFDerivWithinAt
7585
76- lemma isIntegralCurve_iff_isIntegralCurveOn : IsIntegralCurve γ v ↔ IsIntegralCurveOn γ v univ :=
77- ⟨ fun h ↦ h.isIntegralCurveOn _, fun h t ↦ (h t (mem_univ _)).hasMFDerivAt Filter.univ_mem⟩
86+ @ [ deprecated (since := "2025-08-12" )] alias IsIntegralCurve.isIntegralCurveOn :=
87+ IsMIntegralCurve.isMIntegralCurveOn
7888
79- lemma isIntegralCurveAt_iff :
80- IsIntegralCurveAt γ v t₀ ↔ ∃ s ∈ 𝓝 t₀, IsIntegralCurveOn γ v s := by
89+ lemma isMIntegralCurve_iff_isMIntegralCurveOn :
90+ IsMIntegralCurve γ v ↔ IsMIntegralCurveOn γ v univ :=
91+ ⟨fun h ↦ h.isMIntegralCurveOn _, fun h t ↦ (h t (mem_univ _)).hasMFDerivAt Filter.univ_mem⟩
92+
93+ @ [deprecated (since := "2025-08-12" )] alias isIntegralCurve_iff_isIntegralCurveOn :=
94+ isMIntegralCurve_iff_isMIntegralCurveOn
95+
96+ lemma isMIntegralCurveAt_iff :
97+ IsMIntegralCurveAt γ v t₀ ↔ ∃ s ∈ 𝓝 t₀, IsMIntegralCurveOn γ v s := by
8198 constructor
8299 · intro h
83- rw [IsIntegralCurveAt , Filter.eventually_iff_exists_mem] at h
100+ rw [IsMIntegralCurveAt , Filter.eventually_iff_exists_mem] at h
84101 obtain ⟨s, hs, h⟩ := h
85102 exact ⟨s, hs, fun t ht ↦ (h t ht).hasMFDerivWithinAt⟩
86103 · rintro ⟨s, hs, h⟩
87- rw [IsIntegralCurveAt , Filter.eventually_iff_exists_mem]
104+ rw [IsMIntegralCurveAt , Filter.eventually_iff_exists_mem]
88105 obtain ⟨s', h1, h2, h3⟩ := mem_nhds_iff.mp hs
89106 refine ⟨s', h2.mem_nhds h3, ?_⟩
90107 intro t ht
91108 apply (h t (h1 ht)).hasMFDerivAt
92109 rw [mem_nhds_iff]
93110 exact ⟨s', h1, h2, ht⟩
94111
112+ @ [deprecated (since := "2025-08-12" )] alias isIntegralCurveAt_iff := isMIntegralCurveAt_iff
113+
95114/-- `γ` is an integral curve for `v` at `t₀` iff `γ` is an integral curve on some interval
96115containing `t₀`. -/
97- lemma isIntegralCurveAt_iff ' :
98- IsIntegralCurveAt γ v t₀ ↔ ∃ ε > 0 , IsIntegralCurveOn γ v (Metric.ball t₀ ε) := by
99- rw [isIntegralCurveAt_iff ]
116+ lemma isMIntegralCurveAt_iff ' :
117+ IsMIntegralCurveAt γ v t₀ ↔ ∃ ε > 0 , IsMIntegralCurveOn γ v (Metric.ball t₀ ε) := by
118+ rw [isMIntegralCurveAt_iff ]
100119 constructor
101120 · intro ⟨s, hs, h⟩
102121 rw [Metric.mem_nhds_iff] at hs
@@ -105,61 +124,95 @@ lemma isIntegralCurveAt_iff' :
105124 · intro ⟨ε, hε, h⟩
106125 exact ⟨Metric.ball t₀ ε, Metric.ball_mem_nhds _ hε, h⟩
107126
108- lemma IsIntegralCurve.isIntegralCurveAt (h : IsIntegralCurve γ v) (t : ℝ) :
109- IsIntegralCurveAt γ v t :=
110- isIntegralCurveAt_iff.mpr ⟨univ, Filter.univ_mem, fun t _ ↦ (h t).hasMFDerivWithinAt⟩
127+ @ [deprecated (since := "2025-08-12" )] alias isIntegralCurveAt_iff' := isMIntegralCurveAt_iff'
128+
129+ lemma IsMIntegralCurve.isMIntegralCurveAt (h : IsMIntegralCurve γ v) (t : ℝ) :
130+ IsMIntegralCurveAt γ v t :=
131+ isMIntegralCurveAt_iff.mpr ⟨univ, Filter.univ_mem, fun t _ ↦ (h t).hasMFDerivWithinAt⟩
132+
133+ @ [deprecated (since := "2025-08-12" )] alias IsIntegralCurve.isIntegralCurveAt :=
134+ IsMIntegralCurve.isMIntegralCurveAt
111135
112- lemma isIntegralCurve_iff_isIntegralCurveAt :
113- IsIntegralCurve γ v ↔ ∀ t : ℝ, IsIntegralCurveAt γ v t :=
114- ⟨fun h ↦ h.isIntegralCurveAt , fun h t ↦ by
115- obtain ⟨s, hs, h⟩ := isIntegralCurveAt_iff .mp (h t)
136+ lemma isMIntegralCurve_iff_isMIntegralCurveAt :
137+ IsMIntegralCurve γ v ↔ ∀ t : ℝ, IsMIntegralCurveAt γ v t :=
138+ ⟨fun h ↦ h.isMIntegralCurveAt , fun h t ↦ by
139+ obtain ⟨s, hs, h⟩ := isMIntegralCurveAt_iff .mp (h t)
116140 exact h t (mem_of_mem_nhds hs) |>.hasMFDerivAt hs⟩
117141
118- lemma IsIntegralCurveOn.mono (h : IsIntegralCurveOn γ v s) (hs : s' ⊆ s) :
119- IsIntegralCurveOn γ v s' := fun t ht ↦ (h t (hs ht)).mono hs
142+ @ [ deprecated (since := "2025-08-12" )] alias isIntegralCurve_iff_isIntegralCurveAt :=
143+ isMIntegralCurve_iff_isMIntegralCurveAt
120144
121- lemma IsIntegralCurveAt.hasMFDerivAt (h : IsIntegralCurveAt γ v t₀) :
145+ lemma IsMIntegralCurveOn.mono (h : IsMIntegralCurveOn γ v s) (hs : s' ⊆ s) :
146+ IsMIntegralCurveOn γ v s' := fun t ht ↦ (h t (hs ht)).mono hs
147+
148+ @ [deprecated (since := "2025-08-12" )] alias IsIntegralCurveOn.mono :=
149+ IsMIntegralCurveOn.mono
150+
151+ lemma IsMIntegralCurveAt.hasMFDerivAt (h : IsMIntegralCurveAt γ v t₀) :
122152 HasMFDerivAt 𝓘(ℝ, ℝ) I γ t₀ ((1 : ℝ →L[ℝ] ℝ).smulRight (v (γ t₀))) :=
123- have ⟨_, hs, h⟩ := isIntegralCurveAt_iff .mp h
153+ have ⟨_, hs, h⟩ := isMIntegralCurveAt_iff .mp h
124154 h t₀ (mem_of_mem_nhds hs) |>.hasMFDerivAt hs
125155
126- lemma IsIntegralCurveOn.isIntegralCurveAt (h : IsIntegralCurveOn γ v s) (hs : s ∈ 𝓝 t₀) :
127- IsIntegralCurveAt γ v t₀ := isIntegralCurveAt_iff.mpr ⟨s, hs, h⟩
156+ @ [deprecated (since := "2025-08-12" )] alias IsIntegralCurveAt.hasMFDerivAt :=
157+ IsMIntegralCurveAt.hasMFDerivAt
158+
159+ lemma IsMIntegralCurveOn.isMIntegralCurveAt (h : IsMIntegralCurveOn γ v s) (hs : s ∈ 𝓝 t₀) :
160+ IsMIntegralCurveAt γ v t₀ := isMIntegralCurveAt_iff.mpr ⟨s, hs, h⟩
161+
162+ @ [deprecated (since := "2025-08-12" )] alias IsIntegralCurveOn.isIntegralCurveAt :=
163+ IsMIntegralCurveOn.isMIntegralCurveAt
128164
129165/-- If `γ` is an integral curve at each `t ∈ s`, it is an integral curve on `s`. -/
130- lemma IsIntegralCurveAt.isIntegralCurveOn (h : ∀ t ∈ s, IsIntegralCurveAt γ v t) :
131- IsIntegralCurveOn γ v s := by
166+ lemma IsMIntegralCurveAt.isMIntegralCurveOn (h : ∀ t ∈ s, IsMIntegralCurveAt γ v t) :
167+ IsMIntegralCurveOn γ v s := by
132168 intros t ht
133169 apply HasMFDerivAt.hasMFDerivWithinAt
134170 obtain ⟨s', hs', h⟩ := Filter.eventually_iff_exists_mem.mp (h t ht)
135171 exact h _ (mem_of_mem_nhds hs')
136172
137- lemma isIntegralCurveOn_iff_isIntegralCurveAt (hs : IsOpen s) :
138- IsIntegralCurveOn γ v s ↔ ∀ t ∈ s, IsIntegralCurveAt γ v t :=
139- ⟨fun h _ ht ↦ h.isIntegralCurveAt (hs.mem_nhds ht), IsIntegralCurveAt.isIntegralCurveOn⟩
173+ @ [deprecated (since := "2025-08-12" )] alias IsIntegralCurveAt.isIntegralCurveOn :=
174+ IsMIntegralCurveAt.isMIntegralCurveOn
175+
176+ lemma isMIntegralCurveOn_iff_isMIntegralCurveAt (hs : IsOpen s) :
177+ IsMIntegralCurveOn γ v s ↔ ∀ t ∈ s, IsMIntegralCurveAt γ v t :=
178+ ⟨fun h _ ht ↦ h.isMIntegralCurveAt (hs.mem_nhds ht), IsMIntegralCurveAt.isMIntegralCurveOn⟩
140179
141- lemma IsIntegralCurveOn.continuousWithinAt (hγ : IsIntegralCurveOn γ v s) (ht : t₀ ∈ s) :
180+ @ [deprecated (since := "2025-08-12" )] alias isIntegralCurveOn_iff_isIntegralCurveAt :=
181+ isMIntegralCurveOn_iff_isMIntegralCurveAt
182+
183+ lemma IsMIntegralCurveOn.continuousWithinAt (hγ : IsMIntegralCurveOn γ v s) (ht : t₀ ∈ s) :
142184 ContinuousWithinAt γ s t₀ := (hγ t₀ ht).1
143185
144- @ [deprecated (since := "2025-06-29" )] alias IsIntegralCurveOn.continuousAt :=
145- IsIntegralCurveOn.continuousWithinAt
186+ @ [deprecated (since := "2025-08-12" )] alias IsIntegralCurveOn.continuousAt :=
187+ IsMIntegralCurveOn.continuousWithinAt
188+ @ [deprecated (since := "2025-08-12" )] alias IsIntegralCurveOn.continuousWithinAt :=
189+ IsMIntegralCurveOn.continuousWithinAt
146190
147- lemma IsIntegralCurveOn .continuousOn (hγ : IsIntegralCurveOn γ v s) :
191+ lemma IsMIntegralCurveOn .continuousOn (hγ : IsMIntegralCurveOn γ v s) :
148192 ContinuousOn γ s := fun t ht ↦ (hγ t ht).continuousWithinAt
149193
150- lemma IsIntegralCurveAt.continuousAt (hγ : IsIntegralCurveAt γ v t₀) :
194+ @ [deprecated (since := "2025-08-12" )] alias IsIntegralCurveOn.continuousOn :=
195+ IsMIntegralCurveOn.continuousOn
196+
197+ lemma IsMIntegralCurveAt.continuousAt (hγ : IsMIntegralCurveAt γ v t₀) :
151198 ContinuousAt γ t₀ :=
152- have ⟨_, hs, hγ⟩ := isIntegralCurveAt_iff .mp hγ
199+ have ⟨_, hs, hγ⟩ := isMIntegralCurveAt_iff .mp hγ
153200 hγ.continuousWithinAt (mem_of_mem_nhds hs) |>.continuousAt hs
154201
155- lemma IsIntegralCurve.continuous (hγ : IsIntegralCurve γ v) : Continuous γ :=
156- continuous_iff_continuousAt.mpr fun t ↦ (hγ.isIntegralCurveAt t).continuousAt
202+ @ [deprecated (since := "2025-08-12" )] alias IsIntegralCurveAt.continuousAt :=
203+ IsMIntegralCurveAt.continuousAt
204+
205+ lemma IsMIntegralCurve.continuous (hγ : IsMIntegralCurve γ v) : Continuous γ :=
206+ continuous_iff_continuousAt.mpr fun t ↦ (hγ.isMIntegralCurveAt t).continuousAt
207+
208+ @ [deprecated (since := "2025-08-12" )] alias IsIntegralCurve.continuous :=
209+ IsMIntegralCurve.continuous
157210
158211variable [IsManifold I 1 M]
159212
160213/-- If `γ` is an integral curve of a vector field `v`, then `γ t` is tangent to `v (γ t)` when
161214expressed in the local chart around the initial point `γ t₀`. -/
162- lemma IsIntegralCurveOn .hasDerivWithinAt (hγ : IsIntegralCurveOn γ v s) {t : ℝ} (ht : t ∈ s)
215+ lemma IsMIntegralCurveOn .hasDerivWithinAt (hγ : IsMIntegralCurveOn γ v s) {t : ℝ} (ht : t ∈ s)
163216 (hsrc : γ t ∈ (extChartAt I (γ t₀)).source) :
164217 HasDerivWithinAt ((extChartAt I (γ t₀)) ∘ γ)
165218 (tangentCoordChange I (γ t) (γ t₀) (γ t) (v (γ t))) s t := by
@@ -175,10 +228,10 @@ lemma IsIntegralCurveOn.hasDerivWithinAt (hγ : IsIntegralCurveOn γ v s) {t :
175228 mfderiv_chartAt_eq_tangentCoordChange hsrc]
176229 rfl
177230
178- @ [deprecated (since := "2025-06-29 " )] alias IsIntegralCurveOn.hasDerivAt :=
179- IsIntegralCurveOn .hasDerivWithinAt
231+ @ [deprecated (since := "2025-08-12 " )] alias IsIntegralCurveOn.hasDerivWithinAt :=
232+ IsMIntegralCurveOn .hasDerivWithinAt
180233
181- lemma IsIntegralCurveAt .eventually_hasDerivAt (hγ : IsIntegralCurveAt γ v t₀) :
234+ lemma IsMIntegralCurveAt .eventually_hasDerivAt (hγ : IsMIntegralCurveAt γ v t₀) :
182235 ∀ᶠ t in 𝓝 t₀, HasDerivAt ((extChartAt I (γ t₀)) ∘ γ)
183236 (tangentCoordChange I (γ t) (γ t₀) (γ t) (v (γ t))) t := by
184237 apply eventually_mem_nhds_iff.mpr
@@ -194,3 +247,6 @@ lemma IsIntegralCurveAt.eventually_hasDerivAt (hγ : IsIntegralCurveAt γ v t₀
194247 ← ContinuousLinearMap.one_apply (R₁ := ℝ) a, ← ContinuousLinearMap.smulRight_apply,
195248 mfderiv_chartAt_eq_tangentCoordChange hsrc]
196249 rfl
250+
251+ @ [deprecated (since := "2025-08-12" )] alias IsIntegralCurveAt.eventually_hasDerivAt :=
252+ IsMIntegralCurveAt.eventually_hasDerivAt
0 commit comments