I didn't find a useful related link in which someone could equip a semigroup with a zero while using GAP via web. Theoretically, we can make the semigroup $S$ fat to be $S^{0}=S\cup\{0\}$ with relators: $$a*0=0=0*a,~~\forall a\in S.$$ in order to have a zero element. Clearly, the enclosed zero may not be written as the elements of the semigroup. I am asking what can be done in GAP when we have for example a finite semigroup written in GAP:
gap> f:=FreeSemigroup("a","b");;
a:=f.1;; b:=f.2;;
s:=f/[[a^5,a],[b^2,a^2],[b*a*b,a*b*a]];;
How can we note GAP that we need an element as zero while working by GAP. Is it Ok if someone changes the above semigroup s as follows:
gap> f:=FreeSemigroup("a","b","c");;
a:=f.1;; b:=f.2;; c:=f.3;;
s:=f/[[a^5,a],[b^2,a^2],[b*a*b,a*b*a],[c^2,c],[a*c,c],
[c*a,c],[b*c,c],[c*b,c]];;
Thanks for your time and any ideas.
You can use the function
InjectionZeroMagma. This gives an injective function from your semigroup (or more generally, a magma), to your semigroup with a zero element adjoined.In your example: