Theorem: Real.tendsto_tsum_powerSeries_nhdsWithin_lt
File: Mathlib/Analysis/Complex/AbelLimit.lean

tactic: have m : (𝓝 l).map ofReal' ≤ 𝓝 ↑l := ofRealCLM.continuous.tendsto l
state_before: f : ℕ → ℝ
l : ℝ
h : Tendsto (fun n => ∑ i ∈ range n, f i) atTop (𝓝 l)
⊢ Tendsto (fun x => ∑' (n : ℕ), f n * x ^ n) (𝓝[<] 1) (𝓝 l)
state_after: f : ℕ → ℝ
l : ℝ
h : Tendsto (fun n => ∑ i ∈ range n, f i) atTop (𝓝 l)
m : Filter.map ofReal' (𝓝 l) ≤ 𝓝 ↑l
⊢ Tendsto (fun x => ∑' (n : ℕ), f n * x ^ n) (𝓝[<] 1) (𝓝 l)

tactic: replace h := (tendsto_map.comp h).mono_right m
state_before: f : ℕ → ℝ
l : ℝ
h : Tendsto (fun n => ∑ i ∈ range n, f i) atTop (𝓝 l)
m : Filter.map ofReal' (𝓝 l) ≤ 𝓝 ↑l
⊢ Tendsto (fun x => ∑' (n : ℕ), f n * x ^ n) (𝓝[<] 1) (𝓝 l)
state_after: f : ℕ → ℝ
l : ℝ
m : Filter.map ofReal' (𝓝 l) ≤ 𝓝 ↑l
h : Tendsto (ofReal' ∘ fun n => ∑ i ∈ range n, f i) atTop (𝓝 ↑l)
⊢ Tendsto (fun x => ∑' (n : ℕ), f n * x ^ n) (𝓝[<] 1) (𝓝 l)

tactic: rw [Function.comp_def] at h
state_before: f : ℕ → ℝ
l : ℝ
m : Filter.map ofReal' (𝓝 l) ≤ 𝓝 ↑l
h : Tendsto (ofReal' ∘ fun n => ∑ i ∈ range n, f i) atTop (𝓝 ↑l)
⊢ Tendsto (fun x => ∑' (n : ℕ), f n * x ^ n) (𝓝[<] 1) (𝓝 l)
state_after: f : ℕ → ℝ
l : ℝ
m : Filter.map ofReal' (𝓝 l) ≤ 𝓝 ↑l
h : Tendsto (fun x => ↑(∑ i ∈ range x, f i)) atTop (𝓝 ↑l)
⊢ Tendsto (fun x => ∑' (n : ℕ), f n * x ^ n) (𝓝[<] 1) (𝓝 l)

tactic: push_cast at h
state_before: f : ℕ → ℝ
l : ℝ
m : Filter.map ofReal' (𝓝 l) ≤ 𝓝 ↑l
h : Tendsto (fun x => ↑(∑ i ∈ range x, f i)) atTop (𝓝 ↑l)
⊢ Tendsto (fun x => ∑' (n : ℕ), f n * x ^ n) (𝓝[<] 1) (𝓝 l)
state_after: f : ℕ → ℝ
l : ℝ
m : Filter.map ofReal' (𝓝 l) ≤ 𝓝 ↑l
h : Tendsto (fun x => ∑ i ∈ range x, ↑(f i)) atTop (𝓝 ↑l)
⊢ Tendsto (fun x => ∑' (n : ℕ), f n * x ^ n) (𝓝[<] 1) (𝓝 l)

tactic: replace h := Complex.tendsto_tsum_powerSeries_nhdsWithin_lt h
state_before: f : ℕ → ℝ
l : ℝ
m : Filter.map ofReal' (𝓝 l) ≤ 𝓝 ↑l
h : Tendsto (fun x => ∑ i ∈ range x, ↑(f i)) atTop (𝓝 ↑l)
⊢ Tendsto (fun x => ∑' (n : ℕ), f n * x ^ n) (𝓝[<] 1) (𝓝 l)
state_after: f : ℕ → ℝ
l : ℝ
m : Filter.map ofReal' (𝓝 l) ≤ 𝓝 ↑l
h : Tendsto (fun z => ∑' (n : ℕ), ↑(f n) * z ^ n) (Filter.map ofReal' (𝓝[<] 1)) (𝓝 ↑l)
⊢ Tendsto (fun x => ∑' (n : ℕ), f n * x ^ n) (𝓝[<] 1) (𝓝 l)

tactic: rw [tendsto_map'_iff] at h
state_before: f : ℕ → ℝ
l : ℝ
m : Filter.map ofReal' (𝓝 l) ≤ 𝓝 ↑l
h : Tendsto (fun z => ∑' (n : ℕ), ↑(f n) * z ^ n) (Filter.map ofReal' (𝓝[<] 1)) (𝓝 ↑l)
⊢ Tendsto (fun x => ∑' (n : ℕ), f n * x ^ n) (𝓝[<] 1) (𝓝 l)
state_after: f : ℕ → ℝ
l : ℝ
m : Filter.map ofReal' (𝓝 l) ≤ 𝓝 ↑l
h : Tendsto ((fun z => ∑' (n : ℕ), ↑(f n) * z ^ n) ∘ ofReal') (𝓝[<] 1) (𝓝 ↑l)
⊢ Tendsto (fun x => ∑' (n : ℕ), f n * x ^ n) (𝓝[<] 1) (𝓝 l)

tactic: rw [Metric.tendsto_nhdsWithin_nhds] at h ⊢
state_before: f : ℕ → ℝ
l : ℝ
m : Filter.map ofReal' (𝓝 l) ≤ 𝓝 ↑l
h : Tendsto ((fun z => ∑' (n : ℕ), ↑(f n) * z ^ n) ∘ ofReal') (𝓝[<] 1) (𝓝 ↑l)
⊢ Tendsto (fun x => ∑' (n : ℕ), f n * x ^ n) (𝓝[<] 1) (𝓝 l)
state_after: f : ℕ → ℝ
l : ℝ
m : Filter.map ofReal' (𝓝 l) ≤ 𝓝 ↑l
h :
  ∀ ε > 0,
    ∃ δ > 0, ∀ {x : ℝ}, x ∈ Set.Iio 1 → dist x 1 < δ → dist (((fun z => ∑' (n : ℕ), ↑(f n) * z ^ n) ∘ ofReal') x) ↑l < ε
⊢ ∀ ε > 0, ∃ δ > 0, ∀ {x : ℝ}, x ∈ Set.Iio 1 → dist x 1 < δ → dist (∑' (n : ℕ), f n * x ^ n) l < ε

tactic: convert h
state_before: f : ℕ → ℝ
l : ℝ
m : Filter.map ofReal' (𝓝 l) ≤ 𝓝 ↑l
h :
  ∀ ε > 0,
    ∃ δ > 0, ∀ {x : ℝ}, x ∈ Set.Iio 1 → dist x 1 < δ → dist (((fun z => ∑' (n : ℕ), ↑(f n) * z ^ n) ∘ ofReal') x) ↑l < ε
⊢ ∀ ε > 0, ∃ δ > 0, ∀ {x : ℝ}, x ∈ Set.Iio 1 → dist x 1 < δ → dist (∑' (n : ℕ), f n * x ^ n) l < ε
state_after: case h.h'.h.e'_2.h.h.e'_2.h.h'.h'.h.e'_3
f : ℕ → ℝ
l : ℝ
m : Filter.map ofReal' (𝓝 l) ≤ 𝓝 ↑l
h :
  ∀ ε > 0,
    ∃ δ > 0, ∀ {x : ℝ}, x ∈ Set.Iio 1 → dist x 1 < δ → dist (((fun z => ∑' (n : ℕ), ↑(f n) * z ^ n) ∘ ofReal') x) ↑l < ε
a✝⁴ : ℝ
a✝³ : a✝⁴ > 0
x✝ a✝² : ℝ
a✝¹ : a✝² ∈ Set.Iio 1
a✝ : dist a✝² 1 < x✝
⊢ dist (∑' (n : ℕ), f n * a✝² ^ n) l = dist (((fun z => ∑' (n : ℕ), ↑(f n) * z ^ n) ∘ ofReal') a✝²) ↑l

tactic: simp_rw [Function.comp_apply, dist_eq_norm]
state_before: case h.h'.h.e'_2.h.h.e'_2.h.h'.h'.h.e'_3
f : ℕ → ℝ
l : ℝ
m : Filter.map ofReal' (𝓝 l) ≤ 𝓝 ↑l
h :
  ∀ ε > 0,
    ∃ δ > 0, ∀ {x : ℝ}, x ∈ Set.Iio 1 → dist x 1 < δ → dist (((fun z => ∑' (n : ℕ), ↑(f n) * z ^ n) ∘ ofReal') x) ↑l < ε
a✝⁴ : ℝ
a✝³ : a✝⁴ > 0
x✝ a✝² : ℝ
a✝¹ : a✝² ∈ Set.Iio 1
a✝ : dist a✝² 1 < x✝
⊢ dist (∑' (n : ℕ), f n * a✝² ^ n) l = dist (((fun z => ∑' (n : ℕ), ↑(f n) * z ^ n) ∘ ofReal') a✝²) ↑l
state_after: case h.h'.h.e'_2.h.h.e'_2.h.h'.h'.h.e'_3
f : ℕ → ℝ
l : ℝ
m : Filter.map ofReal' (𝓝 l) ≤ 𝓝 ↑l
h :
  ∀ ε > 0,
    ∃ δ > 0, ∀ {x : ℝ}, x ∈ Set.Iio 1 → dist x 1 < δ → dist (((fun z => ∑' (n : ℕ), ↑(f n) * z ^ n) ∘ ofReal') x) ↑l < ε
a✝⁴ : ℝ
a✝³ : a✝⁴ > 0
x✝ a✝² : ℝ
a✝¹ : a✝² ∈ Set.Iio 1
a✝ : dist a✝² 1 < x✝
⊢ ‖∑' (n : ℕ), f n * a✝² ^ n - l‖ = ‖∑' (n : ℕ), ↑(f n) * ↑a✝² ^ n - ↑l‖

tactic: norm_cast
state_before: case h.h'.h.e'_2.h.h.e'_2.h.h'.h'.h.e'_3
f : ℕ → ℝ
l : ℝ
m : Filter.map ofReal' (𝓝 l) ≤ 𝓝 ↑l
h :
  ∀ ε > 0,
    ∃ δ > 0, ∀ {x : ℝ}, x ∈ Set.Iio 1 → dist x 1 < δ → dist (((fun z => ∑' (n : ℕ), ↑(f n) * z ^ n) ∘ ofReal') x) ↑l < ε
a✝⁴ : ℝ
a✝³ : a✝⁴ > 0
x✝ a✝² : ℝ
a✝¹ : a✝² ∈ Set.Iio 1
a✝ : dist a✝² 1 < x✝
⊢ ‖∑' (n : ℕ), f n * a✝² ^ n - l‖ = ‖∑' (n : ℕ), ↑(f n) * ↑a✝² ^ n - ↑l‖
state_after: case h.h'.h.e'_2.h.h.e'_2.h.h'.h'.h.e'_3
f : ℕ → ℝ
l : ℝ
m : Filter.map ofReal' (𝓝 l) ≤ 𝓝 ↑l
h :
  ∀ ε > 0,
    ∃ δ > 0, ∀ {x : ℝ}, x ∈ Set.Iio 1 → dist x 1 < δ → dist (((fun z => ∑' (n : ℕ), ↑(f n) * z ^ n) ∘ ofReal') x) ↑l < ε
a✝⁴ : ℝ
a✝³ : a✝⁴ > 0
x✝ a✝² : ℝ
a✝¹ : a✝² ∈ Set.Iio 1
a✝ : dist a✝² 1 < x✝
⊢ ‖∑' (n : ℕ), f n * a✝² ^ n - l‖ = ‖↑(∑' (n : ℕ), f n * a✝² ^ n - l)‖

tactic: rw [norm_real]
state_before: case h.h'.h.e'_2.h.h.e'_2.h.h'.h'.h.e'_3
f : ℕ → ℝ
l : ℝ
m : Filter.map ofReal' (𝓝 l) ≤ 𝓝 ↑l
h :
  ∀ ε > 0,
    ∃ δ > 0, ∀ {x : ℝ}, x ∈ Set.Iio 1 → dist x 1 < δ → dist (((fun z => ∑' (n : ℕ), ↑(f n) * z ^ n) ∘ ofReal') x) ↑l < ε
a✝⁴ : ℝ
a✝³ : a✝⁴ > 0
x✝ a✝² : ℝ
a✝¹ : a✝² ∈ Set.Iio 1
a✝ : dist a✝² 1 < x✝
⊢ ‖∑' (n : ℕ), f n * a✝² ^ n - l‖ = ‖↑(∑' (n : ℕ), f n * a✝² ^ n - l)‖
state_after: no goals