Theorem: ContinuousLinearMap.exists_approx_preimage_norm_le
File: Mathlib/Analysis/Normed/Operator/Banach.lean

Proof steps:
state_before: 𝕜 : Type u_1
𝕜' : Type u_2
inst✝¹⁰ : NontriviallyNormedField 𝕜
inst✝⁹ : NontriviallyNormedField 𝕜'
σ : 𝕜 →+* 𝕜'
σ' : 𝕜' →+* 𝕜
inst✝⁸ : RingHomInvPair σ σ'
inst✝⁷ : RingHomInvPair σ' σ
inst✝⁶ : RingHomIsometric σ
inst✝⁵ : RingHomIsometric σ'
E : Type u_3
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace 𝕜 E
F : Type u_4
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace 𝕜' F
f : E →SL[σ] F
inst✝ : CompleteSpace F
surj : Surjective ⇑f
⊢ ∃ C ≥ 0, ∀ (y : F), ∃ x, dist (f x) y ≤ 1 / 2 * ‖y‖ ∧ ‖x‖ ≤ C * ‖y‖
state_after: 𝕜 : Type u_1
𝕜' : Type u_2
inst✝¹⁰ : NontriviallyNormedField 𝕜
inst✝⁹ : NontriviallyNormedField 𝕜'
σ : 𝕜 →+* 𝕜'
σ' : 𝕜' →+* 𝕜
inst✝⁸ : RingHomInvPair σ σ'
inst✝⁷ : RingHomInvPair σ' σ
inst✝⁶ : RingHomIsometric σ
inst✝⁵ : RingHomIsometric σ'
E : Type u_3
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace 𝕜 E
F : Type u_4
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace 𝕜' F
f : E →SL[σ] F
inst✝ : CompleteSpace F
surj : Surjective ⇑f
A : ⋃ n, closure (⇑f '' ball 0 ↑n) = Set.univ
⊢ ∃ C ≥ 0, ∀ (y : F), ∃ x, dist (f x) y ≤ 1 / 2 * ‖y‖ ∧ ‖x‖ ≤ C * ‖y‖
tactic: have A : ⋃ n : ℕ, closure (f '' ball 0 n) = Set.univ := by
    refine Subset.antisymm (subset_univ _) fun y _ => ?_
    rcases surj y with ⟨x, hx⟩
    rcases exists_nat_gt ‖x‖ with ⟨n, hn⟩
    refine mem_iUnion.2 ⟨n, subset_closure ?_⟩
    refine (mem_image _ _ _).2 ⟨x, ⟨?_, hx⟩⟩
    rwa [mem_ball, dist_eq_norm, sub_zero]
state_before: 𝕜 : Type u_1
𝕜' : Type u_2
inst✝¹⁰ : NontriviallyNormedField 𝕜
inst✝⁹ : NontriviallyNormedField 𝕜'
σ : 𝕜 →+* 𝕜'
σ' : 𝕜' →+* 𝕜
inst✝⁸ : RingHomInvPair σ σ'
inst✝⁷ : RingHomInvPair σ' σ
inst✝⁶ : RingHomIsometric σ
inst✝⁵ : RingHomIsometric σ'
E : Type u_3
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace 𝕜 E
F : Type u_4
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace 𝕜' F
f : E →SL[σ] F
inst✝ : CompleteSpace F
surj : Surjective ⇑f
A : ⋃ n, closure (⇑f '' ball 0 ↑n) = Set.univ
⊢ ∃ C ≥ 0, ∀ (y : F), ∃ x, dist (f x) y ≤ 1 / 2 * ‖y‖ ∧ ‖x‖ ≤ C * ‖y‖
state_after: 𝕜 : Type u_1
𝕜' : Type u_2
inst✝¹⁰ : NontriviallyNormedField 𝕜
inst✝⁹ : NontriviallyNormedField 𝕜'
σ : 𝕜 →+* 𝕜'
σ' : 𝕜' →+* 𝕜
inst✝⁸ : RingHomInvPair σ σ'
inst✝⁷ : RingHomInvPair σ' σ
inst✝⁶ : RingHomIsometric σ
inst✝⁵ : RingHomIsometric σ'
E : Type u_3
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace 𝕜 E
F : Type u_4
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace 𝕜' F
f : E →SL[σ] F
inst✝ : CompleteSpace F
surj : Surjective ⇑f
A : ⋃ n, closure (⇑f '' ball 0 ↑n) = Set.univ
this : ∃ n x, x ∈ interior (closure (⇑f '' ball 0 ↑n))
⊢ ∃ C ≥ 0, ∀ (y : F), ∃ x, dist (f x) y ≤ 1 / 2 * ‖y‖ ∧ ‖x‖ ≤ C * ‖y‖
tactic: have : ∃ (n : ℕ) (x : _), x ∈ interior (closure (f '' ball 0 n)) :=
    nonempty_interior_of_iUnion_of_closed (fun n => isClosed_closure) A
state_before: 𝕜 : Type u_1
𝕜' : Type u_2
inst✝¹⁰ : NontriviallyNormedField 𝕜
inst✝⁹ : NontriviallyNormedField 𝕜'
σ : 𝕜 →+* 𝕜'
σ' : 𝕜' →+* 𝕜
inst✝⁸ : RingHomInvPair σ σ'
inst✝⁷ : RingHomInvPair σ' σ
inst✝⁶ : RingHomIsometric σ
inst✝⁵ : RingHomIsometric σ'
E : Type u_3
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace 𝕜 E
F : Type u_4
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace 𝕜' F
f : E →SL[σ] F
inst✝ : CompleteSpace F
surj : Surjective ⇑f
A : ⋃ n, closure (⇑f '' ball 0 ↑n) = Set.univ
this : ∃ n x, x ∈ interior (closure (⇑f '' ball 0 ↑n))
⊢ ∃ C ≥ 0, ∀ (y : F), ∃ x, dist (f x) y ≤ 1 / 2 * ‖y‖ ∧ ‖x‖ ≤ C * ‖y‖
state_after: 𝕜 : Type u_1
𝕜' : Type u_2
inst✝¹⁰ : NontriviallyNormedField 𝕜
inst✝⁹ : NontriviallyNormedField 𝕜'
σ : 𝕜 →+* 𝕜'
σ' : 𝕜' →+* 𝕜
inst✝⁸ : RingHomInvPair σ σ'
inst✝⁷ : RingHomInvPair σ' σ
inst✝⁶ : RingHomIsometric σ
inst✝⁵ : RingHomIsometric σ'
E : Type u_3
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace 𝕜 E
F : Type u_4
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace 𝕜' F
f : E →SL[σ] F
inst✝ : CompleteSpace F
surj : Surjective ⇑f
A : ⋃ n, closure (⇑f '' ball 0 ↑n) = Set.univ
this : ∃ n x, ∃ ε > 0, ball x ε ⊆ closure (⇑f '' ball 0 ↑n)
⊢ ∃ C ≥ 0, ∀ (y : F), ∃ x, dist (f x) y ≤ 1 / 2 * ‖y‖ ∧ ‖x‖ ≤ C * ‖y‖
tactic: simp only [mem_interior_iff_mem_nhds, Metric.mem_nhds_iff] at this
state_before: 𝕜 : Type u_1
𝕜' : Type u_2
inst✝¹⁰ : NontriviallyNormedField 𝕜
inst✝⁹ : NontriviallyNormedField 𝕜'
σ : 𝕜 →+* 𝕜'
σ' : 𝕜' →+* 𝕜
inst✝⁸ : RingHomInvPair σ σ'
inst✝⁷ : RingHomInvPair σ' σ
inst✝⁶ : RingHomIsometric σ
inst✝⁵ : RingHomIsometric σ'
E : Type u_3
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace 𝕜 E
F : Type u_4
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace 𝕜' F
f : E →SL[σ] F
inst✝ : CompleteSpace F
surj : Surjective ⇑f
A : ⋃ n, closure (⇑f '' ball 0 ↑n) = Set.univ
this : ∃ n x, ∃ ε > 0, ball x ε ⊆ closure (⇑f '' ball 0 ↑n)
⊢ ∃ C ≥ 0, ∀ (y : F), ∃ x, dist (f x) y ≤ 1 / 2 * ‖y‖ ∧ ‖x‖ ≤ C * ‖y‖
state_after: case intro.intro.intro.intro
𝕜 : Type u_1
𝕜' : Type u_2
inst✝¹⁰ : NontriviallyNormedField 𝕜
inst✝⁹ : NontriviallyNormedField 𝕜'
σ : 𝕜 →+* 𝕜'
σ' : 𝕜' →+* 𝕜
inst✝⁸ : RingHomInvPair σ σ'
inst✝⁷ : RingHomInvPair σ' σ
inst✝⁶ : RingHomIsometric σ
inst✝⁵ : RingHomIsometric σ'
E : Type u_3
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace 𝕜 E
F : Type u_4
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace 𝕜' F
f : E →SL[σ] F
inst✝ : CompleteSpace F
surj : Surjective ⇑f
A : ⋃ n, closure (⇑f '' ball 0 ↑n) = Set.univ
n : ℕ
a : F
ε : ℝ
εpos : ε > 0
H : ball a ε ⊆ closure (⇑f '' ball 0 ↑n)
⊢ ∃ C ≥ 0, ∀ (y : F), ∃ x, dist (f x) y ≤ 1 / 2 * ‖y‖ ∧ ‖x‖ ≤ C * ‖y‖
tactic: rcases this with ⟨n, a, ε, ⟨εpos, H⟩⟩
state_before: case intro.intro.intro.intro
𝕜 : Type u_1
𝕜' : Type u_2
inst✝¹⁰ : NontriviallyNormedField 𝕜
inst✝⁹ : NontriviallyNormedField 𝕜'
σ : 𝕜 →+* 𝕜'
σ' : 𝕜' →+* 𝕜
inst✝⁸ : RingHomInvPair σ σ'
inst✝⁷ : RingHomInvPair σ' σ
inst✝⁶ : RingHomIsometric σ
inst✝⁵ : RingHomIsometric σ'
E : Type u_3
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace 𝕜 E
F : Type u_4
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace 𝕜' F
f : E →SL[σ] F
inst✝ : CompleteSpace F
surj : Surjective ⇑f
A : ⋃ n, closure (⇑f '' ball 0 ↑n) = Set.univ
n : ℕ
a : F
ε : ℝ
εpos : ε > 0
H : ball a ε ⊆ closure (⇑f '' ball 0 ↑n)
⊢ ∃ C ≥ 0, ∀ (y : F), ∃ x, dist (f x) y ≤ 1 / 2 * ‖y‖ ∧ ‖x‖ ≤ C * ‖y‖
state_after: case intro.intro.intro.intro.intro
𝕜 : Type u_1
𝕜' : Type u_2
inst✝¹⁰ : NontriviallyNormedField 𝕜
inst✝⁹ : NontriviallyNormedField 𝕜'
σ : 𝕜 →+* 𝕜'
σ' : 𝕜' →+* 𝕜
inst✝⁸ : RingHomInvPair σ σ'
inst✝⁷ : RingHomInvPair σ' σ
inst✝⁶ : RingHomIsometric σ
inst✝⁵ : RingHomIsometric σ'
E : Type u_3
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace 𝕜 E
F : Type u_4
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace 𝕜' F
f : E →SL[σ] F
inst✝ : CompleteSpace F
surj : Surjective ⇑f
A : ⋃ n, closure (⇑f '' ball 0 ↑n) = Set.univ
n : ℕ
a : F
ε : ℝ
εpos : ε > 0
H : ball a ε ⊆ closure (⇑f '' ball 0 ↑n)
c : 𝕜
hc : 1 < ‖c‖
⊢ ∃ C ≥ 0, ∀ (y : F), ∃ x, dist (f x) y ≤ 1 / 2 * ‖y‖ ∧ ‖x‖ ≤ C * ‖y‖
tactic: rcases NormedField.exists_one_lt_norm 𝕜 with ⟨c, hc⟩
state_before: case intro.intro.intro.intro.intro
𝕜 : Type u_1
𝕜' : Type u_2
inst✝¹⁰ : NontriviallyNormedField 𝕜
inst✝⁹ : NontriviallyNormedField 𝕜'
σ : 𝕜 →+* 𝕜'
σ' : 𝕜' →+* 𝕜
inst✝⁸ : RingHomInvPair σ σ'
inst✝⁷ : RingHomInvPair σ' σ
inst✝⁶ : RingHomIsometric σ
inst✝⁵ : RingHomIsometric σ'
E : Type u_3
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace 𝕜 E
F : Type u_4
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace 𝕜' F
f : E →SL[σ] F
inst✝ : CompleteSpace F
surj : Surjective ⇑f
A : ⋃ n, closure (⇑f '' ball 0 ↑n) = Set.univ
n : ℕ
a : F
ε : ℝ
εpos : ε > 0
H : ball a ε ⊆ closure (⇑f '' ball 0 ↑n)
c : 𝕜
hc : 1 < ‖c‖
⊢ ∃ C ≥ 0, ∀ (y : F), ∃ x, dist (f x) y ≤ 1 / 2 * ‖y‖ ∧ ‖x‖ ≤ C * ‖y‖
state_after: case intro.intro.intro.intro.intro
𝕜 : Type u_1
𝕜' : Type u_2
inst✝¹⁰ : NontriviallyNormedField 𝕜
inst✝⁹ : NontriviallyNormedField 𝕜'
σ : 𝕜 →+* 𝕜'
σ' : 𝕜' →+* 𝕜
inst✝⁸ : RingHomInvPair σ σ'
inst✝⁷ : RingHomInvPair σ' σ
inst✝⁶ : RingHomIsometric σ
inst✝⁵ : RingHomIsometric σ'
E : Type u_3
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace 𝕜 E
F : Type u_4
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace 𝕜' F
f : E →SL[σ] F
inst✝ : CompleteSpace F
surj : Surjective ⇑f
A : ⋃ n, closure (⇑f '' ball 0 ↑n) = Set.univ
n : ℕ
a : F
ε : ℝ
εpos : ε > 0
H : ball a ε ⊆ closure (⇑f '' ball 0 ↑n)
c : 𝕜
hc : 1 < ‖c‖
y : F
⊢ ∃ x, dist (f x) y ≤ 1 / 2 * ‖y‖ ∧ ‖x‖ ≤ (ε / 2)⁻¹ * ‖c‖ * 2 * ↑n * ‖y‖
tactic: refine ⟨(ε / 2)⁻¹ * ‖c‖ * 2 * n, by positivity, fun y => ?_⟩
state_before: case intro.intro.intro.intro.intro
𝕜 : Type u_1
𝕜' : Type u_2
inst✝¹⁰ : NontriviallyNormedField 𝕜
inst✝⁹ : NontriviallyNormedField 𝕜'
σ : 𝕜 →+* 𝕜'
σ' : 𝕜' →+* 𝕜
inst✝⁸ : RingHomInvPair σ σ'
inst✝⁷ : RingHomInvPair σ' σ
inst✝⁶ : RingHomIsometric σ
inst✝⁵ : RingHomIsometric σ'
E : Type u_3
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace 𝕜 E
F : Type u_4
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace 𝕜' F
f : E →SL[σ] F
inst✝ : CompleteSpace F
surj : Surjective ⇑f
A : ⋃ n, closure (⇑f '' ball 0 ↑n) = Set.univ
n : ℕ
a : F
ε : ℝ
εpos : ε > 0
H : ball a ε ⊆ closure (⇑f '' ball 0 ↑n)
c : 𝕜
hc : 1 < ‖c‖
y : F
⊢ ∃ x, dist (f x) y ≤ 1 / 2 * ‖y‖ ∧ ‖x‖ ≤ (ε / 2)⁻¹ * ‖c‖ * 2 * ↑n * ‖y‖
state_after: case intro.intro.intro.intro.intro.inl
𝕜 : Type u_1
𝕜' : Type u_2
inst✝¹⁰ : NontriviallyNormedField 𝕜
inst✝⁹ : NontriviallyNormedField 𝕜'
σ : 𝕜 →+* 𝕜'
σ' : 𝕜' →+* 𝕜
inst✝⁸ : RingHomInvPair σ σ'
inst✝⁷ : RingHomInvPair σ' σ
inst✝⁶ : RingHomIsometric σ
inst✝⁵ : RingHomIsometric σ'
E : Type u_3
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace 𝕜 E
F : Type u_4
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace 𝕜' F
f : E →SL[σ] F
inst✝ : CompleteSpace F
surj : Surjective ⇑f
A : ⋃ n, closure (⇑f '' ball 0 ↑n) = Set.univ
n : ℕ
a : F
ε : ℝ
εpos : ε > 0
H : ball a ε ⊆ closure (⇑f '' ball 0 ↑n)
c : 𝕜
hc : 1 < ‖c‖
⊢ ∃ x, dist (f x) 0 ≤ 1 / 2 * ‖0‖ ∧ ‖x‖ ≤ (ε / 2)⁻¹ * ‖c‖ * 2 * ↑n * ‖0‖

case intro.intro.intro.intro.intro.inr
𝕜 : Type u_1
𝕜' : Type u_2
inst✝¹⁰ : NontriviallyNormedField 𝕜
inst✝⁹ : NontriviallyNormedField 𝕜'
σ : 𝕜 →+* 𝕜'
σ' : 𝕜' →+* 𝕜
inst✝⁸ : RingHomInvPair σ σ'
inst✝⁷ : RingHomInvPair σ' σ
inst✝⁶ : RingHomIsometric σ
inst✝⁵ : RingHomIsometric σ'
E : Type u_3
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace 𝕜 E
F : Type u_4
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace 𝕜' F
f : E →SL[σ] F
inst✝ : CompleteSpace F
surj : Surjective ⇑f
A : ⋃ n, closure (⇑f '' ball 0 ↑n) = Set.univ
n : ℕ
a : F
ε : ℝ
εpos : ε > 0
H : ball a ε ⊆ closure (⇑f '' ball 0 ↑n)
c : 𝕜
hc : 1 < ‖c‖
y : F
hy : y ≠ 0
⊢ ∃ x, dist (f x) y ≤ 1 / 2 * ‖y‖ ∧ ‖x‖ ≤ (ε / 2)⁻¹ * ‖c‖ * 2 * ↑n * ‖y‖
tactic: rcases eq_or_ne y 0 with rfl | hy