[GOAL]
A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : NormedAlgebra ℂ A
inst✝³ : StarRing A
inst✝² : ContinuousStar A
inst✝¹ : CompleteSpace A
inst✝ : StarModule ℂ A
a b : { x // x ∈ selfAdjoint A }
h : Commute ↑a ↑b
⊢ expUnitary (a + b) = expUnitary a * expUnitary b
[PROOFSTEP]
ext
[GOAL]
case a
A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : NormedAlgebra ℂ A
inst✝³ : StarRing A
inst✝² : ContinuousStar A
inst✝¹ : CompleteSpace A
inst✝ : StarModule ℂ A
a b : { x // x ∈ selfAdjoint A }
h : Commute ↑a ↑b
⊢ ↑(expUnitary (a + b)) = ↑(expUnitary a * expUnitary b)
[PROOFSTEP]
have hcomm : Commute (I • (a : A)) (I • (b : A)) :=
  by
  unfold Commute SemiconjBy
  simp only [h.eq, Algebra.smul_mul_assoc, Algebra.mul_smul_comm]
[GOAL]
A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : NormedAlgebra ℂ A
inst✝³ : StarRing A
inst✝² : ContinuousStar A
inst✝¹ : CompleteSpace A
inst✝ : StarModule ℂ A
a b : { x // x ∈ selfAdjoint A }
h : Commute ↑a ↑b
⊢ Commute (I • ↑a) (I • ↑b)
[PROOFSTEP]
unfold Commute SemiconjBy
[GOAL]
A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : NormedAlgebra ℂ A
inst✝³ : StarRing A
inst✝² : ContinuousStar A
inst✝¹ : CompleteSpace A
inst✝ : StarModule ℂ A
a b : { x // x ∈ selfAdjoint A }
h : Commute ↑a ↑b
⊢ I • ↑a * I • ↑b = I • ↑b * I • ↑a
[PROOFSTEP]
simp only [h.eq, Algebra.smul_mul_assoc, Algebra.mul_smul_comm]
[GOAL]
case a
A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : NormedAlgebra ℂ A
inst✝³ : StarRing A
inst✝² : ContinuousStar A
inst✝¹ : CompleteSpace A
inst✝ : StarModule ℂ A
a b : { x // x ∈ selfAdjoint A }
h : Commute ↑a ↑b
hcomm : Commute (I • ↑a) (I • ↑b)
⊢ ↑(expUnitary (a + b)) = ↑(expUnitary a * expUnitary b)
[PROOFSTEP]
simpa only [expUnitary_coe, AddSubgroup.coe_add, smul_add] using exp_add_of_commute hcomm
[GOAL]
A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : NormedAlgebra ℂ A
inst✝³ : StarRing A
inst✝² : ContinuousStar A
inst✝¹ : CompleteSpace A
inst✝ : StarModule ℂ A
a b : { x // x ∈ selfAdjoint A }
h : Commute ↑a ↑b
⊢ selfAdjoint.expUnitary a * selfAdjoint.expUnitary b = selfAdjoint.expUnitary b * selfAdjoint.expUnitary a
[PROOFSTEP]
rw [← h.expUnitary_add, ← h.symm.expUnitary_add, add_comm]
