abelian semigroup