Theorem: NormedSpace.exp_sum_of_commute
File: Mathlib/Analysis/NormedSpace/Exponential.lean

tactic: induction' s using Finset.induction_on with a s ha ih
state_before: 𝕂 : Type u_1
𝔸 : Type u_2
𝔹 : Type u_3
inst✝⁵ : RCLike 𝕂
inst✝⁴ : NormedRing 𝔸
inst✝³ : NormedAlgebra 𝕂 𝔸
inst✝² : NormedRing 𝔹
inst✝¹ : NormedAlgebra 𝕂 𝔹
inst✝ : CompleteSpace 𝔸
ι : Type u_4
s : Finset ι
f : ι → 𝔸
h : (↑s).Pairwise fun i j => Commute (f i) (f j)
⊢ exp 𝕂 (∑ i ∈ s, f i) = s.noncommProd (fun i => exp 𝕂 (f i)) ⋯
state_after: case empty
𝕂 : Type u_1
𝔸 : Type u_2
𝔹 : Type u_3
inst✝⁵ : RCLike 𝕂
inst✝⁴ : NormedRing 𝔸
inst✝³ : NormedAlgebra 𝕂 𝔸
inst✝² : NormedRing 𝔹
inst✝¹ : NormedAlgebra 𝕂 𝔹
inst✝ : CompleteSpace 𝔸
ι : Type u_4
f : ι → 𝔸
h : (↑∅).Pairwise fun i j => Commute (f i) (f j)
⊢ exp 𝕂 (∑ i ∈ ∅, f i) = ∅.noncommProd (fun i => exp 𝕂 (f i)) ⋯

case insert
𝕂 : Type u_1
𝔸 : Type u_2
𝔹 : Type u_3
inst✝⁵ : RCLike 𝕂
inst✝⁴ : NormedRing 𝔸
inst✝³ : NormedAlgebra 𝕂 𝔸
inst✝² : NormedRing 𝔹
inst✝¹ : NormedAlgebra 𝕂 𝔹
inst✝ : CompleteSpace 𝔸
ι : Type u_4
f : ι → 𝔸
a : ι
s : Finset ι
ha : a ∉ s
ih : ∀ (h : (↑s).Pairwise fun i j => Commute (f i) (f j)), exp 𝕂 (∑ i ∈ s, f i) = s.noncommProd (fun i => exp 𝕂 (f i)) ⋯
h : (↑(insert a s)).Pairwise fun i j => Commute (f i) (f j)
⊢ exp 𝕂 (∑ i ∈ insert a s, f i) = (insert a s).noncommProd (fun i => exp 𝕂 (f i)) ⋯

tactic: rw [Finset.noncommProd_insert_of_not_mem _ _ _ _ ha, Finset.sum_insert ha, exp_add_of_commute,
  ih (h.mono <| Finset.subset_insert _ _)]
state_before: case insert
𝕂 : Type u_1
𝔸 : Type u_2
𝔹 : Type u_3
inst✝⁵ : RCLike 𝕂
inst✝⁴ : NormedRing 𝔸
inst✝³ : NormedAlgebra 𝕂 𝔸
inst✝² : NormedRing 𝔹
inst✝¹ : NormedAlgebra 𝕂 𝔹
inst✝ : CompleteSpace 𝔸
ι : Type u_4
f : ι → 𝔸
a : ι
s : Finset ι
ha : a ∉ s
ih : ∀ (h : (↑s).Pairwise fun i j => Commute (f i) (f j)), exp 𝕂 (∑ i ∈ s, f i) = s.noncommProd (fun i => exp 𝕂 (f i)) ⋯
h : (↑(insert a s)).Pairwise fun i j => Commute (f i) (f j)
⊢ exp 𝕂 (∑ i ∈ insert a s, f i) = (insert a s).noncommProd (fun i => exp 𝕂 (f i)) ⋯
state_after: case insert
𝕂 : Type u_1
𝔸 : Type u_2
𝔹 : Type u_3
inst✝⁵ : RCLike 𝕂
inst✝⁴ : NormedRing 𝔸
inst✝³ : NormedAlgebra 𝕂 𝔸
inst✝² : NormedRing 𝔹
inst✝¹ : NormedAlgebra 𝕂 𝔹
inst✝ : CompleteSpace 𝔸
ι : Type u_4
f : ι → 𝔸
a : ι
s : Finset ι
ha : a ∉ s
ih : ∀ (h : (↑s).Pairwise fun i j => Commute (f i) (f j)), exp 𝕂 (∑ i ∈ s, f i) = s.noncommProd (fun i => exp 𝕂 (f i)) ⋯
h : (↑(insert a s)).Pairwise fun i j => Commute (f i) (f j)
⊢ Commute (f a) (∑ x ∈ s, f x)

tactic: refine Commute.sum_right _ _ _ fun i hi => ?_
state_before: case insert
𝕂 : Type u_1
𝔸 : Type u_2
𝔹 : Type u_3
inst✝⁵ : RCLike 𝕂
inst✝⁴ : NormedRing 𝔸
inst✝³ : NormedAlgebra 𝕂 𝔸
inst✝² : NormedRing 𝔹
inst✝¹ : NormedAlgebra 𝕂 𝔹
inst✝ : CompleteSpace 𝔸
ι : Type u_4
f : ι → 𝔸
a : ι
s : Finset ι
ha : a ∉ s
ih : ∀ (h : (↑s).Pairwise fun i j => Commute (f i) (f j)), exp 𝕂 (∑ i ∈ s, f i) = s.noncommProd (fun i => exp 𝕂 (f i)) ⋯
h : (↑(insert a s)).Pairwise fun i j => Commute (f i) (f j)
⊢ Commute (f a) (∑ x ∈ s, f x)
state_after: case insert
𝕂 : Type u_1
𝔸 : Type u_2
𝔹 : Type u_3
inst✝⁵ : RCLike 𝕂
inst✝⁴ : NormedRing 𝔸
inst✝³ : NormedAlgebra 𝕂 𝔸
inst✝² : NormedRing 𝔹
inst✝¹ : NormedAlgebra 𝕂 𝔹
inst✝ : CompleteSpace 𝔸
ι : Type u_4
f : ι → 𝔸
a : ι
s : Finset ι
ha : a ∉ s
ih : ∀ (h : (↑s).Pairwise fun i j => Commute (f i) (f j)), exp 𝕂 (∑ i ∈ s, f i) = s.noncommProd (fun i => exp 𝕂 (f i)) ⋯
h : (↑(insert a s)).Pairwise fun i j => Commute (f i) (f j)
i : ι
hi : i ∈ s
⊢ Commute (f a) (f i)

tactic: exact h.of_refl (Finset.mem_insert_self _ _) (Finset.mem_insert_of_mem hi)
state_before: case insert
𝕂 : Type u_1
𝔸 : Type u_2
𝔹 : Type u_3
inst✝⁵ : RCLike 𝕂
inst✝⁴ : NormedRing 𝔸
inst✝³ : NormedAlgebra 𝕂 𝔸
inst✝² : NormedRing 𝔹
inst✝¹ : NormedAlgebra 𝕂 𝔹
inst✝ : CompleteSpace 𝔸
ι : Type u_4
f : ι → 𝔸
a : ι
s : Finset ι
ha : a ∉ s
ih : ∀ (h : (↑s).Pairwise fun i j => Commute (f i) (f j)), exp 𝕂 (∑ i ∈ s, f i) = s.noncommProd (fun i => exp 𝕂 (f i)) ⋯
h : (↑(insert a s)).Pairwise fun i j => Commute (f i) (f j)
i : ι
hi : i ∈ s
⊢ Commute (f a) (f i)
state_after: no goals

tactic: simp
state_before: case empty
𝕂 : Type u_1
𝔸 : Type u_2
𝔹 : Type u_3
inst✝⁵ : RCLike 𝕂
inst✝⁴ : NormedRing 𝔸
inst✝³ : NormedAlgebra 𝕂 𝔸
inst✝² : NormedRing 𝔹
inst✝¹ : NormedAlgebra 𝕂 𝔹
inst✝ : CompleteSpace 𝔸
ι : Type u_4
f : ι → 𝔸
h : (↑∅).Pairwise fun i j => Commute (f i) (f j)
⊢ exp 𝕂 (∑ i ∈ ∅, f i) = ∅.noncommProd (fun i => exp 𝕂 (f i)) ⋯
state_after: no goals