Theorem: NormedRing.inverse_one_sub_norm
File: Mathlib/Analysis/Normed/Ring/Units.lean

Proof steps:
state_before: R : Type u_1
inst✝¹ : NormedRing R
inst✝ : CompleteSpace R
⊢ (fun t => inverse (1 - t)) =O[𝓝 0] fun _t => 1
state_after: R : Type u_1
inst✝¹ : NormedRing R
inst✝ : CompleteSpace R
⊢ ∃ c, ∃ ε > 0, ∀ ⦃y : R⦄, dist y 0 < ε → ‖inverse (1 - y)‖ ≤ c * ‖1‖
tactic: simp only [IsBigO, IsBigOWith, Metric.eventually_nhds_iff]
state_before: R : Type u_1
inst✝¹ : NormedRing R
inst✝ : CompleteSpace R
⊢ ∃ c, ∃ ε > 0, ∀ ⦃y : R⦄, dist y 0 < ε → ‖inverse (1 - y)‖ ≤ c * ‖1‖
state_after: R : Type u_1
inst✝¹ : NormedRing R
inst✝ : CompleteSpace R
t : R
ht : dist t 0 < 2⁻¹
⊢ ‖inverse (1 - t)‖ ≤ (‖1‖ + 1) * ‖1‖
tactic: refine ⟨‖(1 : R)‖ + 1, (2 : ℝ)⁻¹, by norm_num, fun t ht ↦ ?_⟩
state_before: R : Type u_1
inst✝¹ : NormedRing R
inst✝ : CompleteSpace R
t : R
ht : dist t 0 < 2⁻¹
⊢ ‖inverse (1 - t)‖ ≤ (‖1‖ + 1) * ‖1‖
state_after: R : Type u_1
inst✝¹ : NormedRing R
inst✝ : CompleteSpace R
t : R
ht : ‖t‖ < 2⁻¹
⊢ ‖inverse (1 - t)‖ ≤ (‖1‖ + 1) * ‖1‖
tactic: rw [dist_zero_right] at ht
state_before: R : Type u_1
inst✝¹ : NormedRing R
inst✝ : CompleteSpace R
t : R
ht : ‖t‖ < 2⁻¹
⊢ ‖inverse (1 - t)‖ ≤ (‖1‖ + 1) * ‖1‖
state_after: R : Type u_1
inst✝¹ : NormedRing R
inst✝ : CompleteSpace R
t : R
ht : ‖t‖ < 2⁻¹
ht' : ‖t‖ < 1
⊢ ‖inverse (1 - t)‖ ≤ (‖1‖ + 1) * ‖1‖
tactic: have ht' : ‖t‖ < 1 := by
    have : (2 : ℝ)⁻¹ < 1 := by cancel_denoms
    linarith
state_before: R : Type u_1
inst✝¹ : NormedRing R
inst✝ : CompleteSpace R
t : R
ht : ‖t‖ < 2⁻¹
ht' : ‖t‖ < 1
⊢ ‖inverse (1 - t)‖ ≤ (‖1‖ + 1) * ‖1‖
state_after: R : Type u_1
inst✝¹ : NormedRing R
inst✝ : CompleteSpace R
t : R
ht : ‖t‖ < 2⁻¹
ht' : ‖t‖ < 1
⊢ ‖↑(Units.oneSub t ht')⁻¹‖ ≤ ‖1‖ + 1
tactic: simp only [inverse_one_sub t ht', norm_one, mul_one, Set.mem_setOf_eq]
state_before: R : Type u_1
inst✝¹ : NormedRing R
inst✝ : CompleteSpace R
t : R
ht : ‖t‖ < 2⁻¹
ht' : ‖t‖ < 1
⊢ ‖↑(Units.oneSub t ht')⁻¹‖ ≤ ‖1‖ + 1
state_after: R : Type u_1
inst✝¹ : NormedRing R
inst✝ : CompleteSpace R
t : R
ht : ‖t‖ < 2⁻¹
ht' : ‖t‖ < 1
⊢ ‖∑' (n : ℕ), t ^ n‖ ≤ ‖1‖ + 1
tactic: change ‖∑' n : ℕ, t ^ n‖ ≤ _
state_before: R : Type u_1
inst✝¹ : NormedRing R
inst✝ : CompleteSpace R
t : R
ht : ‖t‖ < 2⁻¹
ht' : ‖t‖ < 1
⊢ ‖∑' (n : ℕ), t ^ n‖ ≤ ‖1‖ + 1
state_after: R : Type u_1
inst✝¹ : NormedRing R
inst✝ : CompleteSpace R
t : R
ht : ‖t‖ < 2⁻¹
ht' : ‖t‖ < 1
this : ‖∑' (n : ℕ), t ^ n‖ ≤ ‖1‖ - 1 + (1 - ‖t‖)⁻¹
⊢ ‖∑' (n : ℕ), t ^ n‖ ≤ ‖1‖ + 1
tactic: have := NormedRing.tsum_geometric_of_norm_lt_one t ht'
state_before: R : Type u_1
inst✝¹ : NormedRing R
inst✝ : CompleteSpace R
t : R
ht : ‖t‖ < 2⁻¹
ht' : ‖t‖ < 1
this : ‖∑' (n : ℕ), t ^ n‖ ≤ ‖1‖ - 1 + (1 - ‖t‖)⁻¹
⊢ ‖∑' (n : ℕ), t ^ n‖ ≤ ‖1‖ + 1
state_after: R : Type u_1
inst✝¹ : NormedRing R
inst✝ : CompleteSpace R
t : R
ht : ‖t‖ < 2⁻¹
ht' : ‖t‖ < 1
this✝ : ‖∑' (n : ℕ), t ^ n‖ ≤ ‖1‖ - 1 + (1 - ‖t‖)⁻¹
this : (1 - ‖t‖)⁻¹ ≤ 2
⊢ ‖∑' (n : ℕ), t ^ n‖ ≤ ‖1‖ + 1
tactic: have : (1 - ‖t‖)⁻¹ ≤ 2 := by
    rw [← inv_inv (2 : ℝ)]
    refine inv_le_inv_of_le (by norm_num) ?_
    have : (2 : ℝ)⁻¹ + (2 : ℝ)⁻¹ = 1 := by ring
    linarith
state_before: R : Type u_1
inst✝¹ : NormedRing R
inst✝ : CompleteSpace R
t : R
ht : ‖t‖ < 2⁻¹
ht' : ‖t‖ < 1
this✝ : ‖∑' (n : ℕ), t ^ n‖ ≤ ‖1‖ - 1 + (1 - ‖t‖)⁻¹
this : (1 - ‖t‖)⁻¹ ≤ 2
⊢ ‖∑' (n : ℕ), t ^ n‖ ≤ ‖1‖ + 1
state_after: no goals
tactic: linarith