About a semigroup equipped by zero

86 Views Asked by At

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.

1

There are 1 best solutions below

0
On BEST ANSWER

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:

gap> f:=FreeSemigroup("a","b");;  
gap>       a:=f.1;; b:=f.2;; 
gap>       s:=f/[[a^5,a],[b^2,a^2],[b*a*b,a*b*a]];;
gap> Range(InjectionZeroMagma(s));
<<fp semigroup on the generators [ a, b ]> with 0 adjoined>
gap> Size(last);
14