Theorem: Complex.exp_zero
File: Mathlib/Data/Complex/Exponential.lean

tactic: rw [exp]
state_before: x y : ℂ
⊢ cexp 0 = 1
state_after: x y : ℂ
⊢ (exp' 0).lim = 1

tactic: refine lim_eq_of_equiv_const fun ε ε0 => ⟨1, fun j hj => ?_⟩
state_before: x y : ℂ
⊢ (exp' 0).lim = 1
state_after: x y : ℂ
ε : ℝ
ε0 : ε > 0
j : ℕ
hj : j ≥ 1
⊢ abs (↑(exp' 0 - const (⇑abs) 1) j) < ε

tactic: convert (config := .unfoldSameFun) ε0
state_before: x y : ℂ
ε : ℝ
ε0 : ε > 0
j : ℕ
hj : j ≥ 1
⊢ abs (↑(exp' 0 - const (⇑abs) 1) j) < ε
state_after: case h.e'_3
x y : ℂ
ε : ℝ
ε0 : ε > 0
j : ℕ
hj : j ≥ 1
⊢ abs (↑(exp' 0 - const (⇑abs) 1) j) = 0

tactic: cases' j with j j
state_before: case h.e'_3
x y : ℂ
ε : ℝ
ε0 : ε > 0
j : ℕ
hj : j ≥ 1
⊢ abs (↑(exp' 0 - const (⇑abs) 1) j) = 0
state_after: case h.e'_3.zero
x y : ℂ
ε : ℝ
ε0 : ε > 0
hj : 0 ≥ 1
⊢ abs (↑(exp' 0 - const (⇑abs) 1) 0) = 0

case h.e'_3.succ
x y : ℂ
ε : ℝ
ε0 : ε > 0
j : ℕ
hj : j + 1 ≥ 1
⊢ abs (↑(exp' 0 - const (⇑abs) 1) (j + 1)) = 0

tactic: exact absurd hj (not_le_of_gt zero_lt_one)
state_before: case h.e'_3.zero
x y : ℂ
ε : ℝ
ε0 : ε > 0
hj : 0 ≥ 1
⊢ abs (↑(exp' 0 - const (⇑abs) 1) 0) = 0
state_after: no goals

tactic: dsimp [exp']
state_before: case h.e'_3.succ
x y : ℂ
ε : ℝ
ε0 : ε > 0
j : ℕ
hj : j + 1 ≥ 1
⊢ abs (↑(exp' 0 - const (⇑abs) 1) (j + 1)) = 0
state_after: case h.e'_3.succ
x y : ℂ
ε : ℝ
ε0 : ε > 0
j : ℕ
hj : j + 1 ≥ 1
⊢ abs (∑ m ∈ range (j + 1), 0 ^ m / ↑m.factorial - 1) = 0

tactic: induction' j with j ih
state_before: case h.e'_3.succ
x y : ℂ
ε : ℝ
ε0 : ε > 0
j : ℕ
hj : j + 1 ≥ 1
⊢ abs (∑ m ∈ range (j + 1), 0 ^ m / ↑m.factorial - 1) = 0
state_after: case h.e'_3.succ.zero
x y : ℂ
ε : ℝ
ε0 : ε > 0
hj : 0 + 1 ≥ 1
⊢ abs (∑ m ∈ range (0 + 1), 0 ^ m / ↑m.factorial - 1) = 0

case h.e'_3.succ.succ
x y : ℂ
ε : ℝ
ε0 : ε > 0
j : ℕ
ih : j + 1 ≥ 1 → abs (∑ m ∈ range (j + 1), 0 ^ m / ↑m.factorial - 1) = 0
hj : j + 1 + 1 ≥ 1
⊢ abs (∑ m ∈ range (j + 1 + 1), 0 ^ m / ↑m.factorial - 1) = 0

tactic: dsimp [exp']
state_before: case h.e'_3.succ.zero
x y : ℂ
ε : ℝ
ε0 : ε > 0
hj : 0 + 1 ≥ 1
⊢ abs (∑ m ∈ range (0 + 1), 0 ^ m / ↑m.factorial - 1) = 0
state_after: case h.e'_3.succ.zero
x y : ℂ
ε : ℝ
ε0 : ε > 0
hj : 0 + 1 ≥ 1
⊢ abs (∑ m ∈ {0}, 0 ^ m / ↑m.factorial - 1) = 0

tactic: simp [show Nat.succ 0 = 1 from rfl]
state_before: case h.e'_3.succ.zero
x y : ℂ
ε : ℝ
ε0 : ε > 0
hj : 0 + 1 ≥ 1
⊢ abs (∑ m ∈ {0}, 0 ^ m / ↑m.factorial - 1) = 0
state_after: no goals

tactic: rw [← ih (by simp [Nat.succ_le_succ])]
state_before: case h.e'_3.succ.succ
x y : ℂ
ε : ℝ
ε0 : ε > 0
j : ℕ
ih : j + 1 ≥ 1 → abs (∑ m ∈ range (j + 1), 0 ^ m / ↑m.factorial - 1) = 0
hj : j + 1 + 1 ≥ 1
⊢ abs (∑ m ∈ range (j + 1 + 1), 0 ^ m / ↑m.factorial - 1) = 0
state_after: case h.e'_3.succ.succ
x y : ℂ
ε : ℝ
ε0 : ε > 0
j : ℕ
ih : j + 1 ≥ 1 → abs (∑ m ∈ range (j + 1), 0 ^ m / ↑m.factorial - 1) = 0
hj : j + 1 + 1 ≥ 1
⊢ abs (∑ m ∈ range (j + 1 + 1), 0 ^ m / ↑m.factorial - 1) = abs (∑ m ∈ range (j + 1), 0 ^ m / ↑m.factorial - 1)

tactic: simp only [sum_range_succ, pow_succ]
state_before: case h.e'_3.succ.succ
x y : ℂ
ε : ℝ
ε0 : ε > 0
j : ℕ
ih : j + 1 ≥ 1 → abs (∑ m ∈ range (j + 1), 0 ^ m / ↑m.factorial - 1) = 0
hj : j + 1 + 1 ≥ 1
⊢ abs (∑ m ∈ range (j + 1 + 1), 0 ^ m / ↑m.factorial - 1) = abs (∑ m ∈ range (j + 1), 0 ^ m / ↑m.factorial - 1)
state_after: case h.e'_3.succ.succ
x y : ℂ
ε : ℝ
ε0 : ε > 0
j : ℕ
ih : j + 1 ≥ 1 → abs (∑ m ∈ range (j + 1), 0 ^ m / ↑m.factorial - 1) = 0
hj : j + 1 + 1 ≥ 1
⊢ abs (∑ m ∈ range j, 0 ^ m / ↑m.factorial + 0 ^ j / ↑j.factorial + 0 ^ j * 0 / ↑(j + 1).factorial - 1) =
    abs (∑ m ∈ range j, 0 ^ m / ↑m.factorial + 0 ^ j / ↑j.factorial - 1)

tactic: simp
state_before: case h.e'_3.succ.succ
x y : ℂ
ε : ℝ
ε0 : ε > 0
j : ℕ
ih : j + 1 ≥ 1 → abs (∑ m ∈ range (j + 1), 0 ^ m / ↑m.factorial - 1) = 0
hj : j + 1 + 1 ≥ 1
⊢ abs (∑ m ∈ range j, 0 ^ m / ↑m.factorial + 0 ^ j / ↑j.factorial + 0 ^ j * 0 / ↑(j + 1).factorial - 1) =
    abs (∑ m ∈ range j, 0 ^ m / ↑m.factorial + 0 ^ j / ↑j.factorial - 1)
state_after: no goals

tactic: simp [Nat.succ_le_succ]
state_before: x y : ℂ
ε : ℝ
ε0 : ε > 0
j : ℕ
ih : j + 1 ≥ 1 → abs (∑ m ∈ range (j + 1), 0 ^ m / ↑m.factorial - 1) = 0
hj : j + 1 + 1 ≥ 1
⊢ j + 1 ≥ 1
state_after: no goals