-- 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:
𝕜 : 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
⊢ HasSum (fun i => (q.compAlongComposition p i.snd) fun _j => y) (f (x + y))

Tactic:
have cau : CauchySeq fun s : Finset (Σ n, Composition n) =>
    ∑ i ∈ s, q.compAlongComposition p i.2 fun _j => y := by
  apply cauchySeq_finset_of_norm_bounded _ (NNReal.summable_coe.2 hr1) _
  simp only [coe_nnnorm, NNReal.coe_mul, NNReal.coe_pow]
  rintro ⟨n, c⟩
  calc
    ‖(compAlongComposition q p c) fun _j : Fin n => y‖ ≤
        ‖compAlongComposition q p c‖ * ∏ _j : Fin n, ‖y‖ := by
      apply ContinuousMultilinearMap.le_opNorm
    _ ≤ ‖compAlongComposition q p c‖ * (r1 : ℝ) ^ n := by
      apply mul_le_mul_of_nonneg_left _ (norm_nonneg _)
      rw [Finset.prod_const, Finset.card_fin]
      gcongr
      rw [EMetric.mem_ball, edist_zero_eq_enorm] at hy
      have := le_trans (le_of_lt hy) (min_le_right _ _)
      rwa [enorm_le_coe, ← NNReal.coe_le_coe, coe_nnnorm] at this

Result:
𝕜 : 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
cau : CauchySeq fun s => ∑ i ∈ s, (q.compAlongComposition p i.snd) fun _j => y
⊢ HasSum (fun i => (q.compAlongComposition p i.snd) fun _j => y) (f (x + y))

Proof state:
𝕜 : 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
n : ℕ
c : Composition n
⊢ ‖y‖ ^ n ≤ ↑r1 ^ n

Tactic:
gcongr

Result:
case hab
𝕜 : 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
n : ℕ
c : Composition n
⊢ ‖y‖ ≤ ↑r1

Proof state:
case hab
𝕜 : 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
n : ℕ
c : Composition n
⊢ ‖y‖ ≤ ↑r1

Tactic:
rw [EMetric.mem_ball, edist_zero_eq_enorm] at hy

Result:
case hab
𝕜 : 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‖ₑ < r
hy0 : y ∈ EMetric.ball 0 r0
n : ℕ
c : Composition n
⊢ ‖y‖ ≤ ↑r1

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)))
⊢ Tendsto (fun a => q.partialSum a.1 (p.partialSum a.2 y - (p 0) fun x => 0)) atTop (𝓝 (f (x + y)))

Tactic:
apply C.congr'

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)))
⊢ (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)