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

tactic: refine' ENNReal.le_of_forall_pos_nnreal_lt fun r _h0 hr => _
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type ?u.1839839
inst✝⁶ : NontriviallyNormedField 𝕜
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
inst✝¹ : NormedAddCommGroup G
inst✝ : NormedSpace 𝕜 G
p : FormalMultilinearSeries 𝕜 E F
x y : E
r R : ℝ≥0
⊢ radius p - ↑‖x‖₊ ≤ radius (changeOrigin p x)

tactic: rw [lt_tsub_iff_right, add_comm] at hr
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type ?u.1839839
inst✝⁶ : NontriviallyNormedField 𝕜
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
inst✝¹ : NormedAddCommGroup G
inst✝ : NormedSpace 𝕜 G
p : FormalMultilinearSeries 𝕜 E F
x y : E
r✝ R r : ℝ≥0
_h0 : 0 < r
hr : ↑r < radius p - ↑‖x‖₊
⊢ ↑r ≤ radius (changeOrigin p x)

tactic: have hr' : (‖x‖₊ : ℝ≥0∞) < p.radius := (le_add_right le_rfl).trans_lt hr
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type ?u.1839839
inst✝⁶ : NontriviallyNormedField 𝕜
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
inst✝¹ : NormedAddCommGroup G
inst✝ : NormedSpace 𝕜 G
p : FormalMultilinearSeries 𝕜 E F
x y : E
r✝ R r : ℝ≥0
_h0 : 0 < r
hr✝ : ↑r < radius p - ↑‖x‖₊
hr : ↑‖x‖₊ + ↑r < radius p
⊢ ↑r ≤ radius (changeOrigin p x)

tactic: apply le_radius_of_summable_nnnorm
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type ?u.1839839
inst✝⁶ : NontriviallyNormedField 𝕜
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
inst✝¹ : NormedAddCommGroup G
inst✝ : NormedSpace 𝕜 G
p : FormalMultilinearSeries 𝕜 E F
x y : E
r✝ R r : ℝ≥0
_h0 : 0 < r
hr✝ : ↑r < radius p - ↑‖x‖₊
hr : ↑‖x‖₊ + ↑r < radius p
hr' : ↑‖x‖₊ < radius p
⊢ ↑r ≤ radius (changeOrigin p x)

tactic: have : ∀ k : ℕ,
    ‖p.changeOrigin x k‖₊ * r ^ k ≤
      (∑' s : Σl : ℕ, { s : Finset (Fin (k + l)) // s.card = l }, ‖p (k + s.1)‖₊ * ‖x‖₊ ^ s.1) *
        r ^ k :=
  fun k => mul_le_mul_right' (p.nnnorm_changeOrigin_le k hr') (r ^ k)
state_before: case h
𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type ?u.1839839
inst✝⁶ : NontriviallyNormedField 𝕜
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
inst✝¹ : NormedAddCommGroup G
inst✝ : NormedSpace 𝕜 G
p : FormalMultilinearSeries 𝕜 E F
x y : E
r✝ R r : ℝ≥0
_h0 : 0 < r
hr✝ : ↑r < radius p - ↑‖x‖₊
hr : ↑‖x‖₊ + ↑r < radius p
hr' : ↑‖x‖₊ < radius p
⊢ Summable fun n => ‖changeOrigin p x n‖₊ * r ^ n

tactic: refine' NNReal.summable_of_le this _
state_before: case h
𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type ?u.1839839
inst✝⁶ : NontriviallyNormedField 𝕜
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
inst✝¹ : NormedAddCommGroup G
inst✝ : NormedSpace 𝕜 G
p : FormalMultilinearSeries 𝕜 E F
x y : E
r✝ R r : ℝ≥0
_h0 : 0 < r
hr✝ : ↑r < radius p - ↑‖x‖₊
hr : ↑‖x‖₊ + ↑r < radius p
hr' : ↑‖x‖₊ < radius p
this :
  ∀ (k : ℕ),
    ‖changeOrigin p x k‖₊ * r ^ k ≤
      (∑' (s : (l : ℕ) × { s // Finset.card s = l }), ‖p (k + s.fst)‖₊ * ‖x‖₊ ^ s.fst) * r ^ k
⊢ Summable fun n => ‖changeOrigin p x n‖₊ * r ^ n

tactic: simpa only [← NNReal.tsum_mul_right] using
  (NNReal.summable_sigma.1 (p.changeOriginSeries_summable_aux₁ hr)).2
state_before: case h
𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type ?u.1839839
inst✝⁶ : NontriviallyNormedField 𝕜
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
inst✝¹ : NormedAddCommGroup G
inst✝ : NormedSpace 𝕜 G
p : FormalMultilinearSeries 𝕜 E F
x y : E
r✝ R r : ℝ≥0
_h0 : 0 < r
hr✝ : ↑r < radius p - ↑‖x‖₊
hr : ↑‖x‖₊ + ↑r < radius p
hr' : ↑‖x‖₊ < radius p
this :
  ∀ (k : ℕ),
    ‖changeOrigin p x k‖₊ * r ^ k ≤
      (∑' (s : (l : ℕ) × { s // Finset.card s = l }), ‖p (k + s.fst)‖₊ * ‖x‖₊ ^ s.fst) * r ^ k
⊢ Summable fun b => (∑' (s : (l : ℕ) × { s // Finset.card s = l }), ‖p (b + s.fst)‖₊ * ‖x‖₊ ^ s.fst) * r ^ b