No zero class in semigroup congruence EquivalenceClasses (generating pairs)

Issue #95 resolved
Michael Torpey
created an issue

(Library)

For certain congruences by generating pairs on Rees 0-matrix semigroups, the EquivalenceClasses function does not give a class containing 0.

gap> P := [ [ (), 0, (1,3), (1,3), 0, (), 0 ],
>   [ (), (1,3), 0, 0, (1,3), (), 0 ], [ (), (1,3), 0, (), 0, 0, () ],          
>   [ 0, (), (1,3), (1,3), (), 0, 0 ], [ 0, 0, 0, (), (), (1,3), () ],
>   [ (), 0, (1,3), 0, (), 0, () ] ];;                                
gap> R := ReesZeroMatrixSemigroup(Group([(1,3)]), P);;
gap> x := ReesZeroMatrixSemigroupElement(R, 1, (1,3), 1);;
gap> y := ReesZeroMatrixSemigroupElement(R, 1, (), 1);;
gap> cong := SemigroupCongruenceByGeneratingPairs(R, [[x,y]]);;
gap> c := EquivalenceClasses(cong);
[ {(1,(1,3),1)}, {(1,(1,3),2)}, {(1,(1,3),3)}, {(1,(1,3),4)}, {(1,(1,3),5)}, 
  {(1,(1,3),6)}, {(2,(1,3),1)}, {(3,(1,3),1)}, {(4,(1,3),1)}, {(5,(1,3),1)}, 
  {(6,(1,3),1)}, {(7,(1,3),1)}, {(2,(1,3),2)}, {(3,(1,3),2)}, {(4,(1,3),2)}, 
  {(5,(1,3),2)}, {(6,(1,3),2)}, {(7,(1,3),2)}, {(2,(1,3),3)}, {(3,(1,3),3)}, 
  {(4,(1,3),3)}, {(5,(1,3),3)}, {(6,(1,3),3)}, {(7,(1,3),3)}, {(2,(1,3),4)}, 
  {(3,(1,3),4)}, {(4,(1,3),4)}, {(5,(1,3),4)}, {(6,(1,3),4)}, {(7,(1,3),4)}, 
  {(2,(1,3),5)}, {(3,(1,3),5)}, {(4,(1,3),5)}, {(5,(1,3),5)}, {(6,(1,3),5)}, 
  {(7,(1,3),5)}, {(2,(1,3),6)}, {(3,(1,3),6)}, {(4,(1,3),6)}, {(5,(1,3),6)}, 
  {(6,(1,3),6)}, {(7,(1,3),6)} ]
gap> MultiplicativeZero(R);                   
0
gap> ForAny(c, x->MultiplicativeZero(R) in x);
false

Comments (10)

  1. James Mitchell repo owner

    I was trying to check if this is still an issue, and I get:

    gap> P := [ [ (), 0, (1,3), (1,3), 0, (), 0 ],
    >   [ (), (1,3), 0, 0, (1,3), (), 0 ], [ (), (1,3), 0, (), 0, 0, () ],          
    >   [ 0, (), (1,3), (1,3), (), 0, 0 ], [ 0, 0, 0, (), (), (1,3), () ],
    >   [ (), 0, (1,3), 0, (), 0, () ] ];;                                
    gap> R := ReesZeroMatrixSemigroup(Group([(1,3)]), P);;
    gap> x := ReesZeroMatrixSemigroupElement(R, 1, (1,3), 1);;
    gap> y := ReesZeroMatrixSemigroupElement(R, 1, (), 1);;
    gap> cong := SemigroupCongruenceByGeneratingPairs(R, [[x,y]]);;
    gap> c := EquivalenceClasses(cong);
    Error, Record: '<rec>.opts' must have an assigned value in
      ht := HTCreate( pairs[1], rec(
          forflatplainlists := true,
          treehashsize := s!.opts.hashlen.L ) ); called from 
    SEMIGROUPS_SetupCongData( cong ); called from
    AsLookupTable( cong ) called from
    <function "unknown">( <arguments> )
     called from read-eval loop at line 18 of *stdin*
    you can 'return;' after assigning a value
    brk> IsActingSemigroup(R);
    false
    brk>
    
  2. Log in to comment