Theorem: Complex.equiv_limAux
File: Mathlib/Data/Complex/Abs.lean

tactic: cases' H _ ij with H₁ H₂
state_before: f : CauSeq ℂ ⇑abs'
ε : ℝ
ε0 : ε > 0
i : ℕ
H :
  ∀ j ≥ i,
    |↑(⟨fun n => (↑f n).re, ⋯⟩ - CauSeq.const _root_.abs (CauSeq.lim ⟨fun n => (↑f n).re, ⋯⟩)) j| < ε / 2 ∧
      |↑(⟨fun n => (↑f n).im, ⋯⟩ - CauSeq.const _root_.abs (CauSeq.lim ⟨fun n => (↑f n).im, ⋯⟩)) j| < ε / 2
j : ℕ
ij : j ≥ i
⊢ abs' (↑(f - CauSeq.const (⇑abs') (limAux f)) j) < ε
state_after: case intro
f : CauSeq ℂ ⇑abs'
ε : ℝ
ε0 : ε > 0
i : ℕ
H :
  ∀ j ≥ i,
    |↑(⟨fun n => (↑f n).re, ⋯⟩ - CauSeq.const _root_.abs (CauSeq.lim ⟨fun n => (↑f n).re, ⋯⟩)) j| < ε / 2 ∧
      |↑(⟨fun n => (↑f n).im, ⋯⟩ - CauSeq.const _root_.abs (CauSeq.lim ⟨fun n => (↑f n).im, ⋯⟩)) j| < ε / 2
j : ℕ
ij : j ≥ i
H₁ : |↑(⟨fun n => (↑f n).re, ⋯⟩ - CauSeq.const _root_.abs (CauSeq.lim ⟨fun n => (↑f n).re, ⋯⟩)) j| < ε / 2
H₂ : |↑(⟨fun n => (↑f n).im, ⋯⟩ - CauSeq.const _root_.abs (CauSeq.lim ⟨fun n => (↑f n).im, ⋯⟩)) j| < ε / 2
⊢ abs' (↑(f - CauSeq.const (⇑abs') (limAux f)) j) < ε

tactic: apply lt_of_le_of_lt (abs_le_abs_re_add_abs_im _)
state_before: case intro
f : CauSeq ℂ ⇑abs'
ε : ℝ
ε0 : ε > 0
i : ℕ
H :
  ∀ j ≥ i,
    |↑(⟨fun n => (↑f n).re, ⋯⟩ - CauSeq.const _root_.abs (CauSeq.lim ⟨fun n => (↑f n).re, ⋯⟩)) j| < ε / 2 ∧
      |↑(⟨fun n => (↑f n).im, ⋯⟩ - CauSeq.const _root_.abs (CauSeq.lim ⟨fun n => (↑f n).im, ⋯⟩)) j| < ε / 2
j : ℕ
ij : j ≥ i
H₁ : |↑(⟨fun n => (↑f n).re, ⋯⟩ - CauSeq.const _root_.abs (CauSeq.lim ⟨fun n => (↑f n).re, ⋯⟩)) j| < ε / 2
H₂ : |↑(⟨fun n => (↑f n).im, ⋯⟩ - CauSeq.const _root_.abs (CauSeq.lim ⟨fun n => (↑f n).im, ⋯⟩)) j| < ε / 2
⊢ abs' (↑(f - CauSeq.const (⇑abs') (limAux f)) j) < ε
state_after: case intro
f : CauSeq ℂ ⇑abs'
ε : ℝ
ε0 : ε > 0
i : ℕ
H :
  ∀ j ≥ i,
    |↑(⟨fun n => (↑f n).re, ⋯⟩ - CauSeq.const _root_.abs (CauSeq.lim ⟨fun n => (↑f n).re, ⋯⟩)) j| < ε / 2 ∧
      |↑(⟨fun n => (↑f n).im, ⋯⟩ - CauSeq.const _root_.abs (CauSeq.lim ⟨fun n => (↑f n).im, ⋯⟩)) j| < ε / 2
j : ℕ
ij : j ≥ i
H₁ : |↑(⟨fun n => (↑f n).re, ⋯⟩ - CauSeq.const _root_.abs (CauSeq.lim ⟨fun n => (↑f n).re, ⋯⟩)) j| < ε / 2
H₂ : |↑(⟨fun n => (↑f n).im, ⋯⟩ - CauSeq.const _root_.abs (CauSeq.lim ⟨fun n => (↑f n).im, ⋯⟩)) j| < ε / 2
⊢ |(↑(f - CauSeq.const (⇑abs') (limAux f)) j).re| + |(↑(f - CauSeq.const (⇑abs') (limAux f)) j).im| < ε

tactic: dsimp [limAux] at *
state_before: case intro
f : CauSeq ℂ ⇑abs'
ε : ℝ
ε0 : ε > 0
i : ℕ
H :
  ∀ j ≥ i,
    |↑(⟨fun n => (↑f n).re, ⋯⟩ - CauSeq.const _root_.abs (CauSeq.lim ⟨fun n => (↑f n).re, ⋯⟩)) j| < ε / 2 ∧
      |↑(⟨fun n => (↑f n).im, ⋯⟩ - CauSeq.const _root_.abs (CauSeq.lim ⟨fun n => (↑f n).im, ⋯⟩)) j| < ε / 2
j : ℕ
ij : j ≥ i
H₁ : |↑(⟨fun n => (↑f n).re, ⋯⟩ - CauSeq.const _root_.abs (CauSeq.lim ⟨fun n => (↑f n).re, ⋯⟩)) j| < ε / 2
H₂ : |↑(⟨fun n => (↑f n).im, ⋯⟩ - CauSeq.const _root_.abs (CauSeq.lim ⟨fun n => (↑f n).im, ⋯⟩)) j| < ε / 2
⊢ |(↑(f - CauSeq.const (⇑abs') (limAux f)) j).re| + |(↑(f - CauSeq.const (⇑abs') (limAux f)) j).im| < ε
state_after: case intro
f : CauSeq ℂ ⇑abs'
ε : ℝ
ε0 : ε > 0
i : ℕ
H :
  ∀ j ≥ i,
    |(↑f j).re - CauSeq.lim ⟨fun n => (↑f n).re, ⋯⟩| < ε / 2 ∧ |(↑f j).im - CauSeq.lim ⟨fun n => (↑f n).im, ⋯⟩| < ε / 2
j : ℕ
ij : j ≥ i
H₁ : |(↑f j).re - CauSeq.lim ⟨fun n => (↑f n).re, ⋯⟩| < ε / 2
H₂ : |(↑f j).im - CauSeq.lim ⟨fun n => (↑f n).im, ⋯⟩| < ε / 2
⊢ |(↑f j).re - (cauSeqRe f).lim| + |(↑f j).im - (cauSeqIm f).lim| < ε

tactic: have := add_lt_add H₁ H₂
state_before: case intro
f : CauSeq ℂ ⇑abs'
ε : ℝ
ε0 : ε > 0
i : ℕ
H :
  ∀ j ≥ i,
    |(↑f j).re - CauSeq.lim ⟨fun n => (↑f n).re, ⋯⟩| < ε / 2 ∧ |(↑f j).im - CauSeq.lim ⟨fun n => (↑f n).im, ⋯⟩| < ε / 2
j : ℕ
ij : j ≥ i
H₁ : |(↑f j).re - CauSeq.lim ⟨fun n => (↑f n).re, ⋯⟩| < ε / 2
H₂ : |(↑f j).im - CauSeq.lim ⟨fun n => (↑f n).im, ⋯⟩| < ε / 2
⊢ |(↑f j).re - (cauSeqRe f).lim| + |(↑f j).im - (cauSeqIm f).lim| < ε
state_after: case intro
f : CauSeq ℂ ⇑abs'
ε : ℝ
ε0 : ε > 0
i : ℕ
H :
  ∀ j ≥ i,
    |(↑f j).re - CauSeq.lim ⟨fun n => (↑f n).re, ⋯⟩| < ε / 2 ∧ |(↑f j).im - CauSeq.lim ⟨fun n => (↑f n).im, ⋯⟩| < ε / 2
j : ℕ
ij : j ≥ i
H₁ : |(↑f j).re - CauSeq.lim ⟨fun n => (↑f n).re, ⋯⟩| < ε / 2
H₂ : |(↑f j).im - CauSeq.lim ⟨fun n => (↑f n).im, ⋯⟩| < ε / 2
this :
  |(↑f j).re - CauSeq.lim ⟨fun n => (↑f n).re, ⋯⟩| + |(↑f j).im - CauSeq.lim ⟨fun n => (↑f n).im, ⋯⟩| < ε / 2 + ε / 2
⊢ |(↑f j).re - (cauSeqRe f).lim| + |(↑f j).im - (cauSeqIm f).lim| < ε

tactic: rwa [add_halves] at this
state_before: case intro
f : CauSeq ℂ ⇑abs'
ε : ℝ
ε0 : ε > 0
i : ℕ
H :
  ∀ j ≥ i,
    |(↑f j).re - CauSeq.lim ⟨fun n => (↑f n).re, ⋯⟩| < ε / 2 ∧ |(↑f j).im - CauSeq.lim ⟨fun n => (↑f n).im, ⋯⟩| < ε / 2
j : ℕ
ij : j ≥ i
H₁ : |(↑f j).re - CauSeq.lim ⟨fun n => (↑f n).re, ⋯⟩| < ε / 2
H₂ : |(↑f j).im - CauSeq.lim ⟨fun n => (↑f n).im, ⋯⟩| < ε / 2
this :
  |(↑f j).re - CauSeq.lim ⟨fun n => (↑f n).re, ⋯⟩| + |(↑f j).im - CauSeq.lim ⟨fun n => (↑f n).im, ⋯⟩| < ε / 2 + ε / 2
⊢ |(↑f j).re - (cauSeqRe f).lim| + |(↑f j).im - (cauSeqIm f).lim| < ε
state_after: no goals