Theorem: banach_steinhaus
File: Mathlib/Analysis/NormedSpace/BanachSteinhaus.lean

tactic: let e : ℕ → Set E := fun n => ⋂ i : ι, { x : E | ‖g i x‖ ≤ n }
state_before: E : Type u_2
F : Type u_5
𝕜 : Type u_3
𝕜₂ : Type u_4
inst✝⁷ : SeminormedAddCommGroup E
inst✝⁶ : SeminormedAddCommGroup F
inst✝⁵ : NontriviallyNormedField 𝕜
inst✝⁴ : NontriviallyNormedField 𝕜₂
inst✝³ : NormedSpace 𝕜 E
inst✝² : NormedSpace 𝕜₂ F
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝¹ : RingHomIsometric σ₁₂
ι : Type u_1
inst✝ : CompleteSpace E
g : ι → E →SL[σ₁₂] F
h : ∀ (x : E), ∃ C, ∀ (i : ι), ‖↑(g i) x‖ ≤ C
⊢ ∃ C', ∀ (i : ι), ‖g i‖ ≤ C'

tactic: have hc : ∀ n : ℕ, IsClosed (e n) := fun i =>
  isClosed_iInter fun i => isClosed_le (Continuous.norm (g i).cont) continuous_const
state_before: E : Type u_2
F : Type u_5
𝕜 : Type u_3
𝕜₂ : Type u_4
inst✝⁷ : SeminormedAddCommGroup E
inst✝⁶ : SeminormedAddCommGroup F
inst✝⁵ : NontriviallyNormedField 𝕜
inst✝⁴ : NontriviallyNormedField 𝕜₂
inst✝³ : NormedSpace 𝕜 E
inst✝² : NormedSpace 𝕜₂ F
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝¹ : RingHomIsometric σ₁₂
ι : Type u_1
inst✝ : CompleteSpace E
g : ι → E →SL[σ₁₂] F
h : ∀ (x : E), ∃ C, ∀ (i : ι), ‖↑(g i) x‖ ≤ C
e : ℕ → Set E := fun n => ⋂ (i : ι), {x | ‖↑(g i) x‖ ≤ ↑n}
⊢ ∃ C', ∀ (i : ι), ‖g i‖ ≤ C'

tactic: have hU : (⋃ n : ℕ, e n) = univ := by
  refine' eq_univ_of_forall fun x => _
  cases' h x with C hC
  obtain ⟨m, hm⟩ := exists_nat_ge C
  exact ⟨e m, mem_range_self m, mem_iInter.mpr fun i => le_trans (hC i) hm⟩
state_before: E : Type u_2
F : Type u_5
𝕜 : Type u_3
𝕜₂ : Type u_4
inst✝⁷ : SeminormedAddCommGroup E
inst✝⁶ : SeminormedAddCommGroup F
inst✝⁵ : NontriviallyNormedField 𝕜
inst✝⁴ : NontriviallyNormedField 𝕜₂
inst✝³ : NormedSpace 𝕜 E
inst✝² : NormedSpace 𝕜₂ F
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝¹ : RingHomIsometric σ₁₂
ι : Type u_1
inst✝ : CompleteSpace E
g : ι → E →SL[σ₁₂] F
h : ∀ (x : E), ∃ C, ∀ (i : ι), ‖↑(g i) x‖ ≤ C
e : ℕ → Set E := fun n => ⋂ (i : ι), {x | ‖↑(g i) x‖ ≤ ↑n}
hc : ∀ (n : ℕ), IsClosed (e n)
⊢ ∃ C', ∀ (i : ι), ‖g i‖ ≤ C'

tactic: rcases nonempty_interior_of_iUnion_of_closed hc hU with ⟨m, x, hx⟩
state_before: E : Type u_2
F : Type u_5
𝕜 : Type u_3
𝕜₂ : Type u_4
inst✝⁷ : SeminormedAddCommGroup E
inst✝⁶ : SeminormedAddCommGroup F
inst✝⁵ : NontriviallyNormedField 𝕜
inst✝⁴ : NontriviallyNormedField 𝕜₂
inst✝³ : NormedSpace 𝕜 E
inst✝² : NormedSpace 𝕜₂ F
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝¹ : RingHomIsometric σ₁₂
ι : Type u_1
inst✝ : CompleteSpace E
g : ι → E →SL[σ₁₂] F
h : ∀ (x : E), ∃ C, ∀ (i : ι), ‖↑(g i) x‖ ≤ C
e : ℕ → Set E := fun n => ⋂ (i : ι), {x | ‖↑(g i) x‖ ≤ ↑n}
hc : ∀ (n : ℕ), IsClosed (e n)
hU : (⋃ (n : ℕ), e n) = univ
⊢ ∃ C', ∀ (i : ι), ‖g i‖ ≤ C'

tactic: rcases Metric.isOpen_iff.mp isOpen_interior x hx with ⟨ε, ε_pos, hε⟩
state_before: case intro.intro
E : Type u_2
F : Type u_5
𝕜 : Type u_3
𝕜₂ : Type u_4
inst✝⁷ : SeminormedAddCommGroup E
inst✝⁶ : SeminormedAddCommGroup F
inst✝⁵ : NontriviallyNormedField 𝕜
inst✝⁴ : NontriviallyNormedField 𝕜₂
inst✝³ : NormedSpace 𝕜 E
inst✝² : NormedSpace 𝕜₂ F
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝¹ : RingHomIsometric σ₁₂
ι : Type u_1
inst✝ : CompleteSpace E
g : ι → E →SL[σ₁₂] F
h : ∀ (x : E), ∃ C, ∀ (i : ι), ‖↑(g i) x‖ ≤ C
e : ℕ → Set E := fun n => ⋂ (i : ι), {x | ‖↑(g i) x‖ ≤ ↑n}
hc : ∀ (n : ℕ), IsClosed (e n)
hU : (⋃ (n : ℕ), e n) = univ
m : ℕ
x : E
hx : x ∈ interior (e m)
⊢ ∃ C', ∀ (i : ι), ‖g i‖ ≤ C'

tactic: obtain ⟨k, hk⟩ := NormedField.exists_one_lt_norm 𝕜
state_before: case intro.intro.intro.intro
E : Type u_2
F : Type u_5
𝕜 : Type u_3
𝕜₂ : Type u_4
inst✝⁷ : SeminormedAddCommGroup E
inst✝⁶ : SeminormedAddCommGroup F
inst✝⁵ : NontriviallyNormedField 𝕜
inst✝⁴ : NontriviallyNormedField 𝕜₂
inst✝³ : NormedSpace 𝕜 E
inst✝² : NormedSpace 𝕜₂ F
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝¹ : RingHomIsometric σ₁₂
ι : Type u_1
inst✝ : CompleteSpace E
g : ι → E →SL[σ₁₂] F
h : ∀ (x : E), ∃ C, ∀ (i : ι), ‖↑(g i) x‖ ≤ C
e : ℕ → Set E := fun n => ⋂ (i : ι), {x | ‖↑(g i) x‖ ≤ ↑n}
hc : ∀ (n : ℕ), IsClosed (e n)
hU : (⋃ (n : ℕ), e n) = univ
m : ℕ
x : E
hx : x ∈ interior (e m)
ε : ℝ
ε_pos : ε > 0
hε : Metric.ball x ε ⊆ interior (e m)
⊢ ∃ C', ∀ (i : ι), ‖g i‖ ≤ C'

tactic: have real_norm_le : ∀ z : E, z ∈ Metric.ball x ε → ∀ i : ι, ‖g i z‖ ≤ m := by
  intro z hz i
  replace hz := mem_iInter.mp (interior_iInter_subset _ (hε hz)) i
  apply interior_subset hz
state_before: case intro.intro.intro.intro.intro
E : Type u_2
F : Type u_5
𝕜 : Type u_3
𝕜₂ : Type u_4
inst✝⁷ : SeminormedAddCommGroup E
inst✝⁶ : SeminormedAddCommGroup F
inst✝⁵ : NontriviallyNormedField 𝕜
inst✝⁴ : NontriviallyNormedField 𝕜₂
inst✝³ : NormedSpace 𝕜 E
inst✝² : NormedSpace 𝕜₂ F
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝¹ : RingHomIsometric σ₁₂
ι : Type u_1
inst✝ : CompleteSpace E
g : ι → E →SL[σ₁₂] F
h : ∀ (x : E), ∃ C, ∀ (i : ι), ‖↑(g i) x‖ ≤ C
e : ℕ → Set E := fun n => ⋂ (i : ι), {x | ‖↑(g i) x‖ ≤ ↑n}
hc : ∀ (n : ℕ), IsClosed (e n)
hU : (⋃ (n : ℕ), e n) = univ
m : ℕ
x : E
hx : x ∈ interior (e m)
ε : ℝ
ε_pos : ε > 0
hε : Metric.ball x ε ⊆ interior (e m)
k : 𝕜
hk : 1 < ‖k‖
⊢ ∃ C', ∀ (i : ι), ‖g i‖ ≤ C'

tactic: have εk_pos : 0 < ε / ‖k‖ := div_pos ε_pos (zero_lt_one.trans hk)
state_before: case intro.intro.intro.intro.intro
E : Type u_2
F : Type u_5
𝕜 : Type u_3
𝕜₂ : Type u_4
inst✝⁷ : SeminormedAddCommGroup E
inst✝⁶ : SeminormedAddCommGroup F
inst✝⁵ : NontriviallyNormedField 𝕜
inst✝⁴ : NontriviallyNormedField 𝕜₂
inst✝³ : NormedSpace 𝕜 E
inst✝² : NormedSpace 𝕜₂ F
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝¹ : RingHomIsometric σ₁₂
ι : Type u_1
inst✝ : CompleteSpace E
g : ι → E →SL[σ₁₂] F
h : ∀ (x : E), ∃ C, ∀ (i : ι), ‖↑(g i) x‖ ≤ C
e : ℕ → Set E := fun n => ⋂ (i : ι), {x | ‖↑(g i) x‖ ≤ ↑n}
hc : ∀ (n : ℕ), IsClosed (e n)
hU : (⋃ (n : ℕ), e n) = univ
m : ℕ
x : E
hx : x ∈ interior (e m)
ε : ℝ
ε_pos : ε > 0
hε : Metric.ball x ε ⊆ interior (e m)
k : 𝕜
hk : 1 < ‖k‖
real_norm_le : ∀ (z : E), z ∈ Metric.ball x ε → ∀ (i : ι), ‖↑(g i) z‖ ≤ ↑m
⊢ ∃ C', ∀ (i : ι), ‖g i‖ ≤ C'

tactic: refine' ⟨(m + m : ℕ) / (ε / ‖k‖), fun i => ContinuousLinearMap.op_norm_le_of_shell ε_pos _ hk _⟩
state_before: case intro.intro.intro.intro.intro
E : Type u_2
F : Type u_5
𝕜 : Type u_3
𝕜₂ : Type u_4
inst✝⁷ : SeminormedAddCommGroup E
inst✝⁶ : SeminormedAddCommGroup F
inst✝⁵ : NontriviallyNormedField 𝕜
inst✝⁴ : NontriviallyNormedField 𝕜₂
inst✝³ : NormedSpace 𝕜 E
inst✝² : NormedSpace 𝕜₂ F
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝¹ : RingHomIsometric σ₁₂
ι : Type u_1
inst✝ : CompleteSpace E
g : ι → E →SL[σ₁₂] F
h : ∀ (x : E), ∃ C, ∀ (i : ι), ‖↑(g i) x‖ ≤ C
e : ℕ → Set E := fun n => ⋂ (i : ι), {x | ‖↑(g i) x‖ ≤ ↑n}
hc : ∀ (n : ℕ), IsClosed (e n)
hU : (⋃ (n : ℕ), e n) = univ
m : ℕ
x : E
hx : x ∈ interior (e m)
ε : ℝ
ε_pos : ε > 0
hε : Metric.ball x ε ⊆ interior (e m)
k : 𝕜
hk : 1 < ‖k‖
real_norm_le : ∀ (z : E), z ∈ Metric.ball x ε → ∀ (i : ι), ‖↑(g i) z‖ ≤ ↑m
εk_pos : 0 < ε / ‖k‖
⊢ ∃ C', ∀ (i : ι), ‖g i‖ ≤ C'

tactic: intro y le_y y_lt
state_before: case intro.intro.intro.intro.intro.refine'_2
E : Type u_2
F : Type u_5
𝕜 : Type u_3
𝕜₂ : Type u_4
inst✝⁷ : SeminormedAddCommGroup E
inst✝⁶ : SeminormedAddCommGroup F
inst✝⁵ : NontriviallyNormedField 𝕜
inst✝⁴ : NontriviallyNormedField 𝕜₂
inst✝³ : NormedSpace 𝕜 E
inst✝² : NormedSpace 𝕜₂ F
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝¹ : RingHomIsometric σ₁₂
ι : Type u_1
inst✝ : CompleteSpace E
g : ι → E →SL[σ₁₂] F
h : ∀ (x : E), ∃ C, ∀ (i : ι), ‖↑(g i) x‖ ≤ C
e : ℕ → Set E := fun n => ⋂ (i : ι), {x | ‖↑(g i) x‖ ≤ ↑n}
hc : ∀ (n : ℕ), IsClosed (e n)
hU : (⋃ (n : ℕ), e n) = univ
m : ℕ
x : E
hx : x ∈ interior (e m)
ε : ℝ
ε_pos : ε > 0
hε : Metric.ball x ε ⊆ interior (e m)
k : 𝕜
hk : 1 < ‖k‖
real_norm_le : ∀ (z : E), z ∈ Metric.ball x ε → ∀ (i : ι), ‖↑(g i) z‖ ≤ ↑m
εk_pos : 0 < ε / ‖k‖
i : ι
⊢ ∀ (x : E), ε / ‖k‖ ≤ ‖x‖ → ‖x‖ < ε → ‖↑(g i) x‖ ≤ ↑(m + m) / (ε / ‖k‖) * ‖x‖

tactic: calc
  ‖g i y‖ = ‖g i (y + x) - g i x‖ := by rw [ContinuousLinearMap.map_add, add_sub_cancel]
  _ ≤ ‖g i (y + x)‖ + ‖g i x‖ := (norm_sub_le _ _)
  _ ≤ m + m :=
    (add_le_add (real_norm_le (y + x) (by rwa [add_comm, add_mem_ball_iff_norm]) i)
      (real_norm_le x (Metric.mem_ball_self ε_pos) i))
  _ = (m + m : ℕ) := (m.cast_add m).symm
  _ ≤ (m + m : ℕ) * (‖y‖ / (ε / ‖k‖)) :=
    (le_mul_of_one_le_right (Nat.cast_nonneg _)
      ((one_le_div <| div_pos ε_pos (zero_lt_one.trans hk)).2 le_y))
  _ = (m + m : ℕ) / (ε / ‖k‖) * ‖y‖ := (mul_comm_div _ _ _).symm
state_before: case intro.intro.intro.intro.intro.refine'_2
E : Type u_2
F : Type u_5
𝕜 : Type u_3
𝕜₂ : Type u_4
inst✝⁷ : SeminormedAddCommGroup E
inst✝⁶ : SeminormedAddCommGroup F
inst✝⁵ : NontriviallyNormedField 𝕜
inst✝⁴ : NontriviallyNormedField 𝕜₂
inst✝³ : NormedSpace 𝕜 E
inst✝² : NormedSpace 𝕜₂ F
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝¹ : RingHomIsometric σ₁₂
ι : Type u_1
inst✝ : CompleteSpace E
g : ι → E →SL[σ₁₂] F
h : ∀ (x : E), ∃ C, ∀ (i : ι), ‖↑(g i) x‖ ≤ C
e : ℕ → Set E := fun n => ⋂ (i : ι), {x | ‖↑(g i) x‖ ≤ ↑n}
hc : ∀ (n : ℕ), IsClosed (e n)
hU : (⋃ (n : ℕ), e n) = univ
m : ℕ
x : E
hx : x ∈ interior (e m)
ε : ℝ
ε_pos : ε > 0
hε : Metric.ball x ε ⊆ interior (e m)
k : 𝕜
hk : 1 < ‖k‖
real_norm_le : ∀ (z : E), z ∈ Metric.ball x ε → ∀ (i : ι), ‖↑(g i) z‖ ≤ ↑m
εk_pos : 0 < ε / ‖k‖
i : ι
y : E
le_y : ε / ‖k‖ ≤ ‖y‖
y_lt : ‖y‖ < ε
⊢ ‖↑(g i) y‖ ≤ ↑(m + m) / (ε / ‖k‖) * ‖y‖

tactic: refine' eq_univ_of_forall fun x => _
state_before: E : Type u_2
F : Type u_5
𝕜 : Type u_3
𝕜₂ : Type u_4
inst✝⁷ : SeminormedAddCommGroup E
inst✝⁶ : SeminormedAddCommGroup F
inst✝⁵ : NontriviallyNormedField 𝕜
inst✝⁴ : NontriviallyNormedField 𝕜₂
inst✝³ : NormedSpace 𝕜 E
inst✝² : NormedSpace 𝕜₂ F
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝¹ : RingHomIsometric σ₁₂
ι : Type u_1
inst✝ : CompleteSpace E
g : ι → E →SL[σ₁₂] F
h : ∀ (x : E), ∃ C, ∀ (i : ι), ‖↑(g i) x‖ ≤ C
e : ℕ → Set E := fun n => ⋂ (i : ι), {x | ‖↑(g i) x‖ ≤ ↑n}
hc : ∀ (n : ℕ), IsClosed (e n)
⊢ (⋃ (n : ℕ), e n) = univ

tactic: cases' h x with C hC
state_before: E : Type u_2
F : Type u_5
𝕜 : Type u_3
𝕜₂ : Type u_4
inst✝⁷ : SeminormedAddCommGroup E
inst✝⁶ : SeminormedAddCommGroup F
inst✝⁵ : NontriviallyNormedField 𝕜
inst✝⁴ : NontriviallyNormedField 𝕜₂
inst✝³ : NormedSpace 𝕜 E
inst✝² : NormedSpace 𝕜₂ F
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝¹ : RingHomIsometric σ₁₂
ι : Type u_1
inst✝ : CompleteSpace E
g : ι → E →SL[σ₁₂] F
h : ∀ (x : E), ∃ C, ∀ (i : ι), ‖↑(g i) x‖ ≤ C
e : ℕ → Set E := fun n => ⋂ (i : ι), {x | ‖↑(g i) x‖ ≤ ↑n}
hc : ∀ (n : ℕ), IsClosed (e n)
x : E
⊢ x ∈ ⋃ (n : ℕ), e n

tactic: obtain ⟨m, hm⟩ := exists_nat_ge C
state_before: case intro
E : Type u_2
F : Type u_5
𝕜 : Type u_3
𝕜₂ : Type u_4
inst✝⁷ : SeminormedAddCommGroup E
inst✝⁶ : SeminormedAddCommGroup F
inst✝⁵ : NontriviallyNormedField 𝕜
inst✝⁴ : NontriviallyNormedField 𝕜₂
inst✝³ : NormedSpace 𝕜 E
inst✝² : NormedSpace 𝕜₂ F
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝¹ : RingHomIsometric σ₁₂
ι : Type u_1
inst✝ : CompleteSpace E
g : ι → E →SL[σ₁₂] F
h : ∀ (x : E), ∃ C, ∀ (i : ι), ‖↑(g i) x‖ ≤ C
e : ℕ → Set E := fun n => ⋂ (i : ι), {x | ‖↑(g i) x‖ ≤ ↑n}
hc : ∀ (n : ℕ), IsClosed (e n)
x : E
C : ℝ
hC : ∀ (i : ι), ‖↑(g i) x‖ ≤ C
⊢ x ∈ ⋃ (n : ℕ), e n

tactic: exact ⟨e m, mem_range_self m, mem_iInter.mpr fun i => le_trans (hC i) hm⟩
state_before: case intro.intro
E : Type u_2
F : Type u_5
𝕜 : Type u_3
𝕜₂ : Type u_4
inst✝⁷ : SeminormedAddCommGroup E
inst✝⁶ : SeminormedAddCommGroup F
inst✝⁵ : NontriviallyNormedField 𝕜
inst✝⁴ : NontriviallyNormedField 𝕜₂
inst✝³ : NormedSpace 𝕜 E
inst✝² : NormedSpace 𝕜₂ F
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝¹ : RingHomIsometric σ₁₂
ι : Type u_1
inst✝ : CompleteSpace E
g : ι → E →SL[σ₁₂] F
h : ∀ (x : E), ∃ C, ∀ (i : ι), ‖↑(g i) x‖ ≤ C
e : ℕ → Set E := fun n => ⋂ (i : ι), {x | ‖↑(g i) x‖ ≤ ↑n}
hc : ∀ (n : ℕ), IsClosed (e n)
x : E
C : ℝ
hC : ∀ (i : ι), ‖↑(g i) x‖ ≤ C
m : ℕ
hm : C ≤ ↑m
⊢ x ∈ ⋃ (n : ℕ), e n

tactic: intro z hz i
state_before: E : Type u_2
F : Type u_5
𝕜 : Type u_3
𝕜₂ : Type u_4
inst✝⁷ : SeminormedAddCommGroup E
inst✝⁶ : SeminormedAddCommGroup F
inst✝⁵ : NontriviallyNormedField 𝕜
inst✝⁴ : NontriviallyNormedField 𝕜₂
inst✝³ : NormedSpace 𝕜 E
inst✝² : NormedSpace 𝕜₂ F
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝¹ : RingHomIsometric σ₁₂
ι : Type u_1
inst✝ : CompleteSpace E
g : ι → E →SL[σ₁₂] F
h : ∀ (x : E), ∃ C, ∀ (i : ι), ‖↑(g i) x‖ ≤ C
e : ℕ → Set E := fun n => ⋂ (i : ι), {x | ‖↑(g i) x‖ ≤ ↑n}
hc : ∀ (n : ℕ), IsClosed (e n)
hU : (⋃ (n : ℕ), e n) = univ
m : ℕ
x : E
hx : x ∈ interior (e m)
ε : ℝ
ε_pos : ε > 0
hε : Metric.ball x ε ⊆ interior (e m)
k : 𝕜
hk : 1 < ‖k‖
⊢ ∀ (z : E), z ∈ Metric.ball x ε → ∀ (i : ι), ‖↑(g i) z‖ ≤ ↑m

tactic: replace hz := mem_iInter.mp (interior_iInter_subset _ (hε hz)) i
state_before: E : Type u_2
F : Type u_5
𝕜 : Type u_3
𝕜₂ : Type u_4
inst✝⁷ : SeminormedAddCommGroup E
inst✝⁶ : SeminormedAddCommGroup F
inst✝⁵ : NontriviallyNormedField 𝕜
inst✝⁴ : NontriviallyNormedField 𝕜₂
inst✝³ : NormedSpace 𝕜 E
inst✝² : NormedSpace 𝕜₂ F
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝¹ : RingHomIsometric σ₁₂
ι : Type u_1
inst✝ : CompleteSpace E
g : ι → E →SL[σ₁₂] F
h : ∀ (x : E), ∃ C, ∀ (i : ι), ‖↑(g i) x‖ ≤ C
e : ℕ → Set E := fun n => ⋂ (i : ι), {x | ‖↑(g i) x‖ ≤ ↑n}
hc : ∀ (n : ℕ), IsClosed (e n)
hU : (⋃ (n : ℕ), e n) = univ
m : ℕ
x : E
hx : x ∈ interior (e m)
ε : ℝ
ε_pos : ε > 0
hε : Metric.ball x ε ⊆ interior (e m)
k : 𝕜
hk : 1 < ‖k‖
z : E
hz : z ∈ Metric.ball x ε
i : ι
⊢ ‖↑(g i) z‖ ≤ ↑m

tactic: apply interior_subset hz
state_before: E : Type u_2
F : Type u_5
𝕜 : Type u_3
𝕜₂ : Type u_4
inst✝⁷ : SeminormedAddCommGroup E
inst✝⁶ : SeminormedAddCommGroup F
inst✝⁵ : NontriviallyNormedField 𝕜
inst✝⁴ : NontriviallyNormedField 𝕜₂
inst✝³ : NormedSpace 𝕜 E
inst✝² : NormedSpace 𝕜₂ F
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝¹ : RingHomIsometric σ₁₂
ι : Type u_1
inst✝ : CompleteSpace E
g : ι → E →SL[σ₁₂] F
h : ∀ (x : E), ∃ C, ∀ (i : ι), ‖↑(g i) x‖ ≤ C
e : ℕ → Set E := fun n => ⋂ (i : ι), {x | ‖↑(g i) x‖ ≤ ↑n}
hc : ∀ (n : ℕ), IsClosed (e n)
hU : (⋃ (n : ℕ), e n) = univ
m : ℕ
x : E
hx : x ∈ interior (e m)
ε : ℝ
ε_pos : ε > 0
hε : Metric.ball x ε ⊆ interior (e m)
k : 𝕜
hk : 1 < ‖k‖
z : E
i : ι
hz : z ∈ interior {x | ‖↑(g i) x‖ ≤ ↑m}
⊢ ‖↑(g i) z‖ ≤ ↑m

tactic: exact div_nonneg (Nat.cast_nonneg _) εk_pos.le
state_before: case intro.intro.intro.intro.intro.refine'_1
E : Type u_2
F : Type u_5
𝕜 : Type u_3
𝕜₂ : Type u_4
inst✝⁷ : SeminormedAddCommGroup E
inst✝⁶ : SeminormedAddCommGroup F
inst✝⁵ : NontriviallyNormedField 𝕜
inst✝⁴ : NontriviallyNormedField 𝕜₂
inst✝³ : NormedSpace 𝕜 E
inst✝² : NormedSpace 𝕜₂ F
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝¹ : RingHomIsometric σ₁₂
ι : Type u_1
inst✝ : CompleteSpace E
g : ι → E →SL[σ₁₂] F
h : ∀ (x : E), ∃ C, ∀ (i : ι), ‖↑(g i) x‖ ≤ C
e : ℕ → Set E := fun n => ⋂ (i : ι), {x | ‖↑(g i) x‖ ≤ ↑n}
hc : ∀ (n : ℕ), IsClosed (e n)
hU : (⋃ (n : ℕ), e n) = univ
m : ℕ
x : E
hx : x ∈ interior (e m)
ε : ℝ
ε_pos : ε > 0
hε : Metric.ball x ε ⊆ interior (e m)
k : 𝕜
hk : 1 < ‖k‖
real_norm_le : ∀ (z : E), z ∈ Metric.ball x ε → ∀ (i : ι), ‖↑(g i) z‖ ≤ ↑m
εk_pos : 0 < ε / ‖k‖
i : ι
⊢ 0 ≤ ↑(m + m) / (ε / ‖k‖)

tactic: rw [ContinuousLinearMap.map_add, add_sub_cancel]
state_before: E : Type u_2
F : Type u_5
𝕜 : Type u_3
𝕜₂ : Type u_4
inst✝⁷ : SeminormedAddCommGroup E
inst✝⁶ : SeminormedAddCommGroup F
inst✝⁵ : NontriviallyNormedField 𝕜
inst✝⁴ : NontriviallyNormedField 𝕜₂
inst✝³ : NormedSpace 𝕜 E
inst✝² : NormedSpace 𝕜₂ F
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝¹ : RingHomIsometric σ₁₂
ι : Type u_1
inst✝ : CompleteSpace E
g : ι → E →SL[σ₁₂] F
h : ∀ (x : E), ∃ C, ∀ (i : ι), ‖↑(g i) x‖ ≤ C
e : ℕ → Set E := fun n => ⋂ (i : ι), {x | ‖↑(g i) x‖ ≤ ↑n}
hc : ∀ (n : ℕ), IsClosed (e n)
hU : (⋃ (n : ℕ), e n) = univ
m : ℕ
x : E
hx : x ∈ interior (e m)
ε : ℝ
ε_pos : ε > 0
hε : Metric.ball x ε ⊆ interior (e m)
k : 𝕜
hk : 1 < ‖k‖
real_norm_le : ∀ (z : E), z ∈ Metric.ball x ε → ∀ (i : ι), ‖↑(g i) z‖ ≤ ↑m
εk_pos : 0 < ε / ‖k‖
i : ι
y : E
le_y : ε / ‖k‖ ≤ ‖y‖
y_lt : ‖y‖ < ε
⊢ ‖↑(g i) y‖ = ‖↑(g i) (y + x) - ↑(g i) x‖

tactic: rwa [add_comm, add_mem_ball_iff_norm]
state_before: E : Type u_2
F : Type u_5
𝕜 : Type u_3
𝕜₂ : Type u_4
inst✝⁷ : SeminormedAddCommGroup E
inst✝⁶ : SeminormedAddCommGroup F
inst✝⁵ : NontriviallyNormedField 𝕜
inst✝⁴ : NontriviallyNormedField 𝕜₂
inst✝³ : NormedSpace 𝕜 E
inst✝² : NormedSpace 𝕜₂ F
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝¹ : RingHomIsometric σ₁₂
ι : Type u_1
inst✝ : CompleteSpace E
g : ι → E →SL[σ₁₂] F
h : ∀ (x : E), ∃ C, ∀ (i : ι), ‖↑(g i) x‖ ≤ C
e : ℕ → Set E := fun n => ⋂ (i : ι), {x | ‖↑(g i) x‖ ≤ ↑n}
hc : ∀ (n : ℕ), IsClosed (e n)
hU : (⋃ (n : ℕ), e n) = univ
m : ℕ
x : E
hx : x ∈ interior (e m)
ε : ℝ
ε_pos : ε > 0
hε : Metric.ball x ε ⊆ interior (e m)
k : 𝕜
hk : 1 < ‖k‖
real_norm_le : ∀ (z : E), z ∈ Metric.ball x ε → ∀ (i : ι), ‖↑(g i) z‖ ≤ ↑m
εk_pos : 0 < ε / ‖k‖
i : ι
y : E
le_y : ε / ‖k‖ ≤ ‖y‖
y_lt : ‖y‖ < ε
⊢ y + x ∈ Metric.ball x ε