-- Mathlib/Analysis/Analytic/Inverse.lean
lemma HasFPowerSeriesAt.tendsto_partialSum_prod_of_comp
    {f : E → G} {q : FormalMultilinearSeries 𝕜 F G}
    {p : FormalMultilinearSeries 𝕜 E F} {x : E}
    (hf : HasFPowerSeriesAt f (q.comp p) x) (hq : 0 < q.radius) (hp : 0 < p.radius) :
    ∀ᶠ y in 𝓝 0, Tendsto (fun (a : ℕ × ℕ) ↦ q.partialSum a.1 (p.partialSum a.2 y
      - p 0 (fun _ ↦ 0))) atTop (𝓝 (f (x + y)))

Proof state:
case intro.intro.intro
𝕜 : Type u_1
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
F : Type u_3
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
G : Type u_4
inst✝¹ : NormedAddCommGroup G
inst✝ : NormedSpace 𝕜 G
f : E → G
q : FormalMultilinearSeries 𝕜 F G
p : FormalMultilinearSeries 𝕜 E F
x : E
hq : 0 < q.radius
hp : 0 < p.radius
r0 : ℝ≥0∞
h0 : HasFPowerSeriesOnBall f (q.comp p) x r0
r1 : NNReal
r1_pos : 0 < r1
hr1 : Summable fun i => ‖q.compAlongComposition p i.snd‖₊ * r1 ^ i.fst
r : ℝ≥0∞ := r0 ⊓ ↑r1
⊢ ∀ᶠ (y : E) in 𝓝 0, Tendsto (fun a => q.partialSum a.1 (p.partialSum a.2 y - (p 0) fun x => 0)) atTop (𝓝 (f (x + y)))

Tactic:
have : EMetric.ball (0 : E) r ∈ 𝓝 0 :=
  EMetric.ball_mem_nhds 0 (lt_min h0.r_pos (by exact_mod_cast r1_pos))

Result:
case intro.intro.intro
𝕜 : Type u_1
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
F : Type u_3
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
G : Type u_4
inst✝¹ : NormedAddCommGroup G
inst✝ : NormedSpace 𝕜 G
f : E → G
q : FormalMultilinearSeries 𝕜 F G
p : FormalMultilinearSeries 𝕜 E F
x : E
hq : 0 < q.radius
hp : 0 < p.radius
r0 : ℝ≥0∞
h0 : HasFPowerSeriesOnBall f (q.comp p) x r0
r1 : NNReal
r1_pos : 0 < r1
hr1 : Summable fun i => ‖q.compAlongComposition p i.snd‖₊ * r1 ^ i.fst
r : ℝ≥0∞ := r0 ⊓ ↑r1
this : EMetric.ball 0 r ∈ 𝓝 0
⊢ ∀ᶠ (y : E) in 𝓝 0, Tendsto (fun a => q.partialSum a.1 (p.partialSum a.2 y - (p 0) fun x => 0)) atTop (𝓝 (f (x + y)))

Proof state:
case h.mk.intro.e_x.e_a.h.e_6.h.h
𝕜 : Type u_1
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
F : Type u_3
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
G : Type u_4
inst✝¹ : NormedAddCommGroup G
inst✝ : NormedSpace 𝕜 G
f : E → G
q : FormalMultilinearSeries 𝕜 F G
p : FormalMultilinearSeries 𝕜 E F
x : E
hq : 0 < q.radius
hp : 0 < p.radius
r0 : ℝ≥0∞
h0 : HasFPowerSeriesOnBall f (q.comp p) x r0
r1 : NNReal
r1_pos : 0 < r1
hr1 : Summable fun i => ‖q.compAlongComposition p i.snd‖₊ * r1 ^ i.fst
r : ℝ≥0∞ := r0 ⊓ ↑r1
this : EMetric.ball 0 r ∈ 𝓝 0
y : E
hy : y ∈ EMetric.ball 0 r
hy0 : y ∈ EMetric.ball 0 r0
A : HasSum (fun i => (q.compAlongComposition p i.snd) fun _j => y) (f (x + y))
B :
  Tendsto (fun n => ∑ i ∈ compPartialSumTarget 0 n.1 n.2, (q.compAlongComposition p i.snd) fun _j => y) atTop
    (𝓝 (f (x + y)))
C : Tendsto (fun n => q.partialSum n.1 (∑ a ∈ Ico 1 n.2, (p a) fun _b => y)) atTop (𝓝 (f (x + y)))
fst✝ n : ℕ
hn : 1 ≤ n
i : Fin 0
⊢ 0 = y

Tactic:
exact i.elim0

Result:
no goals

Proof state:
case h
𝕜 : Type u_1
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
F : Type u_3
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
G : Type u_4
inst✝¹ : NormedAddCommGroup G
inst✝ : NormedSpace 𝕜 G
f : E → G
q : FormalMultilinearSeries 𝕜 F G
p : FormalMultilinearSeries 𝕜 E F
x : E
hq : 0 < q.radius
hp : 0 < p.radius
r0 : ℝ≥0∞
h0 : HasFPowerSeriesOnBall f (q.comp p) x r0
r1 : NNReal
r1_pos : 0 < r1
hr1 : Summable fun i => ‖q.compAlongComposition p i.snd‖₊ * r1 ^ i.fst
r : ℝ≥0∞ := r0 ⊓ ↑r1
this : EMetric.ball 0 r ∈ 𝓝 0
y : E
hy : y ∈ EMetric.ball 0 r
hy0 : y ∈ EMetric.ball 0 r0
A : HasSum (fun i => (q.compAlongComposition p i.snd) fun _j => y) (f (x + y))
B :
  Tendsto (fun n => ∑ i ∈ compPartialSumTarget 0 n.1 n.2, (q.compAlongComposition p i.snd) fun _j => y) atTop
    (𝓝 (f (x + y)))
C : Tendsto (fun n => q.partialSum n.1 (∑ a ∈ Ico 1 n.2, (p a) fun _b => y)) atTop (𝓝 (f (x + y)))
⊢ (fun n => q.partialSum n.1 (∑ a ∈ Ico 1 n.2, (p a) fun _b => y)) =ᶠ[atTop] fun a =>
    q.partialSum a.1 (p.partialSum a.2 y - (p 0) fun x => 0)

Tactic:
filter_upwards [Ici_mem_atTop (0, 1)]

Result:
case h
𝕜 : Type u_1
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
F : Type u_3
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
G : Type u_4
inst✝¹ : NormedAddCommGroup G
inst✝ : NormedSpace 𝕜 G
f : E → G
q : FormalMultilinearSeries 𝕜 F G
p : FormalMultilinearSeries 𝕜 E F
x : E
hq : 0 < q.radius
hp : 0 < p.radius
r0 : ℝ≥0∞
h0 : HasFPowerSeriesOnBall f (q.comp p) x r0
r1 : NNReal
r1_pos : 0 < r1
hr1 : Summable fun i => ‖q.compAlongComposition p i.snd‖₊ * r1 ^ i.fst
r : ℝ≥0∞ := r0 ⊓ ↑r1
this : EMetric.ball 0 r ∈ 𝓝 0
y : E
hy : y ∈ EMetric.ball 0 r
hy0 : y ∈ EMetric.ball 0 r0
A : HasSum (fun i => (q.compAlongComposition p i.snd) fun _j => y) (f (x + y))
B :
  Tendsto (fun n => ∑ i ∈ compPartialSumTarget 0 n.1 n.2, (q.compAlongComposition p i.snd) fun _j => y) atTop
    (𝓝 (f (x + y)))
C : Tendsto (fun n => q.partialSum n.1 (∑ a ∈ Ico 1 n.2, (p a) fun _b => y)) atTop (𝓝 (f (x + y)))
⊢ ∀ a ∈ Set.Ici (0, 1),
    q.partialSum a.1 (∑ a ∈ Ico 1 a.2, (p a) fun _b => y) = q.partialSum a.1 (p.partialSum a.2 y - (p 0) fun x => 0)