English
If a family of local integral curves γ a are defined on overlapping Ioo intervals with the same starting point x, then the patching procedure yields a global integral curve through x.
Русский
Если семейство локальных интегральных кривых определено на перекрывающихся интервалах Ioo с одинаковой точкой старта x, то их склейка даёт глобальную интегральную кривую через x.
LaTeX
$$$\\exists γ: \\mathbb{R}\\to M, γ(0)=x \\land IsMIntegralCurve(γ, v)$ from local family$$
Lean4
/-- The extension of an integral curve by another integral curve is an integral curve.
If two integral curves are defined on overlapping open intervals, and they agree at a point in
their common domain, then they can be patched together to form a longer integral curve.
This is stated for manifolds without boundary for simplicity. We actually only need to assume that
the images of `γ` and `γ'` lie in the interior of the manifold.
TODO: Generalise to manifolds with boundary. -/
theorem isMIntegralCurveOn_piecewise [BoundarylessManifold I M]
(hv : ContMDiff I I.tangent 1 (fun x ↦ (⟨x, v x⟩ : TangentBundle I M))) {a b a' b' : ℝ}
(hγ : IsMIntegralCurveOn γ v (Ioo a b)) (hγ' : IsMIntegralCurveOn γ' v (Ioo a' b')) {t₀ : ℝ}
(ht₀ : t₀ ∈ Ioo a b ∩ Ioo a' b') (h : γ t₀ = γ' t₀) :
IsMIntegralCurveOn (piecewise (Ioo a b) γ γ') v (Ioo a b ∪ Ioo a' b') :=
by
intro t ht
by_cases hmem : t ∈ Ioo a b
· rw [piecewise, if_pos hmem]
apply
hγ t hmem |>.hasMFDerivAt (Ioo_mem_nhds hmem.1 hmem.2) |>.hasMFDerivWithinAt (s :=
Ioo a b ∪ Ioo a' b') |>.congr_of_eventuallyEq
_ (by rw [piecewise, if_pos hmem])
rw [Filter.eventuallyEq_iff_exists_mem]
refine ⟨Ioo a b, ?_, fun _ ht' ↦ by rw [piecewise, if_pos ht']⟩
rw [(isOpen_Ioo.union isOpen_Ioo).nhdsWithin_eq ht]
exact Ioo_mem_nhds hmem.1 hmem.2
· have ht' := ht
rw [mem_union, or_iff_not_imp_left] at ht
rw [piecewise, if_neg hmem]
apply
hγ' t (ht hmem) |>.hasMFDerivAt (Ioo_mem_nhds (ht hmem).1 (ht hmem).2) |>.hasMFDerivWithinAt (s :=
Ioo a b ∪ Ioo a' b') |>.congr_of_eventuallyEq
_ (by rw [piecewise, if_neg hmem])
rw [Filter.eventuallyEq_iff_exists_mem]
refine ⟨Ioo a' b', ?_, eqOn_piecewise_of_isMIntegralCurveOn_Ioo hv hγ hγ' ht₀ h⟩
rw [(isOpen_Ioo.union isOpen_Ioo).nhdsWithin_eq ht']
exact Ioo_mem_nhds (ht hmem).1 (ht hmem).2