define PlusOp for Semigroup