-- Mathlib/Analysis/Analytic/ChangeOrigin.lean
theorem changeOrigin_eval (h : (‖x‖₊ + ‖y‖₊ : ℝ≥0∞) < p.radius) :
    (p.changeOrigin x).sum y = p.sum (x + y)

Proof state:
𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁵ : NontriviallyNormedField 𝕜
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace 𝕜 E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace 𝕜 F
inst✝ : CompleteSpace F
p : FormalMultilinearSeries 𝕜 E F
x y : E
h : ↑‖x‖₊ + ↑‖y‖₊ < p.radius
radius_pos : 0 < p.radius
x_mem_ball : x ∈ EMetric.ball 0 p.radius
y_mem_ball : y ∈ EMetric.ball 0 (p.changeOrigin x).radius
x_add_y_mem_ball : x + y ∈ EMetric.ball 0 p.radius
f : (k : ℕ) × (l : ℕ) × { s // s.card = l } → F :=
  fun s => ((p.changeOriginSeriesTerm s.fst s.snd.fst ↑s.snd.snd ⋯) fun x_1 => x) fun x => y
hsf : Summable f
k : ℕ
this : HasSum (fun n => (p.changeOriginSeries k n) fun x_1 => x) (p.changeOrigin x k)
⊢ HasSum (fun c => (p.changeOriginSeriesTerm k c.fst ↑c.snd ⋯) fun x_1 => x) (p.changeOrigin x k)

Tactic:
refine HasSum.sigma_of_hasSum this (fun l => ?_) ?_

Result:
case refine_1
𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁵ : NontriviallyNormedField 𝕜
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace 𝕜 E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace 𝕜 F
inst✝ : CompleteSpace F
p : FormalMultilinearSeries 𝕜 E F
x y : E
h : ↑‖x‖₊ + ↑‖y‖₊ < p.radius
radius_pos : 0 < p.radius
x_mem_ball : x ∈ EMetric.ball 0 p.radius
y_mem_ball : y ∈ EMetric.ball 0 (p.changeOrigin x).radius
x_add_y_mem_ball : x + y ∈ EMetric.ball 0 p.radius
f : (k : ℕ) × (l : ℕ) × { s // s.card = l } → F :=
  fun s => ((p.changeOriginSeriesTerm s.fst s.snd.fst ↑s.snd.snd ⋯) fun x_1 => x) fun x => y
hsf : Summable f
k : ℕ
this : HasSum (fun n => (p.changeOriginSeries k n) fun x_1 => x) (p.changeOrigin x k)
l : ℕ
⊢ HasSum (fun c => (p.changeOriginSeriesTerm k ⟨l, c⟩.fst ↑⟨l, c⟩.snd ⋯) fun x_1 => x)
    ((p.changeOriginSeries k l) fun x_1 => x)

case refine_2
𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁵ : NontriviallyNormedField 𝕜
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace 𝕜 E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace 𝕜 F
inst✝ : CompleteSpace F
p : FormalMultilinearSeries 𝕜 E F
x y : E
h : ↑‖x‖₊ + ↑‖y‖₊ < p.radius
radius_pos : 0 < p.radius
x_mem_ball : x ∈ EMetric.ball 0 p.radius
y_mem_ball : y ∈ EMetric.ball 0 (p.changeOrigin x).radius
x_add_y_mem_ball : x + y ∈ EMetric.ball 0 p.radius
f : (k : ℕ) × (l : ℕ) × { s // s.card = l } → F :=
  fun s => ((p.changeOriginSeriesTerm s.fst s.snd.fst ↑s.snd.snd ⋯) fun x_1 => x) fun x => y
hsf : Summable f
k : ℕ
this : HasSum (fun n => (p.changeOriginSeries k n) fun x_1 => x) (p.changeOrigin x k)
⊢ Summable fun c => (p.changeOriginSeriesTerm k c.fst ↑c.snd ⋯) fun x_1 => x

Proof state:
case refine_2
𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁵ : NontriviallyNormedField 𝕜
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace 𝕜 E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace 𝕜 F
inst✝ : CompleteSpace F
p : FormalMultilinearSeries 𝕜 E F
x y : E
h : ↑‖x‖₊ + ↑‖y‖₊ < p.radius
radius_pos : 0 < p.radius
x_mem_ball : x ∈ EMetric.ball 0 p.radius
y_mem_ball : y ∈ EMetric.ball 0 (p.changeOrigin x).radius
x_add_y_mem_ball : x + y ∈ EMetric.ball 0 p.radius
f : (k : ℕ) × (l : ℕ) × { s // s.card = l } → F :=
  fun s => ((p.changeOriginSeriesTerm s.fst s.snd.fst ↑s.snd.snd ⋯) fun x_1 => x) fun x => y
hsf : Summable f
k : ℕ
this : HasSum (fun n => (p.changeOriginSeries k n) fun x_1 => x) (p.changeOrigin x k)
s : (b : ℕ) × { s // s.card = b }
⊢ ‖p.changeOriginSeriesTerm k s.fst ↑s.snd ⋯‖₊ * ∏ i : Fin s.fst, ‖x‖₊ = ‖p (k + s.fst)‖₊ * ‖x‖₊ ^ s.fst

Tactic:
simp

Result:
no goals

Proof state:
𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁵ : NontriviallyNormedField 𝕜
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace 𝕜 E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace 𝕜 F
inst✝ : CompleteSpace F
p : FormalMultilinearSeries 𝕜 E F
x y : E
h : ↑‖x‖₊ + ↑‖y‖₊ < p.radius
radius_pos : 0 < p.radius
x_mem_ball : x ∈ EMetric.ball 0 p.radius
⊢ (p.changeOrigin x).sum y = p.sum (x + y)

Tactic:
have y_mem_ball : y ∈ EMetric.ball (0 : E) (p.changeOrigin x).radius := by
  refine mem_emetric_ball_zero_iff.2 (lt_of_lt_of_le ?_ p.changeOrigin_radius)
  rwa [lt_tsub_iff_right, add_comm]

Result:
𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁵ : NontriviallyNormedField 𝕜
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace 𝕜 E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace 𝕜 F
inst✝ : CompleteSpace F
p : FormalMultilinearSeries 𝕜 E F
x y : E
h : ↑‖x‖₊ + ↑‖y‖₊ < p.radius
radius_pos : 0 < p.radius
x_mem_ball : x ∈ EMetric.ball 0 p.radius
y_mem_ball : y ∈ EMetric.ball 0 (p.changeOrigin x).radius
⊢ (p.changeOrigin x).sum y = p.sum (x + y)

Proof state:
case mk.mk.mk
𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁵ : NontriviallyNormedField 𝕜
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace 𝕜 E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace 𝕜 F
inst✝ : CompleteSpace F
p : FormalMultilinearSeries 𝕜 E F
x y : E
h : ↑‖x‖₊ + ↑‖y‖₊ < p.radius
radius_pos : 0 < p.radius
x_mem_ball : x ∈ EMetric.ball 0 p.radius
y_mem_ball : y ∈ EMetric.ball 0 (p.changeOrigin x).radius
x_add_y_mem_ball : x + y ∈ EMetric.ball 0 p.radius
f : (k : ℕ) × (l : ℕ) × { s // s.card = l } → F :=
  fun s => ((p.changeOriginSeriesTerm s.fst s.snd.fst ↑s.snd.snd ⋯) fun x_1 => x) fun x => y
k l : ℕ
s : Finset (Fin (k + l))
hs : s.card = l
⊢ ‖f ⟨k, ⟨l, ⟨s, hs⟩⟩⟩‖₊ ≤
    ‖p (⟨k, ⟨l, ⟨s, hs⟩⟩⟩.fst + ⟨k, ⟨l, ⟨s, hs⟩⟩⟩.snd.fst)‖₊ * ‖x‖₊ ^ ⟨k, ⟨l, ⟨s, hs⟩⟩⟩.snd.fst *
      ‖y‖₊ ^ ⟨k, ⟨l, ⟨s, hs⟩⟩⟩.fst

Tactic:
dsimp only [Subtype.coe_mk]

Result:
case mk.mk.mk
𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁵ : NontriviallyNormedField 𝕜
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace 𝕜 E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace 𝕜 F
inst✝ : CompleteSpace F
p : FormalMultilinearSeries 𝕜 E F
x y : E
h : ↑‖x‖₊ + ↑‖y‖₊ < p.radius
radius_pos : 0 < p.radius
x_mem_ball : x ∈ EMetric.ball 0 p.radius
y_mem_ball : y ∈ EMetric.ball 0 (p.changeOrigin x).radius
x_add_y_mem_ball : x + y ∈ EMetric.ball 0 p.radius
f : (k : ℕ) × (l : ℕ) × { s // s.card = l } → F :=
  fun s => ((p.changeOriginSeriesTerm s.fst s.snd.fst ↑s.snd.snd ⋯) fun x_1 => x) fun x => y
k l : ℕ
s : Finset (Fin (k + l))
hs : s.card = l
⊢ ‖f ⟨k, ⟨l, ⟨s, hs⟩⟩⟩‖₊ ≤ ‖p (k + l)‖₊ * ‖x‖₊ ^ l * ‖y‖₊ ^ k

Proof state:
𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁵ : NontriviallyNormedField 𝕜
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace 𝕜 E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace 𝕜 F
inst✝ : CompleteSpace F
p : FormalMultilinearSeries 𝕜 E F
x y : E
h : ↑‖x‖₊ + ↑‖y‖₊ < p.radius
radius_pos : 0 < p.radius
x_mem_ball : x ∈ EMetric.ball 0 p.radius
y_mem_ball : y ∈ EMetric.ball 0 (p.changeOrigin x).radius
⊢ (p.changeOrigin x).sum y = p.sum (x + y)

Tactic:
have x_add_y_mem_ball : x + y ∈ EMetric.ball (0 : E) p.radius := by
  refine mem_emetric_ball_zero_iff.2 (lt_of_le_of_lt ?_ h)
  exact mod_cast nnnorm_add_le x y

Result:
𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁵ : NontriviallyNormedField 𝕜
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace 𝕜 E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace 𝕜 F
inst✝ : CompleteSpace F
p : FormalMultilinearSeries 𝕜 E F
x y : E
h : ↑‖x‖₊ + ↑‖y‖₊ < p.radius
radius_pos : 0 < p.radius
x_mem_ball : x ∈ EMetric.ball 0 p.radius
y_mem_ball : y ∈ EMetric.ball 0 (p.changeOrigin x).radius
x_add_y_mem_ball : x + y ∈ EMetric.ball 0 p.radius
⊢ (p.changeOrigin x).sum y = p.sum (x + y)