-- Module: Mathlib.Analysis.Analytic.ChangeOrigin
Goal:
𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst : NontriviallyNormedField 𝕜
inst_1 : NormedAddCommGroup E
inst_2 : NormedSpace 𝕜 E
inst_3 : NormedAddCommGroup F
inst_4 : NormedSpace 𝕜 F
inst_5 : CompleteSpace F
p : FormalMultilinearSeries 𝕜 E F
x y : E
h : (↑‖x‖₊ : ℝ≥0∞) + (↑‖y‖₊ : ℝ≥0∞) < p.radius
x_mem_ball : Membership.mem (γ := Set E) (Metric.eball 0 p.radius) x
y_mem_ball : Membership.mem (γ := Set E) (Metric.eball 0 (p.changeOrigin x).radius) y
x_add_y_mem_ball : Membership.mem (γ := Set E) (Metric.eball 0 p.radius) (x + y)
f : (k : ℕ) × (l : ℕ) × { s : Finset (Fin (k + l)) // s.card = l } → F :=
  fun (s : (k : ℕ) × (l : ℕ) × { s : Finset (Fin (k + l)) // s.card = l }) ↦
    ((p.changeOriginSeriesTerm (s.fst (β := fun (k : ℕ) ↦ (l : ℕ) × { s : Finset (Fin (k + l)) // s.card = l }))
              (s.snd (β := fun (k : ℕ) ↦ (l : ℕ) × { s : Finset (Fin (k + l)) // s.card = l }).fst (β := fun (l : ℕ) ↦
                { s_1 :
                  Finset (Fin (s.fst (β := fun (k : ℕ) ↦ (l : ℕ) × { s : Finset (Fin (k + l)) // s.card = l }) + l)) //
                  s_1.card = l }))
              (↑(s.snd (β := fun (k : ℕ) ↦ (l : ℕ) × { s : Finset (Fin (k + l)) // s.card = l }).snd (β := fun (l : ℕ) ↦
                    { s_1 :
                      Finset
                        (Fin (s.fst (β := fun (k : ℕ) ↦ (l : ℕ) × { s : Finset (Fin (k + l)) // s.card = l }) + l)) //
                      s_1.card = l })) :
                Finset (Fin (s.fst + s.snd.fst)))
              ⋯ :
            (a : (i : Fin s.snd.fst) → E) → ContinuousMultilinearMap 𝕜 (fun (i : Fin s.fst) ↦ E) F)
          fun
            (x_1 :
              Fin
                (s.snd (β := fun (k : ℕ) ↦ (l : ℕ) × { s : Finset (Fin (k + l)) // s.card = l }).fst (β := fun (l : ℕ) ↦
                  { s_1 :
                    Finset
                      (Fin (s.fst (β := fun (k : ℕ) ↦ (l : ℕ) × { s : Finset (Fin (k + l)) // s.card = l }) + l)) //
                    s_1.card = l }))) ↦
          x :
        (a : (i : Fin s.fst) → E) → F)
      fun (x : Fin (s.fst (β := fun (k : ℕ) ↦ (l : ℕ) × { s : Finset (Fin (k + l)) // s.card = l }))) ↦ y
hsf : Summable f
hf : HasSum f ((p.changeOrigin x).sum y)
n : ℕ
⊢ HasSum.{u_3, 0} (α := F)
    (fun (c : Finset (Fin n)) ↦
      Function.comp (α := (n : ℕ) × Finset (Fin n)) f
        (⇑changeOriginIndexEquiv.symm :
          (a : (n : ℕ) × Finset (Fin n)) → (k : ℕ) × (l : ℕ) × { s : Finset (Fin (k + l)) // s.card = l })
        (Sigma.mk (β := fun (b : ℕ) ↦ Finset (Fin b)) n c))
    (∑ x_1 : Finset (Fin n),
      ((p.changeOriginSeriesTerm
                (Sigma.fst (β := fun (k : ℕ) ↦ (l : ℕ) × { s : Finset (Fin (k + l)) // s.card = l })
                  ((changeOriginIndexEquiv.symm :
                      (a : (n : ℕ) × Finset (Fin n)) → (k : ℕ) × (l : ℕ) × { s : Finset (Fin (k + l)) // s.card = l })
                    (Sigma.mk (β := fun (n : ℕ) ↦ Finset (Fin n)) n x_1)))
                (Sigma.fst (β := fun (l : ℕ) ↦
                  { s :
                    Finset
                      (Fin
                        (Sigma.fst (β := fun (k : ℕ) ↦ (l : ℕ) × { s : Finset (Fin (k + l)) // s.card = l })
                            ((changeOriginIndexEquiv.symm :
                                (a : (n : ℕ) × Finset (Fin n)) →
                                  (k : ℕ) × (l : ℕ) × { s : Finset (Fin (k + l)) // s.card = l })
                              (Sigma.mk (β := fun (n : ℕ) ↦ Finset (Fin n)) n x_1)) +
                          l)) //
                    s.card = l })
                  (Sigma.snd (β := fun (k : ℕ) ↦ (l : ℕ) × { s : Finset (Fin (k + l)) // s.card = l })
                    ((changeOriginIndexEquiv.symm :
                        (a : (n : ℕ) × Finset (Fin n)) → (k : ℕ) × (l : ℕ) × { s : Finset (Fin (k + l)) // s.card = l })
                      (Sigma.mk (β := fun (n : ℕ) ↦ Finset (Fin n)) n x_1))))
                (↑(Sigma.snd (β := fun (l : ℕ) ↦
                        { s :
                          Finset
                            (Fin
                              (Sigma.fst (β := fun (k : ℕ) ↦ (l : ℕ) × { s : Finset (Fin (k + l)) // s.card = l })
                                  ((changeOriginIndexEquiv.symm :
                                      (a : (n : ℕ) × Finset (Fin n)) →
                                        (k : ℕ) × (l : ℕ) × { s : Finset (Fin (k + l)) // s.card = l })
                                    (Sigma.mk (β := fun (n : ℕ) ↦ Finset (Fin n)) n x_1)) +
                                l)) //
                          s.card = l })
                        (Sigma.snd (β := fun (k : ℕ) ↦ (l : ℕ) × { s : Finset (Fin (k + l)) // s.card = l })
                          ((changeOriginIndexEquiv.symm :
                              (a : (n : ℕ) × Finset (Fin n)) →
                                (k : ℕ) × (l : ℕ) × { s : Finset (Fin (k + l)) // s.card = l })
                            (Sigma.mk (β := fun (n : ℕ) ↦ Finset (Fin n)) n x_1))) :
                      { s :
                        Finset
                          (Fin
                            (HAdd.hAdd (α := ℕ)
                              (Sigma.fst (β := fun (k : ℕ) ↦ (l : ℕ) × { s : Finset (Fin (k + l)) // s.card = l })
                                ((changeOriginIndexEquiv.symm :
                                    (a : (n : ℕ) × Finset (Fin n)) →
                                      (k : ℕ) × (l : ℕ) × { s : Finset (Fin (k + l)) // s.card = l })
                                  (Sigma.mk (β := fun (n : ℕ) ↦ Finset (Fin n)) n x_1)))
                              (Sigma.fst (β := fun (l : ℕ) ↦
                                { s :
                                  Finset
                                    (Fin
                                      (Sigma.fst (β := fun (k : ℕ) ↦
                                          (l : ℕ) × { s : Finset (Fin (k + l)) // s.card = l })
                                          ((changeOriginIndexEquiv.symm :
                                              (a : (n : ℕ) × Finset (Fin n)) →
                                                (k : ℕ) × (l : ℕ) × { s : Finset (Fin (k + l)) // s.card = l })
                                            (Sigma.mk (β := fun (n : ℕ) ↦ Finset (Fin n)) n x_1)) +
                                        l)) //
                                  s.card = l })
                                (Sigma.snd (β := fun (k : ℕ) ↦ (l : ℕ) × { s : Finset (Fin (k + l)) // s.card = l })
                                  ((changeOriginIndexEquiv.symm :
                                      (a : (n : ℕ) × Finset (Fin n)) →
                                        (k : ℕ) × (l : ℕ) × { s : Finset (Fin (k + l)) // s.card = l })
                                    (Sigma.mk (β := fun (n : ℕ) ↦ Finset (Fin n)) n x_1)))))) //
                        s.card =
                          Sigma.fst (β := fun (l : ℕ) ↦
                            { s :
                              Finset
                                (Fin
                                  (Sigma.fst (β := fun (k : ℕ) ↦ (l : ℕ) × { s : Finset (Fin (k + l)) // s.card = l })
                                      ((changeOriginIndexEquiv.symm :
                                          (a : (n : ℕ) × Finset (Fin n)) →
                                            (k : ℕ) × (l : ℕ) × { s : Finset (Fin (k + l)) // s.card = l })
                                        (Sigma.mk (β := fun (n : ℕ) ↦ Finset (Fin n)) n x_1)) +
                                    l)) //
                              s.card = l })
                            (Sigma.snd (β := fun (k : ℕ) ↦ (l : ℕ) × { s : Finset (Fin (k + l)) // s.card = l })
                              ((changeOriginIndexEquiv.symm :
                                  (a : (n : ℕ) × Finset (Fin n)) →
                                    (k : ℕ) × (l : ℕ) × { s : Finset (Fin (k + l)) // s.card = l })
                                (Sigma.mk (β := fun (n : ℕ) ↦ Finset (Fin n)) n x_1))) }) :
                  Finset
                    (Fin
                      (((changeOriginIndexEquiv.symm :
                              (a : (n : ℕ) × Finset (Fin n)) →
                                (k : ℕ) × (l : ℕ) × { s : Finset (Fin (k + l)) // s.card = l })
                            ⟨n, x_1⟩).fst +
                        ((changeOriginIndexEquiv.symm :
                                (a : (n : ℕ) × Finset (Fin n)) →
                                  (k : ℕ) × (l : ℕ) × { s : Finset (Fin (k + l)) // s.card = l })
                              ⟨n, x_1⟩).snd.fst)))
                ⋯ :
              (a :
                  (i :
                      Fin
                        ((changeOriginIndexEquiv.symm :
                                (a : (n : ℕ) × Finset (Fin n)) →
                                  (k : ℕ) × (l : ℕ) × { s : Finset (Fin (k + l)) // s.card = l })
                              ⟨n, x_1⟩).snd.fst) →
                    E) →
                ContinuousMultilinearMap 𝕜
                  (fun
                      (i :
                        Fin
                          ((changeOriginIndexEquiv.symm :
                                (a : (n : ℕ) × Finset (Fin n)) →
                                  (k : ℕ) × (l : ℕ) × { s : Finset (Fin (k + l)) // s.card = l })
                              ⟨n, x_1⟩).fst) ↦
                    E)
                  F)
            fun
              (x_2 :
                Fin
                  (Sigma.fst (β := fun (l : ℕ) ↦
                    { s :
                      Finset
                        (Fin
                          (Sigma.fst (β := fun (k : ℕ) ↦ (l : ℕ) × { s : Finset (Fin (k + l)) // s.card = l })
                              ((changeOriginIndexEquiv.symm :
                                  (a : (n : ℕ) × Finset (Fin n)) →
                                    (k : ℕ) × (l : ℕ) × { s : Finset (Fin (k + l)) // s.card = l })
                                (Sigma.mk (β := fun (n : ℕ) ↦ Finset (Fin n)) n x_1)) +
                            l)) //
                      s.card = l })
                    (Sigma.snd (β := fun (k : ℕ) ↦ (l : ℕ) × { s : Finset (Fin (k + l)) // s.card = l })
                      ((changeOriginIndexEquiv.symm :
                          (a : (n : ℕ) × Finset (Fin n)) →
                            (k : ℕ) × (l : ℕ) × { s : Finset (Fin (k + l)) // s.card = l })
                        (Sigma.mk (β := fun (n : ℕ) ↦ Finset (Fin n)) n x_1))))) ↦
            x :
          (a :
              (i :
                  Fin
                    ((changeOriginIndexEquiv.symm :
                          (a : (n : ℕ) × Finset (Fin n)) →
                            (k : ℕ) × (l : ℕ) × { s : Finset (Fin (k + l)) // s.card = l })
                        ⟨n, x_1⟩).fst) →
                E) →
            F)
        fun
          (x :
            Fin
              (Sigma.fst (β := fun (k : ℕ) ↦ (l : ℕ) × { s : Finset (Fin (k + l)) // s.card = l })
                ((changeOriginIndexEquiv.symm :
                    (a : (n : ℕ) × Finset (Fin n)) → (k : ℕ) × (l : ℕ) × { s : Finset (Fin (k + l)) // s.card = l })
                  (Sigma.mk (β := fun (n : ℕ) ↦ Finset (Fin n)) n x_1)))) ↦
        y)

Tactic:
hasSum_fintype (fun c => f (changeOriginIndexEquiv.symm ⟨n, c⟩))

Premises used: FormalMultilinearSeries.changeOriginIndexEquiv, hasSum_fintype, Sigma.mk, Equiv.symm, DFunLike.coe, SummationFilter.unconditional