(<=> (Semigroup ?Domain ?Op ?Id) (And (Binary-Operator-On ?Op ?Domain) (Associative ?Op ?Domain) (Identity-Element-For ?Id ?Op ?Domain)))
(<=> (Semigroup ?Domain ?Op ?Id) (And (Binary-Operator-On ?Op ?Domain) (Associative ?Op ?Domain) (Identity-Element-For ?Id ?Op ?Domain))) (Subrelation-Of Abelian-Semigroup Semigroup) (<=> (Abelian-Semigroup ?Domain ?Op ?Id) (And (Semigroup ?Domain ?Op ?Id) (Commutative ?Op ?Domain))) (<=> (Ring ?Domain ?Plus-Op ?Zero-Id ?Mult-Op ?One-Id) (And (Abelian-Group ?Domain ?Plus-Op ?Zero-Id) (Semigroup ?Domain ?Mult-Op ?One-Id) (Distributes ?Mult-Op ?Plus-Op ?Domain)))