Theorem: FormalMultilinearSeries.changeOrigin_eval
File: Mathlib/Analysis/Analytic/Basic.lean

tactic: have radius_pos : 0 < p.radius := lt_of_le_of_lt (zero_le _) h
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace 𝕜 F
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedSpace 𝕜 G
inst✝ : CompleteSpace F
p : FormalMultilinearSeries 𝕜 E F
x y : E
r R : ℝ≥0
h : ↑‖x‖₊ + ↑‖y‖₊ < p.radius
⊢ (p.changeOrigin x).sum y = p.sum (x + y)
state_after: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace 𝕜 F
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedSpace 𝕜 G
inst✝ : CompleteSpace F
p : FormalMultilinearSeries 𝕜 E F
x y : E
r R : ℝ≥0
h : ↑‖x‖₊ + ↑‖y‖₊ < p.radius
radius_pos : 0 < p.radius
⊢ (p.changeOrigin x).sum y = p.sum (x + y)

tactic: have x_mem_ball : x ∈ EMetric.ball (0 : E) p.radius :=
  mem_emetric_ball_zero_iff.2 ((le_add_right le_rfl).trans_lt h)
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace 𝕜 F
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedSpace 𝕜 G
inst✝ : CompleteSpace F
p : FormalMultilinearSeries 𝕜 E F
x y : E
r R : ℝ≥0
h : ↑‖x‖₊ + ↑‖y‖₊ < p.radius
radius_pos : 0 < p.radius
⊢ (p.changeOrigin x).sum y = p.sum (x + y)
state_after: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace 𝕜 F
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedSpace 𝕜 G
inst✝ : CompleteSpace F
p : FormalMultilinearSeries 𝕜 E F
x y : E
r R : ℝ≥0
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]
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace 𝕜 F
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedSpace 𝕜 G
inst✝ : CompleteSpace F
p : FormalMultilinearSeries 𝕜 E F
x y : E
r R : ℝ≥0
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)
state_after: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace 𝕜 F
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedSpace 𝕜 G
inst✝ : CompleteSpace F
p : FormalMultilinearSeries 𝕜 E F
x y : E
r R : ℝ≥0
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
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace 𝕜 F
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedSpace 𝕜 G
inst✝ : CompleteSpace F
p : FormalMultilinearSeries 𝕜 E F
x y : E
r R : ℝ≥0
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)
state_after: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace 𝕜 F
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedSpace 𝕜 G
inst✝ : CompleteSpace F
p : FormalMultilinearSeries 𝕜 E F
x y : E
r R : ℝ≥0
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)

tactic: set f : (Σ k l : ℕ, { s : Finset (Fin (k + l)) // s.card = l }) → F := fun s =>
  p.changeOriginSeriesTerm s.1 s.2.1 s.2.2 s.2.2.2 (fun _ => x) fun _ => y
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace 𝕜 F
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedSpace 𝕜 G
inst✝ : CompleteSpace F
p : FormalMultilinearSeries 𝕜 E F
x y : E
r R : ℝ≥0
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)
state_after: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace 𝕜 F
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedSpace 𝕜 G
inst✝ : CompleteSpace F
p : FormalMultilinearSeries 𝕜 E F
x y : E
r R : ℝ≥0
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
⊢ (p.changeOrigin x).sum y = p.sum (x + y)

tactic: have hsf : Summable f := by
  refine .of_nnnorm_bounded _ (p.changeOriginSeries_summable_aux₁ h) ?_
  rintro ⟨k, l, s, hs⟩
  dsimp only [Subtype.coe_mk]
  exact p.nnnorm_changeOriginSeriesTerm_apply_le _ _ _ _ _ _
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace 𝕜 F
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedSpace 𝕜 G
inst✝ : CompleteSpace F
p : FormalMultilinearSeries 𝕜 E F
x y : E
r R : ℝ≥0
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
⊢ (p.changeOrigin x).sum y = p.sum (x + y)
state_after: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace 𝕜 F
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedSpace 𝕜 G
inst✝ : CompleteSpace F
p : FormalMultilinearSeries 𝕜 E F
x y : E
r R : ℝ≥0
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
⊢ (p.changeOrigin x).sum y = p.sum (x + y)

tactic: refine hf.unique (changeOriginIndexEquiv.symm.hasSum_iff.1 ?_)
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace 𝕜 F
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedSpace 𝕜 G
inst✝ : CompleteSpace F
p : FormalMultilinearSeries 𝕜 E F
x y : E
r R : ℝ≥0
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
hf : HasSum f ((p.changeOrigin x).sum y)
⊢ (p.changeOrigin x).sum y = p.sum (x + y)
state_after: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace 𝕜 F
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedSpace 𝕜 G
inst✝ : CompleteSpace F
p : FormalMultilinearSeries 𝕜 E F
x y : E
r R : ℝ≥0
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
hf : HasSum f ((p.changeOrigin x).sum y)
⊢ HasSum (f ∘ ⇑changeOriginIndexEquiv.symm) (p.sum (x + y))

tactic: refine HasSum.sigma_of_hasSum
  (p.hasSum x_add_y_mem_ball) (fun n => ?_) (changeOriginIndexEquiv.symm.summable_iff.2 hsf)
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace 𝕜 F
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedSpace 𝕜 G
inst✝ : CompleteSpace F
p : FormalMultilinearSeries 𝕜 E F
x y : E
r R : ℝ≥0
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
hf : HasSum f ((p.changeOrigin x).sum y)
⊢ HasSum (f ∘ ⇑changeOriginIndexEquiv.symm) (p.sum (x + y))
state_after: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace 𝕜 F
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedSpace 𝕜 G
inst✝ : CompleteSpace F
p : FormalMultilinearSeries 𝕜 E F
x y : E
r R : ℝ≥0
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
hf : HasSum f ((p.changeOrigin x).sum y)
n : ℕ
⊢ HasSum (fun c => (f ∘ ⇑changeOriginIndexEquiv.symm) ⟨n, c⟩) ((p n) fun x_1 => x + y)

tactic: erw [(p n).map_add_univ (fun _ => x) fun _ => y]
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace 𝕜 F
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedSpace 𝕜 G
inst✝ : CompleteSpace F
p : FormalMultilinearSeries 𝕜 E F
x y : E
r R : ℝ≥0
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
hf : HasSum f ((p.changeOrigin x).sum y)
n : ℕ
⊢ HasSum (fun c => (f ∘ ⇑changeOriginIndexEquiv.symm) ⟨n, c⟩) ((p n) fun x_1 => x + y)
state_after: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace 𝕜 F
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedSpace 𝕜 G
inst✝ : CompleteSpace F
p : FormalMultilinearSeries 𝕜 E F
x y : E
r R : ℝ≥0
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
hf : HasSum f ((p.changeOrigin x).sum y)
n : ℕ
⊢ HasSum (fun c => (f ∘ ⇑changeOriginIndexEquiv.symm) ⟨n, c⟩)
    (∑ s : Finset (Fin n), (p n) (s.piecewise (fun x_1 => x) fun x => y))

tactic: simp_rw [← changeOriginSeriesTerm_changeOriginIndexEquiv_symm]
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace 𝕜 F
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedSpace 𝕜 G
inst✝ : CompleteSpace F
p : FormalMultilinearSeries 𝕜 E F
x y : E
r R : ℝ≥0
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
hf : HasSum f ((p.changeOrigin x).sum y)
n : ℕ
⊢ HasSum (fun c => (f ∘ ⇑changeOriginIndexEquiv.symm) ⟨n, c⟩)
    (∑ s : Finset (Fin n), (p n) (s.piecewise (fun x_1 => x) fun x => y))
state_after: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace 𝕜 F
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedSpace 𝕜 G
inst✝ : CompleteSpace F
p : FormalMultilinearSeries 𝕜 E F
x y : E
r R : ℝ≥0
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
hf : HasSum f ((p.changeOrigin x).sum y)
n : ℕ
⊢ HasSum (fun c => (f ∘ ⇑changeOriginIndexEquiv.symm) ⟨n, c⟩)
    (∑ x_1 : Finset (Fin n),
      ((p.changeOriginSeriesTerm (changeOriginIndexEquiv.symm ⟨n, x_1⟩).fst
            (changeOriginIndexEquiv.symm ⟨n, x_1⟩).snd.fst ↑(changeOriginIndexEquiv.symm ⟨n, x_1⟩).snd.snd ⋯)
          fun x_2 => x)
        fun x => y)

tactic: exact hasSum_fintype (fun c => f (changeOriginIndexEquiv.symm ⟨n, c⟩))
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace 𝕜 F
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedSpace 𝕜 G
inst✝ : CompleteSpace F
p : FormalMultilinearSeries 𝕜 E F
x y : E
r R : ℝ≥0
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
hf : HasSum f ((p.changeOrigin x).sum y)
n : ℕ
⊢ HasSum (fun c => (f ∘ ⇑changeOriginIndexEquiv.symm) ⟨n, c⟩)
    (∑ x_1 : Finset (Fin n),
      ((p.changeOriginSeriesTerm (changeOriginIndexEquiv.symm ⟨n, x_1⟩).fst
            (changeOriginIndexEquiv.symm ⟨n, x_1⟩).snd.fst ↑(changeOriginIndexEquiv.symm ⟨n, x_1⟩).snd.snd ⋯)
          fun x_2 => x)
        fun x => y)
state_after: no goals

tactic: refine mem_emetric_ball_zero_iff.2 (lt_of_lt_of_le ?_ p.changeOrigin_radius)
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace 𝕜 F
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedSpace 𝕜 G
inst✝ : CompleteSpace F
p : FormalMultilinearSeries 𝕜 E F
x y : E
r R : ℝ≥0
h : ↑‖x‖₊ + ↑‖y‖₊ < p.radius
radius_pos : 0 < p.radius
x_mem_ball : x ∈ EMetric.ball 0 p.radius
⊢ y ∈ EMetric.ball 0 (p.changeOrigin x).radius
state_after: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace 𝕜 F
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedSpace 𝕜 G
inst✝ : CompleteSpace F
p : FormalMultilinearSeries 𝕜 E F
x y : E
r R : ℝ≥0
h : ↑‖x‖₊ + ↑‖y‖₊ < p.radius
radius_pos : 0 < p.radius
x_mem_ball : x ∈ EMetric.ball 0 p.radius
⊢ ↑‖y‖₊ < p.radius - ↑‖x‖₊

tactic: rwa [lt_tsub_iff_right, add_comm]
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace 𝕜 F
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedSpace 𝕜 G
inst✝ : CompleteSpace F
p : FormalMultilinearSeries 𝕜 E F
x y : E
r R : ℝ≥0
h : ↑‖x‖₊ + ↑‖y‖₊ < p.radius
radius_pos : 0 < p.radius
x_mem_ball : x ∈ EMetric.ball 0 p.radius
⊢ ↑‖y‖₊ < p.radius - ↑‖x‖₊
state_after: no goals

tactic: refine mem_emetric_ball_zero_iff.2 (lt_of_le_of_lt ?_ h)
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace 𝕜 F
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedSpace 𝕜 G
inst✝ : CompleteSpace F
p : FormalMultilinearSeries 𝕜 E F
x y : E
r R : ℝ≥0
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 + y ∈ EMetric.ball 0 p.radius
state_after: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace 𝕜 F
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedSpace 𝕜 G
inst✝ : CompleteSpace F
p : FormalMultilinearSeries 𝕜 E F
x y : E
r R : ℝ≥0
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 + y‖₊ ≤ ↑‖x‖₊ + ↑‖y‖₊

tactic: exact mod_cast nnnorm_add_le x y
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace 𝕜 F
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedSpace 𝕜 G
inst✝ : CompleteSpace F
p : FormalMultilinearSeries 𝕜 E F
x y : E
r R : ℝ≥0
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 + y‖₊ ≤ ↑‖x‖₊ + ↑‖y‖₊
state_after: no goals

tactic: refine .of_nnnorm_bounded _ (p.changeOriginSeries_summable_aux₁ h) ?_
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace 𝕜 F
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedSpace 𝕜 G
inst✝ : CompleteSpace F
p : FormalMultilinearSeries 𝕜 E F
x y : E
r R : ℝ≥0
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
⊢ Summable f
state_after: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace 𝕜 F
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedSpace 𝕜 G
inst✝ : CompleteSpace F
p : FormalMultilinearSeries 𝕜 E F
x y : E
r R : ℝ≥0
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
⊢ ∀ (i : (k : ℕ) × (l : ℕ) × { s // s.card = l }), ‖f i‖₊ ≤ ‖p (i.fst + i.snd.fst)‖₊ * ‖x‖₊ ^ i.snd.fst * ‖y‖₊ ^ i.fst

tactic: rintro ⟨k, l, s, hs⟩
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace 𝕜 F
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedSpace 𝕜 G
inst✝ : CompleteSpace F
p : FormalMultilinearSeries 𝕜 E F
x y : E
r R : ℝ≥0
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
⊢ ∀ (i : (k : ℕ) × (l : ℕ) × { s // s.card = l }), ‖f i‖₊ ≤ ‖p (i.fst + i.snd.fst)‖₊ * ‖x‖₊ ^ i.snd.fst * ‖y‖₊ ^ i.fst
state_after: case mk.mk.mk
𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace 𝕜 F
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedSpace 𝕜 G
inst✝ : CompleteSpace F
p : FormalMultilinearSeries 𝕜 E F
x y : E
r R : ℝ≥0
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]
state_before: case mk.mk.mk
𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace 𝕜 F
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedSpace 𝕜 G
inst✝ : CompleteSpace F
p : FormalMultilinearSeries 𝕜 E F
x y : E
r R : ℝ≥0
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
state_after: case mk.mk.mk
𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace 𝕜 F
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedSpace 𝕜 G
inst✝ : CompleteSpace F
p : FormalMultilinearSeries 𝕜 E F
x y : E
r R : ℝ≥0
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

tactic: exact p.nnnorm_changeOriginSeriesTerm_apply_le _ _ _ _ _ _
state_before: case mk.mk.mk
𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace 𝕜 F
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedSpace 𝕜 G
inst✝ : CompleteSpace F
p : FormalMultilinearSeries 𝕜 E F
x y : E
r R : ℝ≥0
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
state_after: no goals

tactic: refine HasSum.sigma_of_hasSum ((p.changeOrigin x).summable y_mem_ball).hasSum (fun k => ?_) hsf
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace 𝕜 F
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedSpace 𝕜 G
inst✝ : CompleteSpace F
p : FormalMultilinearSeries 𝕜 E F
x y : E
r R : ℝ≥0
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
⊢ HasSum f ((p.changeOrigin x).sum y)
state_after: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace 𝕜 F
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedSpace 𝕜 G
inst✝ : CompleteSpace F
p : FormalMultilinearSeries 𝕜 E F
x y : E
r R : ℝ≥0
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 : ℕ
⊢ HasSum (fun c => f ⟨k, c⟩) ((p.changeOrigin x k) fun x => y)

tactic: dsimp only [f]
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace 𝕜 F
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedSpace 𝕜 G
inst✝ : CompleteSpace F
p : FormalMultilinearSeries 𝕜 E F
x y : E
r R : ℝ≥0
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 : ℕ
⊢ HasSum (fun c => f ⟨k, c⟩) ((p.changeOrigin x k) fun x => y)
state_after: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace 𝕜 F
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedSpace 𝕜 G
inst✝ : CompleteSpace F
p : FormalMultilinearSeries 𝕜 E F
x y : E
r R : ℝ≥0
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 : ℕ
⊢ HasSum (fun c => ((p.changeOriginSeriesTerm k c.fst ↑c.snd ⋯) fun x_1 => x) fun x => y)
    ((p.changeOrigin x k) fun x => y)

tactic: refine ContinuousMultilinearMap.hasSum_eval ?_ _
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace 𝕜 F
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedSpace 𝕜 G
inst✝ : CompleteSpace F
p : FormalMultilinearSeries 𝕜 E F
x y : E
r R : ℝ≥0
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 : ℕ
⊢ HasSum (fun c => ((p.changeOriginSeriesTerm k c.fst ↑c.snd ⋯) fun x_1 => x) fun x => y)
    ((p.changeOrigin x k) fun x => y)
state_after: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace 𝕜 F
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedSpace 𝕜 G
inst✝ : CompleteSpace F
p : FormalMultilinearSeries 𝕜 E F
x y : E
r R : ℝ≥0
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 : ℕ
⊢ HasSum (fun c => (p.changeOriginSeriesTerm k c.fst ↑c.snd ⋯) fun x_1 => x) (p.changeOrigin x k)

tactic: have := (p.hasFPowerSeriesOnBall_changeOrigin k radius_pos).hasSum x_mem_ball
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace 𝕜 F
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedSpace 𝕜 G
inst✝ : CompleteSpace F
p : FormalMultilinearSeries 𝕜 E F
x y : E
r R : ℝ≥0
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 : ℕ
⊢ HasSum (fun c => (p.changeOriginSeriesTerm k c.fst ↑c.snd ⋯) fun x_1 => x) (p.changeOrigin x k)
state_after: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace 𝕜 F
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedSpace 𝕜 G
inst✝ : CompleteSpace F
p : FormalMultilinearSeries 𝕜 E F
x y : E
r R : ℝ≥0
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 (0 + x) k)
⊢ HasSum (fun c => (p.changeOriginSeriesTerm k c.fst ↑c.snd ⋯) fun x_1 => x) (p.changeOrigin x k)

tactic: rw [zero_add] at this
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace 𝕜 F
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedSpace 𝕜 G
inst✝ : CompleteSpace F
p : FormalMultilinearSeries 𝕜 E F
x y : E
r R : ℝ≥0
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 (0 + x) k)
⊢ HasSum (fun c => (p.changeOriginSeriesTerm k c.fst ↑c.snd ⋯) fun x_1 => x) (p.changeOrigin x k)
state_after: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace 𝕜 F
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedSpace 𝕜 G
inst✝ : CompleteSpace F
p : FormalMultilinearSeries 𝕜 E F
x y : E
r R : ℝ≥0
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 => ?_) ?_
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace 𝕜 F
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedSpace 𝕜 G
inst✝ : CompleteSpace F
p : FormalMultilinearSeries 𝕜 E F
x y : E
r R : ℝ≥0
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)
state_after: case refine_1
𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace 𝕜 F
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedSpace 𝕜 G
inst✝ : CompleteSpace F
p : FormalMultilinearSeries 𝕜 E F
x y : E
r R : ℝ≥0
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
G : Type u_4
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace 𝕜 F
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedSpace 𝕜 G
inst✝ : CompleteSpace F
p : FormalMultilinearSeries 𝕜 E F
x y : E
r R : ℝ≥0
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

tactic: simp only [changeOriginSeries, ContinuousMultilinearMap.sum_apply]
state_before: case refine_1
𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace 𝕜 F
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedSpace 𝕜 G
inst✝ : CompleteSpace F
p : FormalMultilinearSeries 𝕜 E F
x y : E
r R : ℝ≥0
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)
state_after: case refine_1
𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace 𝕜 F
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedSpace 𝕜 G
inst✝ : CompleteSpace F
p : FormalMultilinearSeries 𝕜 E F
x y : E
r R : ℝ≥0
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 ⋯) fun x_1 => x)
    (∑ a : { s // s.card = l }, (p.changeOriginSeriesTerm k l ↑a ⋯) fun x_1 => x)

tactic: apply hasSum_fintype
state_before: case refine_1
𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace 𝕜 F
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedSpace 𝕜 G
inst✝ : CompleteSpace F
p : FormalMultilinearSeries 𝕜 E F
x y : E
r R : ℝ≥0
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 ⋯) fun x_1 => x)
    (∑ a : { s // s.card = l }, (p.changeOriginSeriesTerm k l ↑a ⋯) fun x_1 => x)
state_after: no goals

tactic: refine .of_nnnorm_bounded _
  (p.changeOriginSeries_summable_aux₂ (mem_emetric_ball_zero_iff.1 x_mem_ball) k)
    fun s => ?_
state_before: case refine_2
𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace 𝕜 F
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedSpace 𝕜 G
inst✝ : CompleteSpace F
p : FormalMultilinearSeries 𝕜 E F
x y : E
r R : ℝ≥0
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
state_after: case refine_2
𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace 𝕜 F
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedSpace 𝕜 G
inst✝ : CompleteSpace F
p : FormalMultilinearSeries 𝕜 E F
x y : E
r R : ℝ≥0
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 ⋯) fun x_1 => x‖₊ ≤ ‖p (k + s.fst)‖₊ * ‖x‖₊ ^ s.fst

tactic: refine (ContinuousMultilinearMap.le_opNNNorm _ _).trans_eq ?_
state_before: case refine_2
𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace 𝕜 F
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedSpace 𝕜 G
inst✝ : CompleteSpace F
p : FormalMultilinearSeries 𝕜 E F
x y : E
r R : ℝ≥0
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 ⋯) fun x_1 => x‖₊ ≤ ‖p (k + s.fst)‖₊ * ‖x‖₊ ^ s.fst
state_after: case refine_2
𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace 𝕜 F
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedSpace 𝕜 G
inst✝ : CompleteSpace F
p : FormalMultilinearSeries 𝕜 E F
x y : E
r R : ℝ≥0
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
state_before: case refine_2
𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace 𝕜 F
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedSpace 𝕜 G
inst✝ : CompleteSpace F
p : FormalMultilinearSeries 𝕜 E F
x y : E
r R : ℝ≥0
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
state_after: no goals