Theorem: PicardLindelof.FunSpace.range_toContinuousMap
File: Mathlib/Analysis/ODE/PicardLindelof.lean

tactic: ext f
state_before: E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℝ E
v : PicardLindelof E
f : v.FunSpace
⊢ range ⇑toContinuousMap = {f | f v.t₀ = v.x₀ ∧ LipschitzWith v.C ⇑f}
state_after: case h
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℝ E
v : PicardLindelof E
f✝ : v.FunSpace
f : C(↑(Icc v.tMin v.tMax), E)
⊢ f ∈ range ⇑toContinuousMap ↔ f ∈ {f | f v.t₀ = v.x₀ ∧ LipschitzWith v.C ⇑f}

tactic: constructor
state_before: case h
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℝ E
v : PicardLindelof E
f✝ : v.FunSpace
f : C(↑(Icc v.tMin v.tMax), E)
⊢ f ∈ range ⇑toContinuousMap ↔ f ∈ {f | f v.t₀ = v.x₀ ∧ LipschitzWith v.C ⇑f}
state_after: case h.mp
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℝ E
v : PicardLindelof E
f✝ : v.FunSpace
f : C(↑(Icc v.tMin v.tMax), E)
⊢ f ∈ range ⇑toContinuousMap → f ∈ {f | f v.t₀ = v.x₀ ∧ LipschitzWith v.C ⇑f}

case h.mpr
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℝ E
v : PicardLindelof E
f✝ : v.FunSpace
f : C(↑(Icc v.tMin v.tMax), E)
⊢ f ∈ {f | f v.t₀ = v.x₀ ∧ LipschitzWith v.C ⇑f} → f ∈ range ⇑toContinuousMap

tactic: rintro ⟨⟨f, hf₀, hf_lip⟩, rfl⟩
state_before: case h.mp
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℝ E
v : PicardLindelof E
f✝ : v.FunSpace
f : C(↑(Icc v.tMin v.tMax), E)
⊢ f ∈ range ⇑toContinuousMap → f ∈ {f | f v.t₀ = v.x₀ ∧ LipschitzWith v.C ⇑f}
state_after: case h.mp.intro.mk
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℝ E
v : PicardLindelof E
f✝ : v.FunSpace
f : ↑(Icc v.tMin v.tMax) → E
hf₀ : f v.t₀ = v.x₀
hf_lip : LipschitzWith v.C f
⊢ toContinuousMap { toFun := f, map_t₀' := hf₀, lipschitz' := hf_lip } ∈ {f | f v.t₀ = v.x₀ ∧ LipschitzWith v.C ⇑f}

tactic: exact ⟨hf₀, hf_lip⟩
state_before: case h.mp.intro.mk
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℝ E
v : PicardLindelof E
f✝ : v.FunSpace
f : ↑(Icc v.tMin v.tMax) → E
hf₀ : f v.t₀ = v.x₀
hf_lip : LipschitzWith v.C f
⊢ toContinuousMap { toFun := f, map_t₀' := hf₀, lipschitz' := hf_lip } ∈ {f | f v.t₀ = v.x₀ ∧ LipschitzWith v.C ⇑f}
state_after: no goals

tactic: rcases f with ⟨f, hf⟩
state_before: case h.mpr
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℝ E
v : PicardLindelof E
f✝ : v.FunSpace
f : C(↑(Icc v.tMin v.tMax), E)
⊢ f ∈ {f | f v.t₀ = v.x₀ ∧ LipschitzWith v.C ⇑f} → f ∈ range ⇑toContinuousMap
state_after: case h.mpr.mk
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℝ E
v : PicardLindelof E
f✝ : v.FunSpace
f : ↑(Icc v.tMin v.tMax) → E
hf : Continuous f
⊢ { toFun := f, continuous_toFun := hf } ∈ {f | f v.t₀ = v.x₀ ∧ LipschitzWith v.C ⇑f} →
    { toFun := f, continuous_toFun := hf } ∈ range ⇑toContinuousMap

tactic: rintro ⟨hf₀, hf_lip⟩
state_before: case h.mpr.mk
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℝ E
v : PicardLindelof E
f✝ : v.FunSpace
f : ↑(Icc v.tMin v.tMax) → E
hf : Continuous f
⊢ { toFun := f, continuous_toFun := hf } ∈ {f | f v.t₀ = v.x₀ ∧ LipschitzWith v.C ⇑f} →
    { toFun := f, continuous_toFun := hf } ∈ range ⇑toContinuousMap
state_after: case h.mpr.mk.intro
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℝ E
v : PicardLindelof E
f✝ : v.FunSpace
f : ↑(Icc v.tMin v.tMax) → E
hf : Continuous f
hf₀ : { toFun := f, continuous_toFun := hf } v.t₀ = v.x₀
hf_lip : LipschitzWith v.C ⇑{ toFun := f, continuous_toFun := hf }
⊢ { toFun := f, continuous_toFun := hf } ∈ range ⇑toContinuousMap

tactic: exact ⟨⟨f, hf₀, hf_lip⟩, rfl⟩
state_before: case h.mpr.mk.intro
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℝ E
v : PicardLindelof E
f✝ : v.FunSpace
f : ↑(Icc v.tMin v.tMax) → E
hf : Continuous f
hf₀ : { toFun := f, continuous_toFun := hf } v.t₀ = v.x₀
hf_lip : LipschitzWith v.C ⇑{ toFun := f, continuous_toFun := hf }
⊢ { toFun := f, continuous_toFun := hf } ∈ range ⇑toContinuousMap
state_after: no goals