Theorem: isIntegralCurve_eq_of_contMDiff
File: Mathlib/Geometry/Manifold/IntegralCurve.lean

Proof steps:
state_before: E : Type u_1
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace ℝ E
inst✝⁵ : CompleteSpace E
H : Type u_2
inst✝⁴ : TopologicalSpace H
I : ModelWithCorners ℝ E H
M : Type u_3
inst✝³ : TopologicalSpace M
inst✝² : ChartedSpace H M
inst✝¹ : SmoothManifoldWithCorners I M
γ γ' : ℝ → M
v : (x : M) → TangentSpace I x
s s' : Set ℝ
t₀ : ℝ
x₀ : M
inst✝ : T2Space M
a b : ℝ
hγt : ∀ (t : ℝ), I.IsInteriorPoint (γ t)
hv : ContMDiff I I.tangent 1 fun x => { proj := x, snd := v x }
hγ : IsIntegralCurve γ v
hγ' : IsIntegralCurve γ' v
h : γ t₀ = γ' t₀
⊢ γ = γ'
state_after: case h
E : Type u_1
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace ℝ E
inst✝⁵ : CompleteSpace E
H : Type u_2
inst✝⁴ : TopologicalSpace H
I : ModelWithCorners ℝ E H
M : Type u_3
inst✝³ : TopologicalSpace M
inst✝² : ChartedSpace H M
inst✝¹ : SmoothManifoldWithCorners I M
γ γ' : ℝ → M
v : (x : M) → TangentSpace I x
s s' : Set ℝ
t₀ : ℝ
x₀ : M
inst✝ : T2Space M
a b : ℝ
hγt : ∀ (t : ℝ), I.IsInteriorPoint (γ t)
hv : ContMDiff I I.tangent 1 fun x => { proj := x, snd := v x }
hγ : IsIntegralCurve γ v
hγ' : IsIntegralCurve γ' v
h : γ t₀ = γ' t₀
t : ℝ
⊢ γ t = γ' t
tactic: ext t
state_before: case h
E : Type u_1
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace ℝ E
inst✝⁵ : CompleteSpace E
H : Type u_2
inst✝⁴ : TopologicalSpace H
I : ModelWithCorners ℝ E H
M : Type u_3
inst✝³ : TopologicalSpace M
inst✝² : ChartedSpace H M
inst✝¹ : SmoothManifoldWithCorners I M
γ γ' : ℝ → M
v : (x : M) → TangentSpace I x
s s' : Set ℝ
t₀ : ℝ
x₀ : M
inst✝ : T2Space M
a b : ℝ
hγt : ∀ (t : ℝ), I.IsInteriorPoint (γ t)
hv : ContMDiff I I.tangent 1 fun x => { proj := x, snd := v x }
hγ : IsIntegralCurve γ v
hγ' : IsIntegralCurve γ' v
h : γ t₀ = γ' t₀
t : ℝ
⊢ γ t = γ' t
state_after: case h.intro.intro
E : Type u_1
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace ℝ E
inst✝⁵ : CompleteSpace E
H : Type u_2
inst✝⁴ : TopologicalSpace H
I : ModelWithCorners ℝ E H
M : Type u_3
inst✝³ : TopologicalSpace M
inst✝² : ChartedSpace H M
inst✝¹ : SmoothManifoldWithCorners I M
γ γ' : ℝ → M
v : (x : M) → TangentSpace I x
s s' : Set ℝ
t₀ : ℝ
x₀ : M
inst✝ : T2Space M
a b : ℝ
hγt : ∀ (t : ℝ), I.IsInteriorPoint (γ t)
hv : ContMDiff I I.tangent 1 fun x => { proj := x, snd := v x }
hγ : IsIntegralCurve γ v
hγ' : IsIntegralCurve γ' v
h : γ t₀ = γ' t₀
t T : ℝ
ht₀ : t ∈ Ioo (-T) T
ht : t₀ ∈ Ioo (-T) T
⊢ γ t = γ' t
tactic: obtain ⟨T, ht₀, ht⟩ : ∃ T, t ∈ Ioo (-T) T ∧ t₀ ∈ Ioo (-T) T := by
    obtain ⟨T, hT₁, hT₂⟩ := exists_abs_lt t
    obtain ⟨hT₂, hT₃⟩ := abs_lt.mp hT₂
    obtain ⟨S, hS₁, hS₂⟩ := exists_abs_lt t₀
    obtain ⟨hS₂, hS₃⟩ := abs_lt.mp hS₂
    exact ⟨T + S, by constructor <;> constructor <;> linarith⟩
state_before: case h.intro.intro
E : Type u_1
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace ℝ E
inst✝⁵ : CompleteSpace E
H : Type u_2
inst✝⁴ : TopologicalSpace H
I : ModelWithCorners ℝ E H
M : Type u_3
inst✝³ : TopologicalSpace M
inst✝² : ChartedSpace H M
inst✝¹ : SmoothManifoldWithCorners I M
γ γ' : ℝ → M
v : (x : M) → TangentSpace I x
s s' : Set ℝ
t₀ : ℝ
x₀ : M
inst✝ : T2Space M
a b : ℝ
hγt : ∀ (t : ℝ), I.IsInteriorPoint (γ t)
hv : ContMDiff I I.tangent 1 fun x => { proj := x, snd := v x }
hγ : IsIntegralCurve γ v
hγ' : IsIntegralCurve γ' v
h : γ t₀ = γ' t₀
t T : ℝ
ht₀ : t ∈ Ioo (-T) T
ht : t₀ ∈ Ioo (-T) T
⊢ γ t = γ' t
state_after: no goals
tactic: exact isIntegralCurveOn_Ioo_eqOn_of_contMDiff ht (fun t _ ↦ hγt t) hv
    ((hγ.isIntegralCurveOn _).mono  (subset_univ _))
    ((hγ'.isIntegralCurveOn _).mono (subset_univ _)) h ht₀