Theorem: ContinuousLinearMap.exists_preimage_norm_le
File: Mathlib/Analysis/NormedSpace/Banach.lean

tactic: obtain ⟨C, C0, hC⟩ := exists_approx_preimage_norm_le f surj
state_before: 𝕜 : Type u_3
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
F : Type u_2
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
f : E →L[𝕜] F
inst✝¹ : CompleteSpace F
inst✝ : CompleteSpace E
surj : Surjective ↑f
⊢ ∃ C, C > 0 ∧ ∀ (y : F), ∃ x, ↑f x = y ∧ ‖x‖ ≤ C * ‖y‖

tactic: choose g hg using hC
state_before: case intro.intro
𝕜 : Type u_3
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
F : Type u_2
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
f : E →L[𝕜] F
inst✝¹ : CompleteSpace F
inst✝ : CompleteSpace E
surj : Surjective ↑f
C : ℝ
C0 : C ≥ 0
hC : ∀ (y : F), ∃ x, dist (↑f x) y ≤ 1 / 2 * ‖y‖ ∧ ‖x‖ ≤ C * ‖y‖
⊢ ∃ C, C > 0 ∧ ∀ (y : F), ∃ x, ↑f x = y ∧ ‖x‖ ≤ C * ‖y‖

tactic: let h y := y - f (g y)
state_before: case intro.intro
𝕜 : Type u_3
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
F : Type u_2
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
f : E →L[𝕜] F
inst✝¹ : CompleteSpace F
inst✝ : CompleteSpace E
surj : Surjective ↑f
C : ℝ
C0 : C ≥ 0
g : F → E
hg : ∀ (y : F), dist (↑f (g y)) y ≤ 1 / 2 * ‖y‖ ∧ ‖g y‖ ≤ C * ‖y‖
⊢ ∃ C, C > 0 ∧ ∀ (y : F), ∃ x, ↑f x = y ∧ ‖x‖ ≤ C * ‖y‖

tactic: have hle : ∀ y, ‖h y‖ ≤ 1 / 2 * ‖y‖ := by
  intro y
  rw [← dist_eq_norm, dist_comm]
  exact (hg y).1
state_before: case intro.intro
𝕜 : Type u_3
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
F : Type u_2
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
f : E →L[𝕜] F
inst✝¹ : CompleteSpace F
inst✝ : CompleteSpace E
surj : Surjective ↑f
C : ℝ
C0 : C ≥ 0
g : F → E
hg : ∀ (y : F), dist (↑f (g y)) y ≤ 1 / 2 * ‖y‖ ∧ ‖g y‖ ≤ C * ‖y‖
h : F → F := fun y => y - ↑f (g y)
⊢ ∃ C, C > 0 ∧ ∀ (y : F), ∃ x, ↑f x = y ∧ ‖x‖ ≤ C * ‖y‖

tactic: refine' ⟨2 * C + 1, by linarith, fun y => _⟩
state_before: case intro.intro
𝕜 : Type u_3
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
F : Type u_2
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
f : E →L[𝕜] F
inst✝¹ : CompleteSpace F
inst✝ : CompleteSpace E
surj : Surjective ↑f
C : ℝ
C0 : C ≥ 0
g : F → E
hg : ∀ (y : F), dist (↑f (g y)) y ≤ 1 / 2 * ‖y‖ ∧ ‖g y‖ ≤ C * ‖y‖
h : F → F := fun y => y - ↑f (g y)
hle : ∀ (y : F), ‖h y‖ ≤ 1 / 2 * ‖y‖
⊢ ∃ C, C > 0 ∧ ∀ (y : F), ∃ x, ↑f x = y ∧ ‖x‖ ≤ C * ‖y‖

tactic: let u n := g ((h^[n]) y)
state_before: case intro.intro
𝕜 : Type u_3
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
F : Type u_2
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
f : E →L[𝕜] F
inst✝¹ : CompleteSpace F
inst✝ : CompleteSpace E
surj : Surjective ↑f
C : ℝ
C0 : C ≥ 0
g : F → E
hg : ∀ (y : F), dist (↑f (g y)) y ≤ 1 / 2 * ‖y‖ ∧ ‖g y‖ ≤ C * ‖y‖
h : F → F := fun y => y - ↑f (g y)
hle : ∀ (y : F), ‖h y‖ ≤ 1 / 2 * ‖y‖
y : F
hnle : ∀ (n : ℕ), ‖(h^[n]) y‖ ≤ (1 / 2) ^ n * ‖y‖
⊢ ∃ x, ↑f x = y ∧ ‖x‖ ≤ (2 * C + 1) * ‖y‖

tactic: have ule : ∀ n, ‖u n‖ ≤ (1 / 2) ^ n * (C * ‖y‖) := by
  intro n
  apply le_trans (hg _).2 _
  calc
    C * ‖(h^[n]) y‖ ≤ C * ((1 / 2) ^ n * ‖y‖) := mul_le_mul_of_nonneg_left (hnle n) C0
    _ = (1 / 2) ^ n * (C * ‖y‖) := by ring
state_before: case intro.intro
𝕜 : Type u_3
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
F : Type u_2
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
f : E →L[𝕜] F
inst✝¹ : CompleteSpace F
inst✝ : CompleteSpace E
surj : Surjective ↑f
C : ℝ
C0 : C ≥ 0
g : F → E
hg : ∀ (y : F), dist (↑f (g y)) y ≤ 1 / 2 * ‖y‖ ∧ ‖g y‖ ≤ C * ‖y‖
h : F → F := fun y => y - ↑f (g y)
hle : ∀ (y : F), ‖h y‖ ≤ 1 / 2 * ‖y‖
y : F
hnle : ∀ (n : ℕ), ‖(h^[n]) y‖ ≤ (1 / 2) ^ n * ‖y‖
u : ℕ → E := fun n => g ((h^[n]) y)
⊢ ∃ x, ↑f x = y ∧ ‖x‖ ≤ (2 * C + 1) * ‖y‖

tactic: have sNu : Summable fun n => ‖u n‖ := by
  refine' summable_of_nonneg_of_le (fun n => norm_nonneg _) ule _
  exact Summable.mul_right _ (summable_geometric_of_lt_1 (by norm_num) (by norm_num))
state_before: case intro.intro
𝕜 : Type u_3
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
F : Type u_2
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
f : E →L[𝕜] F
inst✝¹ : CompleteSpace F
inst✝ : CompleteSpace E
surj : Surjective ↑f
C : ℝ
C0 : C ≥ 0
g : F → E
hg : ∀ (y : F), dist (↑f (g y)) y ≤ 1 / 2 * ‖y‖ ∧ ‖g y‖ ≤ C * ‖y‖
h : F → F := fun y => y - ↑f (g y)
hle : ∀ (y : F), ‖h y‖ ≤ 1 / 2 * ‖y‖
y : F
hnle : ∀ (n : ℕ), ‖(h^[n]) y‖ ≤ (1 / 2) ^ n * ‖y‖
u : ℕ → E := fun n => g ((h^[n]) y)
ule : ∀ (n : ℕ), ‖u n‖ ≤ (1 / 2) ^ n * (C * ‖y‖)
⊢ ∃ x, ↑f x = y ∧ ‖x‖ ≤ (2 * C + 1) * ‖y‖

tactic: have su : Summable u := summable_of_summable_norm sNu
state_before: case intro.intro
𝕜 : Type u_3
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
F : Type u_2
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
f : E →L[𝕜] F
inst✝¹ : CompleteSpace F
inst✝ : CompleteSpace E
surj : Surjective ↑f
C : ℝ
C0 : C ≥ 0
g : F → E
hg : ∀ (y : F), dist (↑f (g y)) y ≤ 1 / 2 * ‖y‖ ∧ ‖g y‖ ≤ C * ‖y‖
h : F → F := fun y => y - ↑f (g y)
hle : ∀ (y : F), ‖h y‖ ≤ 1 / 2 * ‖y‖
y : F
hnle : ∀ (n : ℕ), ‖(h^[n]) y‖ ≤ (1 / 2) ^ n * ‖y‖
u : ℕ → E := fun n => g ((h^[n]) y)
ule : ∀ (n : ℕ), ‖u n‖ ≤ (1 / 2) ^ n * (C * ‖y‖)
sNu : Summable fun n => ‖u n‖
⊢ ∃ x, ↑f x = y ∧ ‖x‖ ≤ (2 * C + 1) * ‖y‖

tactic: let x := tsum u
state_before: case intro.intro
𝕜 : Type u_3
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
F : Type u_2
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
f : E →L[𝕜] F
inst✝¹ : CompleteSpace F
inst✝ : CompleteSpace E
surj : Surjective ↑f
C : ℝ
C0 : C ≥ 0
g : F → E
hg : ∀ (y : F), dist (↑f (g y)) y ≤ 1 / 2 * ‖y‖ ∧ ‖g y‖ ≤ C * ‖y‖
h : F → F := fun y => y - ↑f (g y)
hle : ∀ (y : F), ‖h y‖ ≤ 1 / 2 * ‖y‖
y : F
hnle : ∀ (n : ℕ), ‖(h^[n]) y‖ ≤ (1 / 2) ^ n * ‖y‖
u : ℕ → E := fun n => g ((h^[n]) y)
ule : ∀ (n : ℕ), ‖u n‖ ≤ (1 / 2) ^ n * (C * ‖y‖)
sNu : Summable fun n => ‖u n‖
su : Summable u
⊢ ∃ x, ↑f x = y ∧ ‖x‖ ≤ (2 * C + 1) * ‖y‖

tactic: have x_ineq : ‖x‖ ≤ (2 * C + 1) * ‖y‖ :=
  calc
    ‖x‖ ≤ ∑' n, ‖u n‖ := norm_tsum_le_tsum_norm sNu
    _ ≤ ∑' n, (1 / 2) ^ n * (C * ‖y‖) :=
      (tsum_le_tsum ule sNu (Summable.mul_right _ summable_geometric_two))
    _ = (∑' n, (1 / 2) ^ n) * (C * ‖y‖) := tsum_mul_right
    _ = 2 * C * ‖y‖ := by rw [tsum_geometric_two, mul_assoc]
    _ ≤ 2 * C * ‖y‖ + ‖y‖ := (le_add_of_nonneg_right (norm_nonneg y))
    _ = (2 * C + 1) * ‖y‖ := by ring
state_before: case intro.intro
𝕜 : Type u_3
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
F : Type u_2
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
f : E →L[𝕜] F
inst✝¹ : CompleteSpace F
inst✝ : CompleteSpace E
surj : Surjective ↑f
C : ℝ
C0 : C ≥ 0
g : F → E
hg : ∀ (y : F), dist (↑f (g y)) y ≤ 1 / 2 * ‖y‖ ∧ ‖g y‖ ≤ C * ‖y‖
h : F → F := fun y => y - ↑f (g y)
hle : ∀ (y : F), ‖h y‖ ≤ 1 / 2 * ‖y‖
y : F
hnle : ∀ (n : ℕ), ‖(h^[n]) y‖ ≤ (1 / 2) ^ n * ‖y‖
u : ℕ → E := fun n => g ((h^[n]) y)
ule : ∀ (n : ℕ), ‖u n‖ ≤ (1 / 2) ^ n * (C * ‖y‖)
sNu : Summable fun n => ‖u n‖
su : Summable u
x : E := tsum u
⊢ ∃ x, ↑f x = y ∧ ‖x‖ ≤ (2 * C + 1) * ‖y‖

tactic: have : Tendsto (fun n => ∑ i in Finset.range n, u i) atTop (𝓝 x) := su.hasSum.tendsto_sum_nat
state_before: case intro.intro
𝕜 : Type u_3
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
F : Type u_2
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
f : E →L[𝕜] F
inst✝¹ : CompleteSpace F
inst✝ : CompleteSpace E
surj : Surjective ↑f
C : ℝ
C0 : C ≥ 0
g : F → E
hg : ∀ (y : F), dist (↑f (g y)) y ≤ 1 / 2 * ‖y‖ ∧ ‖g y‖ ≤ C * ‖y‖
h : F → F := fun y => y - ↑f (g y)
hle : ∀ (y : F), ‖h y‖ ≤ 1 / 2 * ‖y‖
y : F
hnle : ∀ (n : ℕ), ‖(h^[n]) y‖ ≤ (1 / 2) ^ n * ‖y‖
u : ℕ → E := fun n => g ((h^[n]) y)
ule : ∀ (n : ℕ), ‖u n‖ ≤ (1 / 2) ^ n * (C * ‖y‖)
sNu : Summable fun n => ‖u n‖
su : Summable u
x : E := tsum u
x_ineq : ‖x‖ ≤ (2 * C + 1) * ‖y‖
fsumeq : ∀ (n : ℕ), ↑f (∑ i in Finset.range n, u i) = y - (h^[n]) y
⊢ ∃ x, ↑f x = y ∧ ‖x‖ ≤ (2 * C + 1) * ‖y‖

tactic: have L₁ : Tendsto (fun n => f (∑ i in Finset.range n, u i)) atTop (𝓝 (f x)) :=
  (f.continuous.tendsto _).comp this
state_before: case intro.intro
𝕜 : Type u_3
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
F : Type u_2
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
f : E →L[𝕜] F
inst✝¹ : CompleteSpace F
inst✝ : CompleteSpace E
surj : Surjective ↑f
C : ℝ
C0 : C ≥ 0
g : F → E
hg : ∀ (y : F), dist (↑f (g y)) y ≤ 1 / 2 * ‖y‖ ∧ ‖g y‖ ≤ C * ‖y‖
h : F → F := fun y => y - ↑f (g y)
hle : ∀ (y : F), ‖h y‖ ≤ 1 / 2 * ‖y‖
y : F
hnle : ∀ (n : ℕ), ‖(h^[n]) y‖ ≤ (1 / 2) ^ n * ‖y‖
u : ℕ → E := fun n => g ((h^[n]) y)
ule : ∀ (n : ℕ), ‖u n‖ ≤ (1 / 2) ^ n * (C * ‖y‖)
sNu : Summable fun n => ‖u n‖
su : Summable u
x : E := tsum u
x_ineq : ‖x‖ ≤ (2 * C + 1) * ‖y‖
fsumeq : ∀ (n : ℕ), ↑f (∑ i in Finset.range n, u i) = y - (h^[n]) y
this : Tendsto (fun n => ∑ i in Finset.range n, u i) atTop (𝓝 x)
⊢ ∃ x, ↑f x = y ∧ ‖x‖ ≤ (2 * C + 1) * ‖y‖

tactic: simp only [fsumeq] at L₁
state_before: case intro.intro
𝕜 : Type u_3
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
F : Type u_2
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
f : E →L[𝕜] F
inst✝¹ : CompleteSpace F
inst✝ : CompleteSpace E
surj : Surjective ↑f
C : ℝ
C0 : C ≥ 0
g : F → E
hg : ∀ (y : F), dist (↑f (g y)) y ≤ 1 / 2 * ‖y‖ ∧ ‖g y‖ ≤ C * ‖y‖
h : F → F := fun y => y - ↑f (g y)
hle : ∀ (y : F), ‖h y‖ ≤ 1 / 2 * ‖y‖
y : F
hnle : ∀ (n : ℕ), ‖(h^[n]) y‖ ≤ (1 / 2) ^ n * ‖y‖
u : ℕ → E := fun n => g ((h^[n]) y)
ule : ∀ (n : ℕ), ‖u n‖ ≤ (1 / 2) ^ n * (C * ‖y‖)
sNu : Summable fun n => ‖u n‖
su : Summable u
x : E := tsum u
x_ineq : ‖x‖ ≤ (2 * C + 1) * ‖y‖
fsumeq : ∀ (n : ℕ), ↑f (∑ i in Finset.range n, u i) = y - (h^[n]) y
this : Tendsto (fun n => ∑ i in Finset.range n, u i) atTop (𝓝 x)
L₁ : Tendsto (fun n => ↑f (∑ i in Finset.range n, u i)) atTop (𝓝 (↑f x))
⊢ ∃ x, ↑f x = y ∧ ‖x‖ ≤ (2 * C + 1) * ‖y‖

tactic: have L₂ : Tendsto (fun n => y - (h^[n]) y) atTop (𝓝 (y - 0)) := by
  refine' tendsto_const_nhds.sub _
  rw [tendsto_iff_norm_tendsto_zero]
  simp only [sub_zero]
  refine' squeeze_zero (fun _ => norm_nonneg _) hnle _
  rw [← MulZeroClass.zero_mul ‖y‖]
  refine' (_root_.tendsto_pow_atTop_nhds_0_of_lt_1 _ _).mul tendsto_const_nhds <;> norm_num
state_before: case intro.intro
𝕜 : Type u_3
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
F : Type u_2
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
f : E →L[𝕜] F
inst✝¹ : CompleteSpace F
inst✝ : CompleteSpace E
surj : Surjective ↑f
C : ℝ
C0 : C ≥ 0
g : F → E
hg : ∀ (y : F), dist (↑f (g y)) y ≤ 1 / 2 * ‖y‖ ∧ ‖g y‖ ≤ C * ‖y‖
h : F → F := fun y => y - ↑f (g y)
hle : ∀ (y : F), ‖h y‖ ≤ 1 / 2 * ‖y‖
y : F
hnle : ∀ (n : ℕ), ‖(h^[n]) y‖ ≤ (1 / 2) ^ n * ‖y‖
u : ℕ → E := fun n => g ((h^[n]) y)
ule : ∀ (n : ℕ), ‖u n‖ ≤ (1 / 2) ^ n * (C * ‖y‖)
sNu : Summable fun n => ‖u n‖
su : Summable u
x : E := tsum u
x_ineq : ‖x‖ ≤ (2 * C + 1) * ‖y‖
fsumeq : ∀ (n : ℕ), ↑f (∑ i in Finset.range n, u i) = y - (h^[n]) y
this : Tendsto (fun n => ∑ i in Finset.range n, u i) atTop (𝓝 x)
L₁ :
  Tendsto (fun n => y - ((fun y => y - ↑f (g y))^[n]) y) atTop
    (𝓝 (↑f (∑' (n : ℕ), g (((fun y => y - ↑f (g y))^[n]) y))))
⊢ ∃ x, ↑f x = y ∧ ‖x‖ ≤ (2 * C + 1) * ‖y‖

tactic: have feq : f x = y - 0 := tendsto_nhds_unique L₁ L₂
state_before: case intro.intro
𝕜 : Type u_3
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
F : Type u_2
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
f : E →L[𝕜] F
inst✝¹ : CompleteSpace F
inst✝ : CompleteSpace E
surj : Surjective ↑f
C : ℝ
C0 : C ≥ 0
g : F → E
hg : ∀ (y : F), dist (↑f (g y)) y ≤ 1 / 2 * ‖y‖ ∧ ‖g y‖ ≤ C * ‖y‖
h : F → F := fun y => y - ↑f (g y)
hle : ∀ (y : F), ‖h y‖ ≤ 1 / 2 * ‖y‖
y : F
hnle : ∀ (n : ℕ), ‖(h^[n]) y‖ ≤ (1 / 2) ^ n * ‖y‖
u : ℕ → E := fun n => g ((h^[n]) y)
ule : ∀ (n : ℕ), ‖u n‖ ≤ (1 / 2) ^ n * (C * ‖y‖)
sNu : Summable fun n => ‖u n‖
su : Summable u
x : E := tsum u
x_ineq : ‖x‖ ≤ (2 * C + 1) * ‖y‖
fsumeq : ∀ (n : ℕ), ↑f (∑ i in Finset.range n, u i) = y - (h^[n]) y
this : Tendsto (fun n => ∑ i in Finset.range n, u i) atTop (𝓝 x)
L₁ :
  Tendsto (fun n => y - ((fun y => y - ↑f (g y))^[n]) y) atTop
    (𝓝 (↑f (∑' (n : ℕ), g (((fun y => y - ↑f (g y))^[n]) y))))
L₂ : Tendsto (fun n => y - (h^[n]) y) atTop (𝓝 (y - 0))
⊢ ∃ x, ↑f x = y ∧ ‖x‖ ≤ (2 * C + 1) * ‖y‖

tactic: rw [sub_zero] at feq
state_before: case intro.intro
𝕜 : Type u_3
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
F : Type u_2
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
f : E →L[𝕜] F
inst✝¹ : CompleteSpace F
inst✝ : CompleteSpace E
surj : Surjective ↑f
C : ℝ
C0 : C ≥ 0
g : F → E
hg : ∀ (y : F), dist (↑f (g y)) y ≤ 1 / 2 * ‖y‖ ∧ ‖g y‖ ≤ C * ‖y‖
h : F → F := fun y => y - ↑f (g y)
hle : ∀ (y : F), ‖h y‖ ≤ 1 / 2 * ‖y‖
y : F
hnle : ∀ (n : ℕ), ‖(h^[n]) y‖ ≤ (1 / 2) ^ n * ‖y‖
u : ℕ → E := fun n => g ((h^[n]) y)
ule : ∀ (n : ℕ), ‖u n‖ ≤ (1 / 2) ^ n * (C * ‖y‖)
sNu : Summable fun n => ‖u n‖
su : Summable u
x : E := tsum u
x_ineq : ‖x‖ ≤ (2 * C + 1) * ‖y‖
fsumeq : ∀ (n : ℕ), ↑f (∑ i in Finset.range n, u i) = y - (h^[n]) y
this : Tendsto (fun n => ∑ i in Finset.range n, u i) atTop (𝓝 x)
L₁ :
  Tendsto (fun n => y - ((fun y => y - ↑f (g y))^[n]) y) atTop
    (𝓝 (↑f (∑' (n : ℕ), g (((fun y => y - ↑f (g y))^[n]) y))))
L₂ : Tendsto (fun n => y - (h^[n]) y) atTop (𝓝 (y - 0))
feq : ↑f x = y - 0
⊢ ∃ x, ↑f x = y ∧ ‖x‖ ≤ (2 * C + 1) * ‖y‖

tactic: exact ⟨x, feq, x_ineq⟩
state_before: case intro.intro
𝕜 : Type u_3
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
F : Type u_2
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
f : E →L[𝕜] F
inst✝¹ : CompleteSpace F
inst✝ : CompleteSpace E
surj : Surjective ↑f
C : ℝ
C0 : C ≥ 0
g : F → E
hg : ∀ (y : F), dist (↑f (g y)) y ≤ 1 / 2 * ‖y‖ ∧ ‖g y‖ ≤ C * ‖y‖
h : F → F := fun y => y - ↑f (g y)
hle : ∀ (y : F), ‖h y‖ ≤ 1 / 2 * ‖y‖
y : F
hnle : ∀ (n : ℕ), ‖(h^[n]) y‖ ≤ (1 / 2) ^ n * ‖y‖
u : ℕ → E := fun n => g ((h^[n]) y)
ule : ∀ (n : ℕ), ‖u n‖ ≤ (1 / 2) ^ n * (C * ‖y‖)
sNu : Summable fun n => ‖u n‖
su : Summable u
x : E := tsum u
x_ineq : ‖x‖ ≤ (2 * C + 1) * ‖y‖
fsumeq : ∀ (n : ℕ), ↑f (∑ i in Finset.range n, u i) = y - (h^[n]) y
this : Tendsto (fun n => ∑ i in Finset.range n, u i) atTop (𝓝 x)
L₁ :
  Tendsto (fun n => y - ((fun y => y - ↑f (g y))^[n]) y) atTop
    (𝓝 (↑f (∑' (n : ℕ), g (((fun y => y - ↑f (g y))^[n]) y))))
L₂ : Tendsto (fun n => y - (h^[n]) y) atTop (𝓝 (y - 0))
feq : ↑f x = y
⊢ ∃ x, ↑f x = y ∧ ‖x‖ ≤ (2 * C + 1) * ‖y‖

tactic: intro y
state_before: 𝕜 : Type u_3
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
F : Type u_2
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
f : E →L[𝕜] F
inst✝¹ : CompleteSpace F
inst✝ : CompleteSpace E
surj : Surjective ↑f
C : ℝ
C0 : C ≥ 0
g : F → E
hg : ∀ (y : F), dist (↑f (g y)) y ≤ 1 / 2 * ‖y‖ ∧ ‖g y‖ ≤ C * ‖y‖
h : F → F := fun y => y - ↑f (g y)
⊢ ∀ (y : F), ‖h y‖ ≤ 1 / 2 * ‖y‖

tactic: rw [← dist_eq_norm, dist_comm]
state_before: 𝕜 : Type u_3
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
F : Type u_2
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
f : E →L[𝕜] F
inst✝¹ : CompleteSpace F
inst✝ : CompleteSpace E
surj : Surjective ↑f
C : ℝ
C0 : C ≥ 0
g : F → E
hg : ∀ (y : F), dist (↑f (g y)) y ≤ 1 / 2 * ‖y‖ ∧ ‖g y‖ ≤ C * ‖y‖
h : F → F := fun y => y - ↑f (g y)
y : F
⊢ ‖h y‖ ≤ 1 / 2 * ‖y‖

tactic: exact (hg y).1
state_before: 𝕜 : Type u_3
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
F : Type u_2
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
f : E →L[𝕜] F
inst✝¹ : CompleteSpace F
inst✝ : CompleteSpace E
surj : Surjective ↑f
C : ℝ
C0 : C ≥ 0
g : F → E
hg : ∀ (y : F), dist (↑f (g y)) y ≤ 1 / 2 * ‖y‖ ∧ ‖g y‖ ≤ C * ‖y‖
h : F → F := fun y => y - ↑f (g y)
y : F
⊢ dist (↑f (g y)) y ≤ 1 / 2 * ‖y‖

tactic: linarith
state_before: 𝕜 : Type u_3
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
F : Type u_2
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
f : E →L[𝕜] F
inst✝¹ : CompleteSpace F
inst✝ : CompleteSpace E
surj : Surjective ↑f
C : ℝ
C0 : C ≥ 0
g : F → E
hg : ∀ (y : F), dist (↑f (g y)) y ≤ 1 / 2 * ‖y‖ ∧ ‖g y‖ ≤ C * ‖y‖
h : F → F := fun y => y - ↑f (g y)
hle : ∀ (y : F), ‖h y‖ ≤ 1 / 2 * ‖y‖
⊢ 2 * C + 1 > 0

tactic: intro n
state_before: 𝕜 : Type u_3
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
F : Type u_2
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
f : E →L[𝕜] F
inst✝¹ : CompleteSpace F
inst✝ : CompleteSpace E
surj : Surjective ↑f
C : ℝ
C0 : C ≥ 0
g : F → E
hg : ∀ (y : F), dist (↑f (g y)) y ≤ 1 / 2 * ‖y‖ ∧ ‖g y‖ ≤ C * ‖y‖
h : F → F := fun y => y - ↑f (g y)
hle : ∀ (y : F), ‖h y‖ ≤ 1 / 2 * ‖y‖
y : F
⊢ ∀ (n : ℕ), ‖(h^[n]) y‖ ≤ (1 / 2) ^ n * ‖y‖

tactic: induction' n with n IH
state_before: 𝕜 : Type u_3
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
F : Type u_2
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
f : E →L[𝕜] F
inst✝¹ : CompleteSpace F
inst✝ : CompleteSpace E
surj : Surjective ↑f
C : ℝ
C0 : C ≥ 0
g : F → E
hg : ∀ (y : F), dist (↑f (g y)) y ≤ 1 / 2 * ‖y‖ ∧ ‖g y‖ ≤ C * ‖y‖
h : F → F := fun y => y - ↑f (g y)
hle : ∀ (y : F), ‖h y‖ ≤ 1 / 2 * ‖y‖
y : F
n : ℕ
⊢ ‖(h^[n]) y‖ ≤ (1 / 2) ^ n * ‖y‖

tactic: simp only [one_div, Nat.zero_eq, one_mul, iterate_zero_apply, pow_zero, le_rfl]
state_before: case zero
𝕜 : Type u_3
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
F : Type u_2
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
f : E →L[𝕜] F
inst✝¹ : CompleteSpace F
inst✝ : CompleteSpace E
surj : Surjective ↑f
C : ℝ
C0 : C ≥ 0
g : F → E
hg : ∀ (y : F), dist (↑f (g y)) y ≤ 1 / 2 * ‖y‖ ∧ ‖g y‖ ≤ C * ‖y‖
h : F → F := fun y => y - ↑f (g y)
hle : ∀ (y : F), ‖h y‖ ≤ 1 / 2 * ‖y‖
y : F
⊢ ‖(h^[Nat.zero]) y‖ ≤ (1 / 2) ^ Nat.zero * ‖y‖

tactic: rw [iterate_succ']
state_before: case succ
𝕜 : Type u_3
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
F : Type u_2
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
f : E →L[𝕜] F
inst✝¹ : CompleteSpace F
inst✝ : CompleteSpace E
surj : Surjective ↑f
C : ℝ
C0 : C ≥ 0
g : F → E
hg : ∀ (y : F), dist (↑f (g y)) y ≤ 1 / 2 * ‖y‖ ∧ ‖g y‖ ≤ C * ‖y‖
h : F → F := fun y => y - ↑f (g y)
hle : ∀ (y : F), ‖h y‖ ≤ 1 / 2 * ‖y‖
y : F
n : ℕ
IH : ‖(h^[n]) y‖ ≤ (1 / 2) ^ n * ‖y‖
⊢ ‖(h^[Nat.succ n]) y‖ ≤ (1 / 2) ^ Nat.succ n * ‖y‖

tactic: apply le_trans (hle _) _
state_before: case succ
𝕜 : Type u_3
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
F : Type u_2
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
f : E →L[𝕜] F
inst✝¹ : CompleteSpace F
inst✝ : CompleteSpace E
surj : Surjective ↑f
C : ℝ
C0 : C ≥ 0
g : F → E
hg : ∀ (y : F), dist (↑f (g y)) y ≤ 1 / 2 * ‖y‖ ∧ ‖g y‖ ≤ C * ‖y‖
h : F → F := fun y => y - ↑f (g y)
hle : ∀ (y : F), ‖h y‖ ≤ 1 / 2 * ‖y‖
y : F
n : ℕ
IH : ‖(h^[n]) y‖ ≤ (1 / 2) ^ n * ‖y‖
⊢ ‖(h ∘ h^[n]) y‖ ≤ (1 / 2) ^ Nat.succ n * ‖y‖

tactic: rw [pow_succ, mul_assoc]
state_before: 𝕜 : Type u_3
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
F : Type u_2
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
f : E →L[𝕜] F
inst✝¹ : CompleteSpace F
inst✝ : CompleteSpace E
surj : Surjective ↑f
C : ℝ
C0 : C ≥ 0
g : F → E
hg : ∀ (y : F), dist (↑f (g y)) y ≤ 1 / 2 * ‖y‖ ∧ ‖g y‖ ≤ C * ‖y‖
h : F → F := fun y => y - ↑f (g y)
hle : ∀ (y : F), ‖h y‖ ≤ 1 / 2 * ‖y‖
y : F
n : ℕ
IH : ‖(h^[n]) y‖ ≤ (1 / 2) ^ n * ‖y‖
⊢ 1 / 2 * ‖(h^[n]) y‖ ≤ (1 / 2) ^ Nat.succ n * ‖y‖

tactic: apply mul_le_mul_of_nonneg_left IH
state_before: 𝕜 : Type u_3
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
F : Type u_2
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
f : E →L[𝕜] F
inst✝¹ : CompleteSpace F
inst✝ : CompleteSpace E
surj : Surjective ↑f
C : ℝ
C0 : C ≥ 0
g : F → E
hg : ∀ (y : F), dist (↑f (g y)) y ≤ 1 / 2 * ‖y‖ ∧ ‖g y‖ ≤ C * ‖y‖
h : F → F := fun y => y - ↑f (g y)
hle : ∀ (y : F), ‖h y‖ ≤ 1 / 2 * ‖y‖
y : F
n : ℕ
IH : ‖(h^[n]) y‖ ≤ (1 / 2) ^ n * ‖y‖
⊢ 1 / 2 * ‖(h^[n]) y‖ ≤ 1 / 2 * ((1 / 2) ^ n * ‖y‖)

tactic: norm_num
state_before: 𝕜 : Type u_3
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
F : Type u_2
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
f : E →L[𝕜] F
inst✝¹ : CompleteSpace F
inst✝ : CompleteSpace E
surj : Surjective ↑f
C : ℝ
C0 : C ≥ 0
g : F → E
hg : ∀ (y : F), dist (↑f (g y)) y ≤ 1 / 2 * ‖y‖ ∧ ‖g y‖ ≤ C * ‖y‖
h : F → F := fun y => y - ↑f (g y)
hle : ∀ (y : F), ‖h y‖ ≤ 1 / 2 * ‖y‖
y : F
n : ℕ
IH : ‖(h^[n]) y‖ ≤ (1 / 2) ^ n * ‖y‖
⊢ 0 ≤ 1 / 2

tactic: intro n
state_before: 𝕜 : Type u_3
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
F : Type u_2
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
f : E →L[𝕜] F
inst✝¹ : CompleteSpace F
inst✝ : CompleteSpace E
surj : Surjective ↑f
C : ℝ
C0 : C ≥ 0
g : F → E
hg : ∀ (y : F), dist (↑f (g y)) y ≤ 1 / 2 * ‖y‖ ∧ ‖g y‖ ≤ C * ‖y‖
h : F → F := fun y => y - ↑f (g y)
hle : ∀ (y : F), ‖h y‖ ≤ 1 / 2 * ‖y‖
y : F
hnle : ∀ (n : ℕ), ‖(h^[n]) y‖ ≤ (1 / 2) ^ n * ‖y‖
u : ℕ → E := fun n => g ((h^[n]) y)
⊢ ∀ (n : ℕ), ‖u n‖ ≤ (1 / 2) ^ n * (C * ‖y‖)

tactic: apply le_trans (hg _).2 _
state_before: 𝕜 : Type u_3
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
F : Type u_2
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
f : E →L[𝕜] F
inst✝¹ : CompleteSpace F
inst✝ : CompleteSpace E
surj : Surjective ↑f
C : ℝ
C0 : C ≥ 0
g : F → E
hg : ∀ (y : F), dist (↑f (g y)) y ≤ 1 / 2 * ‖y‖ ∧ ‖g y‖ ≤ C * ‖y‖
h : F → F := fun y => y - ↑f (g y)
hle : ∀ (y : F), ‖h y‖ ≤ 1 / 2 * ‖y‖
y : F
hnle : ∀ (n : ℕ), ‖(h^[n]) y‖ ≤ (1 / 2) ^ n * ‖y‖
u : ℕ → E := fun n => g ((h^[n]) y)
n : ℕ
⊢ ‖u n‖ ≤ (1 / 2) ^ n * (C * ‖y‖)

tactic: calc
  C * ‖(h^[n]) y‖ ≤ C * ((1 / 2) ^ n * ‖y‖) := mul_le_mul_of_nonneg_left (hnle n) C0
  _ = (1 / 2) ^ n * (C * ‖y‖) := by ring
state_before: 𝕜 : Type u_3
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
F : Type u_2
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
f : E →L[𝕜] F
inst✝¹ : CompleteSpace F
inst✝ : CompleteSpace E
surj : Surjective ↑f
C : ℝ
C0 : C ≥ 0
g : F → E
hg : ∀ (y : F), dist (↑f (g y)) y ≤ 1 / 2 * ‖y‖ ∧ ‖g y‖ ≤ C * ‖y‖
h : F → F := fun y => y - ↑f (g y)
hle : ∀ (y : F), ‖h y‖ ≤ 1 / 2 * ‖y‖
y : F
hnle : ∀ (n : ℕ), ‖(h^[n]) y‖ ≤ (1 / 2) ^ n * ‖y‖
u : ℕ → E := fun n => g ((h^[n]) y)
n : ℕ
⊢ C * ‖(h^[n]) y‖ ≤ (1 / 2) ^ n * (C * ‖y‖)

tactic: ring
state_before: 𝕜 : Type u_3
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
F : Type u_2
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
f : E →L[𝕜] F
inst✝¹ : CompleteSpace F
inst✝ : CompleteSpace E
surj : Surjective ↑f
C : ℝ
C0 : C ≥ 0
g : F → E
hg : ∀ (y : F), dist (↑f (g y)) y ≤ 1 / 2 * ‖y‖ ∧ ‖g y‖ ≤ C * ‖y‖
h : F → F := fun y => y - ↑f (g y)
hle : ∀ (y : F), ‖h y‖ ≤ 1 / 2 * ‖y‖
y : F
hnle : ∀ (n : ℕ), ‖(h^[n]) y‖ ≤ (1 / 2) ^ n * ‖y‖
u : ℕ → E := fun n => g ((h^[n]) y)
n : ℕ
⊢ C * ((1 / 2) ^ n * ‖y‖) = (1 / 2) ^ n * (C * ‖y‖)

tactic: refine' summable_of_nonneg_of_le (fun n => norm_nonneg _) ule _
state_before: 𝕜 : Type u_3
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
F : Type u_2
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
f : E →L[𝕜] F
inst✝¹ : CompleteSpace F
inst✝ : CompleteSpace E
surj : Surjective ↑f
C : ℝ
C0 : C ≥ 0
g : F → E
hg : ∀ (y : F), dist (↑f (g y)) y ≤ 1 / 2 * ‖y‖ ∧ ‖g y‖ ≤ C * ‖y‖
h : F → F := fun y => y - ↑f (g y)
hle : ∀ (y : F), ‖h y‖ ≤ 1 / 2 * ‖y‖
y : F
hnle : ∀ (n : ℕ), ‖(h^[n]) y‖ ≤ (1 / 2) ^ n * ‖y‖
u : ℕ → E := fun n => g ((h^[n]) y)
ule : ∀ (n : ℕ), ‖u n‖ ≤ (1 / 2) ^ n * (C * ‖y‖)
⊢ Summable fun n => ‖u n‖

tactic: exact Summable.mul_right _ (summable_geometric_of_lt_1 (by norm_num) (by norm_num))
state_before: 𝕜 : Type u_3
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
F : Type u_2
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
f : E →L[𝕜] F
inst✝¹ : CompleteSpace F
inst✝ : CompleteSpace E
surj : Surjective ↑f
C : ℝ
C0 : C ≥ 0
g : F → E
hg : ∀ (y : F), dist (↑f (g y)) y ≤ 1 / 2 * ‖y‖ ∧ ‖g y‖ ≤ C * ‖y‖
h : F → F := fun y => y - ↑f (g y)
hle : ∀ (y : F), ‖h y‖ ≤ 1 / 2 * ‖y‖
y : F
hnle : ∀ (n : ℕ), ‖(h^[n]) y‖ ≤ (1 / 2) ^ n * ‖y‖
u : ℕ → E := fun n => g ((h^[n]) y)
ule : ∀ (n : ℕ), ‖u n‖ ≤ (1 / 2) ^ n * (C * ‖y‖)
⊢ Summable fun b => (1 / 2) ^ b * (C * ‖y‖)

tactic: norm_num
state_before: 𝕜 : Type u_3
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
F : Type u_2
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
f : E →L[𝕜] F
inst✝¹ : CompleteSpace F
inst✝ : CompleteSpace E
surj : Surjective ↑f
C : ℝ
C0 : C ≥ 0
g : F → E
hg : ∀ (y : F), dist (↑f (g y)) y ≤ 1 / 2 * ‖y‖ ∧ ‖g y‖ ≤ C * ‖y‖
h : F → F := fun y => y - ↑f (g y)
hle : ∀ (y : F), ‖h y‖ ≤ 1 / 2 * ‖y‖
y : F
hnle : ∀ (n : ℕ), ‖(h^[n]) y‖ ≤ (1 / 2) ^ n * ‖y‖
u : ℕ → E := fun n => g ((h^[n]) y)
ule : ∀ (n : ℕ), ‖u n‖ ≤ (1 / 2) ^ n * (C * ‖y‖)
⊢ 0 ≤ 1 / 2

tactic: norm_num
state_before: 𝕜 : Type u_3
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
F : Type u_2
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
f : E →L[𝕜] F
inst✝¹ : CompleteSpace F
inst✝ : CompleteSpace E
surj : Surjective ↑f
C : ℝ
C0 : C ≥ 0
g : F → E
hg : ∀ (y : F), dist (↑f (g y)) y ≤ 1 / 2 * ‖y‖ ∧ ‖g y‖ ≤ C * ‖y‖
h : F → F := fun y => y - ↑f (g y)
hle : ∀ (y : F), ‖h y‖ ≤ 1 / 2 * ‖y‖
y : F
hnle : ∀ (n : ℕ), ‖(h^[n]) y‖ ≤ (1 / 2) ^ n * ‖y‖
u : ℕ → E := fun n => g ((h^[n]) y)
ule : ∀ (n : ℕ), ‖u n‖ ≤ (1 / 2) ^ n * (C * ‖y‖)
⊢ 1 / 2 < 1

tactic: rw [tsum_geometric_two, mul_assoc]
state_before: 𝕜 : Type u_3
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
F : Type u_2
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
f : E →L[𝕜] F
inst✝¹ : CompleteSpace F
inst✝ : CompleteSpace E
surj : Surjective ↑f
C : ℝ
C0 : C ≥ 0
g : F → E
hg : ∀ (y : F), dist (↑f (g y)) y ≤ 1 / 2 * ‖y‖ ∧ ‖g y‖ ≤ C * ‖y‖
h : F → F := fun y => y - ↑f (g y)
hle : ∀ (y : F), ‖h y‖ ≤ 1 / 2 * ‖y‖
y : F
hnle : ∀ (n : ℕ), ‖(h^[n]) y‖ ≤ (1 / 2) ^ n * ‖y‖
u : ℕ → E := fun n => g ((h^[n]) y)
ule : ∀ (n : ℕ), ‖u n‖ ≤ (1 / 2) ^ n * (C * ‖y‖)
sNu : Summable fun n => ‖u n‖
su : Summable u
x : E := tsum u
⊢ (∑' (n : ℕ), (1 / 2) ^ n) * (C * ‖y‖) = 2 * C * ‖y‖

tactic: ring
state_before: 𝕜 : Type u_3
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
F : Type u_2
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
f : E →L[𝕜] F
inst✝¹ : CompleteSpace F
inst✝ : CompleteSpace E
surj : Surjective ↑f
C : ℝ
C0 : C ≥ 0
g : F → E
hg : ∀ (y : F), dist (↑f (g y)) y ≤ 1 / 2 * ‖y‖ ∧ ‖g y‖ ≤ C * ‖y‖
h : F → F := fun y => y - ↑f (g y)
hle : ∀ (y : F), ‖h y‖ ≤ 1 / 2 * ‖y‖
y : F
hnle : ∀ (n : ℕ), ‖(h^[n]) y‖ ≤ (1 / 2) ^ n * ‖y‖
u : ℕ → E := fun n => g ((h^[n]) y)
ule : ∀ (n : ℕ), ‖u n‖ ≤ (1 / 2) ^ n * (C * ‖y‖)
sNu : Summable fun n => ‖u n‖
su : Summable u
x : E := tsum u
⊢ 2 * C * ‖y‖ + ‖y‖ = (2 * C + 1) * ‖y‖

tactic: intro n
state_before: 𝕜 : Type u_3
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
F : Type u_2
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
f : E →L[𝕜] F
inst✝¹ : CompleteSpace F
inst✝ : CompleteSpace E
surj : Surjective ↑f
C : ℝ
C0 : C ≥ 0
g : F → E
hg : ∀ (y : F), dist (↑f (g y)) y ≤ 1 / 2 * ‖y‖ ∧ ‖g y‖ ≤ C * ‖y‖
h : F → F := fun y => y - ↑f (g y)
hle : ∀ (y : F), ‖h y‖ ≤ 1 / 2 * ‖y‖
y : F
hnle : ∀ (n : ℕ), ‖(h^[n]) y‖ ≤ (1 / 2) ^ n * ‖y‖
u : ℕ → E := fun n => g ((h^[n]) y)
ule : ∀ (n : ℕ), ‖u n‖ ≤ (1 / 2) ^ n * (C * ‖y‖)
sNu : Summable fun n => ‖u n‖
su : Summable u
x : E := tsum u
x_ineq : ‖x‖ ≤ (2 * C + 1) * ‖y‖
⊢ ∀ (n : ℕ), ↑f (∑ i in Finset.range n, u i) = y - (h^[n]) y

tactic: induction' n with n IH
state_before: 𝕜 : Type u_3
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
F : Type u_2
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
f : E →L[𝕜] F
inst✝¹ : CompleteSpace F
inst✝ : CompleteSpace E
surj : Surjective ↑f
C : ℝ
C0 : C ≥ 0
g : F → E
hg : ∀ (y : F), dist (↑f (g y)) y ≤ 1 / 2 * ‖y‖ ∧ ‖g y‖ ≤ C * ‖y‖
h : F → F := fun y => y - ↑f (g y)
hle : ∀ (y : F), ‖h y‖ ≤ 1 / 2 * ‖y‖
y : F
hnle : ∀ (n : ℕ), ‖(h^[n]) y‖ ≤ (1 / 2) ^ n * ‖y‖
u : ℕ → E := fun n => g ((h^[n]) y)
ule : ∀ (n : ℕ), ‖u n‖ ≤ (1 / 2) ^ n * (C * ‖y‖)
sNu : Summable fun n => ‖u n‖
su : Summable u
x : E := tsum u
x_ineq : ‖x‖ ≤ (2 * C + 1) * ‖y‖
n : ℕ
⊢ ↑f (∑ i in Finset.range n, u i) = y - (h^[n]) y

tactic: simp [f.map_zero]
state_before: case zero
𝕜 : Type u_3
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
F : Type u_2
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
f : E →L[𝕜] F
inst✝¹ : CompleteSpace F
inst✝ : CompleteSpace E
surj : Surjective ↑f
C : ℝ
C0 : C ≥ 0
g : F → E
hg : ∀ (y : F), dist (↑f (g y)) y ≤ 1 / 2 * ‖y‖ ∧ ‖g y‖ ≤ C * ‖y‖
h : F → F := fun y => y - ↑f (g y)
hle : ∀ (y : F), ‖h y‖ ≤ 1 / 2 * ‖y‖
y : F
hnle : ∀ (n : ℕ), ‖(h^[n]) y‖ ≤ (1 / 2) ^ n * ‖y‖
u : ℕ → E := fun n => g ((h^[n]) y)
ule : ∀ (n : ℕ), ‖u n‖ ≤ (1 / 2) ^ n * (C * ‖y‖)
sNu : Summable fun n => ‖u n‖
su : Summable u
x : E := tsum u
x_ineq : ‖x‖ ≤ (2 * C + 1) * ‖y‖
⊢ ↑f (∑ i in Finset.range Nat.zero, u i) = y - (h^[Nat.zero]) y

tactic: rw [sum_range_succ, f.map_add, IH, iterate_succ_apply', sub_add]
state_before: case succ
𝕜 : Type u_3
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
F : Type u_2
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
f : E →L[𝕜] F
inst✝¹ : CompleteSpace F
inst✝ : CompleteSpace E
surj : Surjective ↑f
C : ℝ
C0 : C ≥ 0
g : F → E
hg : ∀ (y : F), dist (↑f (g y)) y ≤ 1 / 2 * ‖y‖ ∧ ‖g y‖ ≤ C * ‖y‖
h : F → F := fun y => y - ↑f (g y)
hle : ∀ (y : F), ‖h y‖ ≤ 1 / 2 * ‖y‖
y : F
hnle : ∀ (n : ℕ), ‖(h^[n]) y‖ ≤ (1 / 2) ^ n * ‖y‖
u : ℕ → E := fun n => g ((h^[n]) y)
ule : ∀ (n : ℕ), ‖u n‖ ≤ (1 / 2) ^ n * (C * ‖y‖)
sNu : Summable fun n => ‖u n‖
su : Summable u
x : E := tsum u
x_ineq : ‖x‖ ≤ (2 * C + 1) * ‖y‖
n : ℕ
IH : ↑f (∑ i in Finset.range n, u i) = y - (h^[n]) y
⊢ ↑f (∑ i in Finset.range (Nat.succ n), u i) = y - (h^[Nat.succ n]) y

tactic: refine' tendsto_const_nhds.sub _
state_before: 𝕜 : Type u_3
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
F : Type u_2
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
f : E →L[𝕜] F
inst✝¹ : CompleteSpace F
inst✝ : CompleteSpace E
surj : Surjective ↑f
C : ℝ
C0 : C ≥ 0
g : F → E
hg : ∀ (y : F), dist (↑f (g y)) y ≤ 1 / 2 * ‖y‖ ∧ ‖g y‖ ≤ C * ‖y‖
h : F → F := fun y => y - ↑f (g y)
hle : ∀ (y : F), ‖h y‖ ≤ 1 / 2 * ‖y‖
y : F
hnle : ∀ (n : ℕ), ‖(h^[n]) y‖ ≤ (1 / 2) ^ n * ‖y‖
u : ℕ → E := fun n => g ((h^[n]) y)
ule : ∀ (n : ℕ), ‖u n‖ ≤ (1 / 2) ^ n * (C * ‖y‖)
sNu : Summable fun n => ‖u n‖
su : Summable u
x : E := tsum u
x_ineq : ‖x‖ ≤ (2 * C + 1) * ‖y‖
fsumeq : ∀ (n : ℕ), ↑f (∑ i in Finset.range n, u i) = y - (h^[n]) y
this : Tendsto (fun n => ∑ i in Finset.range n, u i) atTop (𝓝 x)
L₁ :
  Tendsto (fun n => y - ((fun y => y - ↑f (g y))^[n]) y) atTop
    (𝓝 (↑f (∑' (n : ℕ), g (((fun y => y - ↑f (g y))^[n]) y))))
⊢ Tendsto (fun n => y - (h^[n]) y) atTop (𝓝 (y - 0))

tactic: rw [tendsto_iff_norm_tendsto_zero]
state_before: 𝕜 : Type u_3
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
F : Type u_2
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
f : E →L[𝕜] F
inst✝¹ : CompleteSpace F
inst✝ : CompleteSpace E
surj : Surjective ↑f
C : ℝ
C0 : C ≥ 0
g : F → E
hg : ∀ (y : F), dist (↑f (g y)) y ≤ 1 / 2 * ‖y‖ ∧ ‖g y‖ ≤ C * ‖y‖
h : F → F := fun y => y - ↑f (g y)
hle : ∀ (y : F), ‖h y‖ ≤ 1 / 2 * ‖y‖
y : F
hnle : ∀ (n : ℕ), ‖(h^[n]) y‖ ≤ (1 / 2) ^ n * ‖y‖
u : ℕ → E := fun n => g ((h^[n]) y)
ule : ∀ (n : ℕ), ‖u n‖ ≤ (1 / 2) ^ n * (C * ‖y‖)
sNu : Summable fun n => ‖u n‖
su : Summable u
x : E := tsum u
x_ineq : ‖x‖ ≤ (2 * C + 1) * ‖y‖
fsumeq : ∀ (n : ℕ), ↑f (∑ i in Finset.range n, u i) = y - (h^[n]) y
this : Tendsto (fun n => ∑ i in Finset.range n, u i) atTop (𝓝 x)
L₁ :
  Tendsto (fun n => y - ((fun y => y - ↑f (g y))^[n]) y) atTop
    (𝓝 (↑f (∑' (n : ℕ), g (((fun y => y - ↑f (g y))^[n]) y))))
⊢ Tendsto (fun n => (h^[n]) y) atTop (𝓝 0)

tactic: simp only [sub_zero]
state_before: 𝕜 : Type u_3
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
F : Type u_2
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
f : E →L[𝕜] F
inst✝¹ : CompleteSpace F
inst✝ : CompleteSpace E
surj : Surjective ↑f
C : ℝ
C0 : C ≥ 0
g : F → E
hg : ∀ (y : F), dist (↑f (g y)) y ≤ 1 / 2 * ‖y‖ ∧ ‖g y‖ ≤ C * ‖y‖
h : F → F := fun y => y - ↑f (g y)
hle : ∀ (y : F), ‖h y‖ ≤ 1 / 2 * ‖y‖
y : F
hnle : ∀ (n : ℕ), ‖(h^[n]) y‖ ≤ (1 / 2) ^ n * ‖y‖
u : ℕ → E := fun n => g ((h^[n]) y)
ule : ∀ (n : ℕ), ‖u n‖ ≤ (1 / 2) ^ n * (C * ‖y‖)
sNu : Summable fun n => ‖u n‖
su : Summable u
x : E := tsum u
x_ineq : ‖x‖ ≤ (2 * C + 1) * ‖y‖
fsumeq : ∀ (n : ℕ), ↑f (∑ i in Finset.range n, u i) = y - (h^[n]) y
this : Tendsto (fun n => ∑ i in Finset.range n, u i) atTop (𝓝 x)
L₁ :
  Tendsto (fun n => y - ((fun y => y - ↑f (g y))^[n]) y) atTop
    (𝓝 (↑f (∑' (n : ℕ), g (((fun y => y - ↑f (g y))^[n]) y))))
⊢ Tendsto (fun e => ‖(h^[e]) y - 0‖) atTop (𝓝 0)

tactic: refine' squeeze_zero (fun _ => norm_nonneg _) hnle _
state_before: 𝕜 : Type u_3
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
F : Type u_2
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
f : E →L[𝕜] F
inst✝¹ : CompleteSpace F
inst✝ : CompleteSpace E
surj : Surjective ↑f
C : ℝ
C0 : C ≥ 0
g : F → E
hg : ∀ (y : F), dist (↑f (g y)) y ≤ 1 / 2 * ‖y‖ ∧ ‖g y‖ ≤ C * ‖y‖
h : F → F := fun y => y - ↑f (g y)
hle : ∀ (y : F), ‖h y‖ ≤ 1 / 2 * ‖y‖
y : F
hnle : ∀ (n : ℕ), ‖(h^[n]) y‖ ≤ (1 / 2) ^ n * ‖y‖
u : ℕ → E := fun n => g ((h^[n]) y)
ule : ∀ (n : ℕ), ‖u n‖ ≤ (1 / 2) ^ n * (C * ‖y‖)
sNu : Summable fun n => ‖u n‖
su : Summable u
x : E := tsum u
x_ineq : ‖x‖ ≤ (2 * C + 1) * ‖y‖
fsumeq : ∀ (n : ℕ), ↑f (∑ i in Finset.range n, u i) = y - (h^[n]) y
this : Tendsto (fun n => ∑ i in Finset.range n, u i) atTop (𝓝 x)
L₁ :
  Tendsto (fun n => y - ((fun y => y - ↑f (g y))^[n]) y) atTop
    (𝓝 (↑f (∑' (n : ℕ), g (((fun y => y - ↑f (g y))^[n]) y))))
⊢ Tendsto (fun e => ‖((fun y => y - ↑f (g y))^[e]) y‖) atTop (𝓝 0)

tactic: rw [← MulZeroClass.zero_mul ‖y‖]
state_before: 𝕜 : Type u_3
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
F : Type u_2
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
f : E →L[𝕜] F
inst✝¹ : CompleteSpace F
inst✝ : CompleteSpace E
surj : Surjective ↑f
C : ℝ
C0 : C ≥ 0
g : F → E
hg : ∀ (y : F), dist (↑f (g y)) y ≤ 1 / 2 * ‖y‖ ∧ ‖g y‖ ≤ C * ‖y‖
h : F → F := fun y => y - ↑f (g y)
hle : ∀ (y : F), ‖h y‖ ≤ 1 / 2 * ‖y‖
y : F
hnle : ∀ (n : ℕ), ‖(h^[n]) y‖ ≤ (1 / 2) ^ n * ‖y‖
u : ℕ → E := fun n => g ((h^[n]) y)
ule : ∀ (n : ℕ), ‖u n‖ ≤ (1 / 2) ^ n * (C * ‖y‖)
sNu : Summable fun n => ‖u n‖
su : Summable u
x : E := tsum u
x_ineq : ‖x‖ ≤ (2 * C + 1) * ‖y‖
fsumeq : ∀ (n : ℕ), ↑f (∑ i in Finset.range n, u i) = y - (h^[n]) y
this : Tendsto (fun n => ∑ i in Finset.range n, u i) atTop (𝓝 x)
L₁ :
  Tendsto (fun n => y - ((fun y => y - ↑f (g y))^[n]) y) atTop
    (𝓝 (↑f (∑' (n : ℕ), g (((fun y => y - ↑f (g y))^[n]) y))))
⊢ Tendsto (fun t => (1 / 2) ^ t * ‖y‖) atTop (𝓝 0)

tactic: refine' (_root_.tendsto_pow_atTop_nhds_0_of_lt_1 _ _).mul tendsto_const_nhds <;> norm_num
state_before: 𝕜 : Type u_3
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
F : Type u_2
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
f : E →L[𝕜] F
inst✝¹ : CompleteSpace F
inst✝ : CompleteSpace E
surj : Surjective ↑f
C : ℝ
C0 : C ≥ 0
g : F → E
hg : ∀ (y : F), dist (↑f (g y)) y ≤ 1 / 2 * ‖y‖ ∧ ‖g y‖ ≤ C * ‖y‖
h : F → F := fun y => y - ↑f (g y)
hle : ∀ (y : F), ‖h y‖ ≤ 1 / 2 * ‖y‖
y : F
hnle : ∀ (n : ℕ), ‖(h^[n]) y‖ ≤ (1 / 2) ^ n * ‖y‖
u : ℕ → E := fun n => g ((h^[n]) y)
ule : ∀ (n : ℕ), ‖u n‖ ≤ (1 / 2) ^ n * (C * ‖y‖)
sNu : Summable fun n => ‖u n‖
su : Summable u
x : E := tsum u
x_ineq : ‖x‖ ≤ (2 * C + 1) * ‖y‖
fsumeq : ∀ (n : ℕ), ↑f (∑ i in Finset.range n, u i) = y - (h^[n]) y
this : Tendsto (fun n => ∑ i in Finset.range n, u i) atTop (𝓝 x)
L₁ :
  Tendsto (fun n => y - ((fun y => y - ↑f (g y))^[n]) y) atTop
    (𝓝 (↑f (∑' (n : ℕ), g (((fun y => y - ↑f (g y))^[n]) y))))
⊢ Tendsto (fun t => (1 / 2) ^ t * ‖y‖) atTop (𝓝 (0 * ‖y‖))