Theorem: FormalMultilinearSeries.comp_rightInv_aux2
File: Mathlib/Analysis/Analytic/Inverse.lean

Proof steps:
state_before: 𝕜 : 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 ∈ {c | 1 < c.length}.toFinset,
      (p c.length) (applyComposition (fun k => if k < n + 2 then p.rightInv i k else 0) c v) =
    ∑ c ∈ {c | 1 < c.length}.toFinset, (p c.length) ((p.rightInv i).applyComposition c v)
state_after: 𝕜 : 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 ∈ {c | 1 < c.length}.toFinset,
      (p c.length) (applyComposition (fun k => if k < n + 2 then p.rightInv i k else 0) c v) =
    ∑ c ∈ {c | 1 < c.length}.toFinset, (p c.length) ((p.rightInv i).applyComposition c v)
tactic: have N : 0 < n + 2 := by norm_num
state_before: 𝕜 : 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 ∈ {c | 1 < c.length}.toFinset,
      (p c.length) (applyComposition (fun k => if k < n + 2 then p.rightInv i k else 0) c v) =
    ∑ c ∈ {c | 1 < c.length}.toFinset, (p c.length) ((p.rightInv i).applyComposition c v)
state_after: 𝕜 : 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 ∈ {c | 1 < c.length}.toFinset
j : ℕ
hj1 hj2 : j < c.length
⊢ applyComposition (fun k => if k < n + 2 then p.rightInv i k else 0) c v ⟨j, hj1⟩ =
    (p.rightInv i).applyComposition c v ⟨j, hj2⟩
tactic: refine sum_congr rfl fun c hc => p.congr rfl fun j hj1 hj2 => ?_
state_before: 𝕜 : 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 ∈ {c | 1 < c.length}.toFinset
j : ℕ
hj1 hj2 : j < c.length
⊢ applyComposition (fun k => if k < n + 2 then p.rightInv i k else 0) c v ⟨j, hj1⟩ =
    (p.rightInv i).applyComposition c v ⟨j, hj2⟩
state_after: 𝕜 : 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 ∈ {c | 1 < c.length}.toFinset
j : ℕ
hj1 hj2 : j < c.length
this : ∀ (k : Fin c.length), c.blocksFun k < n + 2
⊢ applyComposition (fun k => if k < n + 2 then p.rightInv i k else 0) c v ⟨j, hj1⟩ =
    (p.rightInv i).applyComposition c v ⟨j, hj2⟩
tactic: 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]
state_before: 𝕜 : 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 ∈ {c | 1 < c.length}.toFinset
j : ℕ
hj1 hj2 : j < c.length
this : ∀ (k : Fin c.length), c.blocksFun k < n + 2
⊢ applyComposition (fun k => if k < n + 2 then p.rightInv i k else 0) c v ⟨j, hj1⟩ =
    (p.rightInv i).applyComposition c v ⟨j, hj2⟩
state_after: no goals
tactic: simp [applyComposition, this]