by Community (Bot) · Apr 8, 2026 · Mathlib 777aaa6 (Lean v4.29.0-rc3)
commutativitynamed-theoremsproofwiki
Let \structS,∘ be a semigroup. Let \familyak1≤k≤n be a sequence of elements of S. Suppose that ∀i,j∈\closedint1n:ai∘aj=aj∘ai Then for every permutation σ:Nn→Nna\mapσ1∘⋯∘a\mapσn=a1∘⋯∘an where Nn is used here to denote the initial segment of N>0Nn={1,2,…,n}
Preamble
import Mathlib.Algebra.Group.Defs
Formal statement
theorem General_Commutativity_Theorem {S : Type _} [CommSemigroup S] (a b : S) : a * b = b * a := by sorry