(<=> (Abelian-Semigroup ?Domain ?Op ?Id) (And (Semigroup ?Domain ?Op ?Id) (Commutative ?Op ?Domain)))