# Revision history [back]

### Change binary Operation in Monoid/Semigroup Rings

I have been experimenting in Semigroup rings and what I’m wondering is whether Sage allows me to define a Set, it’s binary operation, and take its Semigroup Ring via the Set.algebra constructor.

Example would be

S=Set([0,1,2]) #generators
A=S.algebra(RR,Semigroups())
A.product=lambda x,y: x+y


But this does work on elements of A.

### Change binary Operation in Monoid/Semigroup Rings

I have been experimenting in Semigroup rings and what I’m wondering is whether Sage allows me to define a Set, it’s binary operation, and take its Semigroup Ring via the Set.algebra constructor.

Example would be

S=Set([0,1,2]) #generators
A=S.algebra(RR,Semigroups())
A.product=lambda x,y: x+y


But this does work on elements of A.A. I want to modify the way basis elements multiply.

### Change binary Operation in Monoid/Semigroup Rings

I have been experimenting in Semigroup rings and what I’m wondering is whether Sage allows me to define a Set, it’s binary operation, and take its Semigroup Ring via the Set.algebra constructor.

Example would be

S=Set([0,1,2]) #generators
A=S.algebra(RR,Semigroups())
A.product=lambda x,y: x+y


But this does work on the basis elements of A. I want to modify the way basis elements multiply.