[GOAL]
n : ℕ
c : { c // Composition.length c < n + 2 }
⊢ (invImage (fun a => sizeOf a) instWellFoundedRelation).1 (Composition.length ↑c) (Nat.succ (Nat.succ n))
[PROOFSTEP]
exact c.2
[GOAL]
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
⊢ leftInv p i 0 = 0
[PROOFSTEP]
rw [leftInv]
[GOAL]
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
⊢ leftInv p i 1 = ↑(LinearIsometryEquiv.symm (continuousMultilinearCurryFin1 𝕜 F E)) ↑(ContinuousLinearEquiv.symm i)
[PROOFSTEP]
rw [leftInv]
[GOAL]
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
⊢ leftInv (removeZero p) i = leftInv p i
[PROOFSTEP]
ext1 n
[GOAL]
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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
n : ℕ
⊢ leftInv (removeZero p) i n = leftInv p i n
[PROOFSTEP]
induction' n using Nat.strongRec' with n IH
[GOAL]
case h.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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
n : ℕ
IH : ∀ (m : ℕ), m < n → leftInv (removeZero p) i m = leftInv p i m
⊢ leftInv (removeZero p) i n = leftInv p i n
[PROOFSTEP]
match n with
| 0 =>
  simp
    -- if one replaces `simp` with `refl`, the proof times out in the kernel.
| 1 =>
  simp
    -- TODO: why?
| n + 2 =>
  simp only [leftInv, neg_inj]
  refine' Finset.sum_congr rfl fun c cuniv => _
  rcases c with ⟨c, hc⟩
  ext v
  dsimp
  simp [IH _ hc]
[GOAL]
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
n : ℕ
IH : ∀ (m : ℕ), m < 0 → leftInv (removeZero p) i m = leftInv p i m
⊢ leftInv (removeZero p) i 0 = leftInv p i 0
[PROOFSTEP]
simp
  -- if one replaces `simp` with `refl`, the proof times out in the kernel.
[GOAL]
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
n : ℕ
IH : ∀ (m : ℕ), m < 1 → leftInv (removeZero p) i m = leftInv p i m
⊢ leftInv (removeZero p) i 1 = leftInv p i 1
[PROOFSTEP]
simp
  -- TODO: why?
[GOAL]
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
n✝ n : ℕ
IH : ∀ (m : ℕ), m < n + 2 → leftInv (removeZero p) i m = leftInv p i m
⊢ leftInv (removeZero p) i (n + 2) = leftInv p i (n + 2)
[PROOFSTEP]
simp only [leftInv, neg_inj]
[GOAL]
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
n✝ n : ℕ
IH : ∀ (m : ℕ), m < n + 2 → leftInv (removeZero p) i m = leftInv p i m
⊢ ∑ c : { c // Composition.length c < n + 2 },
      ContinuousMultilinearMap.compAlongComposition
        (compContinuousLinearMap (removeZero p) ↑(ContinuousLinearEquiv.symm i)) (↑c)
        (leftInv (removeZero p) i (Composition.length ↑c)) =
    ∑ c : { c // Composition.length c < n + 2 },
      ContinuousMultilinearMap.compAlongComposition (compContinuousLinearMap p ↑(ContinuousLinearEquiv.symm i)) (↑c)
        (leftInv p i (Composition.length ↑c))
[PROOFSTEP]
refine' Finset.sum_congr rfl fun c cuniv => _
[GOAL]
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
n✝ n : ℕ
IH : ∀ (m : ℕ), m < n + 2 → leftInv (removeZero p) i m = leftInv p i m
c : { c // Composition.length c < n + 2 }
cuniv : c ∈ univ
⊢ ContinuousMultilinearMap.compAlongComposition (compContinuousLinearMap (removeZero p) ↑(ContinuousLinearEquiv.symm i))
      (↑c) (leftInv (removeZero p) i (Composition.length ↑c)) =
    ContinuousMultilinearMap.compAlongComposition (compContinuousLinearMap p ↑(ContinuousLinearEquiv.symm i)) (↑c)
      (leftInv p i (Composition.length ↑c))
[PROOFSTEP]
rcases c with ⟨c, hc⟩
[GOAL]
case mk
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
n✝ n : ℕ
IH : ∀ (m : ℕ), m < n + 2 → leftInv (removeZero p) i m = leftInv p i m
c : Composition (n + 2)
hc : Composition.length c < n + 2
cuniv : { val := c, property := hc } ∈ univ
⊢ ContinuousMultilinearMap.compAlongComposition (compContinuousLinearMap (removeZero p) ↑(ContinuousLinearEquiv.symm i))
      (↑{ val := c, property := hc }) (leftInv (removeZero p) i (Composition.length ↑{ val := c, property := hc })) =
    ContinuousMultilinearMap.compAlongComposition (compContinuousLinearMap p ↑(ContinuousLinearEquiv.symm i))
      (↑{ val := c, property := hc }) (leftInv p i (Composition.length ↑{ val := c, property := hc }))
[PROOFSTEP]
ext v
[GOAL]
case mk.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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
n✝ n : ℕ
IH : ∀ (m : ℕ), m < n + 2 → leftInv (removeZero p) i m = leftInv p i m
c : Composition (n + 2)
hc : Composition.length c < n + 2
cuniv : { val := c, property := hc } ∈ univ
v : Fin (n + 2) → F
⊢ ↑(ContinuousMultilinearMap.compAlongComposition
          (compContinuousLinearMap (removeZero p) ↑(ContinuousLinearEquiv.symm i)) (↑{ val := c, property := hc })
          (leftInv (removeZero p) i (Composition.length ↑{ val := c, property := hc })))
      v =
    ↑(ContinuousMultilinearMap.compAlongComposition (compContinuousLinearMap p ↑(ContinuousLinearEquiv.symm i))
          (↑{ val := c, property := hc }) (leftInv p i (Composition.length ↑{ val := c, property := hc })))
      v
[PROOFSTEP]
dsimp
[GOAL]
case mk.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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
n✝ n : ℕ
IH : ∀ (m : ℕ), m < n + 2 → leftInv (removeZero p) i m = leftInv p i m
c : Composition (n + 2)
hc : Composition.length c < n + 2
cuniv : { val := c, property := hc } ∈ univ
v : Fin (n + 2) → F
⊢ ↑(leftInv (removeZero p) i (Composition.length c))
      (applyComposition (compContinuousLinearMap (removeZero p) ↑(ContinuousLinearEquiv.symm i)) c v) =
    ↑(leftInv p i (Composition.length c))
      (applyComposition (compContinuousLinearMap p ↑(ContinuousLinearEquiv.symm i)) c v)
[PROOFSTEP]
simp [IH _ hc]
[GOAL]
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
h : p 1 = ↑(LinearIsometryEquiv.symm (continuousMultilinearCurryFin1 𝕜 E F)) ↑i
⊢ FormalMultilinearSeries.comp (leftInv p i) p = id 𝕜 E
[PROOFSTEP]
ext (n v)
[GOAL]
case h.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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
h : p 1 = ↑(LinearIsometryEquiv.symm (continuousMultilinearCurryFin1 𝕜 E F)) ↑i
n : ℕ
v : Fin n → E
⊢ ↑(FormalMultilinearSeries.comp (leftInv p i) p n) v = ↑(id 𝕜 E n) v
[PROOFSTEP]
match n with
| 0 =>
  simp only [leftInv_coeff_zero, ContinuousMultilinearMap.zero_apply, id_apply_ne_one, Ne.def, not_false_iff,
    zero_ne_one, comp_coeff_zero']
| 1 =>
  simp only [leftInv_coeff_one, comp_coeff_one, h, id_apply_one, ContinuousLinearEquiv.coe_apply,
    ContinuousLinearEquiv.symm_apply_apply, continuousMultilinearCurryFin1_symm_apply]
|
n +
    2 =>
  have A :
    (Finset.univ : Finset (Composition (n + 2))) =
      {c | Composition.length c < n + 2}.toFinset ∪ {Composition.ones (n + 2)} :=
    by
    refine' Subset.antisymm (fun c _ => _) (subset_univ _)
    by_cases h : c.length < n + 2
    · simp [h, Set.mem_toFinset (s := {c | Composition.length c < n + 2})]
    · simp [Composition.eq_ones_iff_le_length.2 (not_lt.1 h)]
  have B :
    Disjoint ({c | Composition.length c < n + 2} : Set (Composition (n + 2))).toFinset {Composition.ones (n + 2)} := by
    simp [Set.mem_toFinset (s := {c | Composition.length c < n + 2})]
  have C :
    ((p.leftInv i (Composition.ones (n + 2)).length) fun j : Fin (Composition.ones n.succ.succ).length =>
        p 1 fun _ => v ((Fin.castLE (Composition.length_le _)) j)) =
      p.leftInv i (n + 2) fun j : Fin (n + 2) => p 1 fun _ => v j :=
    by
    apply FormalMultilinearSeries.congr _ (Composition.ones_length _) fun j hj1 hj2 => ?_
    exact FormalMultilinearSeries.congr _ rfl fun k _ _ => by congr
  have D :
    (p.leftInv i (n + 2) fun j : Fin (n + 2) => p 1 fun _ => v j) =
      -∑ c : Composition (n + 2) in {c : Composition (n + 2) | c.length < n + 2}.toFinset,
          (p.leftInv i c.length) (p.applyComposition c v) :=
    by
    simp only [leftInv, ContinuousMultilinearMap.neg_apply, neg_inj, ContinuousMultilinearMap.sum_apply]
    convert
      (sum_toFinset_eq_subtype (fun c : Composition (n + 2) => c.length < n + 2)
            (fun c : Composition (n + 2) =>
              (ContinuousMultilinearMap.compAlongComposition (p.compContinuousLinearMap (i.symm : F →L[𝕜] E)) c
                  (p.leftInv i c.length))
                fun j : Fin (n + 2) => p 1 fun _ : Fin 1 => v j)).symm.trans
        _
    simp only [compContinuousLinearMap_applyComposition, ContinuousMultilinearMap.compAlongComposition_apply]
    congr
    ext c
    congr
    ext k
    simp [h, Function.comp]
  simp [FormalMultilinearSeries.comp, show n + 2 ≠ 1 by norm_num, A, Finset.sum_union B, applyComposition_ones, C, D,
    -Set.toFinset_setOf]
[GOAL]
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
h : p 1 = ↑(LinearIsometryEquiv.symm (continuousMultilinearCurryFin1 𝕜 E F)) ↑i
n : ℕ
v : Fin 0 → E
⊢ ↑(FormalMultilinearSeries.comp (leftInv p i) p 0) v = ↑(id 𝕜 E 0) v
[PROOFSTEP]
simp only [leftInv_coeff_zero, ContinuousMultilinearMap.zero_apply, id_apply_ne_one, Ne.def, not_false_iff, zero_ne_one,
  comp_coeff_zero']
[GOAL]
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
h : p 1 = ↑(LinearIsometryEquiv.symm (continuousMultilinearCurryFin1 𝕜 E F)) ↑i
n : ℕ
v : Fin 1 → E
⊢ ↑(FormalMultilinearSeries.comp (leftInv p i) p 1) v = ↑(id 𝕜 E 1) v
[PROOFSTEP]
simp only [leftInv_coeff_one, comp_coeff_one, h, id_apply_one, ContinuousLinearEquiv.coe_apply,
  ContinuousLinearEquiv.symm_apply_apply, continuousMultilinearCurryFin1_symm_apply]
[GOAL]
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
h : p 1 = ↑(LinearIsometryEquiv.symm (continuousMultilinearCurryFin1 𝕜 E F)) ↑i
n✝ n : ℕ
v : Fin (n + 2) → E
⊢ ↑(FormalMultilinearSeries.comp (leftInv p i) p (n + 2)) v = ↑(id 𝕜 E (n + 2)) v
[PROOFSTEP]
have A :
  (Finset.univ : Finset (Composition (n + 2))) =
    {c | Composition.length c < n + 2}.toFinset ∪ {Composition.ones (n + 2)} :=
  by
  refine' Subset.antisymm (fun c _ => _) (subset_univ _)
  by_cases h : c.length < n + 2
  · simp [h, Set.mem_toFinset (s := {c | Composition.length c < n + 2})]
  · simp [Composition.eq_ones_iff_le_length.2 (not_lt.1 h)]
[GOAL]
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
h : p 1 = ↑(LinearIsometryEquiv.symm (continuousMultilinearCurryFin1 𝕜 E F)) ↑i
n✝ n : ℕ
v : Fin (n + 2) → E
⊢ univ = Set.toFinset {c | Composition.length c < n + 2} ∪ {Composition.ones (n + 2)}
[PROOFSTEP]
refine' Subset.antisymm (fun c _ => _) (subset_univ _)
[GOAL]
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
h : p 1 = ↑(LinearIsometryEquiv.symm (continuousMultilinearCurryFin1 𝕜 E F)) ↑i
n✝ n : ℕ
v : Fin (n + 2) → E
c : Composition (n + 2)
x✝ : c ∈ univ
⊢ c ∈ Set.toFinset {c | Composition.length c < n + 2} ∪ {Composition.ones (n + 2)}
[PROOFSTEP]
by_cases h : c.length < n + 2
[GOAL]
case pos
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
h✝ : p 1 = ↑(LinearIsometryEquiv.symm (continuousMultilinearCurryFin1 𝕜 E F)) ↑i
n✝ n : ℕ
v : Fin (n + 2) → E
c : Composition (n + 2)
x✝ : c ∈ univ
h : Composition.length c < n + 2
⊢ c ∈ Set.toFinset {c | Composition.length c < n + 2} ∪ {Composition.ones (n + 2)}
[PROOFSTEP]
simp [h, Set.mem_toFinset (s := {c | Composition.length c < n + 2})]
[GOAL]
case neg
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
h✝ : p 1 = ↑(LinearIsometryEquiv.symm (continuousMultilinearCurryFin1 𝕜 E F)) ↑i
n✝ n : ℕ
v : Fin (n + 2) → E
c : Composition (n + 2)
x✝ : c ∈ univ
h : ¬Composition.length c < n + 2
⊢ c ∈ Set.toFinset {c | Composition.length c < n + 2} ∪ {Composition.ones (n + 2)}
[PROOFSTEP]
simp [Composition.eq_ones_iff_le_length.2 (not_lt.1 h)]
[GOAL]
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
h : p 1 = ↑(LinearIsometryEquiv.symm (continuousMultilinearCurryFin1 𝕜 E F)) ↑i
n✝ n : ℕ
v : Fin (n + 2) → E
A : univ = Set.toFinset {c | Composition.length c < n + 2} ∪ {Composition.ones (n + 2)}
⊢ ↑(FormalMultilinearSeries.comp (leftInv p i) p (n + 2)) v = ↑(id 𝕜 E (n + 2)) v
[PROOFSTEP]
have B :
  Disjoint ({c | Composition.length c < n + 2} : Set (Composition (n + 2))).toFinset {Composition.ones (n + 2)} := by
  simp [Set.mem_toFinset (s := {c | Composition.length c < n + 2})]
[GOAL]
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
h : p 1 = ↑(LinearIsometryEquiv.symm (continuousMultilinearCurryFin1 𝕜 E F)) ↑i
n✝ n : ℕ
v : Fin (n + 2) → E
A : univ = Set.toFinset {c | Composition.length c < n + 2} ∪ {Composition.ones (n + 2)}
⊢ Disjoint (Set.toFinset {c | Composition.length c < n + 2}) {Composition.ones (n + 2)}
[PROOFSTEP]
simp [Set.mem_toFinset (s := {c | Composition.length c < n + 2})]
[GOAL]
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
h : p 1 = ↑(LinearIsometryEquiv.symm (continuousMultilinearCurryFin1 𝕜 E F)) ↑i
n✝ n : ℕ
v : Fin (n + 2) → E
A : univ = Set.toFinset {c | Composition.length c < n + 2} ∪ {Composition.ones (n + 2)}
B : Disjoint (Set.toFinset {c | Composition.length c < n + 2}) {Composition.ones (n + 2)}
⊢ ↑(FormalMultilinearSeries.comp (leftInv p i) p (n + 2)) v = ↑(id 𝕜 E (n + 2)) v
[PROOFSTEP]
have C :
  ((p.leftInv i (Composition.ones (n + 2)).length) fun j : Fin (Composition.ones n.succ.succ).length =>
      p 1 fun _ => v ((Fin.castLE (Composition.length_le _)) j)) =
    p.leftInv i (n + 2) fun j : Fin (n + 2) => p 1 fun _ => v j :=
  by
  apply FormalMultilinearSeries.congr _ (Composition.ones_length _) fun j hj1 hj2 => ?_
  exact FormalMultilinearSeries.congr _ rfl fun k _ _ => by congr
[GOAL]
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
h : p 1 = ↑(LinearIsometryEquiv.symm (continuousMultilinearCurryFin1 𝕜 E F)) ↑i
n✝ n : ℕ
v : Fin (n + 2) → E
A : univ = Set.toFinset {c | Composition.length c < n + 2} ∪ {Composition.ones (n + 2)}
B : Disjoint (Set.toFinset {c | Composition.length c < n + 2}) {Composition.ones (n + 2)}
⊢ (↑(leftInv p i (Composition.length (Composition.ones (n + 2)))) fun j =>
      ↑(p 1) fun x => v (Fin.castLE (_ : Composition.length (Composition.ones (Nat.succ (Nat.succ n))) ≤ n + 2) j)) =
    ↑(leftInv p i (n + 2)) fun j => ↑(p 1) fun x => v j
[PROOFSTEP]
apply FormalMultilinearSeries.congr _ (Composition.ones_length _) fun j hj1 hj2 => ?_
[GOAL]
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
h : p 1 = ↑(LinearIsometryEquiv.symm (continuousMultilinearCurryFin1 𝕜 E F)) ↑i
n✝ n : ℕ
v : Fin (n + 2) → E
A : univ = Set.toFinset {c | Composition.length c < n + 2} ∪ {Composition.ones (n + 2)}
B : Disjoint (Set.toFinset {c | Composition.length c < n + 2}) {Composition.ones (n + 2)}
j : ℕ
hj1 : j < Composition.length (Composition.ones (n + 2))
hj2 : j < n + 2
⊢ (↑(p 1) fun x =>
      v
        (Fin.castLE (_ : Composition.length (Composition.ones (Nat.succ (Nat.succ n))) ≤ n + 2)
          { val := j, isLt := hj1 })) =
    ↑(p 1) fun x => v { val := j, isLt := hj2 }
[PROOFSTEP]
exact FormalMultilinearSeries.congr _ rfl fun k _ _ => by congr
[GOAL]
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
h : p 1 = ↑(LinearIsometryEquiv.symm (continuousMultilinearCurryFin1 𝕜 E F)) ↑i
n✝ n : ℕ
v : Fin (n + 2) → E
A : univ = Set.toFinset {c | Composition.length c < n + 2} ∪ {Composition.ones (n + 2)}
B : Disjoint (Set.toFinset {c | Composition.length c < n + 2}) {Composition.ones (n + 2)}
j : ℕ
hj1 : j < Composition.length (Composition.ones (n + 2))
hj2 : j < n + 2
k : ℕ
x✝¹ x✝ : k < 1
⊢ v (Fin.castLE (_ : Composition.length (Composition.ones (Nat.succ (Nat.succ n))) ≤ n + 2) { val := j, isLt := hj1 }) =
    v { val := j, isLt := hj2 }
[PROOFSTEP]
congr
[GOAL]
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
h : p 1 = ↑(LinearIsometryEquiv.symm (continuousMultilinearCurryFin1 𝕜 E F)) ↑i
n✝ n : ℕ
v : Fin (n + 2) → E
A : univ = Set.toFinset {c | Composition.length c < n + 2} ∪ {Composition.ones (n + 2)}
B : Disjoint (Set.toFinset {c | Composition.length c < n + 2}) {Composition.ones (n + 2)}
C :
  (↑(leftInv p i (Composition.length (Composition.ones (n + 2)))) fun j =>
      ↑(p 1) fun x => v (Fin.castLE (_ : Composition.length (Composition.ones (Nat.succ (Nat.succ n))) ≤ n + 2) j)) =
    ↑(leftInv p i (n + 2)) fun j => ↑(p 1) fun x => v j
⊢ ↑(FormalMultilinearSeries.comp (leftInv p i) p (n + 2)) v = ↑(id 𝕜 E (n + 2)) v
[PROOFSTEP]
have D :
  (p.leftInv i (n + 2) fun j : Fin (n + 2) => p 1 fun _ => v j) =
    -∑ c : Composition (n + 2) in {c : Composition (n + 2) | c.length < n + 2}.toFinset,
        (p.leftInv i c.length) (p.applyComposition c v) :=
  by
  simp only [leftInv, ContinuousMultilinearMap.neg_apply, neg_inj, ContinuousMultilinearMap.sum_apply]
  convert
    (sum_toFinset_eq_subtype (fun c : Composition (n + 2) => c.length < n + 2)
          (fun c : Composition (n + 2) =>
            (ContinuousMultilinearMap.compAlongComposition (p.compContinuousLinearMap (i.symm : F →L[𝕜] E)) c
                (p.leftInv i c.length))
              fun j : Fin (n + 2) => p 1 fun _ : Fin 1 => v j)).symm.trans
      _
  simp only [compContinuousLinearMap_applyComposition, ContinuousMultilinearMap.compAlongComposition_apply]
  congr
  ext c
  congr
  ext k
  simp [h, Function.comp]
[GOAL]
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
h : p 1 = ↑(LinearIsometryEquiv.symm (continuousMultilinearCurryFin1 𝕜 E F)) ↑i
n✝ n : ℕ
v : Fin (n + 2) → E
A : univ = Set.toFinset {c | Composition.length c < n + 2} ∪ {Composition.ones (n + 2)}
B : Disjoint (Set.toFinset {c | Composition.length c < n + 2}) {Composition.ones (n + 2)}
C :
  (↑(leftInv p i (Composition.length (Composition.ones (n + 2)))) fun j =>
      ↑(p 1) fun x => v (Fin.castLE (_ : Composition.length (Composition.ones (Nat.succ (Nat.succ n))) ≤ n + 2) j)) =
    ↑(leftInv p i (n + 2)) fun j => ↑(p 1) fun x => v j
⊢ (↑(leftInv p i (n + 2)) fun j => ↑(p 1) fun x => v j) =
    -∑ c in Set.toFinset {c | Composition.length c < n + 2},
        ↑(leftInv p i (Composition.length c)) (applyComposition p c v)
[PROOFSTEP]
simp only [leftInv, ContinuousMultilinearMap.neg_apply, neg_inj, ContinuousMultilinearMap.sum_apply]
[GOAL]
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
h : p 1 = ↑(LinearIsometryEquiv.symm (continuousMultilinearCurryFin1 𝕜 E F)) ↑i
n✝ n : ℕ
v : Fin (n + 2) → E
A : univ = Set.toFinset {c | Composition.length c < n + 2} ∪ {Composition.ones (n + 2)}
B : Disjoint (Set.toFinset {c | Composition.length c < n + 2}) {Composition.ones (n + 2)}
C :
  (↑(leftInv p i (Composition.length (Composition.ones (n + 2)))) fun j =>
      ↑(p 1) fun x => v (Fin.castLE (_ : Composition.length (Composition.ones (Nat.succ (Nat.succ n))) ≤ n + 2) j)) =
    ↑(leftInv p i (n + 2)) fun j => ↑(p 1) fun x => v j
⊢ (∑ x : { c // Composition.length c < n + 2 },
      ↑(ContinuousMultilinearMap.compAlongComposition (compContinuousLinearMap p ↑(ContinuousLinearEquiv.symm i)) (↑x)
            (leftInv p i (Composition.length ↑x)))
        fun j => ↑(p 1) fun x => v j) =
    ∑ x in Set.toFinset {c | Composition.length c < n + 2},
      ↑(leftInv p i (Composition.length x)) (applyComposition p x v)
[PROOFSTEP]
convert
  (sum_toFinset_eq_subtype (fun c : Composition (n + 2) => c.length < n + 2)
        (fun c : Composition (n + 2) =>
          (ContinuousMultilinearMap.compAlongComposition (p.compContinuousLinearMap (i.symm : F →L[𝕜] E)) c
              (p.leftInv i c.length))
            fun j : Fin (n + 2) => p 1 fun _ : Fin 1 => v j)).symm.trans
    _
[GOAL]
case convert_2
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
h : p 1 = ↑(LinearIsometryEquiv.symm (continuousMultilinearCurryFin1 𝕜 E F)) ↑i
n✝ n : ℕ
v : Fin (n + 2) → E
A : univ = Set.toFinset {c | Composition.length c < n + 2} ∪ {Composition.ones (n + 2)}
B : Disjoint (Set.toFinset {c | Composition.length c < n + 2}) {Composition.ones (n + 2)}
C :
  (↑(leftInv p i (Composition.length (Composition.ones (n + 2)))) fun j =>
      ↑(p 1) fun x => v (Fin.castLE (_ : Composition.length (Composition.ones (Nat.succ (Nat.succ n))) ≤ n + 2) j)) =
    ↑(leftInv p i (n + 2)) fun j => ↑(p 1) fun x => v j
⊢ (∑ a in Set.toFinset {x | Composition.length x < n + 2},
      ↑(ContinuousMultilinearMap.compAlongComposition (compContinuousLinearMap p ↑(ContinuousLinearEquiv.symm i)) a
            (leftInv p i (Composition.length a)))
        fun j => ↑(p 1) fun x => v j) =
    ∑ x in Set.toFinset {c | Composition.length c < n + 2},
      ↑(leftInv p i (Composition.length x)) (applyComposition p x v)
[PROOFSTEP]
simp only [compContinuousLinearMap_applyComposition, ContinuousMultilinearMap.compAlongComposition_apply]
[GOAL]
case convert_2
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
h : p 1 = ↑(LinearIsometryEquiv.symm (continuousMultilinearCurryFin1 𝕜 E F)) ↑i
n✝ n : ℕ
v : Fin (n + 2) → E
A : univ = Set.toFinset {c | Composition.length c < n + 2} ∪ {Composition.ones (n + 2)}
B : Disjoint (Set.toFinset {c | Composition.length c < n + 2}) {Composition.ones (n + 2)}
C :
  (↑(leftInv p i (Composition.length (Composition.ones (n + 2)))) fun j =>
      ↑(p 1) fun x => v (Fin.castLE (_ : Composition.length (Composition.ones (Nat.succ (Nat.succ n))) ≤ n + 2) j)) =
    ↑(leftInv p i (n + 2)) fun j => ↑(p 1) fun x => v j
⊢ ∑ x in Set.toFinset {x | Composition.length x < n + 2},
      ↑(leftInv p i (Composition.length x))
        (applyComposition p x (↑↑(ContinuousLinearEquiv.symm i) ∘ fun j => ↑(p 1) fun x => v j)) =
    ∑ x in Set.toFinset {x | Composition.length x < n + 2},
      ↑(leftInv p i (Composition.length x)) (applyComposition p x v)
[PROOFSTEP]
congr
[GOAL]
case convert_2.e_f
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
h : p 1 = ↑(LinearIsometryEquiv.symm (continuousMultilinearCurryFin1 𝕜 E F)) ↑i
n✝ n : ℕ
v : Fin (n + 2) → E
A : univ = Set.toFinset {c | Composition.length c < n + 2} ∪ {Composition.ones (n + 2)}
B : Disjoint (Set.toFinset {c | Composition.length c < n + 2}) {Composition.ones (n + 2)}
C :
  (↑(leftInv p i (Composition.length (Composition.ones (n + 2)))) fun j =>
      ↑(p 1) fun x => v (Fin.castLE (_ : Composition.length (Composition.ones (Nat.succ (Nat.succ n))) ≤ n + 2) j)) =
    ↑(leftInv p i (n + 2)) fun j => ↑(p 1) fun x => v j
⊢ (fun x =>
      ↑(leftInv p i (Composition.length x))
        (applyComposition p x (↑↑(ContinuousLinearEquiv.symm i) ∘ fun j => ↑(p 1) fun x => v j))) =
    fun x => ↑(leftInv p i (Composition.length x)) (applyComposition p x v)
[PROOFSTEP]
ext c
[GOAL]
case convert_2.e_f.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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
h : p 1 = ↑(LinearIsometryEquiv.symm (continuousMultilinearCurryFin1 𝕜 E F)) ↑i
n✝ n : ℕ
v : Fin (n + 2) → E
A : univ = Set.toFinset {c | Composition.length c < n + 2} ∪ {Composition.ones (n + 2)}
B : Disjoint (Set.toFinset {c | Composition.length c < n + 2}) {Composition.ones (n + 2)}
C :
  (↑(leftInv p i (Composition.length (Composition.ones (n + 2)))) fun j =>
      ↑(p 1) fun x => v (Fin.castLE (_ : Composition.length (Composition.ones (Nat.succ (Nat.succ n))) ≤ n + 2) j)) =
    ↑(leftInv p i (n + 2)) fun j => ↑(p 1) fun x => v j
c : Composition (n + 2)
⊢ ↑(leftInv p i (Composition.length c))
      (applyComposition p c (↑↑(ContinuousLinearEquiv.symm i) ∘ fun j => ↑(p 1) fun x => v j)) =
    ↑(leftInv p i (Composition.length c)) (applyComposition p c v)
[PROOFSTEP]
congr
[GOAL]
case convert_2.e_f.h.h.e_6.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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
h : p 1 = ↑(LinearIsometryEquiv.symm (continuousMultilinearCurryFin1 𝕜 E F)) ↑i
n✝ n : ℕ
v : Fin (n + 2) → E
A : univ = Set.toFinset {c | Composition.length c < n + 2} ∪ {Composition.ones (n + 2)}
B : Disjoint (Set.toFinset {c | Composition.length c < n + 2}) {Composition.ones (n + 2)}
C :
  (↑(leftInv p i (Composition.length (Composition.ones (n + 2)))) fun j =>
      ↑(p 1) fun x => v (Fin.castLE (_ : Composition.length (Composition.ones (Nat.succ (Nat.succ n))) ≤ n + 2) j)) =
    ↑(leftInv p i (n + 2)) fun j => ↑(p 1) fun x => v j
c : Composition (n + 2)
⊢ applyComposition p c (↑↑(ContinuousLinearEquiv.symm i) ∘ fun j => ↑(p 1) fun x => v j) = applyComposition p c v
[PROOFSTEP]
ext k
[GOAL]
case convert_2.e_f.h.h.e_6.h.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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
h : p 1 = ↑(LinearIsometryEquiv.symm (continuousMultilinearCurryFin1 𝕜 E F)) ↑i
n✝ n : ℕ
v : Fin (n + 2) → E
A : univ = Set.toFinset {c | Composition.length c < n + 2} ∪ {Composition.ones (n + 2)}
B : Disjoint (Set.toFinset {c | Composition.length c < n + 2}) {Composition.ones (n + 2)}
C :
  (↑(leftInv p i (Composition.length (Composition.ones (n + 2)))) fun j =>
      ↑(p 1) fun x => v (Fin.castLE (_ : Composition.length (Composition.ones (Nat.succ (Nat.succ n))) ≤ n + 2) j)) =
    ↑(leftInv p i (n + 2)) fun j => ↑(p 1) fun x => v j
c : Composition (n + 2)
k : Fin (Composition.length c)
⊢ applyComposition p c (↑↑(ContinuousLinearEquiv.symm i) ∘ fun j => ↑(p 1) fun x => v j) k = applyComposition p c v k
[PROOFSTEP]
simp [h, Function.comp]
[GOAL]
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
h : p 1 = ↑(LinearIsometryEquiv.symm (continuousMultilinearCurryFin1 𝕜 E F)) ↑i
n✝ n : ℕ
v : Fin (n + 2) → E
A : univ = Set.toFinset {c | Composition.length c < n + 2} ∪ {Composition.ones (n + 2)}
B : Disjoint (Set.toFinset {c | Composition.length c < n + 2}) {Composition.ones (n + 2)}
C :
  (↑(leftInv p i (Composition.length (Composition.ones (n + 2)))) fun j =>
      ↑(p 1) fun x => v (Fin.castLE (_ : Composition.length (Composition.ones (Nat.succ (Nat.succ n))) ≤ n + 2) j)) =
    ↑(leftInv p i (n + 2)) fun j => ↑(p 1) fun x => v j
D :
  (↑(leftInv p i (n + 2)) fun j => ↑(p 1) fun x => v j) =
    -∑ c in Set.toFinset {c | Composition.length c < n + 2},
        ↑(leftInv p i (Composition.length c)) (applyComposition p c v)
⊢ ↑(FormalMultilinearSeries.comp (leftInv p i) p (n + 2)) v = ↑(id 𝕜 E (n + 2)) v
[PROOFSTEP]
simp [FormalMultilinearSeries.comp, show n + 2 ≠ 1 by norm_num, A, Finset.sum_union B, applyComposition_ones, C, D,
  -Set.toFinset_setOf]
[GOAL]
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
h : p 1 = ↑(LinearIsometryEquiv.symm (continuousMultilinearCurryFin1 𝕜 E F)) ↑i
n✝ n : ℕ
v : Fin (n + 2) → E
A : univ = Set.toFinset {c | Composition.length c < n + 2} ∪ {Composition.ones (n + 2)}
B : Disjoint (Set.toFinset {c | Composition.length c < n + 2}) {Composition.ones (n + 2)}
C :
  (↑(leftInv p i (Composition.length (Composition.ones (n + 2)))) fun j =>
      ↑(p 1) fun x => v (Fin.castLE (_ : Composition.length (Composition.ones (Nat.succ (Nat.succ n))) ≤ n + 2) j)) =
    ↑(leftInv p i (n + 2)) fun j => ↑(p 1) fun x => v j
D :
  (↑(leftInv p i (n + 2)) fun j => ↑(p 1) fun x => v j) =
    -∑ c in Set.toFinset {c | Composition.length c < n + 2},
        ↑(leftInv p i (Composition.length c)) (applyComposition p c v)
⊢ n + 2 ≠ 1
[PROOFSTEP]
norm_num
[GOAL]
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
⊢ rightInv p i 0 = 0
[PROOFSTEP]
rw [rightInv]
[GOAL]
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
⊢ rightInv p i 1 = ↑(LinearIsometryEquiv.symm (continuousMultilinearCurryFin1 𝕜 F E)) ↑(ContinuousLinearEquiv.symm i)
[PROOFSTEP]
rw [rightInv]
[GOAL]
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
⊢ rightInv (removeZero p) i = rightInv p i
[PROOFSTEP]
ext1 n
[GOAL]
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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
n : ℕ
⊢ rightInv (removeZero p) i n = rightInv p i n
[PROOFSTEP]
induction' n using Nat.strongRec' with n IH
[GOAL]
case h.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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
n : ℕ
IH : ∀ (m : ℕ), m < n → rightInv (removeZero p) i m = rightInv p i m
⊢ rightInv (removeZero p) i n = rightInv p i n
[PROOFSTEP]
match n with
| 0 => simp only [rightInv_coeff_zero]
| 1 => simp only [rightInv_coeff_one]
| n + 2 =>
  simp only [rightInv, neg_inj]
  rw [removeZero_comp_of_pos _ _ (add_pos_of_nonneg_of_pos n.zero_le zero_lt_two)]
  congr (config := { closePost := false }) 2 with k
  by_cases hk : k < n + 2 <;> simp [hk, IH]
[GOAL]
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
n : ℕ
IH : ∀ (m : ℕ), m < 0 → rightInv (removeZero p) i m = rightInv p i m
⊢ rightInv (removeZero p) i 0 = rightInv p i 0
[PROOFSTEP]
simp only [rightInv_coeff_zero]
[GOAL]
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
n : ℕ
IH : ∀ (m : ℕ), m < 1 → rightInv (removeZero p) i m = rightInv p i m
⊢ rightInv (removeZero p) i 1 = rightInv p i 1
[PROOFSTEP]
simp only [rightInv_coeff_one]
[GOAL]
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
n✝ n : ℕ
IH : ∀ (m : ℕ), m < n + 2 → rightInv (removeZero p) i m = rightInv p i m
⊢ rightInv (removeZero p) i (n + 2) = rightInv p i (n + 2)
[PROOFSTEP]
simp only [rightInv, neg_inj]
[GOAL]
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
n✝ n : ℕ
IH : ∀ (m : ℕ), m < n + 2 → rightInv (removeZero p) i m = rightInv p i m
⊢ ContinuousLinearMap.compContinuousMultilinearMap (↑(ContinuousLinearEquiv.symm i))
      (FormalMultilinearSeries.comp (removeZero p) (fun k => if k < n + 2 then rightInv (removeZero p) i k else 0)
        (n + 2)) =
    ContinuousLinearMap.compContinuousMultilinearMap (↑(ContinuousLinearEquiv.symm i))
      (FormalMultilinearSeries.comp p (fun k => if k < n + 2 then rightInv p i k else 0) (n + 2))
[PROOFSTEP]
rw [removeZero_comp_of_pos _ _ (add_pos_of_nonneg_of_pos n.zero_le zero_lt_two)]
[GOAL]
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
n✝ n : ℕ
IH : ∀ (m : ℕ), m < n + 2 → rightInv (removeZero p) i m = rightInv p i m
⊢ ContinuousLinearMap.compContinuousMultilinearMap (↑(ContinuousLinearEquiv.symm i))
      (FormalMultilinearSeries.comp p (fun k => if k < n + 2 then rightInv (removeZero p) i k else 0) (n + 2)) =
    ContinuousLinearMap.compContinuousMultilinearMap (↑(ContinuousLinearEquiv.symm i))
      (FormalMultilinearSeries.comp p (fun k => if k < n + 2 then rightInv p i k else 0) (n + 2))
[PROOFSTEP]
congr (config := { closePost := false }) 2 with k
[GOAL]
case e_f.e_p.h.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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
n✝ n : ℕ
IH : ∀ (m : ℕ), m < n + 2 → rightInv (removeZero p) i m = rightInv p i m
k : ℕ
x✝ : Fin k → F
⊢ ↑(if k < n + 2 then rightInv (removeZero p) i k else 0) x✝ = ↑(if k < n + 2 then rightInv p i k else 0) x✝
[PROOFSTEP]
by_cases hk : k < n + 2
[GOAL]
case pos
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
n✝ n : ℕ
IH : ∀ (m : ℕ), m < n + 2 → rightInv (removeZero p) i m = rightInv p i m
k : ℕ
x✝ : Fin k → F
hk : k < n + 2
⊢ ↑(if k < n + 2 then rightInv (removeZero p) i k else 0) x✝ = ↑(if k < n + 2 then rightInv p i k else 0) x✝
[PROOFSTEP]
simp [hk, IH]
[GOAL]
case neg
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
n✝ n : ℕ
IH : ∀ (m : ℕ), m < n + 2 → rightInv (removeZero p) i m = rightInv p i m
k : ℕ
x✝ : Fin k → F
hk : ¬k < n + 2
⊢ ↑(if k < n + 2 then rightInv (removeZero p) i k else 0) x✝ = ↑(if k < n + 2 then rightInv p i k else 0) x✝
[PROOFSTEP]
simp [hk, IH]
[GOAL]
𝕜 : 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
n : ℕ
hn : 0 < n
p : FormalMultilinearSeries 𝕜 E F
q : FormalMultilinearSeries 𝕜 F E
v : Fin n → F
⊢ ↑(FormalMultilinearSeries.comp p q n) v =
    ∑ c in Set.toFinset {c | 1 < Composition.length c}, ↑(p (Composition.length c)) (applyComposition q c v) +
      ↑(p 1) fun x => ↑(q n) v
[PROOFSTEP]
have A : (Finset.univ : Finset (Composition n)) = {c | 1 < Composition.length c}.toFinset ∪ {Composition.single n hn} :=
  by
  refine' Subset.antisymm (fun c _ => _) (subset_univ _)
  by_cases h : 1 < c.length
  · simp [h, Set.mem_toFinset (s := {c | 1 < Composition.length c})]
  · have : c.length = 1 := by refine' (eq_iff_le_not_lt.2 ⟨_, h⟩).symm; exact c.length_pos_of_pos hn
    rw [← Composition.eq_single_iff_length hn] at this
    simp [this]
[GOAL]
𝕜 : 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
n : ℕ
hn : 0 < n
p : FormalMultilinearSeries 𝕜 E F
q : FormalMultilinearSeries 𝕜 F E
v : Fin n → F
⊢ univ = Set.toFinset {c | 1 < Composition.length c} ∪ {Composition.single n hn}
[PROOFSTEP]
refine' Subset.antisymm (fun c _ => _) (subset_univ _)
[GOAL]
𝕜 : 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
n : ℕ
hn : 0 < n
p : FormalMultilinearSeries 𝕜 E F
q : FormalMultilinearSeries 𝕜 F E
v : Fin n → F
c : Composition n
x✝ : c ∈ univ
⊢ c ∈ Set.toFinset {c | 1 < Composition.length c} ∪ {Composition.single n hn}
[PROOFSTEP]
by_cases h : 1 < c.length
[GOAL]
case pos
𝕜 : 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
n : ℕ
hn : 0 < n
p : FormalMultilinearSeries 𝕜 E F
q : FormalMultilinearSeries 𝕜 F E
v : Fin n → F
c : Composition n
x✝ : c ∈ univ
h : 1 < Composition.length c
⊢ c ∈ Set.toFinset {c | 1 < Composition.length c} ∪ {Composition.single n hn}
[PROOFSTEP]
simp [h, Set.mem_toFinset (s := {c | 1 < Composition.length c})]
[GOAL]
case neg
𝕜 : 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
n : ℕ
hn : 0 < n
p : FormalMultilinearSeries 𝕜 E F
q : FormalMultilinearSeries 𝕜 F E
v : Fin n → F
c : Composition n
x✝ : c ∈ univ
h : ¬1 < Composition.length c
⊢ c ∈ Set.toFinset {c | 1 < Composition.length c} ∪ {Composition.single n hn}
[PROOFSTEP]
have : c.length = 1 := by refine' (eq_iff_le_not_lt.2 ⟨_, h⟩).symm; exact c.length_pos_of_pos hn
[GOAL]
𝕜 : 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
n : ℕ
hn : 0 < n
p : FormalMultilinearSeries 𝕜 E F
q : FormalMultilinearSeries 𝕜 F E
v : Fin n → F
c : Composition n
x✝ : c ∈ univ
h : ¬1 < Composition.length c
⊢ Composition.length c = 1
[PROOFSTEP]
refine' (eq_iff_le_not_lt.2 ⟨_, h⟩).symm
[GOAL]
𝕜 : 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
n : ℕ
hn : 0 < n
p : FormalMultilinearSeries 𝕜 E F
q : FormalMultilinearSeries 𝕜 F E
v : Fin n → F
c : Composition n
x✝ : c ∈ univ
h : ¬1 < Composition.length c
⊢ 1 ≤ Composition.length c
[PROOFSTEP]
exact c.length_pos_of_pos hn
[GOAL]
case neg
𝕜 : 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
n : ℕ
hn : 0 < n
p : FormalMultilinearSeries 𝕜 E F
q : FormalMultilinearSeries 𝕜 F E
v : Fin n → F
c : Composition n
x✝ : c ∈ univ
h : ¬1 < Composition.length c
this : Composition.length c = 1
⊢ c ∈ Set.toFinset {c | 1 < Composition.length c} ∪ {Composition.single n hn}
[PROOFSTEP]
rw [← Composition.eq_single_iff_length hn] at this
[GOAL]
case neg
𝕜 : 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
n : ℕ
hn : 0 < n
p : FormalMultilinearSeries 𝕜 E F
q : FormalMultilinearSeries 𝕜 F E
v : Fin n → F
c : Composition n
x✝ : c ∈ univ
h : ¬1 < Composition.length c
this : c = Composition.single n hn
⊢ c ∈ Set.toFinset {c | 1 < Composition.length c} ∪ {Composition.single n hn}
[PROOFSTEP]
simp [this]
[GOAL]
𝕜 : 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
n : ℕ
hn : 0 < n
p : FormalMultilinearSeries 𝕜 E F
q : FormalMultilinearSeries 𝕜 F E
v : Fin n → F
A : univ = Set.toFinset {c | 1 < Composition.length c} ∪ {Composition.single n hn}
⊢ ↑(FormalMultilinearSeries.comp p q n) v =
    ∑ c in Set.toFinset {c | 1 < Composition.length c}, ↑(p (Composition.length c)) (applyComposition q c v) +
      ↑(p 1) fun x => ↑(q n) v
[PROOFSTEP]
have B : Disjoint ({c | 1 < Composition.length c} : Set (Composition n)).toFinset {Composition.single n hn} := by
  simp [Set.mem_toFinset (s := {c | 1 < Composition.length c})]
[GOAL]
𝕜 : 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
n : ℕ
hn : 0 < n
p : FormalMultilinearSeries 𝕜 E F
q : FormalMultilinearSeries 𝕜 F E
v : Fin n → F
A : univ = Set.toFinset {c | 1 < Composition.length c} ∪ {Composition.single n hn}
⊢ Disjoint (Set.toFinset {c | 1 < Composition.length c}) {Composition.single n hn}
[PROOFSTEP]
simp [Set.mem_toFinset (s := {c | 1 < Composition.length c})]
[GOAL]
𝕜 : 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
n : ℕ
hn : 0 < n
p : FormalMultilinearSeries 𝕜 E F
q : FormalMultilinearSeries 𝕜 F E
v : Fin n → F
A : univ = Set.toFinset {c | 1 < Composition.length c} ∪ {Composition.single n hn}
B : Disjoint (Set.toFinset {c | 1 < Composition.length c}) {Composition.single n hn}
⊢ ↑(FormalMultilinearSeries.comp p q n) v =
    ∑ c in Set.toFinset {c | 1 < Composition.length c}, ↑(p (Composition.length c)) (applyComposition q c v) +
      ↑(p 1) fun x => ↑(q n) v
[PROOFSTEP]
have C :
  p (Composition.single n hn).length (q.applyComposition (Composition.single n hn) v) = p 1 fun _ : Fin 1 => q n v :=
  by
  apply p.congr (Composition.single_length hn) fun j hj1 _ => ?_
  simp [applyComposition_single]
[GOAL]
𝕜 : 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
n : ℕ
hn : 0 < n
p : FormalMultilinearSeries 𝕜 E F
q : FormalMultilinearSeries 𝕜 F E
v : Fin n → F
A : univ = Set.toFinset {c | 1 < Composition.length c} ∪ {Composition.single n hn}
B : Disjoint (Set.toFinset {c | 1 < Composition.length c}) {Composition.single n hn}
⊢ ↑(p (Composition.length (Composition.single n hn))) (applyComposition q (Composition.single n hn) v) =
    ↑(p 1) fun x => ↑(q n) v
[PROOFSTEP]
apply p.congr (Composition.single_length hn) fun j hj1 _ => ?_
[GOAL]
𝕜 : 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
n : ℕ
hn : 0 < n
p : FormalMultilinearSeries 𝕜 E F
q : FormalMultilinearSeries 𝕜 F E
v : Fin n → F
A : univ = Set.toFinset {c | 1 < Composition.length c} ∪ {Composition.single n hn}
B : Disjoint (Set.toFinset {c | 1 < Composition.length c}) {Composition.single n hn}
j : ℕ
hj1 : j < Composition.length (Composition.single n hn)
x✝ : j < 1
⊢ applyComposition q (Composition.single n hn) v { val := j, isLt := hj1 } = ↑(q n) v
[PROOFSTEP]
simp [applyComposition_single]
[GOAL]
𝕜 : 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
n : ℕ
hn : 0 < n
p : FormalMultilinearSeries 𝕜 E F
q : FormalMultilinearSeries 𝕜 F E
v : Fin n → F
A : univ = Set.toFinset {c | 1 < Composition.length c} ∪ {Composition.single n hn}
B : Disjoint (Set.toFinset {c | 1 < Composition.length c}) {Composition.single n hn}
C :
  ↑(p (Composition.length (Composition.single n hn))) (applyComposition q (Composition.single n hn) v) =
    ↑(p 1) fun x => ↑(q n) v
⊢ ↑(FormalMultilinearSeries.comp p q n) v =
    ∑ c in Set.toFinset {c | 1 < Composition.length c}, ↑(p (Composition.length c)) (applyComposition q c v) +
      ↑(p 1) fun x => ↑(q n) v
[PROOFSTEP]
simp [FormalMultilinearSeries.comp, A, Finset.sum_union B, C, -Set.toFinset_setOf, -add_right_inj,
  -Composition.single_length]
[GOAL]
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
n : ℕ
v : Fin (n + 2) → F
⊢ ∑ c in Set.toFinset {c | 1 < Composition.length c},
      ↑(p (Composition.length c)) (applyComposition (fun k => if k < n + 2 then rightInv p i k else 0) c v) =
    ∑ c in Set.toFinset {c | 1 < Composition.length c},
      ↑(p (Composition.length c)) (applyComposition (rightInv p i) c v)
[PROOFSTEP]
have N : 0 < n + 2 := by norm_num
[GOAL]
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
n : ℕ
v : Fin (n + 2) → F
⊢ 0 < n + 2
[PROOFSTEP]
norm_num
[GOAL]
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
n : ℕ
v : Fin (n + 2) → F
N : 0 < n + 2
⊢ ∑ c in Set.toFinset {c | 1 < Composition.length c},
      ↑(p (Composition.length c)) (applyComposition (fun k => if k < n + 2 then rightInv p i k else 0) c v) =
    ∑ c in Set.toFinset {c | 1 < Composition.length c},
      ↑(p (Composition.length c)) (applyComposition (rightInv p i) c v)
[PROOFSTEP]
refine' sum_congr rfl fun c hc => p.congr rfl fun j hj1 hj2 => _
[GOAL]
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
n : ℕ
v : Fin (n + 2) → F
N : 0 < n + 2
c : Composition (n + 2)
hc : c ∈ Set.toFinset {c | 1 < Composition.length c}
j : ℕ
hj1 hj2 : j < Composition.length c
⊢ applyComposition (fun k => if k < n + 2 then rightInv p i k else 0) c v { val := j, isLt := hj1 } =
    applyComposition (rightInv p i) c v { val := j, isLt := hj2 }
[PROOFSTEP]
have : ∀ k, c.blocksFun k < n + 2 :=
  by
  simp only [Set.mem_toFinset (s := {c : Composition (n + 2) | 1 < c.length}), Set.mem_setOf_eq] at hc
  simp [← Composition.ne_single_iff N, Composition.eq_single_iff_length, ne_of_gt hc]
[GOAL]
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
n : ℕ
v : Fin (n + 2) → F
N : 0 < n + 2
c : Composition (n + 2)
hc : c ∈ Set.toFinset {c | 1 < Composition.length c}
j : ℕ
hj1 hj2 : j < Composition.length c
⊢ ∀ (k : Fin (Composition.length c)), Composition.blocksFun c k < n + 2
[PROOFSTEP]
simp only [Set.mem_toFinset (s := {c : Composition (n + 2) | 1 < c.length}), Set.mem_setOf_eq] at hc
[GOAL]
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
n : ℕ
v : Fin (n + 2) → F
N : 0 < n + 2
c : Composition (n + 2)
j : ℕ
hj1 hj2 : j < Composition.length c
hc : 1 < Composition.length c
⊢ ∀ (k : Fin (Composition.length c)), Composition.blocksFun c k < n + 2
[PROOFSTEP]
simp [← Composition.ne_single_iff N, Composition.eq_single_iff_length, ne_of_gt hc]
[GOAL]
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
n : ℕ
v : Fin (n + 2) → F
N : 0 < n + 2
c : Composition (n + 2)
hc : c ∈ Set.toFinset {c | 1 < Composition.length c}
j : ℕ
hj1 hj2 : j < Composition.length c
this : ∀ (k : Fin (Composition.length c)), Composition.blocksFun c k < n + 2
⊢ applyComposition (fun k => if k < n + 2 then rightInv p i k else 0) c v { val := j, isLt := hj1 } =
    applyComposition (rightInv p i) c v { val := j, isLt := hj2 }
[PROOFSTEP]
simp [applyComposition, this]
[GOAL]
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
h : p 1 = ↑(LinearIsometryEquiv.symm (continuousMultilinearCurryFin1 𝕜 E F)) ↑i
h0 : p 0 = 0
⊢ FormalMultilinearSeries.comp p (rightInv p i) = id 𝕜 F
[PROOFSTEP]
ext (n v)
[GOAL]
case h.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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
h : p 1 = ↑(LinearIsometryEquiv.symm (continuousMultilinearCurryFin1 𝕜 E F)) ↑i
h0 : p 0 = 0
n : ℕ
v : Fin n → F
⊢ ↑(FormalMultilinearSeries.comp p (rightInv p i) n) v = ↑(id 𝕜 F n) v
[PROOFSTEP]
match n with
| 0 =>
  simp only [h0, ContinuousMultilinearMap.zero_apply, id_apply_ne_one, Ne.def, not_false_iff, zero_ne_one,
    comp_coeff_zero']
| 1 =>
  simp only [comp_coeff_one, h, rightInv_coeff_one, ContinuousLinearEquiv.apply_symm_apply, id_apply_one,
    ContinuousLinearEquiv.coe_apply, continuousMultilinearCurryFin1_symm_apply]
| n + 2 =>
  have N : 0 < n + 2 := by norm_num
  simp [comp_rightInv_aux1 N, h, rightInv, lt_irrefl n, show n + 2 ≠ 1 by norm_num, ← sub_eq_add_neg, sub_eq_zero,
    comp_rightInv_aux2, -Set.toFinset_setOf]
[GOAL]
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
h : p 1 = ↑(LinearIsometryEquiv.symm (continuousMultilinearCurryFin1 𝕜 E F)) ↑i
h0 : p 0 = 0
n : ℕ
v : Fin 0 → F
⊢ ↑(FormalMultilinearSeries.comp p (rightInv p i) 0) v = ↑(id 𝕜 F 0) v
[PROOFSTEP]
simp only [h0, ContinuousMultilinearMap.zero_apply, id_apply_ne_one, Ne.def, not_false_iff, zero_ne_one,
  comp_coeff_zero']
[GOAL]
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
h : p 1 = ↑(LinearIsometryEquiv.symm (continuousMultilinearCurryFin1 𝕜 E F)) ↑i
h0 : p 0 = 0
n : ℕ
v : Fin 1 → F
⊢ ↑(FormalMultilinearSeries.comp p (rightInv p i) 1) v = ↑(id 𝕜 F 1) v
[PROOFSTEP]
simp only [comp_coeff_one, h, rightInv_coeff_one, ContinuousLinearEquiv.apply_symm_apply, id_apply_one,
  ContinuousLinearEquiv.coe_apply, continuousMultilinearCurryFin1_symm_apply]
[GOAL]
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
h : p 1 = ↑(LinearIsometryEquiv.symm (continuousMultilinearCurryFin1 𝕜 E F)) ↑i
h0 : p 0 = 0
n✝ n : ℕ
v : Fin (n + 2) → F
⊢ ↑(FormalMultilinearSeries.comp p (rightInv p i) (n + 2)) v = ↑(id 𝕜 F (n + 2)) v
[PROOFSTEP]
have N : 0 < n + 2 := by norm_num
[GOAL]
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
h : p 1 = ↑(LinearIsometryEquiv.symm (continuousMultilinearCurryFin1 𝕜 E F)) ↑i
h0 : p 0 = 0
n✝ n : ℕ
v : Fin (n + 2) → F
⊢ 0 < n + 2
[PROOFSTEP]
norm_num
[GOAL]
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
h : p 1 = ↑(LinearIsometryEquiv.symm (continuousMultilinearCurryFin1 𝕜 E F)) ↑i
h0 : p 0 = 0
n✝ n : ℕ
v : Fin (n + 2) → F
N : 0 < n + 2
⊢ ↑(FormalMultilinearSeries.comp p (rightInv p i) (n + 2)) v = ↑(id 𝕜 F (n + 2)) v
[PROOFSTEP]
simp [comp_rightInv_aux1 N, h, rightInv, lt_irrefl n, show n + 2 ≠ 1 by norm_num, ← sub_eq_add_neg, sub_eq_zero,
  comp_rightInv_aux2, -Set.toFinset_setOf]
[GOAL]
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
h : p 1 = ↑(LinearIsometryEquiv.symm (continuousMultilinearCurryFin1 𝕜 E F)) ↑i
h0 : p 0 = 0
n✝ n : ℕ
v : Fin (n + 2) → F
N : 0 < n + 2
⊢ n + 2 ≠ 1
[PROOFSTEP]
norm_num
[GOAL]
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
n : ℕ
hn : 2 ≤ n
⊢ rightInv p i n =
    -ContinuousLinearMap.compContinuousMultilinearMap (↑(ContinuousLinearEquiv.symm i))
        (∑ c in Set.toFinset {c | 1 < Composition.length c}, compAlongComposition p (rightInv p i) c)
[PROOFSTEP]
match n with
| 0 => exact False.elim (zero_lt_two.not_le hn)
| 1 => exact False.elim (one_lt_two.not_le hn)
| n + 2 =>
  simp only [rightInv, neg_inj]
  congr (config := { closePost := false }) 1
  ext v
  have N : 0 < n + 2 := by norm_num
  have : ((p 1) fun i : Fin 1 => 0) = 0 := ContinuousMultilinearMap.map_zero _
  simp [comp_rightInv_aux1 N, lt_irrefl n, this, comp_rightInv_aux2, -Set.toFinset_setOf]
[GOAL]
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
n : ℕ
hn : 2 ≤ 0
⊢ rightInv p i 0 =
    -ContinuousLinearMap.compContinuousMultilinearMap (↑(ContinuousLinearEquiv.symm i))
        (∑ c in Set.toFinset {c | 1 < Composition.length c}, compAlongComposition p (rightInv p i) c)
[PROOFSTEP]
exact False.elim (zero_lt_two.not_le hn)
[GOAL]
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
n : ℕ
hn : 2 ≤ 1
⊢ rightInv p i 1 =
    -ContinuousLinearMap.compContinuousMultilinearMap (↑(ContinuousLinearEquiv.symm i))
        (∑ c in Set.toFinset {c | 1 < Composition.length c}, compAlongComposition p (rightInv p i) c)
[PROOFSTEP]
exact False.elim (one_lt_two.not_le hn)
[GOAL]
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
n✝ n : ℕ
hn : 2 ≤ n + 2
⊢ rightInv p i (n + 2) =
    -ContinuousLinearMap.compContinuousMultilinearMap (↑(ContinuousLinearEquiv.symm i))
        (∑ c in Set.toFinset {c | 1 < Composition.length c}, compAlongComposition p (rightInv p i) c)
[PROOFSTEP]
simp only [rightInv, neg_inj]
[GOAL]
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
n✝ n : ℕ
hn : 2 ≤ n + 2
⊢ ContinuousLinearMap.compContinuousMultilinearMap (↑(ContinuousLinearEquiv.symm i))
      (FormalMultilinearSeries.comp p (fun k => if k < n + 2 then rightInv p i k else 0) (n + 2)) =
    ContinuousLinearMap.compContinuousMultilinearMap (↑(ContinuousLinearEquiv.symm i))
      (∑ c in Set.toFinset {c | 1 < Composition.length c}, compAlongComposition p (rightInv p i) c)
[PROOFSTEP]
congr (config := { closePost := false }) 1
[GOAL]
case e_f
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
n✝ n : ℕ
hn : 2 ≤ n + 2
⊢ FormalMultilinearSeries.comp p (fun k => if k < n + 2 then rightInv p i k else 0) (n + 2) =
    ∑ c in Set.toFinset {c | 1 < Composition.length c}, compAlongComposition p (rightInv p i) c
[PROOFSTEP]
ext v
[GOAL]
case e_f.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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
n✝ n : ℕ
hn : 2 ≤ n + 2
v : Fin (n + 2) → F
⊢ ↑(FormalMultilinearSeries.comp p (fun k => if k < n + 2 then rightInv p i k else 0) (n + 2)) v =
    ↑(∑ c in Set.toFinset {c | 1 < Composition.length c}, compAlongComposition p (rightInv p i) c) v
[PROOFSTEP]
have N : 0 < n + 2 := by norm_num
[GOAL]
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
n✝ n : ℕ
hn : 2 ≤ n + 2
v : Fin (n + 2) → F
⊢ 0 < n + 2
[PROOFSTEP]
norm_num
[GOAL]
case e_f.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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
n✝ n : ℕ
hn : 2 ≤ n + 2
v : Fin (n + 2) → F
N : 0 < n + 2
⊢ ↑(FormalMultilinearSeries.comp p (fun k => if k < n + 2 then rightInv p i k else 0) (n + 2)) v =
    ↑(∑ c in Set.toFinset {c | 1 < Composition.length c}, compAlongComposition p (rightInv p i) c) v
[PROOFSTEP]
have : ((p 1) fun i : Fin 1 => 0) = 0 := ContinuousMultilinearMap.map_zero _
[GOAL]
case e_f.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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
n✝ n : ℕ
hn : 2 ≤ n + 2
v : Fin (n + 2) → F
N : 0 < n + 2
this : (↑(p 1) fun i => 0) = 0
⊢ ↑(FormalMultilinearSeries.comp p (fun k => if k < n + 2 then rightInv p i k else 0) (n + 2)) v =
    ↑(∑ c in Set.toFinset {c | 1 < Composition.length c}, compAlongComposition p (rightInv p i) c) v
[PROOFSTEP]
simp [comp_rightInv_aux1 N, lt_irrefl n, this, comp_rightInv_aux2, -Set.toFinset_setOf]
[GOAL]
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
h : p 1 = ↑(LinearIsometryEquiv.symm (continuousMultilinearCurryFin1 𝕜 E F)) ↑i
h0 : p 0 = 0
⊢ leftInv p i = FormalMultilinearSeries.comp (leftInv p i) (id 𝕜 F)
[PROOFSTEP]
simp
[GOAL]
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
h : p 1 = ↑(LinearIsometryEquiv.symm (continuousMultilinearCurryFin1 𝕜 E F)) ↑i
h0 : p 0 = 0
⊢ FormalMultilinearSeries.comp (leftInv p i) (id 𝕜 F) =
    FormalMultilinearSeries.comp (leftInv p i) (FormalMultilinearSeries.comp p (rightInv p i))
[PROOFSTEP]
rw [comp_rightInv p i h h0]
[GOAL]
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
h : p 1 = ↑(LinearIsometryEquiv.symm (continuousMultilinearCurryFin1 𝕜 E F)) ↑i
h0 : p 0 = 0
⊢ FormalMultilinearSeries.comp (leftInv p i) (FormalMultilinearSeries.comp p (rightInv p i)) =
    FormalMultilinearSeries.comp (FormalMultilinearSeries.comp (leftInv p i) p) (rightInv p i)
[PROOFSTEP]
rw [comp_assoc]
[GOAL]
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
h : p 1 = ↑(LinearIsometryEquiv.symm (continuousMultilinearCurryFin1 𝕜 E F)) ↑i
h0 : p 0 = 0
⊢ FormalMultilinearSeries.comp (FormalMultilinearSeries.comp (leftInv p i) p) (rightInv p i) =
    FormalMultilinearSeries.comp (id 𝕜 E) (rightInv p i)
[PROOFSTEP]
rw [leftInv_comp p i h]
[GOAL]
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
h : p 1 = ↑(LinearIsometryEquiv.symm (continuousMultilinearCurryFin1 𝕜 E F)) ↑i
h0 : p 0 = 0
⊢ FormalMultilinearSeries.comp (id 𝕜 E) (rightInv p i) = rightInv p i
[PROOFSTEP]
simp
[GOAL]
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
h : p 1 = ↑(LinearIsometryEquiv.symm (continuousMultilinearCurryFin1 𝕜 E F)) ↑i
⊢ leftInv p i = leftInv (removeZero p) i
[PROOFSTEP]
rw [leftInv_removeZero]
[GOAL]
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
h : p 1 = ↑(LinearIsometryEquiv.symm (continuousMultilinearCurryFin1 𝕜 E F)) ↑i
⊢ leftInv (removeZero p) i = rightInv (removeZero p) i
[PROOFSTEP]
apply leftInv_eq_rightInv_aux
[GOAL]
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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
h : p 1 = ↑(LinearIsometryEquiv.symm (continuousMultilinearCurryFin1 𝕜 E F)) ↑i
⊢ removeZero p 1 = ↑(LinearIsometryEquiv.symm (continuousMultilinearCurryFin1 𝕜 E F)) ↑i
[PROOFSTEP]
simp
[GOAL]
case h0
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
h : p 1 = ↑(LinearIsometryEquiv.symm (continuousMultilinearCurryFin1 𝕜 E F)) ↑i
⊢ removeZero p 0 = 0
[PROOFSTEP]
simp
[GOAL]
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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
h : p 1 = ↑(LinearIsometryEquiv.symm (continuousMultilinearCurryFin1 𝕜 E F)) ↑i
⊢ p (0 + 1) = ↑(LinearIsometryEquiv.symm (continuousMultilinearCurryFin1 𝕜 E F)) ↑i
[PROOFSTEP]
exact h
[GOAL]
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
h : p 1 = ↑(LinearIsometryEquiv.symm (continuousMultilinearCurryFin1 𝕜 E F)) ↑i
⊢ rightInv (removeZero p) i = rightInv p i
[PROOFSTEP]
rw [rightInv_removeZero]
[GOAL]
𝕜 : 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
n : ℕ
p : ℕ → ℝ
hp : ∀ (k : ℕ), 0 ≤ p k
r a : ℝ
hr : 0 ≤ r
ha : 0 ≤ a
⊢ ∑ k in Ico 2 (n + 1),
      a ^ k *
        ∑ c in Set.toFinset {c | 1 < Composition.length c},
          r ^ Composition.length c * ∏ j : Fin (Composition.length c), p (Composition.blocksFun c j) =
    ∑ k in Ico 2 (n + 1),
      ∑ c in Set.toFinset {c | 1 < Composition.length c},
        ∏ j : Fin (Composition.length c), r * (a ^ Composition.blocksFun c j * p (Composition.blocksFun c j))
[PROOFSTEP]
simp_rw [mul_sum]
[GOAL]
𝕜 : 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
n : ℕ
p : ℕ → ℝ
hp : ∀ (k : ℕ), 0 ≤ p k
r a : ℝ
hr : 0 ≤ r
ha : 0 ≤ a
⊢ ∑ x in Ico 2 (n + 1),
      ∑ x_1 in Set.toFinset {c | 1 < Composition.length c},
        a ^ x * (r ^ Composition.length x_1 * ∏ j : Fin (Composition.length x_1), p (Composition.blocksFun x_1 j)) =
    ∑ k in Ico 2 (n + 1),
      ∑ c in Set.toFinset {c | 1 < Composition.length c},
        ∏ j : Fin (Composition.length c), r * (a ^ Composition.blocksFun c j * p (Composition.blocksFun c j))
[PROOFSTEP]
apply sum_congr rfl fun k _ => ?_
[GOAL]
𝕜 : 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
n : ℕ
p : ℕ → ℝ
hp : ∀ (k : ℕ), 0 ≤ p k
r a : ℝ
hr : 0 ≤ r
ha : 0 ≤ a
k : ℕ
x✝ : k ∈ Ico 2 (n + 1)
⊢ ∑ x in Set.toFinset {c | 1 < Composition.length c},
      a ^ k * (r ^ Composition.length x * ∏ j : Fin (Composition.length x), p (Composition.blocksFun x j)) =
    ∑ c in Set.toFinset {c | 1 < Composition.length c},
      ∏ j : Fin (Composition.length c), r * (a ^ Composition.blocksFun c j * p (Composition.blocksFun c j))
[PROOFSTEP]
apply sum_congr rfl fun c _ => ?_
[GOAL]
𝕜 : 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
n : ℕ
p : ℕ → ℝ
hp : ∀ (k : ℕ), 0 ≤ p k
r a : ℝ
hr : 0 ≤ r
ha : 0 ≤ a
k : ℕ
x✝¹ : k ∈ Ico 2 (n + 1)
c : Composition k
x✝ : c ∈ Set.toFinset {c | 1 < Composition.length c}
⊢ a ^ k * (r ^ Composition.length c * ∏ j : Fin (Composition.length c), p (Composition.blocksFun c j)) =
    ∏ j : Fin (Composition.length c), r * (a ^ Composition.blocksFun c j * p (Composition.blocksFun c j))
[PROOFSTEP]
rw [prod_mul_distrib, prod_mul_distrib, prod_pow_eq_pow_sum, Composition.sum_blocksFun, prod_const, card_fin]
[GOAL]
𝕜 : 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
n : ℕ
p : ℕ → ℝ
hp : ∀ (k : ℕ), 0 ≤ p k
r a : ℝ
hr : 0 ≤ r
ha : 0 ≤ a
k : ℕ
x✝¹ : k ∈ Ico 2 (n + 1)
c : Composition k
x✝ : c ∈ Set.toFinset {c | 1 < Composition.length c}
⊢ a ^ k * (r ^ Composition.length c * ∏ j : Fin (Composition.length c), p (Composition.blocksFun c j)) =
    r ^ Composition.length c * (a ^ k * ∏ x : Fin (Composition.length c), p (Composition.blocksFun c x))
[PROOFSTEP]
ring
[GOAL]
𝕜 : 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
n : ℕ
p : ℕ → ℝ
hp : ∀ (k : ℕ), 0 ≤ p k
r a : ℝ
hr : 0 ≤ r
ha : 0 ≤ a
⊢ ∑ k in Ico 2 (n + 1),
      ∑ c in Set.toFinset {c | 1 < Composition.length c},
        ∏ j : Fin (Composition.length c), r * (a ^ Composition.blocksFun c j * p (Composition.blocksFun c j)) ≤
    ∑ d in compPartialSumTarget 2 (n + 1) n,
      ∏ j : Fin (Composition.length d.snd), r * (a ^ Composition.blocksFun d.snd j * p (Composition.blocksFun d.snd j))
[PROOFSTEP]
rw [sum_sigma']
[GOAL]
𝕜 : 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
n : ℕ
p : ℕ → ℝ
hp : ∀ (k : ℕ), 0 ≤ p k
r a : ℝ
hr : 0 ≤ r
ha : 0 ≤ a
⊢ ∑ x in Finset.sigma (Ico 2 (n + 1)) fun k => Set.toFinset {c | 1 < Composition.length c},
      ∏ j : Fin (Composition.length x.snd),
        r * (a ^ Composition.blocksFun x.snd j * p (Composition.blocksFun x.snd j)) ≤
    ∑ d in compPartialSumTarget 2 (n + 1) n,
      ∏ j : Fin (Composition.length d.snd), r * (a ^ Composition.blocksFun d.snd j * p (Composition.blocksFun d.snd j))
[PROOFSTEP]
refine'
  sum_le_sum_of_subset_of_nonneg _ fun x _ _ =>
    prod_nonneg fun j _ => mul_nonneg hr (mul_nonneg (pow_nonneg ha _) (hp _))
[GOAL]
𝕜 : 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
n : ℕ
p : ℕ → ℝ
hp : ∀ (k : ℕ), 0 ≤ p k
r a : ℝ
hr : 0 ≤ r
ha : 0 ≤ a
⊢ (Finset.sigma (Ico 2 (n + 1)) fun k => Set.toFinset {c | 1 < Composition.length c}) ⊆ compPartialSumTarget 2 (n + 1) n
[PROOFSTEP]
rintro ⟨k, c⟩ hd
[GOAL]
case mk
𝕜 : 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
n : ℕ
p : ℕ → ℝ
hp : ∀ (k : ℕ), 0 ≤ p k
r a : ℝ
hr : 0 ≤ r
ha : 0 ≤ a
k : ℕ
c : Composition k
hd : { fst := k, snd := c } ∈ Finset.sigma (Ico 2 (n + 1)) fun k => Set.toFinset {c | 1 < Composition.length c}
⊢ { fst := k, snd := c } ∈ compPartialSumTarget 2 (n + 1) n
[PROOFSTEP]
simp only [Set.mem_toFinset (s := {c | 1 < Composition.length c}), mem_Ico, mem_sigma, Set.mem_setOf_eq] at hd
[GOAL]
case mk
𝕜 : 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
n : ℕ
p : ℕ → ℝ
hp : ∀ (k : ℕ), 0 ≤ p k
r a : ℝ
hr : 0 ≤ r
ha : 0 ≤ a
k : ℕ
c : Composition k
hd : (2 ≤ k ∧ k < n + 1) ∧ 1 < Composition.length c
⊢ { fst := k, snd := c } ∈ compPartialSumTarget 2 (n + 1) n
[PROOFSTEP]
simp only [mem_compPartialSumTarget_iff]
[GOAL]
case mk
𝕜 : 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
n : ℕ
p : ℕ → ℝ
hp : ∀ (k : ℕ), 0 ≤ p k
r a : ℝ
hr : 0 ≤ r
ha : 0 ≤ a
k : ℕ
c : Composition k
hd : (2 ≤ k ∧ k < n + 1) ∧ 1 < Composition.length c
⊢ 2 ≤ Composition.length c ∧
    Composition.length c < n + 1 ∧
      ∀ (j : Fin (Composition.length { fst := k, snd := c }.snd)), Composition.blocksFun c j < n
[PROOFSTEP]
refine' ⟨hd.2, c.length_le.trans_lt hd.1.2, fun j => _⟩
[GOAL]
case mk
𝕜 : 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
n : ℕ
p : ℕ → ℝ
hp : ∀ (k : ℕ), 0 ≤ p k
r a : ℝ
hr : 0 ≤ r
ha : 0 ≤ a
k : ℕ
c : Composition k
hd : (2 ≤ k ∧ k < n + 1) ∧ 1 < Composition.length c
j : Fin (Composition.length { fst := k, snd := c }.snd)
⊢ Composition.blocksFun c j < n
[PROOFSTEP]
have : c ≠ Composition.single k (zero_lt_two.trans_le hd.1.1) := by
  simp [Composition.eq_single_iff_length, ne_of_gt hd.2]
[GOAL]
𝕜 : 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
n : ℕ
p : ℕ → ℝ
hp : ∀ (k : ℕ), 0 ≤ p k
r a : ℝ
hr : 0 ≤ r
ha : 0 ≤ a
k : ℕ
c : Composition k
hd : (2 ≤ k ∧ k < n + 1) ∧ 1 < Composition.length c
j : Fin (Composition.length { fst := k, snd := c }.snd)
⊢ c ≠ Composition.single k (_ : 0 < k)
[PROOFSTEP]
simp [Composition.eq_single_iff_length, ne_of_gt hd.2]
[GOAL]
case mk
𝕜 : 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
n : ℕ
p : ℕ → ℝ
hp : ∀ (k : ℕ), 0 ≤ p k
r a : ℝ
hr : 0 ≤ r
ha : 0 ≤ a
k : ℕ
c : Composition k
hd : (2 ≤ k ∧ k < n + 1) ∧ 1 < Composition.length c
j : Fin (Composition.length { fst := k, snd := c }.snd)
this : c ≠ Composition.single k (_ : 0 < k)
⊢ Composition.blocksFun c j < n
[PROOFSTEP]
rw [Composition.ne_single_iff] at this
[GOAL]
case mk
𝕜 : 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
n : ℕ
p : ℕ → ℝ
hp : ∀ (k : ℕ), 0 ≤ p k
r a : ℝ
hr : 0 ≤ r
ha : 0 ≤ a
k : ℕ
c : Composition k
hd : (2 ≤ k ∧ k < n + 1) ∧ 1 < Composition.length c
j : Fin (Composition.length { fst := k, snd := c }.snd)
this : ∀ (i : Fin (Composition.length c)), Composition.blocksFun c i < k
⊢ Composition.blocksFun c j < n
[PROOFSTEP]
exact (this j).trans_le (Nat.lt_succ_iff.mp hd.1.2)
[GOAL]
𝕜 : 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
n : ℕ
p : ℕ → ℝ
hp : ∀ (k : ℕ), 0 ≤ p k
r a : ℝ
hr : 0 ≤ r
ha : 0 ≤ a
⊢ ∑ d in compPartialSumTarget 2 (n + 1) n,
      ∏ j : Fin (Composition.length d.snd),
        r * (a ^ Composition.blocksFun d.snd j * p (Composition.blocksFun d.snd j)) =
    ∑ e in compPartialSumSource 2 (n + 1) n, ∏ j : Fin e.fst, r * (a ^ Sigma.snd e j * p (Sigma.snd e j))
[PROOFSTEP]
symm
[GOAL]
𝕜 : 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
n : ℕ
p : ℕ → ℝ
hp : ∀ (k : ℕ), 0 ≤ p k
r a : ℝ
hr : 0 ≤ r
ha : 0 ≤ a
⊢ ∑ e in compPartialSumSource 2 (n + 1) n, ∏ j : Fin e.fst, r * (a ^ Sigma.snd e j * p (Sigma.snd e j)) =
    ∑ d in compPartialSumTarget 2 (n + 1) n,
      ∏ j : Fin (Composition.length d.snd), r * (a ^ Composition.blocksFun d.snd j * p (Composition.blocksFun d.snd j))
[PROOFSTEP]
apply compChangeOfVariables_sum
[GOAL]
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
n : ℕ
p : ℕ → ℝ
hp : ∀ (k : ℕ), 0 ≤ p k
r a : ℝ
hr : 0 ≤ r
ha : 0 ≤ a
⊢ ∀ (e : (n : ℕ) × (Fin n → ℕ)) (he : e ∈ compPartialSumSource 2 (n + 1) n),
    ∏ j : Fin e.fst, r * (a ^ Sigma.snd e j * p (Sigma.snd e j)) =
      ∏ j : Fin (Composition.length (compChangeOfVariables 2 (n + 1) n e he).snd),
        r *
          (a ^ Composition.blocksFun (compChangeOfVariables 2 (n + 1) n e he).snd j *
            p (Composition.blocksFun (compChangeOfVariables 2 (n + 1) n e he).snd j))
[PROOFSTEP]
rintro ⟨k, blocks_fun⟩ H
[GOAL]
case h.mk
𝕜 : 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
n : ℕ
p : ℕ → ℝ
hp : ∀ (k : ℕ), 0 ≤ p k
r a : ℝ
hr : 0 ≤ r
ha : 0 ≤ a
k : ℕ
blocks_fun : Fin k → ℕ
H : { fst := k, snd := blocks_fun } ∈ compPartialSumSource 2 (n + 1) n
⊢ ∏ j : Fin { fst := k, snd := blocks_fun }.fst,
      r * (a ^ Sigma.snd { fst := k, snd := blocks_fun } j * p (Sigma.snd { fst := k, snd := blocks_fun } j)) =
    ∏ j : Fin (Composition.length (compChangeOfVariables 2 (n + 1) n { fst := k, snd := blocks_fun } H).snd),
      r *
        (a ^ Composition.blocksFun (compChangeOfVariables 2 (n + 1) n { fst := k, snd := blocks_fun } H).snd j *
          p (Composition.blocksFun (compChangeOfVariables 2 (n + 1) n { fst := k, snd := blocks_fun } H).snd j))
[PROOFSTEP]
have K : (compChangeOfVariables 2 (n + 1) n ⟨k, blocks_fun⟩ H).snd.length = k := by simp
[GOAL]
𝕜 : 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
n : ℕ
p : ℕ → ℝ
hp : ∀ (k : ℕ), 0 ≤ p k
r a : ℝ
hr : 0 ≤ r
ha : 0 ≤ a
k : ℕ
blocks_fun : Fin k → ℕ
H : { fst := k, snd := blocks_fun } ∈ compPartialSumSource 2 (n + 1) n
⊢ Composition.length (compChangeOfVariables 2 (n + 1) n { fst := k, snd := blocks_fun } H).snd = k
[PROOFSTEP]
simp
[GOAL]
case h.mk
𝕜 : 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
n : ℕ
p : ℕ → ℝ
hp : ∀ (k : ℕ), 0 ≤ p k
r a : ℝ
hr : 0 ≤ r
ha : 0 ≤ a
k : ℕ
blocks_fun : Fin k → ℕ
H : { fst := k, snd := blocks_fun } ∈ compPartialSumSource 2 (n + 1) n
K : Composition.length (compChangeOfVariables 2 (n + 1) n { fst := k, snd := blocks_fun } H).snd = k
⊢ ∏ j : Fin { fst := k, snd := blocks_fun }.fst,
      r * (a ^ Sigma.snd { fst := k, snd := blocks_fun } j * p (Sigma.snd { fst := k, snd := blocks_fun } j)) =
    ∏ j : Fin (Composition.length (compChangeOfVariables 2 (n + 1) n { fst := k, snd := blocks_fun } H).snd),
      r *
        (a ^ Composition.blocksFun (compChangeOfVariables 2 (n + 1) n { fst := k, snd := blocks_fun } H).snd j *
          p (Composition.blocksFun (compChangeOfVariables 2 (n + 1) n { fst := k, snd := blocks_fun } H).snd j))
[PROOFSTEP]
congr 2
[GOAL]
case h.mk.h.e_2.e_n
𝕜 : 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
n : ℕ
p : ℕ → ℝ
hp : ∀ (k : ℕ), 0 ≤ p k
r a : ℝ
hr : 0 ≤ r
ha : 0 ≤ a
k : ℕ
blocks_fun : Fin k → ℕ
H : { fst := k, snd := blocks_fun } ∈ compPartialSumSource 2 (n + 1) n
K : Composition.length (compChangeOfVariables 2 (n + 1) n { fst := k, snd := blocks_fun } H).snd = k
⊢ { fst := k, snd := blocks_fun }.fst =
    Composition.length (compChangeOfVariables 2 (n + 1) n { fst := k, snd := blocks_fun } H).snd
[PROOFSTEP]
try rw [K]
[GOAL]
case h.mk.h.e_2.e_n
𝕜 : 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
n : ℕ
p : ℕ → ℝ
hp : ∀ (k : ℕ), 0 ≤ p k
r a : ℝ
hr : 0 ≤ r
ha : 0 ≤ a
k : ℕ
blocks_fun : Fin k → ℕ
H : { fst := k, snd := blocks_fun } ∈ compPartialSumSource 2 (n + 1) n
K : Composition.length (compChangeOfVariables 2 (n + 1) n { fst := k, snd := blocks_fun } H).snd = k
⊢ { fst := k, snd := blocks_fun }.fst =
    Composition.length (compChangeOfVariables 2 (n + 1) n { fst := k, snd := blocks_fun } H).snd
[PROOFSTEP]
rw [K]
[GOAL]
case h.mk.h.e_4.e_1
𝕜 : 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
n : ℕ
p : ℕ → ℝ
hp : ∀ (k : ℕ), 0 ≤ p k
r a : ℝ
hr : 0 ≤ r
ha : 0 ≤ a
k : ℕ
blocks_fun : Fin k → ℕ
H : { fst := k, snd := blocks_fun } ∈ compPartialSumSource 2 (n + 1) n
K : Composition.length (compChangeOfVariables 2 (n + 1) n { fst := k, snd := blocks_fun } H).snd = k
⊢ Fin { fst := k, snd := blocks_fun }.fst =
    Fin (Composition.length (compChangeOfVariables 2 (n + 1) n { fst := k, snd := blocks_fun } H).snd)
[PROOFSTEP]
try rw [K]
[GOAL]
case h.mk.h.e_4.e_1
𝕜 : 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
n : ℕ
p : ℕ → ℝ
hp : ∀ (k : ℕ), 0 ≤ p k
r a : ℝ
hr : 0 ≤ r
ha : 0 ≤ a
k : ℕ
blocks_fun : Fin k → ℕ
H : { fst := k, snd := blocks_fun } ∈ compPartialSumSource 2 (n + 1) n
K : Composition.length (compChangeOfVariables 2 (n + 1) n { fst := k, snd := blocks_fun } H).snd = k
⊢ Fin { fst := k, snd := blocks_fun }.fst =
    Fin (Composition.length (compChangeOfVariables 2 (n + 1) n { fst := k, snd := blocks_fun } H).snd)
[PROOFSTEP]
rw [K]
[GOAL]
case h.mk.h.e_4.e_2
𝕜 : 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
n : ℕ
p : ℕ → ℝ
hp : ∀ (k : ℕ), 0 ≤ p k
r a : ℝ
hr : 0 ≤ r
ha : 0 ≤ a
k : ℕ
blocks_fun : Fin k → ℕ
H : { fst := k, snd := blocks_fun } ∈ compPartialSumSource 2 (n + 1) n
K : Composition.length (compChangeOfVariables 2 (n + 1) n { fst := k, snd := blocks_fun } H).snd = k
⊢ HEq (Fin.fintype { fst := k, snd := blocks_fun }.fst)
    (Fin.fintype (Composition.length (compChangeOfVariables 2 (n + 1) n { fst := k, snd := blocks_fun } H).snd))
[PROOFSTEP]
try rw [K]
[GOAL]
case h.mk.h.e_4.e_2
𝕜 : 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
n : ℕ
p : ℕ → ℝ
hp : ∀ (k : ℕ), 0 ≤ p k
r a : ℝ
hr : 0 ≤ r
ha : 0 ≤ a
k : ℕ
blocks_fun : Fin k → ℕ
H : { fst := k, snd := blocks_fun } ∈ compPartialSumSource 2 (n + 1) n
K : Composition.length (compChangeOfVariables 2 (n + 1) n { fst := k, snd := blocks_fun } H).snd = k
⊢ HEq (Fin.fintype { fst := k, snd := blocks_fun }.fst)
    (Fin.fintype (Composition.length (compChangeOfVariables 2 (n + 1) n { fst := k, snd := blocks_fun } H).snd))
[PROOFSTEP]
rw [K]
[GOAL]
case h.mk.h.e_5
𝕜 : 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
n : ℕ
p : ℕ → ℝ
hp : ∀ (k : ℕ), 0 ≤ p k
r a : ℝ
hr : 0 ≤ r
ha : 0 ≤ a
k : ℕ
blocks_fun : Fin k → ℕ
H : { fst := k, snd := blocks_fun } ∈ compPartialSumSource 2 (n + 1) n
K : Composition.length (compChangeOfVariables 2 (n + 1) n { fst := k, snd := blocks_fun } H).snd = k
⊢ HEq (fun j => r * (a ^ Sigma.snd { fst := k, snd := blocks_fun } j * p (Sigma.snd { fst := k, snd := blocks_fun } j)))
    fun j =>
    r *
      (a ^ Composition.blocksFun (compChangeOfVariables 2 (n + 1) n { fst := k, snd := blocks_fun } H).snd j *
        p (Composition.blocksFun (compChangeOfVariables 2 (n + 1) n { fst := k, snd := blocks_fun } H).snd j))
[PROOFSTEP]
try rw [K]
[GOAL]
case h.mk.h.e_5
𝕜 : 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
n : ℕ
p : ℕ → ℝ
hp : ∀ (k : ℕ), 0 ≤ p k
r a : ℝ
hr : 0 ≤ r
ha : 0 ≤ a
k : ℕ
blocks_fun : Fin k → ℕ
H : { fst := k, snd := blocks_fun } ∈ compPartialSumSource 2 (n + 1) n
K : Composition.length (compChangeOfVariables 2 (n + 1) n { fst := k, snd := blocks_fun } H).snd = k
⊢ HEq (fun j => r * (a ^ Sigma.snd { fst := k, snd := blocks_fun } j * p (Sigma.snd { fst := k, snd := blocks_fun } j)))
    fun j =>
    r *
      (a ^ Composition.blocksFun (compChangeOfVariables 2 (n + 1) n { fst := k, snd := blocks_fun } H).snd j *
        p (Composition.blocksFun (compChangeOfVariables 2 (n + 1) n { fst := k, snd := blocks_fun } H).snd j))
[PROOFSTEP]
rw [K]
[GOAL]
case h.mk.h.e_5
𝕜 : 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
n : ℕ
p : ℕ → ℝ
hp : ∀ (k : ℕ), 0 ≤ p k
r a : ℝ
hr : 0 ≤ r
ha : 0 ≤ a
k : ℕ
blocks_fun : Fin k → ℕ
H : { fst := k, snd := blocks_fun } ∈ compPartialSumSource 2 (n + 1) n
K : Composition.length (compChangeOfVariables 2 (n + 1) n { fst := k, snd := blocks_fun } H).snd = k
⊢ HEq (fun j => r * (a ^ Sigma.snd { fst := k, snd := blocks_fun } j * p (Sigma.snd { fst := k, snd := blocks_fun } j)))
    fun j =>
    r *
      (a ^ Composition.blocksFun (compChangeOfVariables 2 (n + 1) n { fst := k, snd := blocks_fun } H).snd j *
        p (Composition.blocksFun (compChangeOfVariables 2 (n + 1) n { fst := k, snd := blocks_fun } H).snd j))
[PROOFSTEP]
rw [Fin.heq_fun_iff K.symm]
[GOAL]
case h.mk.h.e_5
𝕜 : 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
n : ℕ
p : ℕ → ℝ
hp : ∀ (k : ℕ), 0 ≤ p k
r a : ℝ
hr : 0 ≤ r
ha : 0 ≤ a
k : ℕ
blocks_fun : Fin k → ℕ
H : { fst := k, snd := blocks_fun } ∈ compPartialSumSource 2 (n + 1) n
K : Composition.length (compChangeOfVariables 2 (n + 1) n { fst := k, snd := blocks_fun } H).snd = k
⊢ ∀ (i : Fin k),
    r * (a ^ Sigma.snd { fst := k, snd := blocks_fun } i * p (Sigma.snd { fst := k, snd := blocks_fun } i)) =
      r *
        (a ^
            Composition.blocksFun (compChangeOfVariables 2 (n + 1) n { fst := k, snd := blocks_fun } H).snd
              { val := ↑i,
                isLt :=
                  (_ :
                    ↑i <
                      Composition.length (compChangeOfVariables 2 (n + 1) n { fst := k, snd := blocks_fun } H).snd) } *
          p
            (Composition.blocksFun (compChangeOfVariables 2 (n + 1) n { fst := k, snd := blocks_fun } H).snd
              { val := ↑i,
                isLt :=
                  (_ :
                    ↑i <
                      Composition.length (compChangeOfVariables 2 (n + 1) n { fst := k, snd := blocks_fun } H).snd) }))
[PROOFSTEP]
intro j
[GOAL]
case h.mk.h.e_5
𝕜 : 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
n : ℕ
p : ℕ → ℝ
hp : ∀ (k : ℕ), 0 ≤ p k
r a : ℝ
hr : 0 ≤ r
ha : 0 ≤ a
k : ℕ
blocks_fun : Fin k → ℕ
H : { fst := k, snd := blocks_fun } ∈ compPartialSumSource 2 (n + 1) n
K : Composition.length (compChangeOfVariables 2 (n + 1) n { fst := k, snd := blocks_fun } H).snd = k
j : Fin k
⊢ r * (a ^ Sigma.snd { fst := k, snd := blocks_fun } j * p (Sigma.snd { fst := k, snd := blocks_fun } j)) =
    r *
      (a ^
          Composition.blocksFun (compChangeOfVariables 2 (n + 1) n { fst := k, snd := blocks_fun } H).snd
            { val := ↑j,
              isLt :=
                (_ :
                  ↑j < Composition.length (compChangeOfVariables 2 (n + 1) n { fst := k, snd := blocks_fun } H).snd) } *
        p
          (Composition.blocksFun (compChangeOfVariables 2 (n + 1) n { fst := k, snd := blocks_fun } H).snd
            { val := ↑j,
              isLt :=
                (_ :
                  ↑j < Composition.length (compChangeOfVariables 2 (n + 1) n { fst := k, snd := blocks_fun } H).snd) }))
[PROOFSTEP]
rw [compChangeOfVariables_blocksFun]
[GOAL]
𝕜 : 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
n : ℕ
p : ℕ → ℝ
hp : ∀ (k : ℕ), 0 ≤ p k
r a : ℝ
hr : 0 ≤ r
ha : 0 ≤ a
⊢ ∑ e in compPartialSumSource 2 (n + 1) n, ∏ j : Fin e.fst, r * (a ^ Sigma.snd e j * p (Sigma.snd e j)) =
    ∑ j in Ico 2 (n + 1), r ^ j * (∑ k in Ico 1 n, a ^ k * p k) ^ j
[PROOFSTEP]
rw [compPartialSumSource, ←
  sum_sigma' (Ico 2 (n + 1)) (fun k : ℕ => (Fintype.piFinset fun _ : Fin k => Ico 1 n : Finset (Fin k → ℕ)))
    (fun n e => ∏ j : Fin n, r * (a ^ e j * p (e j)))]
[GOAL]
𝕜 : 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
n : ℕ
p : ℕ → ℝ
hp : ∀ (k : ℕ), 0 ≤ p k
r a : ℝ
hr : 0 ≤ r
ha : 0 ≤ a
⊢ ∑ a_1 in Ico 2 (n + 1), ∑ s in Fintype.piFinset fun x => Ico 1 n, ∏ j : Fin a_1, r * (a ^ s j * p (s j)) =
    ∑ j in Ico 2 (n + 1), r ^ j * (∑ k in Ico 1 n, a ^ k * p k) ^ j
[PROOFSTEP]
apply sum_congr rfl fun j _ => ?_
[GOAL]
𝕜 : 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
n : ℕ
p : ℕ → ℝ
hp : ∀ (k : ℕ), 0 ≤ p k
r a : ℝ
hr : 0 ≤ r
ha : 0 ≤ a
j : ℕ
x✝ : j ∈ Ico 2 (n + 1)
⊢ ∑ s in Fintype.piFinset fun x => Ico 1 n, ∏ j : Fin j, r * (a ^ s j * p (s j)) =
    r ^ j * (∑ k in Ico 1 n, a ^ k * p k) ^ j
[PROOFSTEP]
simp only [← @MultilinearMap.mkPiAlgebra_apply ℝ (Fin j) _ ℝ]
[GOAL]
𝕜 : 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
n : ℕ
p : ℕ → ℝ
hp : ∀ (k : ℕ), 0 ≤ p k
r a : ℝ
hr : 0 ≤ r
ha : 0 ≤ a
j : ℕ
x✝ : j ∈ Ico 2 (n + 1)
⊢ (∑ x in Fintype.piFinset fun x => Ico 1 n,
      ↑(MultilinearMap.mkPiAlgebra ℝ (Fin j) ℝ) fun j => r * (a ^ x j * p (x j))) =
    r ^ j * (∑ k in Ico 1 n, a ^ k * p k) ^ j
[PROOFSTEP]
simp only [← MultilinearMap.map_sum_finset (MultilinearMap.mkPiAlgebra ℝ (Fin j) ℝ) fun _ (m : ℕ) => r * (a ^ m * p m)]
[GOAL]
𝕜 : 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
n : ℕ
p : ℕ → ℝ
hp : ∀ (k : ℕ), 0 ≤ p k
r a : ℝ
hr : 0 ≤ r
ha : 0 ≤ a
j : ℕ
x✝ : j ∈ Ico 2 (n + 1)
⊢ (↑(MultilinearMap.mkPiAlgebra ℝ (Fin j) ℝ) fun i => ∑ j in Ico 1 n, r * (a ^ j * p j)) =
    r ^ j * (∑ k in Ico 1 n, a ^ k * p k) ^ j
[PROOFSTEP]
simp only [MultilinearMap.mkPiAlgebra_apply]
[GOAL]
𝕜 : 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
n : ℕ
p : ℕ → ℝ
hp : ∀ (k : ℕ), 0 ≤ p k
r a : ℝ
hr : 0 ≤ r
ha : 0 ≤ a
j : ℕ
x✝ : j ∈ Ico 2 (n + 1)
⊢ ∏ i : Fin j, ∑ j in Ico 1 n, r * (a ^ j * p j) = r ^ j * (∑ k in Ico 1 n, a ^ k * p k) ^ j
[PROOFSTEP]
simp [prod_const, ← mul_sum, mul_pow]
[GOAL]
𝕜 : 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
n : ℕ
hn : 2 ≤ n + 1
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
r a C : ℝ
hr : 0 ≤ r
ha : 0 ≤ a
hC : 0 ≤ C
hp : ∀ (n : ℕ), ‖p n‖ ≤ C * r ^ n
I : ℝ := ‖↑(ContinuousLinearEquiv.symm i)‖
⊢ ∑ k in Ico 1 (n + 1), a ^ k * ‖rightInv p i k‖ = a * I + ∑ k in Ico 2 (n + 1), a ^ k * ‖rightInv p i k‖
[PROOFSTEP]
simp only [LinearIsometryEquiv.norm_map, pow_one, rightInv_coeff_one,
  show Ico (1 : ℕ) 2 = {1} from Nat.Ico_succ_singleton 1, sum_singleton, ← sum_Ico_consecutive _ one_le_two hn]
[GOAL]
𝕜 : 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
n : ℕ
hn : 2 ≤ n + 1
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
r a C : ℝ
hr : 0 ≤ r
ha : 0 ≤ a
hC : 0 ≤ C
hp : ∀ (n : ℕ), ‖p n‖ ≤ C * r ^ n
I : ℝ := ‖↑(ContinuousLinearEquiv.symm i)‖
⊢ a * I + ∑ k in Ico 2 (n + 1), a ^ k * ‖rightInv p i k‖ =
    a * I +
      ∑ k in Ico 2 (n + 1),
        a ^ k *
          ‖ContinuousLinearMap.compContinuousMultilinearMap (↑(ContinuousLinearEquiv.symm i))
              (∑ c in Set.toFinset {c | 1 < Composition.length c}, compAlongComposition p (rightInv p i) c)‖
[PROOFSTEP]
congr 1
[GOAL]
case e_a
𝕜 : 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
n : ℕ
hn : 2 ≤ n + 1
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
r a C : ℝ
hr : 0 ≤ r
ha : 0 ≤ a
hC : 0 ≤ C
hp : ∀ (n : ℕ), ‖p n‖ ≤ C * r ^ n
I : ℝ := ‖↑(ContinuousLinearEquiv.symm i)‖
⊢ ∑ k in Ico 2 (n + 1), a ^ k * ‖rightInv p i k‖ =
    ∑ k in Ico 2 (n + 1),
      a ^ k *
        ‖ContinuousLinearMap.compContinuousMultilinearMap (↑(ContinuousLinearEquiv.symm i))
            (∑ c in Set.toFinset {c | 1 < Composition.length c}, compAlongComposition p (rightInv p i) c)‖
[PROOFSTEP]
apply sum_congr rfl fun j hj => ?_
[GOAL]
𝕜 : 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
n : ℕ
hn : 2 ≤ n + 1
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
r a C : ℝ
hr : 0 ≤ r
ha : 0 ≤ a
hC : 0 ≤ C
hp : ∀ (n : ℕ), ‖p n‖ ≤ C * r ^ n
I : ℝ := ‖↑(ContinuousLinearEquiv.symm i)‖
j : ℕ
hj : j ∈ Ico 2 (n + 1)
⊢ a ^ j * ‖rightInv p i j‖ =
    a ^ j *
      ‖ContinuousLinearMap.compContinuousMultilinearMap (↑(ContinuousLinearEquiv.symm i))
          (∑ c in Set.toFinset {c | 1 < Composition.length c}, compAlongComposition p (rightInv p i) c)‖
[PROOFSTEP]
rw [rightInv_coeff _ _ _ (mem_Ico.1 hj).1, norm_neg]
[GOAL]
𝕜 : 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
n : ℕ
hn : 2 ≤ n + 1
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
r a C : ℝ
hr : 0 ≤ r
ha : 0 ≤ a
hC : 0 ≤ C
hp : ∀ (n : ℕ), ‖p n‖ ≤ C * r ^ n
I : ℝ := ‖↑(ContinuousLinearEquiv.symm i)‖
⊢ a * I +
      ∑ k in Ico 2 (n + 1),
        a ^ k *
          ‖ContinuousLinearMap.compContinuousMultilinearMap (↑(ContinuousLinearEquiv.symm i))
              (∑ c in Set.toFinset {c | 1 < Composition.length c}, compAlongComposition p (rightInv p i) c)‖ ≤
    a * ‖↑(ContinuousLinearEquiv.symm i)‖ +
      ∑ k in Ico 2 (n + 1),
        a ^ k *
          (I *
            ∑ c in Set.toFinset {c | 1 < Composition.length c},
              C * r ^ Composition.length c *
                ∏ j : Fin (Composition.length c), ‖rightInv p i (Composition.blocksFun c j)‖)
[PROOFSTEP]
apply_rules [add_le_add, le_refl, sum_le_sum fun j hj => ?_, mul_le_mul_of_nonneg_left, pow_nonneg, ha]
[GOAL]
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
n : ℕ
hn : 2 ≤ n + 1
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
r a C : ℝ
hr : 0 ≤ r
ha : 0 ≤ a
hC : 0 ≤ C
hp : ∀ (n : ℕ), ‖p n‖ ≤ C * r ^ n
I : ℝ := ‖↑(ContinuousLinearEquiv.symm i)‖
i_symm : F ≃L[𝕜] E
j : ℕ
hj : j ∈ Ico 2 (n + 1)
⊢ ‖ContinuousLinearMap.compContinuousMultilinearMap (↑(ContinuousLinearEquiv.symm i))
        (∑ c in Set.toFinset {c | 1 < Composition.length c}, compAlongComposition p (rightInv p i) c)‖ ≤
    I *
      ∑ c in Set.toFinset {c | 1 < Composition.length c},
        C * r ^ Composition.length c * ∏ j_1 : Fin (Composition.length c), ‖rightInv p i (Composition.blocksFun c j_1)‖
[PROOFSTEP]
apply (ContinuousLinearMap.norm_compContinuousMultilinearMap_le _ _).trans
[GOAL]
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
n : ℕ
hn : 2 ≤ n + 1
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
r a C : ℝ
hr : 0 ≤ r
ha : 0 ≤ a
hC : 0 ≤ C
hp : ∀ (n : ℕ), ‖p n‖ ≤ C * r ^ n
I : ℝ := ‖↑(ContinuousLinearEquiv.symm i)‖
i_symm : F ≃L[𝕜] E
j : ℕ
hj : j ∈ Ico 2 (n + 1)
⊢ ‖↑(ContinuousLinearEquiv.symm i)‖ *
      ‖∑ c in Set.toFinset {c | 1 < Composition.length c}, compAlongComposition p (rightInv p i) c‖ ≤
    I *
      ∑ c in Set.toFinset {c | 1 < Composition.length c},
        C * r ^ Composition.length c * ∏ j_1 : Fin (Composition.length c), ‖rightInv p i (Composition.blocksFun c j_1)‖
[PROOFSTEP]
apply mul_le_mul_of_nonneg_left _ (norm_nonneg _)
[GOAL]
𝕜 : 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
n : ℕ
hn : 2 ≤ n + 1
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
r a C : ℝ
hr : 0 ≤ r
ha : 0 ≤ a
hC : 0 ≤ C
hp : ∀ (n : ℕ), ‖p n‖ ≤ C * r ^ n
I : ℝ := ‖↑(ContinuousLinearEquiv.symm i)‖
i_symm : F ≃L[𝕜] E
j : ℕ
hj : j ∈ Ico 2 (n + 1)
⊢ ‖∑ c in Set.toFinset {c | 1 < Composition.length c}, compAlongComposition p (rightInv p i) c‖ ≤
    ∑ c in Set.toFinset {c | 1 < Composition.length c},
      C * r ^ Composition.length c * ∏ j_1 : Fin (Composition.length c), ‖rightInv p i (Composition.blocksFun c j_1)‖
[PROOFSTEP]
apply (norm_sum_le _ _).trans
[GOAL]
𝕜 : 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
n : ℕ
hn : 2 ≤ n + 1
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
r a C : ℝ
hr : 0 ≤ r
ha : 0 ≤ a
hC : 0 ≤ C
hp : ∀ (n : ℕ), ‖p n‖ ≤ C * r ^ n
I : ℝ := ‖↑(ContinuousLinearEquiv.symm i)‖
i_symm : F ≃L[𝕜] E
j : ℕ
hj : j ∈ Ico 2 (n + 1)
⊢ ∑ i_1 in Set.toFinset {c | 1 < Composition.length c}, ‖compAlongComposition p (rightInv p i) i_1‖ ≤
    ∑ c in Set.toFinset {c | 1 < Composition.length c},
      C * r ^ Composition.length c * ∏ j_1 : Fin (Composition.length c), ‖rightInv p i (Composition.blocksFun c j_1)‖
[PROOFSTEP]
apply sum_le_sum fun c _ => ?_
[GOAL]
𝕜 : 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
n : ℕ
hn : 2 ≤ n + 1
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
r a C : ℝ
hr : 0 ≤ r
ha : 0 ≤ a
hC : 0 ≤ C
hp : ∀ (n : ℕ), ‖p n‖ ≤ C * r ^ n
I : ℝ := ‖↑(ContinuousLinearEquiv.symm i)‖
i_symm : F ≃L[𝕜] E
j : ℕ
hj : j ∈ Ico 2 (n + 1)
c : Composition j
x✝ : c ∈ Set.toFinset {c | 1 < Composition.length c}
⊢ ‖compAlongComposition p (rightInv p i) c‖ ≤
    C * r ^ Composition.length c * ∏ j_1 : Fin (Composition.length c), ‖rightInv p i (Composition.blocksFun c j_1)‖
[PROOFSTEP]
apply (compAlongComposition_norm _ _ _).trans
[GOAL]
𝕜 : 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
n : ℕ
hn : 2 ≤ n + 1
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
r a C : ℝ
hr : 0 ≤ r
ha : 0 ≤ a
hC : 0 ≤ C
hp : ∀ (n : ℕ), ‖p n‖ ≤ C * r ^ n
I : ℝ := ‖↑(ContinuousLinearEquiv.symm i)‖
i_symm : F ≃L[𝕜] E
j : ℕ
hj : j ∈ Ico 2 (n + 1)
c : Composition j
x✝ : c ∈ Set.toFinset {c | 1 < Composition.length c}
⊢ ‖p (Composition.length c)‖ * ∏ i_1 : Fin (Composition.length c), ‖rightInv p i (Composition.blocksFun c i_1)‖ ≤
    C * r ^ Composition.length c * ∏ j_1 : Fin (Composition.length c), ‖rightInv p i (Composition.blocksFun c j_1)‖
[PROOFSTEP]
apply mul_le_mul_of_nonneg_right (hp _)
[GOAL]
𝕜 : 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
n : ℕ
hn : 2 ≤ n + 1
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
r a C : ℝ
hr : 0 ≤ r
ha : 0 ≤ a
hC : 0 ≤ C
hp : ∀ (n : ℕ), ‖p n‖ ≤ C * r ^ n
I : ℝ := ‖↑(ContinuousLinearEquiv.symm i)‖
i_symm : F ≃L[𝕜] E
j : ℕ
hj : j ∈ Ico 2 (n + 1)
c : Composition j
x✝ : c ∈ Set.toFinset {c | 1 < Composition.length c}
⊢ 0 ≤ ∏ i_1 : Fin (Composition.length c), ‖rightInv p i (Composition.blocksFun c i_1)‖
[PROOFSTEP]
exact prod_nonneg fun j _ => norm_nonneg _
[GOAL]
𝕜 : 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
n : ℕ
hn : 2 ≤ n + 1
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
r a C : ℝ
hr : 0 ≤ r
ha : 0 ≤ a
hC : 0 ≤ C
hp : ∀ (n : ℕ), ‖p n‖ ≤ C * r ^ n
I : ℝ := ‖↑(ContinuousLinearEquiv.symm i)‖
⊢ a * ‖↑(ContinuousLinearEquiv.symm i)‖ +
      ∑ k in Ico 2 (n + 1),
        a ^ k *
          (I *
            ∑ c in Set.toFinset {c | 1 < Composition.length c},
              C * r ^ Composition.length c *
                ∏ j : Fin (Composition.length c), ‖rightInv p i (Composition.blocksFun c j)‖) =
    I * a +
      I * C *
        ∑ k in Ico 2 (n + 1),
          a ^ k *
            ∑ c in Set.toFinset {c | 1 < Composition.length c},
              r ^ Composition.length c * ∏ j : Fin (Composition.length c), ‖rightInv p i (Composition.blocksFun c j)‖
[PROOFSTEP]
simp_rw [mul_assoc C, ← mul_sum, ← mul_assoc, mul_comm _ ‖(i.symm : F →L[𝕜] E)‖, mul_assoc, ← mul_sum, ← mul_assoc,
  mul_comm _ C, mul_assoc, ← mul_sum]
[GOAL]
𝕜 : 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
n : ℕ
hn : 2 ≤ n + 1
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
r a C : ℝ
hr : 0 ≤ r
ha : 0 ≤ a
hC : 0 ≤ C
hp : ∀ (n : ℕ), ‖p n‖ ≤ C * r ^ n
I : ℝ := ‖↑(ContinuousLinearEquiv.symm i)‖
⊢ ‖↑(ContinuousLinearEquiv.symm i)‖ * a +
      ‖↑(ContinuousLinearEquiv.symm i)‖ *
        (C *
          ∑ x in Ico 2 (n + 1),
            a ^ x *
              ∑ x_1 in Set.toFinset {c | 1 < Composition.length c},
                r ^ Composition.length x_1 *
                  ∏ x_2 : Fin (Composition.length x_1), ‖rightInv p i (Composition.blocksFun x_1 x_2)‖) =
    ‖↑(ContinuousLinearEquiv.symm i)‖ * a +
      C *
        (‖↑(ContinuousLinearEquiv.symm i)‖ *
          ∑ x in Ico 2 (n + 1),
            a ^ x *
              ∑ x_1 in Set.toFinset {c | 1 < Composition.length c},
                r ^ Composition.length x_1 *
                  ∏ x_2 : Fin (Composition.length x_1), ‖rightInv p i (Composition.blocksFun x_1 x_2)‖)
[PROOFSTEP]
ring
[GOAL]
𝕜 : 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
n : ℕ
hn : 2 ≤ n + 1
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
r a C : ℝ
hr : 0 ≤ r
ha : 0 ≤ a
hC : 0 ≤ C
hp : ∀ (n : ℕ), ‖p n‖ ≤ C * r ^ n
I : ℝ := ‖↑(ContinuousLinearEquiv.symm i)‖
⊢ I * a +
      I * C *
        ∑ k in Ico 2 (n + 1),
          a ^ k *
            ∑ c in Set.toFinset {c | 1 < Composition.length c},
              r ^ Composition.length c * ∏ j : Fin (Composition.length c), ‖rightInv p i (Composition.blocksFun c j)‖ ≤
    I * a + I * C * ∑ k in Ico 2 (n + 1), (r * ∑ j in Ico 1 n, a ^ j * ‖rightInv p i j‖) ^ k
[PROOFSTEP]
apply_rules [add_le_add, le_refl, mul_le_mul_of_nonneg_left, norm_nonneg, hC, mul_nonneg]
[GOAL]
case h₂.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
n : ℕ
hn : 2 ≤ n + 1
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
r a C : ℝ
hr : 0 ≤ r
ha : 0 ≤ a
hC : 0 ≤ C
hp : ∀ (n : ℕ), ‖p n‖ ≤ C * r ^ n
I : ℝ := ‖↑(ContinuousLinearEquiv.symm i)‖
i_symm : F ≃L[𝕜] E
⊢ ∑ k in Ico 2 (n + 1),
      a ^ k *
        ∑ c in Set.toFinset {c | 1 < Composition.length c},
          r ^ Composition.length c * ∏ j : Fin (Composition.length c), ‖rightInv p i (Composition.blocksFun c j)‖ ≤
    ∑ k in Ico 2 (n + 1), (r * ∑ j in Ico 1 n, a ^ j * ‖rightInv p i j‖) ^ k
[PROOFSTEP]
simp_rw [mul_pow]
[GOAL]
case h₂.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
n : ℕ
hn : 2 ≤ n + 1
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
r a C : ℝ
hr : 0 ≤ r
ha : 0 ≤ a
hC : 0 ≤ C
hp : ∀ (n : ℕ), ‖p n‖ ≤ C * r ^ n
I : ℝ := ‖↑(ContinuousLinearEquiv.symm i)‖
i_symm : F ≃L[𝕜] E
⊢ ∑ x in Ico 2 (n + 1),
      a ^ x *
        ∑ x_1 in Set.toFinset {c | 1 < Composition.length c},
          r ^ Composition.length x_1 *
            ∏ x_2 : Fin (Composition.length x_1), ‖rightInv p i (Composition.blocksFun x_1 x_2)‖ ≤
    ∑ x in Ico 2 (n + 1), r ^ x * (∑ x in Ico 1 n, a ^ x * ‖rightInv p i x‖) ^ x
[PROOFSTEP]
apply radius_right_inv_pos_of_radius_pos_aux1 n (fun k => ‖p.rightInv i k‖) (fun k => norm_nonneg _) hr ha
[GOAL]
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
hp : 0 < radius p
⊢ 0 < radius (rightInv p i)
[PROOFSTEP]
obtain ⟨C, r, Cpos, rpos, ple⟩ : ∃ (C r : _) (_ : 0 < C) (_ : 0 < r), ∀ n : ℕ, ‖p n‖ ≤ C * r ^ n :=
  le_mul_pow_of_radius_pos p hp
[GOAL]
case intro.intro.intro.intro
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
hp : 0 < radius p
C r : ℝ
Cpos : 0 < C
rpos : 0 < r
ple : ∀ (n : ℕ), ‖p n‖ ≤ C * r ^ n
⊢ 0 < radius (rightInv p i)
[PROOFSTEP]
let I :=
  ‖(i.symm : F →L[𝕜] E)‖
    -- choose `a` small enough to make sure that `∑_{k ≤ n} aᵏ Qₖ` will be controllable by
      -- induction
[GOAL]
case intro.intro.intro.intro
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
hp : 0 < radius p
C r : ℝ
Cpos : 0 < C
rpos : 0 < r
ple : ∀ (n : ℕ), ‖p n‖ ≤ C * r ^ n
I : ℝ := ‖↑(ContinuousLinearEquiv.symm i)‖
⊢ 0 < radius (rightInv p i)
[PROOFSTEP]
obtain ⟨a, apos, ha1, ha2⟩ :
  ∃ (a : _) (apos : 0 < a), 2 * I * C * r ^ 2 * (I + 1) ^ 2 * a ≤ 1 ∧ r * (I + 1) * a ≤ 1 / 2 :=
  by
  have : Tendsto (fun a => 2 * I * C * r ^ 2 * (I + 1) ^ 2 * a) (𝓝 0) (𝓝 (2 * I * C * r ^ 2 * (I + 1) ^ 2 * 0)) :=
    tendsto_const_nhds.mul tendsto_id
  have A : ∀ᶠ a in 𝓝 0, 2 * I * C * r ^ 2 * (I + 1) ^ 2 * a < 1 := by apply (tendsto_order.1 this).2; simp [zero_lt_one]
  have : Tendsto (fun a => r * (I + 1) * a) (𝓝 0) (𝓝 (r * (I + 1) * 0)) := tendsto_const_nhds.mul tendsto_id
  have B : ∀ᶠ a in 𝓝 0, r * (I + 1) * a < 1 / 2 := by apply (tendsto_order.1 this).2; simp [zero_lt_one]
  have C : ∀ᶠ a in 𝓝[>] (0 : ℝ), (0 : ℝ) < a := by filter_upwards [self_mem_nhdsWithin] with _ ha using ha
  rcases(C.and ((A.and B).filter_mono inf_le_left)).exists with ⟨a, ha⟩
  exact
    ⟨a, ha.1, ha.2.1.le, ha.2.2.le⟩
      -- check by induction that the partial sums are suitably bounded, using the choice of `a` and the
        -- inductive control from Lemma `radius_rightInv_pos_of_radius_pos_aux2`.
[GOAL]
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
hp : 0 < radius p
C r : ℝ
Cpos : 0 < C
rpos : 0 < r
ple : ∀ (n : ℕ), ‖p n‖ ≤ C * r ^ n
I : ℝ := ‖↑(ContinuousLinearEquiv.symm i)‖
⊢ ∃ a apos, 2 * I * C * r ^ 2 * (I + 1) ^ 2 * a ≤ 1 ∧ r * (I + 1) * a ≤ 1 / 2
[PROOFSTEP]
have : Tendsto (fun a => 2 * I * C * r ^ 2 * (I + 1) ^ 2 * a) (𝓝 0) (𝓝 (2 * I * C * r ^ 2 * (I + 1) ^ 2 * 0)) :=
  tendsto_const_nhds.mul tendsto_id
[GOAL]
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
hp : 0 < radius p
C r : ℝ
Cpos : 0 < C
rpos : 0 < r
ple : ∀ (n : ℕ), ‖p n‖ ≤ C * r ^ n
I : ℝ := ‖↑(ContinuousLinearEquiv.symm i)‖
this : Tendsto (fun a => 2 * I * C * r ^ 2 * (I + 1) ^ 2 * a) (𝓝 0) (𝓝 (2 * I * C * r ^ 2 * (I + 1) ^ 2 * 0))
⊢ ∃ a apos, 2 * I * C * r ^ 2 * (I + 1) ^ 2 * a ≤ 1 ∧ r * (I + 1) * a ≤ 1 / 2
[PROOFSTEP]
have A : ∀ᶠ a in 𝓝 0, 2 * I * C * r ^ 2 * (I + 1) ^ 2 * a < 1 := by apply (tendsto_order.1 this).2; simp [zero_lt_one]
[GOAL]
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
hp : 0 < radius p
C r : ℝ
Cpos : 0 < C
rpos : 0 < r
ple : ∀ (n : ℕ), ‖p n‖ ≤ C * r ^ n
I : ℝ := ‖↑(ContinuousLinearEquiv.symm i)‖
this : Tendsto (fun a => 2 * I * C * r ^ 2 * (I + 1) ^ 2 * a) (𝓝 0) (𝓝 (2 * I * C * r ^ 2 * (I + 1) ^ 2 * 0))
⊢ ∀ᶠ (a : ℝ) in 𝓝 0, 2 * I * C * r ^ 2 * (I + 1) ^ 2 * a < 1
[PROOFSTEP]
apply (tendsto_order.1 this).2
[GOAL]
case a
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
hp : 0 < radius p
C r : ℝ
Cpos : 0 < C
rpos : 0 < r
ple : ∀ (n : ℕ), ‖p n‖ ≤ C * r ^ n
I : ℝ := ‖↑(ContinuousLinearEquiv.symm i)‖
this : Tendsto (fun a => 2 * I * C * r ^ 2 * (I + 1) ^ 2 * a) (𝓝 0) (𝓝 (2 * I * C * r ^ 2 * (I + 1) ^ 2 * 0))
⊢ 1 > 2 * I * C * r ^ 2 * (I + 1) ^ 2 * 0
[PROOFSTEP]
simp [zero_lt_one]
[GOAL]
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
hp : 0 < radius p
C r : ℝ
Cpos : 0 < C
rpos : 0 < r
ple : ∀ (n : ℕ), ‖p n‖ ≤ C * r ^ n
I : ℝ := ‖↑(ContinuousLinearEquiv.symm i)‖
this : Tendsto (fun a => 2 * I * C * r ^ 2 * (I + 1) ^ 2 * a) (𝓝 0) (𝓝 (2 * I * C * r ^ 2 * (I + 1) ^ 2 * 0))
A : ∀ᶠ (a : ℝ) in 𝓝 0, 2 * I * C * r ^ 2 * (I + 1) ^ 2 * a < 1
⊢ ∃ a apos, 2 * I * C * r ^ 2 * (I + 1) ^ 2 * a ≤ 1 ∧ r * (I + 1) * a ≤ 1 / 2
[PROOFSTEP]
have : Tendsto (fun a => r * (I + 1) * a) (𝓝 0) (𝓝 (r * (I + 1) * 0)) := tendsto_const_nhds.mul tendsto_id
[GOAL]
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
hp : 0 < radius p
C r : ℝ
Cpos : 0 < C
rpos : 0 < r
ple : ∀ (n : ℕ), ‖p n‖ ≤ C * r ^ n
I : ℝ := ‖↑(ContinuousLinearEquiv.symm i)‖
this✝ : Tendsto (fun a => 2 * I * C * r ^ 2 * (I + 1) ^ 2 * a) (𝓝 0) (𝓝 (2 * I * C * r ^ 2 * (I + 1) ^ 2 * 0))
A : ∀ᶠ (a : ℝ) in 𝓝 0, 2 * I * C * r ^ 2 * (I + 1) ^ 2 * a < 1
this : Tendsto (fun a => r * (I + 1) * a) (𝓝 0) (𝓝 (r * (I + 1) * 0))
⊢ ∃ a apos, 2 * I * C * r ^ 2 * (I + 1) ^ 2 * a ≤ 1 ∧ r * (I + 1) * a ≤ 1 / 2
[PROOFSTEP]
have B : ∀ᶠ a in 𝓝 0, r * (I + 1) * a < 1 / 2 := by apply (tendsto_order.1 this).2; simp [zero_lt_one]
[GOAL]
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
hp : 0 < radius p
C r : ℝ
Cpos : 0 < C
rpos : 0 < r
ple : ∀ (n : ℕ), ‖p n‖ ≤ C * r ^ n
I : ℝ := ‖↑(ContinuousLinearEquiv.symm i)‖
this✝ : Tendsto (fun a => 2 * I * C * r ^ 2 * (I + 1) ^ 2 * a) (𝓝 0) (𝓝 (2 * I * C * r ^ 2 * (I + 1) ^ 2 * 0))
A : ∀ᶠ (a : ℝ) in 𝓝 0, 2 * I * C * r ^ 2 * (I + 1) ^ 2 * a < 1
this : Tendsto (fun a => r * (I + 1) * a) (𝓝 0) (𝓝 (r * (I + 1) * 0))
⊢ ∀ᶠ (a : ℝ) in 𝓝 0, r * (I + 1) * a < 1 / 2
[PROOFSTEP]
apply (tendsto_order.1 this).2
[GOAL]
case a
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
hp : 0 < radius p
C r : ℝ
Cpos : 0 < C
rpos : 0 < r
ple : ∀ (n : ℕ), ‖p n‖ ≤ C * r ^ n
I : ℝ := ‖↑(ContinuousLinearEquiv.symm i)‖
this✝ : Tendsto (fun a => 2 * I * C * r ^ 2 * (I + 1) ^ 2 * a) (𝓝 0) (𝓝 (2 * I * C * r ^ 2 * (I + 1) ^ 2 * 0))
A : ∀ᶠ (a : ℝ) in 𝓝 0, 2 * I * C * r ^ 2 * (I + 1) ^ 2 * a < 1
this : Tendsto (fun a => r * (I + 1) * a) (𝓝 0) (𝓝 (r * (I + 1) * 0))
⊢ 1 / 2 > r * (I + 1) * 0
[PROOFSTEP]
simp [zero_lt_one]
[GOAL]
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
hp : 0 < radius p
C r : ℝ
Cpos : 0 < C
rpos : 0 < r
ple : ∀ (n : ℕ), ‖p n‖ ≤ C * r ^ n
I : ℝ := ‖↑(ContinuousLinearEquiv.symm i)‖
this✝ : Tendsto (fun a => 2 * I * C * r ^ 2 * (I + 1) ^ 2 * a) (𝓝 0) (𝓝 (2 * I * C * r ^ 2 * (I + 1) ^ 2 * 0))
A : ∀ᶠ (a : ℝ) in 𝓝 0, 2 * I * C * r ^ 2 * (I + 1) ^ 2 * a < 1
this : Tendsto (fun a => r * (I + 1) * a) (𝓝 0) (𝓝 (r * (I + 1) * 0))
B : ∀ᶠ (a : ℝ) in 𝓝 0, r * (I + 1) * a < 1 / 2
⊢ ∃ a apos, 2 * I * C * r ^ 2 * (I + 1) ^ 2 * a ≤ 1 ∧ r * (I + 1) * a ≤ 1 / 2
[PROOFSTEP]
have C : ∀ᶠ a in 𝓝[>] (0 : ℝ), (0 : ℝ) < a := by filter_upwards [self_mem_nhdsWithin] with _ ha using ha
[GOAL]
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
hp : 0 < radius p
C r : ℝ
Cpos : 0 < C
rpos : 0 < r
ple : ∀ (n : ℕ), ‖p n‖ ≤ C * r ^ n
I : ℝ := ‖↑(ContinuousLinearEquiv.symm i)‖
this✝ : Tendsto (fun a => 2 * I * C * r ^ 2 * (I + 1) ^ 2 * a) (𝓝 0) (𝓝 (2 * I * C * r ^ 2 * (I + 1) ^ 2 * 0))
A : ∀ᶠ (a : ℝ) in 𝓝 0, 2 * I * C * r ^ 2 * (I + 1) ^ 2 * a < 1
this : Tendsto (fun a => r * (I + 1) * a) (𝓝 0) (𝓝 (r * (I + 1) * 0))
B : ∀ᶠ (a : ℝ) in 𝓝 0, r * (I + 1) * a < 1 / 2
⊢ ∀ᶠ (a : ℝ) in 𝓝[Set.Ioi 0] 0, 0 < a
[PROOFSTEP]
filter_upwards [self_mem_nhdsWithin] with _ ha using ha
[GOAL]
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
hp : 0 < radius p
C✝ r : ℝ
Cpos : 0 < C✝
rpos : 0 < r
ple : ∀ (n : ℕ), ‖p n‖ ≤ C✝ * r ^ n
I : ℝ := ‖↑(ContinuousLinearEquiv.symm i)‖
this✝ : Tendsto (fun a => 2 * I * C✝ * r ^ 2 * (I + 1) ^ 2 * a) (𝓝 0) (𝓝 (2 * I * C✝ * r ^ 2 * (I + 1) ^ 2 * 0))
A : ∀ᶠ (a : ℝ) in 𝓝 0, 2 * I * C✝ * r ^ 2 * (I + 1) ^ 2 * a < 1
this : Tendsto (fun a => r * (I + 1) * a) (𝓝 0) (𝓝 (r * (I + 1) * 0))
B : ∀ᶠ (a : ℝ) in 𝓝 0, r * (I + 1) * a < 1 / 2
C : ∀ᶠ (a : ℝ) in 𝓝[Set.Ioi 0] 0, 0 < a
⊢ ∃ a apos, 2 * I * C✝ * r ^ 2 * (I + 1) ^ 2 * a ≤ 1 ∧ r * (I + 1) * a ≤ 1 / 2
[PROOFSTEP]
rcases(C.and ((A.and B).filter_mono inf_le_left)).exists with ⟨a, ha⟩
[GOAL]
case intro
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
hp : 0 < radius p
C✝ r : ℝ
Cpos : 0 < C✝
rpos : 0 < r
ple : ∀ (n : ℕ), ‖p n‖ ≤ C✝ * r ^ n
I : ℝ := ‖↑(ContinuousLinearEquiv.symm i)‖
this✝ : Tendsto (fun a => 2 * I * C✝ * r ^ 2 * (I + 1) ^ 2 * a) (𝓝 0) (𝓝 (2 * I * C✝ * r ^ 2 * (I + 1) ^ 2 * 0))
A : ∀ᶠ (a : ℝ) in 𝓝 0, 2 * I * C✝ * r ^ 2 * (I + 1) ^ 2 * a < 1
this : Tendsto (fun a => r * (I + 1) * a) (𝓝 0) (𝓝 (r * (I + 1) * 0))
B : ∀ᶠ (a : ℝ) in 𝓝 0, r * (I + 1) * a < 1 / 2
C : ∀ᶠ (a : ℝ) in 𝓝[Set.Ioi 0] 0, 0 < a
a : ℝ
ha : 0 < a ∧ 2 * I * C✝ * r ^ 2 * (I + 1) ^ 2 * a < 1 ∧ r * (I + 1) * a < 1 / 2
⊢ ∃ a apos, 2 * I * C✝ * r ^ 2 * (I + 1) ^ 2 * a ≤ 1 ∧ r * (I + 1) * a ≤ 1 / 2
[PROOFSTEP]
exact
  ⟨a, ha.1, ha.2.1.le, ha.2.2.le⟩
    -- check by induction that the partial sums are suitably bounded, using the choice of `a` and the
      -- inductive control from Lemma `radius_rightInv_pos_of_radius_pos_aux2`.
[GOAL]
case intro.intro.intro.intro.intro.intro.intro
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
hp : 0 < radius p
C r : ℝ
Cpos : 0 < C
rpos : 0 < r
ple : ∀ (n : ℕ), ‖p n‖ ≤ C * r ^ n
I : ℝ := ‖↑(ContinuousLinearEquiv.symm i)‖
a : ℝ
apos : 0 < a
ha1 : 2 * I * C * r ^ 2 * (I + 1) ^ 2 * a ≤ 1
ha2 : r * (I + 1) * a ≤ 1 / 2
⊢ 0 < radius (rightInv p i)
[PROOFSTEP]
let S n := ∑ k in Ico 1 n, a ^ k * ‖p.rightInv i k‖
[GOAL]
case intro.intro.intro.intro.intro.intro.intro
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
hp : 0 < radius p
C r : ℝ
Cpos : 0 < C
rpos : 0 < r
ple : ∀ (n : ℕ), ‖p n‖ ≤ C * r ^ n
I : ℝ := ‖↑(ContinuousLinearEquiv.symm i)‖
a : ℝ
apos : 0 < a
ha1 : 2 * I * C * r ^ 2 * (I + 1) ^ 2 * a ≤ 1
ha2 : r * (I + 1) * a ≤ 1 / 2
S : ℕ → ℝ := fun n => ∑ k in Ico 1 n, a ^ k * ‖rightInv p i k‖
⊢ 0 < radius (rightInv p i)
[PROOFSTEP]
have IRec : ∀ n, 1 ≤ n → S n ≤ (I + 1) * a := by
  apply Nat.le_induction
  · simp only
    rw [Ico_eq_empty_of_le (le_refl 1), sum_empty]
    exact mul_nonneg (add_nonneg (norm_nonneg _) zero_le_one) apos.le
  · intro n one_le_n hn
    have In : 2 ≤ n + 1 := by linarith only [one_le_n]
    have Snonneg : 0 ≤ S n := sum_nonneg fun x _ => mul_nonneg (pow_nonneg apos.le _) (norm_nonneg _)
    have rSn : r * S n ≤ 1 / 2 :=
      calc
        r * S n ≤ r * ((I + 1) * a) := mul_le_mul_of_nonneg_left hn rpos.le
        _ ≤ 1 / 2 := by rwa [← mul_assoc]
    calc
      S (n + 1) ≤ I * a + I * C * ∑ k in Ico 2 (n + 1), (r * S n) ^ k :=
        radius_rightInv_pos_of_radius_pos_aux2 In p i rpos.le apos.le Cpos.le ple
      _ = I * a + I * C * (((r * S n) ^ 2 - (r * S n) ^ (n + 1)) / (1 - r * S n)) := by rw [geom_sum_Ico' _ In];
        exact ne_of_lt (rSn.trans_lt (by norm_num))
      _ ≤ I * a + I * C * ((r * S n) ^ 2 / (1 / 2)) :=
        by
        apply_rules [add_le_add, le_refl, mul_le_mul_of_nonneg_left, mul_nonneg, norm_nonneg, Cpos.le]
        refine' div_le_div (sq_nonneg _) _ (by norm_num) (by linarith only [rSn])
        simp only [sub_le_self_iff]
        apply pow_nonneg (mul_nonneg rpos.le Snonneg)
      _ = I * a + 2 * I * C * (r * S n) ^ 2 := by ring
      _ ≤ I * a + 2 * I * C * (r * ((I + 1) * a)) ^ 2 := by
        apply_rules [add_le_add, le_refl, mul_le_mul_of_nonneg_left, mul_nonneg, norm_nonneg, Cpos.le, zero_le_two,
          pow_le_pow_of_le_left, rpos.le]
      _ = (I + 2 * I * C * r ^ 2 * (I + 1) ^ 2 * a) * a := by ring
      _ ≤ (I + 1) * a := by
        apply_rules [mul_le_mul_of_nonneg_right, apos.le, add_le_add, le_refl]
          -- conclude that all coefficients satisfy `aⁿ Qₙ ≤ (I + 1) a`.
[GOAL]
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
hp : 0 < radius p
C r : ℝ
Cpos : 0 < C
rpos : 0 < r
ple : ∀ (n : ℕ), ‖p n‖ ≤ C * r ^ n
I : ℝ := ‖↑(ContinuousLinearEquiv.symm i)‖
a : ℝ
apos : 0 < a
ha1 : 2 * I * C * r ^ 2 * (I + 1) ^ 2 * a ≤ 1
ha2 : r * (I + 1) * a ≤ 1 / 2
S : ℕ → ℝ := fun n => ∑ k in Ico 1 n, a ^ k * ‖rightInv p i k‖
⊢ ∀ (n : ℕ), 1 ≤ n → S n ≤ (I + 1) * a
[PROOFSTEP]
apply Nat.le_induction
[GOAL]
case base
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
hp : 0 < radius p
C r : ℝ
Cpos : 0 < C
rpos : 0 < r
ple : ∀ (n : ℕ), ‖p n‖ ≤ C * r ^ n
I : ℝ := ‖↑(ContinuousLinearEquiv.symm i)‖
a : ℝ
apos : 0 < a
ha1 : 2 * I * C * r ^ 2 * (I + 1) ^ 2 * a ≤ 1
ha2 : r * (I + 1) * a ≤ 1 / 2
S : ℕ → ℝ := fun n => ∑ k in Ico 1 n, a ^ k * ‖rightInv p i k‖
⊢ S 1 ≤ (I + 1) * a
[PROOFSTEP]
simp only
[GOAL]
case base
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
hp : 0 < radius p
C r : ℝ
Cpos : 0 < C
rpos : 0 < r
ple : ∀ (n : ℕ), ‖p n‖ ≤ C * r ^ n
I : ℝ := ‖↑(ContinuousLinearEquiv.symm i)‖
a : ℝ
apos : 0 < a
ha1 : 2 * I * C * r ^ 2 * (I + 1) ^ 2 * a ≤ 1
ha2 : r * (I + 1) * a ≤ 1 / 2
S : ℕ → ℝ := fun n => ∑ k in Ico 1 n, a ^ k * ‖rightInv p i k‖
⊢ ∑ x in Ico 1 1, a ^ x * ‖rightInv p i x‖ ≤ (‖↑(ContinuousLinearEquiv.symm i)‖ + 1) * a
[PROOFSTEP]
rw [Ico_eq_empty_of_le (le_refl 1), sum_empty]
[GOAL]
case base
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
hp : 0 < radius p
C r : ℝ
Cpos : 0 < C
rpos : 0 < r
ple : ∀ (n : ℕ), ‖p n‖ ≤ C * r ^ n
I : ℝ := ‖↑(ContinuousLinearEquiv.symm i)‖
a : ℝ
apos : 0 < a
ha1 : 2 * I * C * r ^ 2 * (I + 1) ^ 2 * a ≤ 1
ha2 : r * (I + 1) * a ≤ 1 / 2
S : ℕ → ℝ := fun n => ∑ k in Ico 1 n, a ^ k * ‖rightInv p i k‖
⊢ 0 ≤ (‖↑(ContinuousLinearEquiv.symm i)‖ + 1) * a
[PROOFSTEP]
exact mul_nonneg (add_nonneg (norm_nonneg _) zero_le_one) apos.le
[GOAL]
case succ
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
hp : 0 < radius p
C r : ℝ
Cpos : 0 < C
rpos : 0 < r
ple : ∀ (n : ℕ), ‖p n‖ ≤ C * r ^ n
I : ℝ := ‖↑(ContinuousLinearEquiv.symm i)‖
a : ℝ
apos : 0 < a
ha1 : 2 * I * C * r ^ 2 * (I + 1) ^ 2 * a ≤ 1
ha2 : r * (I + 1) * a ≤ 1 / 2
S : ℕ → ℝ := fun n => ∑ k in Ico 1 n, a ^ k * ‖rightInv p i k‖
⊢ ∀ (n : ℕ), 1 ≤ n → S n ≤ (I + 1) * a → S (n + 1) ≤ (I + 1) * a
[PROOFSTEP]
intro n one_le_n hn
[GOAL]
case succ
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
hp : 0 < radius p
C r : ℝ
Cpos : 0 < C
rpos : 0 < r
ple : ∀ (n : ℕ), ‖p n‖ ≤ C * r ^ n
I : ℝ := ‖↑(ContinuousLinearEquiv.symm i)‖
a : ℝ
apos : 0 < a
ha1 : 2 * I * C * r ^ 2 * (I + 1) ^ 2 * a ≤ 1
ha2 : r * (I + 1) * a ≤ 1 / 2
S : ℕ → ℝ := fun n => ∑ k in Ico 1 n, a ^ k * ‖rightInv p i k‖
n : ℕ
one_le_n : 1 ≤ n
hn : S n ≤ (I + 1) * a
⊢ S (n + 1) ≤ (I + 1) * a
[PROOFSTEP]
have In : 2 ≤ n + 1 := by linarith only [one_le_n]
[GOAL]
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
hp : 0 < radius p
C r : ℝ
Cpos : 0 < C
rpos : 0 < r
ple : ∀ (n : ℕ), ‖p n‖ ≤ C * r ^ n
I : ℝ := ‖↑(ContinuousLinearEquiv.symm i)‖
a : ℝ
apos : 0 < a
ha1 : 2 * I * C * r ^ 2 * (I + 1) ^ 2 * a ≤ 1
ha2 : r * (I + 1) * a ≤ 1 / 2
S : ℕ → ℝ := fun n => ∑ k in Ico 1 n, a ^ k * ‖rightInv p i k‖
n : ℕ
one_le_n : 1 ≤ n
hn : S n ≤ (I + 1) * a
⊢ 2 ≤ n + 1
[PROOFSTEP]
linarith only [one_le_n]
[GOAL]
case succ
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
hp : 0 < radius p
C r : ℝ
Cpos : 0 < C
rpos : 0 < r
ple : ∀ (n : ℕ), ‖p n‖ ≤ C * r ^ n
I : ℝ := ‖↑(ContinuousLinearEquiv.symm i)‖
a : ℝ
apos : 0 < a
ha1 : 2 * I * C * r ^ 2 * (I + 1) ^ 2 * a ≤ 1
ha2 : r * (I + 1) * a ≤ 1 / 2
S : ℕ → ℝ := fun n => ∑ k in Ico 1 n, a ^ k * ‖rightInv p i k‖
n : ℕ
one_le_n : 1 ≤ n
hn : S n ≤ (I + 1) * a
In : 2 ≤ n + 1
⊢ S (n + 1) ≤ (I + 1) * a
[PROOFSTEP]
have Snonneg : 0 ≤ S n := sum_nonneg fun x _ => mul_nonneg (pow_nonneg apos.le _) (norm_nonneg _)
[GOAL]
case succ
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
hp : 0 < radius p
C r : ℝ
Cpos : 0 < C
rpos : 0 < r
ple : ∀ (n : ℕ), ‖p n‖ ≤ C * r ^ n
I : ℝ := ‖↑(ContinuousLinearEquiv.symm i)‖
a : ℝ
apos : 0 < a
ha1 : 2 * I * C * r ^ 2 * (I + 1) ^ 2 * a ≤ 1
ha2 : r * (I + 1) * a ≤ 1 / 2
S : ℕ → ℝ := fun n => ∑ k in Ico 1 n, a ^ k * ‖rightInv p i k‖
n : ℕ
one_le_n : 1 ≤ n
hn : S n ≤ (I + 1) * a
In : 2 ≤ n + 1
Snonneg : 0 ≤ S n
⊢ S (n + 1) ≤ (I + 1) * a
[PROOFSTEP]
have rSn : r * S n ≤ 1 / 2 :=
  calc
    r * S n ≤ r * ((I + 1) * a) := mul_le_mul_of_nonneg_left hn rpos.le
    _ ≤ 1 / 2 := by rwa [← mul_assoc]
[GOAL]
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
hp : 0 < radius p
C r : ℝ
Cpos : 0 < C
rpos : 0 < r
ple : ∀ (n : ℕ), ‖p n‖ ≤ C * r ^ n
I : ℝ := ‖↑(ContinuousLinearEquiv.symm i)‖
a : ℝ
apos : 0 < a
ha1 : 2 * I * C * r ^ 2 * (I + 1) ^ 2 * a ≤ 1
ha2 : r * (I + 1) * a ≤ 1 / 2
S : ℕ → ℝ := fun n => ∑ k in Ico 1 n, a ^ k * ‖rightInv p i k‖
n : ℕ
one_le_n : 1 ≤ n
hn : S n ≤ (I + 1) * a
In : 2 ≤ n + 1
Snonneg : 0 ≤ S n
⊢ r * ((I + 1) * a) ≤ 1 / 2
[PROOFSTEP]
rwa [← mul_assoc]
[GOAL]
case succ
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
hp : 0 < radius p
C r : ℝ
Cpos : 0 < C
rpos : 0 < r
ple : ∀ (n : ℕ), ‖p n‖ ≤ C * r ^ n
I : ℝ := ‖↑(ContinuousLinearEquiv.symm i)‖
a : ℝ
apos : 0 < a
ha1 : 2 * I * C * r ^ 2 * (I + 1) ^ 2 * a ≤ 1
ha2 : r * (I + 1) * a ≤ 1 / 2
S : ℕ → ℝ := fun n => ∑ k in Ico 1 n, a ^ k * ‖rightInv p i k‖
n : ℕ
one_le_n : 1 ≤ n
hn : S n ≤ (I + 1) * a
In : 2 ≤ n + 1
Snonneg : 0 ≤ S n
rSn : r * S n ≤ 1 / 2
⊢ S (n + 1) ≤ (I + 1) * a
[PROOFSTEP]
calc
  S (n + 1) ≤ I * a + I * C * ∑ k in Ico 2 (n + 1), (r * S n) ^ k :=
    radius_rightInv_pos_of_radius_pos_aux2 In p i rpos.le apos.le Cpos.le ple
  _ = I * a + I * C * (((r * S n) ^ 2 - (r * S n) ^ (n + 1)) / (1 - r * S n)) := by rw [geom_sum_Ico' _ In];
    exact ne_of_lt (rSn.trans_lt (by norm_num))
  _ ≤ I * a + I * C * ((r * S n) ^ 2 / (1 / 2)) :=
    by
    apply_rules [add_le_add, le_refl, mul_le_mul_of_nonneg_left, mul_nonneg, norm_nonneg, Cpos.le]
    refine' div_le_div (sq_nonneg _) _ (by norm_num) (by linarith only [rSn])
    simp only [sub_le_self_iff]
    apply pow_nonneg (mul_nonneg rpos.le Snonneg)
  _ = I * a + 2 * I * C * (r * S n) ^ 2 := by ring
  _ ≤ I * a + 2 * I * C * (r * ((I + 1) * a)) ^ 2 := by
    apply_rules [add_le_add, le_refl, mul_le_mul_of_nonneg_left, mul_nonneg, norm_nonneg, Cpos.le, zero_le_two,
      pow_le_pow_of_le_left, rpos.le]
  _ = (I + 2 * I * C * r ^ 2 * (I + 1) ^ 2 * a) * a := by ring
  _ ≤ (I + 1) * a := by
    apply_rules [mul_le_mul_of_nonneg_right, apos.le, add_le_add, le_refl]
      -- conclude that all coefficients satisfy `aⁿ Qₙ ≤ (I + 1) a`.
[GOAL]
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
hp : 0 < radius p
C r : ℝ
Cpos : 0 < C
rpos : 0 < r
ple : ∀ (n : ℕ), ‖p n‖ ≤ C * r ^ n
I : ℝ := ‖↑(ContinuousLinearEquiv.symm i)‖
a : ℝ
apos : 0 < a
ha1 : 2 * I * C * r ^ 2 * (I + 1) ^ 2 * a ≤ 1
ha2 : r * (I + 1) * a ≤ 1 / 2
S : ℕ → ℝ := fun n => ∑ k in Ico 1 n, a ^ k * ‖rightInv p i k‖
n : ℕ
one_le_n : 1 ≤ n
hn : S n ≤ (I + 1) * a
In : 2 ≤ n + 1
Snonneg : 0 ≤ S n
rSn : r * S n ≤ 1 / 2
⊢ I * a + I * C * ∑ k in Ico 2 (n + 1), (r * S n) ^ k =
    I * a + I * C * (((r * S n) ^ 2 - (r * S n) ^ (n + 1)) / (1 - r * S n))
[PROOFSTEP]
rw [geom_sum_Ico' _ In]
[GOAL]
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
hp : 0 < radius p
C r : ℝ
Cpos : 0 < C
rpos : 0 < r
ple : ∀ (n : ℕ), ‖p n‖ ≤ C * r ^ n
I : ℝ := ‖↑(ContinuousLinearEquiv.symm i)‖
a : ℝ
apos : 0 < a
ha1 : 2 * I * C * r ^ 2 * (I + 1) ^ 2 * a ≤ 1
ha2 : r * (I + 1) * a ≤ 1 / 2
S : ℕ → ℝ := fun n => ∑ k in Ico 1 n, a ^ k * ‖rightInv p i k‖
n : ℕ
one_le_n : 1 ≤ n
hn : S n ≤ (I + 1) * a
In : 2 ≤ n + 1
Snonneg : 0 ≤ S n
rSn : r * S n ≤ 1 / 2
⊢ r * S n ≠ 1
[PROOFSTEP]
exact ne_of_lt (rSn.trans_lt (by norm_num))
[GOAL]
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
hp : 0 < radius p
C r : ℝ
Cpos : 0 < C
rpos : 0 < r
ple : ∀ (n : ℕ), ‖p n‖ ≤ C * r ^ n
I : ℝ := ‖↑(ContinuousLinearEquiv.symm i)‖
a : ℝ
apos : 0 < a
ha1 : 2 * I * C * r ^ 2 * (I + 1) ^ 2 * a ≤ 1
ha2 : r * (I + 1) * a ≤ 1 / 2
S : ℕ → ℝ := fun n => ∑ k in Ico 1 n, a ^ k * ‖rightInv p i k‖
n : ℕ
one_le_n : 1 ≤ n
hn : S n ≤ (I + 1) * a
In : 2 ≤ n + 1
Snonneg : 0 ≤ S n
rSn : r * S n ≤ 1 / 2
⊢ 1 / 2 < 1
[PROOFSTEP]
norm_num
[GOAL]
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
hp : 0 < radius p
C r : ℝ
Cpos : 0 < C
rpos : 0 < r
ple : ∀ (n : ℕ), ‖p n‖ ≤ C * r ^ n
I : ℝ := ‖↑(ContinuousLinearEquiv.symm i)‖
a : ℝ
apos : 0 < a
ha1 : 2 * I * C * r ^ 2 * (I + 1) ^ 2 * a ≤ 1
ha2 : r * (I + 1) * a ≤ 1 / 2
S : ℕ → ℝ := fun n => ∑ k in Ico 1 n, a ^ k * ‖rightInv p i k‖
n : ℕ
one_le_n : 1 ≤ n
hn : S n ≤ (I + 1) * a
In : 2 ≤ n + 1
Snonneg : 0 ≤ S n
rSn : r * S n ≤ 1 / 2
⊢ I * a + I * C * (((r * S n) ^ 2 - (r * S n) ^ (n + 1)) / (1 - r * S n)) ≤ I * a + I * C * ((r * S n) ^ 2 / (1 / 2))
[PROOFSTEP]
apply_rules [add_le_add, le_refl, mul_le_mul_of_nonneg_left, mul_nonneg, norm_nonneg, Cpos.le]
[GOAL]
case h₂.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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
hp : 0 < radius p
C r : ℝ
Cpos : 0 < C
rpos : 0 < r
ple : ∀ (n : ℕ), ‖p n‖ ≤ C * r ^ n
I : ℝ := ‖↑(ContinuousLinearEquiv.symm i)‖
a : ℝ
apos : 0 < a
ha1 : 2 * I * C * r ^ 2 * (I + 1) ^ 2 * a ≤ 1
ha2 : r * (I + 1) * a ≤ 1 / 2
S : ℕ → ℝ := fun n => ∑ k in Ico 1 n, a ^ k * ‖rightInv p i k‖
n : ℕ
one_le_n : 1 ≤ n
hn : S n ≤ (I + 1) * a
In : 2 ≤ n + 1
Snonneg : 0 ≤ S n
rSn : r * S n ≤ 1 / 2
i_symm : F ≃L[𝕜] E
⊢ ((r * S n) ^ 2 - (r * S n) ^ (n + 1)) / (1 - r * S n) ≤ (r * S n) ^ 2 / (1 / 2)
[PROOFSTEP]
refine' div_le_div (sq_nonneg _) _ (by norm_num) (by linarith only [rSn])
[GOAL]
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
hp : 0 < radius p
C r : ℝ
Cpos : 0 < C
rpos : 0 < r
ple : ∀ (n : ℕ), ‖p n‖ ≤ C * r ^ n
I : ℝ := ‖↑(ContinuousLinearEquiv.symm i)‖
a : ℝ
apos : 0 < a
ha1 : 2 * I * C * r ^ 2 * (I + 1) ^ 2 * a ≤ 1
ha2 : r * (I + 1) * a ≤ 1 / 2
S : ℕ → ℝ := fun n => ∑ k in Ico 1 n, a ^ k * ‖rightInv p i k‖
n : ℕ
one_le_n : 1 ≤ n
hn : S n ≤ (I + 1) * a
In : 2 ≤ n + 1
Snonneg : 0 ≤ S n
rSn : r * S n ≤ 1 / 2
i_symm : F ≃L[𝕜] E
⊢ 0 < 1 / 2
[PROOFSTEP]
norm_num
[GOAL]
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
hp : 0 < radius p
C r : ℝ
Cpos : 0 < C
rpos : 0 < r
ple : ∀ (n : ℕ), ‖p n‖ ≤ C * r ^ n
I : ℝ := ‖↑(ContinuousLinearEquiv.symm i)‖
a : ℝ
apos : 0 < a
ha1 : 2 * I * C * r ^ 2 * (I + 1) ^ 2 * a ≤ 1
ha2 : r * (I + 1) * a ≤ 1 / 2
S : ℕ → ℝ := fun n => ∑ k in Ico 1 n, a ^ k * ‖rightInv p i k‖
n : ℕ
one_le_n : 1 ≤ n
hn : S n ≤ (I + 1) * a
In : 2 ≤ n + 1
Snonneg : 0 ≤ S n
rSn : r * S n ≤ 1 / 2
i_symm : F ≃L[𝕜] E
⊢ 1 / 2 ≤ 1 - r * S n
[PROOFSTEP]
linarith only [rSn]
[GOAL]
case h₂.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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
hp : 0 < radius p
C r : ℝ
Cpos : 0 < C
rpos : 0 < r
ple : ∀ (n : ℕ), ‖p n‖ ≤ C * r ^ n
I : ℝ := ‖↑(ContinuousLinearEquiv.symm i)‖
a : ℝ
apos : 0 < a
ha1 : 2 * I * C * r ^ 2 * (I + 1) ^ 2 * a ≤ 1
ha2 : r * (I + 1) * a ≤ 1 / 2
S : ℕ → ℝ := fun n => ∑ k in Ico 1 n, a ^ k * ‖rightInv p i k‖
n : ℕ
one_le_n : 1 ≤ n
hn : S n ≤ (I + 1) * a
In : 2 ≤ n + 1
Snonneg : 0 ≤ S n
rSn : r * S n ≤ 1 / 2
i_symm : F ≃L[𝕜] E
⊢ (r * S n) ^ 2 - (r * S n) ^ (n + 1) ≤ (r * S n) ^ 2
[PROOFSTEP]
simp only [sub_le_self_iff]
[GOAL]
case h₂.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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
hp : 0 < radius p
C r : ℝ
Cpos : 0 < C
rpos : 0 < r
ple : ∀ (n : ℕ), ‖p n‖ ≤ C * r ^ n
I : ℝ := ‖↑(ContinuousLinearEquiv.symm i)‖
a : ℝ
apos : 0 < a
ha1 : 2 * I * C * r ^ 2 * (I + 1) ^ 2 * a ≤ 1
ha2 : r * (I + 1) * a ≤ 1 / 2
S : ℕ → ℝ := fun n => ∑ k in Ico 1 n, a ^ k * ‖rightInv p i k‖
n : ℕ
one_le_n : 1 ≤ n
hn : S n ≤ (I + 1) * a
In : 2 ≤ n + 1
Snonneg : 0 ≤ S n
rSn : r * S n ≤ 1 / 2
i_symm : F ≃L[𝕜] E
⊢ 0 ≤ (r * ∑ x in Ico 1 n, a ^ x * ‖rightInv p i x‖) ^ (n + 1)
[PROOFSTEP]
apply pow_nonneg (mul_nonneg rpos.le Snonneg)
[GOAL]
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
hp : 0 < radius p
C r : ℝ
Cpos : 0 < C
rpos : 0 < r
ple : ∀ (n : ℕ), ‖p n‖ ≤ C * r ^ n
I : ℝ := ‖↑(ContinuousLinearEquiv.symm i)‖
a : ℝ
apos : 0 < a
ha1 : 2 * I * C * r ^ 2 * (I + 1) ^ 2 * a ≤ 1
ha2 : r * (I + 1) * a ≤ 1 / 2
S : ℕ → ℝ := fun n => ∑ k in Ico 1 n, a ^ k * ‖rightInv p i k‖
n : ℕ
one_le_n : 1 ≤ n
hn : S n ≤ (I + 1) * a
In : 2 ≤ n + 1
Snonneg : 0 ≤ S n
rSn : r * S n ≤ 1 / 2
⊢ I * a + I * C * ((r * S n) ^ 2 / (1 / 2)) = I * a + 2 * I * C * (r * S n) ^ 2
[PROOFSTEP]
ring
[GOAL]
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
hp : 0 < radius p
C r : ℝ
Cpos : 0 < C
rpos : 0 < r
ple : ∀ (n : ℕ), ‖p n‖ ≤ C * r ^ n
I : ℝ := ‖↑(ContinuousLinearEquiv.symm i)‖
a : ℝ
apos : 0 < a
ha1 : 2 * I * C * r ^ 2 * (I + 1) ^ 2 * a ≤ 1
ha2 : r * (I + 1) * a ≤ 1 / 2
S : ℕ → ℝ := fun n => ∑ k in Ico 1 n, a ^ k * ‖rightInv p i k‖
n : ℕ
one_le_n : 1 ≤ n
hn : S n ≤ (I + 1) * a
In : 2 ≤ n + 1
Snonneg : 0 ≤ S n
rSn : r * S n ≤ 1 / 2
⊢ I * a + 2 * I * C * (r * S n) ^ 2 ≤ I * a + 2 * I * C * (r * ((I + 1) * a)) ^ 2
[PROOFSTEP]
apply_rules [add_le_add, le_refl, mul_le_mul_of_nonneg_left, mul_nonneg, norm_nonneg, Cpos.le, zero_le_two,
  pow_le_pow_of_le_left, rpos.le]
[GOAL]
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
hp : 0 < radius p
C r : ℝ
Cpos : 0 < C
rpos : 0 < r
ple : ∀ (n : ℕ), ‖p n‖ ≤ C * r ^ n
I : ℝ := ‖↑(ContinuousLinearEquiv.symm i)‖
a : ℝ
apos : 0 < a
ha1 : 2 * I * C * r ^ 2 * (I + 1) ^ 2 * a ≤ 1
ha2 : r * (I + 1) * a ≤ 1 / 2
S : ℕ → ℝ := fun n => ∑ k in Ico 1 n, a ^ k * ‖rightInv p i k‖
n : ℕ
one_le_n : 1 ≤ n
hn : S n ≤ (I + 1) * a
In : 2 ≤ n + 1
Snonneg : 0 ≤ S n
rSn : r * S n ≤ 1 / 2
⊢ I * a + 2 * I * C * (r * ((I + 1) * a)) ^ 2 = (I + 2 * I * C * r ^ 2 * (I + 1) ^ 2 * a) * a
[PROOFSTEP]
ring
[GOAL]
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
hp : 0 < radius p
C r : ℝ
Cpos : 0 < C
rpos : 0 < r
ple : ∀ (n : ℕ), ‖p n‖ ≤ C * r ^ n
I : ℝ := ‖↑(ContinuousLinearEquiv.symm i)‖
a : ℝ
apos : 0 < a
ha1 : 2 * I * C * r ^ 2 * (I + 1) ^ 2 * a ≤ 1
ha2 : r * (I + 1) * a ≤ 1 / 2
S : ℕ → ℝ := fun n => ∑ k in Ico 1 n, a ^ k * ‖rightInv p i k‖
n : ℕ
one_le_n : 1 ≤ n
hn : S n ≤ (I + 1) * a
In : 2 ≤ n + 1
Snonneg : 0 ≤ S n
rSn : r * S n ≤ 1 / 2
⊢ (I + 2 * I * C * r ^ 2 * (I + 1) ^ 2 * a) * a ≤ (I + 1) * a
[PROOFSTEP]
apply_rules [mul_le_mul_of_nonneg_right, apos.le, add_le_add, le_refl]
  -- conclude that all coefficients satisfy `aⁿ Qₙ ≤ (I + 1) a`.
[GOAL]
case intro.intro.intro.intro.intro.intro.intro
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
hp : 0 < radius p
C r : ℝ
Cpos : 0 < C
rpos : 0 < r
ple : ∀ (n : ℕ), ‖p n‖ ≤ C * r ^ n
I : ℝ := ‖↑(ContinuousLinearEquiv.symm i)‖
a : ℝ
apos : 0 < a
ha1 : 2 * I * C * r ^ 2 * (I + 1) ^ 2 * a ≤ 1
ha2 : r * (I + 1) * a ≤ 1 / 2
S : ℕ → ℝ := fun n => ∑ k in Ico 1 n, a ^ k * ‖rightInv p i k‖
IRec : ∀ (n : ℕ), 1 ≤ n → S n ≤ (I + 1) * a
⊢ 0 < radius (rightInv p i)
[PROOFSTEP]
let a' : NNReal := ⟨a, apos.le⟩
[GOAL]
case intro.intro.intro.intro.intro.intro.intro
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
hp : 0 < radius p
C r : ℝ
Cpos : 0 < C
rpos : 0 < r
ple : ∀ (n : ℕ), ‖p n‖ ≤ C * r ^ n
I : ℝ := ‖↑(ContinuousLinearEquiv.symm i)‖
a : ℝ
apos : 0 < a
ha1 : 2 * I * C * r ^ 2 * (I + 1) ^ 2 * a ≤ 1
ha2 : r * (I + 1) * a ≤ 1 / 2
S : ℕ → ℝ := fun n => ∑ k in Ico 1 n, a ^ k * ‖rightInv p i k‖
IRec : ∀ (n : ℕ), 1 ≤ n → S n ≤ (I + 1) * a
a' : NNReal := { val := a, property := (_ : 0 ≤ a) }
⊢ 0 < radius (rightInv p i)
[PROOFSTEP]
suffices H : (a' : ENNReal) ≤ (p.rightInv i).radius
[GOAL]
case intro.intro.intro.intro.intro.intro.intro
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
hp : 0 < radius p
C r : ℝ
Cpos : 0 < C
rpos : 0 < r
ple : ∀ (n : ℕ), ‖p n‖ ≤ C * r ^ n
I : ℝ := ‖↑(ContinuousLinearEquiv.symm i)‖
a : ℝ
apos : 0 < a
ha1 : 2 * I * C * r ^ 2 * (I + 1) ^ 2 * a ≤ 1
ha2 : r * (I + 1) * a ≤ 1 / 2
S : ℕ → ℝ := fun n => ∑ k in Ico 1 n, a ^ k * ‖rightInv p i k‖
IRec : ∀ (n : ℕ), 1 ≤ n → S n ≤ (I + 1) * a
a' : NNReal := { val := a, property := (_ : 0 ≤ a) }
H : ↑a' ≤ radius (rightInv p i)
⊢ 0 < radius (rightInv p i)
[PROOFSTEP]
apply lt_of_lt_of_le _ H
[GOAL]
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
hp : 0 < radius p
C r : ℝ
Cpos : 0 < C
rpos : 0 < r
ple : ∀ (n : ℕ), ‖p n‖ ≤ C * r ^ n
I : ℝ := ‖↑(ContinuousLinearEquiv.symm i)‖
a : ℝ
apos : 0 < a
ha1 : 2 * I * C * r ^ 2 * (I + 1) ^ 2 * a ≤ 1
ha2 : r * (I + 1) * a ≤ 1 / 2
S : ℕ → ℝ := fun n => ∑ k in Ico 1 n, a ^ k * ‖rightInv p i k‖
IRec : ∀ (n : ℕ), 1 ≤ n → S n ≤ (I + 1) * a
a' : NNReal := { val := a, property := (_ : 0 ≤ a) }
H : ↑a' ≤ radius (rightInv p i)
⊢ 0 < ↑a'
[PROOFSTEP]
exact_mod_cast apos
[GOAL]
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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
hp : 0 < radius p
C r : ℝ
Cpos : 0 < C
rpos : 0 < r
ple : ∀ (n : ℕ), ‖p n‖ ≤ C * r ^ n
I : ℝ := ‖↑(ContinuousLinearEquiv.symm i)‖
a : ℝ
apos : 0 < a
ha1 : 2 * I * C * r ^ 2 * (I + 1) ^ 2 * a ≤ 1
ha2 : r * (I + 1) * a ≤ 1 / 2
S : ℕ → ℝ := fun n => ∑ k in Ico 1 n, a ^ k * ‖rightInv p i k‖
IRec : ∀ (n : ℕ), 1 ≤ n → S n ≤ (I + 1) * a
a' : NNReal := { val := a, property := (_ : 0 ≤ a) }
⊢ ↑a' ≤ radius (rightInv p i)
[PROOFSTEP]
apply le_radius_of_bound _ ((I + 1) * a) fun n => ?_
[GOAL]
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
hp : 0 < radius p
C r : ℝ
Cpos : 0 < C
rpos : 0 < r
ple : ∀ (n : ℕ), ‖p n‖ ≤ C * r ^ n
I : ℝ := ‖↑(ContinuousLinearEquiv.symm i)‖
a : ℝ
apos : 0 < a
ha1 : 2 * I * C * r ^ 2 * (I + 1) ^ 2 * a ≤ 1
ha2 : r * (I + 1) * a ≤ 1 / 2
S : ℕ → ℝ := fun n => ∑ k in Ico 1 n, a ^ k * ‖rightInv p i k‖
IRec : ∀ (n : ℕ), 1 ≤ n → S n ≤ (I + 1) * a
a' : NNReal := { val := a, property := (_ : 0 ≤ a) }
n : ℕ
⊢ ‖rightInv p i n‖ * ↑a' ^ n ≤ (I + 1) * a
[PROOFSTEP]
by_cases hn : n = 0
[GOAL]
case pos
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
hp : 0 < radius p
C r : ℝ
Cpos : 0 < C
rpos : 0 < r
ple : ∀ (n : ℕ), ‖p n‖ ≤ C * r ^ n
I : ℝ := ‖↑(ContinuousLinearEquiv.symm i)‖
a : ℝ
apos : 0 < a
ha1 : 2 * I * C * r ^ 2 * (I + 1) ^ 2 * a ≤ 1
ha2 : r * (I + 1) * a ≤ 1 / 2
S : ℕ → ℝ := fun n => ∑ k in Ico 1 n, a ^ k * ‖rightInv p i k‖
IRec : ∀ (n : ℕ), 1 ≤ n → S n ≤ (I + 1) * a
a' : NNReal := { val := a, property := (_ : 0 ≤ a) }
n : ℕ
hn : n = 0
⊢ ‖rightInv p i n‖ * ↑a' ^ n ≤ (I + 1) * a
[PROOFSTEP]
have : ‖p.rightInv i n‖ = ‖p.rightInv i 0‖ := by congr <;> try rw [hn]
[GOAL]
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
hp : 0 < radius p
C r : ℝ
Cpos : 0 < C
rpos : 0 < r
ple : ∀ (n : ℕ), ‖p n‖ ≤ C * r ^ n
I : ℝ := ‖↑(ContinuousLinearEquiv.symm i)‖
a : ℝ
apos : 0 < a
ha1 : 2 * I * C * r ^ 2 * (I + 1) ^ 2 * a ≤ 1
ha2 : r * (I + 1) * a ≤ 1 / 2
S : ℕ → ℝ := fun n => ∑ k in Ico 1 n, a ^ k * ‖rightInv p i k‖
IRec : ∀ (n : ℕ), 1 ≤ n → S n ≤ (I + 1) * a
a' : NNReal := { val := a, property := (_ : 0 ≤ a) }
n : ℕ
hn : n = 0
⊢ ‖rightInv p i n‖ = ‖rightInv p i 0‖
[PROOFSTEP]
congr
[GOAL]
case h.e_1.h.e_3
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
hp : 0 < radius p
C r : ℝ
Cpos : 0 < C
rpos : 0 < r
ple : ∀ (n : ℕ), ‖p n‖ ≤ C * r ^ n
I : ℝ := ‖↑(ContinuousLinearEquiv.symm i)‖
a : ℝ
apos : 0 < a
ha1 : 2 * I * C * r ^ 2 * (I + 1) ^ 2 * a ≤ 1
ha2 : r * (I + 1) * a ≤ 1 / 2
S : ℕ → ℝ := fun n => ∑ k in Ico 1 n, a ^ k * ‖rightInv p i k‖
IRec : ∀ (n : ℕ), 1 ≤ n → S n ≤ (I + 1) * a
a' : NNReal := { val := a, property := (_ : 0 ≤ a) }
n : ℕ
hn : n = 0
⊢ HEq (fun i => F) fun i => F
[PROOFSTEP]
try rw [hn]
[GOAL]
case h.e_1.h.e_3
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
hp : 0 < radius p
C r : ℝ
Cpos : 0 < C
rpos : 0 < r
ple : ∀ (n : ℕ), ‖p n‖ ≤ C * r ^ n
I : ℝ := ‖↑(ContinuousLinearEquiv.symm i)‖
a : ℝ
apos : 0 < a
ha1 : 2 * I * C * r ^ 2 * (I + 1) ^ 2 * a ≤ 1
ha2 : r * (I + 1) * a ≤ 1 / 2
S : ℕ → ℝ := fun n => ∑ k in Ico 1 n, a ^ k * ‖rightInv p i k‖
IRec : ∀ (n : ℕ), 1 ≤ n → S n ≤ (I + 1) * a
a' : NNReal := { val := a, property := (_ : 0 ≤ a) }
n : ℕ
hn : n = 0
⊢ HEq (fun i => F) fun i => F
[PROOFSTEP]
rw [hn]
[GOAL]
case h.e_1.h.e_6
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
hp : 0 < radius p
C r : ℝ
Cpos : 0 < C
rpos : 0 < r
ple : ∀ (n : ℕ), ‖p n‖ ≤ C * r ^ n
I : ℝ := ‖↑(ContinuousLinearEquiv.symm i)‖
a : ℝ
apos : 0 < a
ha1 : 2 * I * C * r ^ 2 * (I + 1) ^ 2 * a ≤ 1
ha2 : r * (I + 1) * a ≤ 1 / 2
S : ℕ → ℝ := fun n => ∑ k in Ico 1 n, a ^ k * ‖rightInv p i k‖
IRec : ∀ (n : ℕ), 1 ≤ n → S n ≤ (I + 1) * a
a' : NNReal := { val := a, property := (_ : 0 ≤ a) }
n : ℕ
hn : n = 0
⊢ HEq (fun i => AddCommGroup.toAddCommMonoid) fun i => AddCommGroup.toAddCommMonoid
[PROOFSTEP]
try rw [hn]
[GOAL]
case h.e_1.h.e_6
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
hp : 0 < radius p
C r : ℝ
Cpos : 0 < C
rpos : 0 < r
ple : ∀ (n : ℕ), ‖p n‖ ≤ C * r ^ n
I : ℝ := ‖↑(ContinuousLinearEquiv.symm i)‖
a : ℝ
apos : 0 < a
ha1 : 2 * I * C * r ^ 2 * (I + 1) ^ 2 * a ≤ 1
ha2 : r * (I + 1) * a ≤ 1 / 2
S : ℕ → ℝ := fun n => ∑ k in Ico 1 n, a ^ k * ‖rightInv p i k‖
IRec : ∀ (n : ℕ), 1 ≤ n → S n ≤ (I + 1) * a
a' : NNReal := { val := a, property := (_ : 0 ≤ a) }
n : ℕ
hn : n = 0
⊢ HEq (fun i => AddCommGroup.toAddCommMonoid) fun i => AddCommGroup.toAddCommMonoid
[PROOFSTEP]
rw [hn]
[GOAL]
case h.e_1.h.e_8
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
hp : 0 < radius p
C r : ℝ
Cpos : 0 < C
rpos : 0 < r
ple : ∀ (n : ℕ), ‖p n‖ ≤ C * r ^ n
I : ℝ := ‖↑(ContinuousLinearEquiv.symm i)‖
a : ℝ
apos : 0 < a
ha1 : 2 * I * C * r ^ 2 * (I + 1) ^ 2 * a ≤ 1
ha2 : r * (I + 1) * a ≤ 1 / 2
S : ℕ → ℝ := fun n => ∑ k in Ico 1 n, a ^ k * ‖rightInv p i k‖
IRec : ∀ (n : ℕ), 1 ≤ n → S n ≤ (I + 1) * a
a' : NNReal := { val := a, property := (_ : 0 ≤ a) }
n : ℕ
hn : n = 0
⊢ HEq (fun i => NormedSpace.toModule) fun i => NormedSpace.toModule
[PROOFSTEP]
try rw [hn]
[GOAL]
case h.e_1.h.e_8
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
hp : 0 < radius p
C r : ℝ
Cpos : 0 < C
rpos : 0 < r
ple : ∀ (n : ℕ), ‖p n‖ ≤ C * r ^ n
I : ℝ := ‖↑(ContinuousLinearEquiv.symm i)‖
a : ℝ
apos : 0 < a
ha1 : 2 * I * C * r ^ 2 * (I + 1) ^ 2 * a ≤ 1
ha2 : r * (I + 1) * a ≤ 1 / 2
S : ℕ → ℝ := fun n => ∑ k in Ico 1 n, a ^ k * ‖rightInv p i k‖
IRec : ∀ (n : ℕ), 1 ≤ n → S n ≤ (I + 1) * a
a' : NNReal := { val := a, property := (_ : 0 ≤ a) }
n : ℕ
hn : n = 0
⊢ HEq (fun i => NormedSpace.toModule) fun i => NormedSpace.toModule
[PROOFSTEP]
rw [hn]
[GOAL]
case h.e_1.h.e_10
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
hp : 0 < radius p
C r : ℝ
Cpos : 0 < C
rpos : 0 < r
ple : ∀ (n : ℕ), ‖p n‖ ≤ C * r ^ n
I : ℝ := ‖↑(ContinuousLinearEquiv.symm i)‖
a : ℝ
apos : 0 < a
ha1 : 2 * I * C * r ^ 2 * (I + 1) ^ 2 * a ≤ 1
ha2 : r * (I + 1) * a ≤ 1 / 2
S : ℕ → ℝ := fun n => ∑ k in Ico 1 n, a ^ k * ‖rightInv p i k‖
IRec : ∀ (n : ℕ), 1 ≤ n → S n ≤ (I + 1) * a
a' : NNReal := { val := a, property := (_ : 0 ≤ a) }
n : ℕ
hn : n = 0
⊢ HEq (fun i => UniformSpace.toTopologicalSpace) fun i => UniformSpace.toTopologicalSpace
[PROOFSTEP]
try rw [hn]
[GOAL]
case h.e_1.h.e_10
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
hp : 0 < radius p
C r : ℝ
Cpos : 0 < C
rpos : 0 < r
ple : ∀ (n : ℕ), ‖p n‖ ≤ C * r ^ n
I : ℝ := ‖↑(ContinuousLinearEquiv.symm i)‖
a : ℝ
apos : 0 < a
ha1 : 2 * I * C * r ^ 2 * (I + 1) ^ 2 * a ≤ 1
ha2 : r * (I + 1) * a ≤ 1 / 2
S : ℕ → ℝ := fun n => ∑ k in Ico 1 n, a ^ k * ‖rightInv p i k‖
IRec : ∀ (n : ℕ), 1 ≤ n → S n ≤ (I + 1) * a
a' : NNReal := { val := a, property := (_ : 0 ≤ a) }
n : ℕ
hn : n = 0
⊢ HEq (fun i => UniformSpace.toTopologicalSpace) fun i => UniformSpace.toTopologicalSpace
[PROOFSTEP]
rw [hn]
[GOAL]
case pos
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
hp : 0 < radius p
C r : ℝ
Cpos : 0 < C
rpos : 0 < r
ple : ∀ (n : ℕ), ‖p n‖ ≤ C * r ^ n
I : ℝ := ‖↑(ContinuousLinearEquiv.symm i)‖
a : ℝ
apos : 0 < a
ha1 : 2 * I * C * r ^ 2 * (I + 1) ^ 2 * a ≤ 1
ha2 : r * (I + 1) * a ≤ 1 / 2
S : ℕ → ℝ := fun n => ∑ k in Ico 1 n, a ^ k * ‖rightInv p i k‖
IRec : ∀ (n : ℕ), 1 ≤ n → S n ≤ (I + 1) * a
a' : NNReal := { val := a, property := (_ : 0 ≤ a) }
n : ℕ
hn : n = 0
this : ‖rightInv p i n‖ = ‖rightInv p i 0‖
⊢ ‖rightInv p i n‖ * ↑a' ^ n ≤ (I + 1) * a
[PROOFSTEP]
simp only [this, norm_zero, zero_mul, rightInv_coeff_zero]
[GOAL]
case pos
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
hp : 0 < radius p
C r : ℝ
Cpos : 0 < C
rpos : 0 < r
ple : ∀ (n : ℕ), ‖p n‖ ≤ C * r ^ n
I : ℝ := ‖↑(ContinuousLinearEquiv.symm i)‖
a : ℝ
apos : 0 < a
ha1 : 2 * I * C * r ^ 2 * (I + 1) ^ 2 * a ≤ 1
ha2 : r * (I + 1) * a ≤ 1 / 2
S : ℕ → ℝ := fun n => ∑ k in Ico 1 n, a ^ k * ‖rightInv p i k‖
IRec : ∀ (n : ℕ), 1 ≤ n → S n ≤ (I + 1) * a
a' : NNReal := { val := a, property := (_ : 0 ≤ a) }
n : ℕ
hn : n = 0
this : ‖rightInv p i n‖ = ‖rightInv p i 0‖
⊢ 0 ≤ (‖↑(ContinuousLinearEquiv.symm i)‖ + 1) * a
[PROOFSTEP]
apply_rules [mul_nonneg, add_nonneg, norm_nonneg, zero_le_one, apos.le]
[GOAL]
case neg
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
hp : 0 < radius p
C r : ℝ
Cpos : 0 < C
rpos : 0 < r
ple : ∀ (n : ℕ), ‖p n‖ ≤ C * r ^ n
I : ℝ := ‖↑(ContinuousLinearEquiv.symm i)‖
a : ℝ
apos : 0 < a
ha1 : 2 * I * C * r ^ 2 * (I + 1) ^ 2 * a ≤ 1
ha2 : r * (I + 1) * a ≤ 1 / 2
S : ℕ → ℝ := fun n => ∑ k in Ico 1 n, a ^ k * ‖rightInv p i k‖
IRec : ∀ (n : ℕ), 1 ≤ n → S n ≤ (I + 1) * a
a' : NNReal := { val := a, property := (_ : 0 ≤ a) }
n : ℕ
hn : ¬n = 0
⊢ ‖rightInv p i n‖ * ↑a' ^ n ≤ (I + 1) * a
[PROOFSTEP]
have one_le_n : 1 ≤ n := bot_lt_iff_ne_bot.2 hn
[GOAL]
case neg
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
hp : 0 < radius p
C r : ℝ
Cpos : 0 < C
rpos : 0 < r
ple : ∀ (n : ℕ), ‖p n‖ ≤ C * r ^ n
I : ℝ := ‖↑(ContinuousLinearEquiv.symm i)‖
a : ℝ
apos : 0 < a
ha1 : 2 * I * C * r ^ 2 * (I + 1) ^ 2 * a ≤ 1
ha2 : r * (I + 1) * a ≤ 1 / 2
S : ℕ → ℝ := fun n => ∑ k in Ico 1 n, a ^ k * ‖rightInv p i k‖
IRec : ∀ (n : ℕ), 1 ≤ n → S n ≤ (I + 1) * a
a' : NNReal := { val := a, property := (_ : 0 ≤ a) }
n : ℕ
hn : ¬n = 0
one_le_n : 1 ≤ n
⊢ ‖rightInv p i n‖ * ↑a' ^ n ≤ (I + 1) * a
[PROOFSTEP]
calc
  ‖p.rightInv i n‖ * (a' : ℝ) ^ n = a ^ n * ‖p.rightInv i n‖ := mul_comm _ _
  _ ≤ ∑ k in Ico 1 (n + 1), a ^ k * ‖p.rightInv i k‖ :=
    (haveI : ∀ k ∈ Ico 1 (n + 1), 0 ≤ a ^ k * ‖p.rightInv i k‖ := fun k _ =>
      mul_nonneg (pow_nonneg apos.le _) (norm_nonneg _)
    single_le_sum this (by simp [one_le_n]))
  _ ≤ (I + 1) * a := IRec (n + 1) (by norm_num)
[GOAL]
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
hp : 0 < radius p
C r : ℝ
Cpos : 0 < C
rpos : 0 < r
ple : ∀ (n : ℕ), ‖p n‖ ≤ C * r ^ n
I : ℝ := ‖↑(ContinuousLinearEquiv.symm i)‖
a : ℝ
apos : 0 < a
ha1 : 2 * I * C * r ^ 2 * (I + 1) ^ 2 * a ≤ 1
ha2 : r * (I + 1) * a ≤ 1 / 2
S : ℕ → ℝ := fun n => ∑ k in Ico 1 n, a ^ k * ‖rightInv p i k‖
IRec : ∀ (n : ℕ), 1 ≤ n → S n ≤ (I + 1) * a
a' : NNReal := { val := a, property := (_ : 0 ≤ a) }
n : ℕ
hn : ¬n = 0
one_le_n : 1 ≤ n
this : ∀ (k : ℕ), k ∈ Ico 1 (n + 1) → 0 ≤ a ^ k * ‖rightInv p i k‖
⊢ n ∈ Ico 1 (n + 1)
[PROOFSTEP]
simp [one_le_n]
[GOAL]
𝕜 : 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
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
hp : 0 < radius p
C r : ℝ
Cpos : 0 < C
rpos : 0 < r
ple : ∀ (n : ℕ), ‖p n‖ ≤ C * r ^ n
I : ℝ := ‖↑(ContinuousLinearEquiv.symm i)‖
a : ℝ
apos : 0 < a
ha1 : 2 * I * C * r ^ 2 * (I + 1) ^ 2 * a ≤ 1
ha2 : r * (I + 1) * a ≤ 1 / 2
S : ℕ → ℝ := fun n => ∑ k in Ico 1 n, a ^ k * ‖rightInv p i k‖
IRec : ∀ (n : ℕ), 1 ≤ n → S n ≤ (I + 1) * a
a' : NNReal := { val := a, property := (_ : 0 ≤ a) }
n : ℕ
hn : ¬n = 0
one_le_n : 1 ≤ n
⊢ 1 ≤ n + 1
[PROOFSTEP]
norm_num