  
  [1m[4m[31m3. Drawings of semigroups[0m
  
  There  are  some  pictures  that  may  give  a  lot  of  information about a
  semigroup.  This  is  the  case of the egg-box picture of the D-classes, the
  right  Cayley  graph  of  a finite monoid and the Schutzenberger graphs of a
  finite inverse monoid.
  
  
  [1m[4m[31m3.1 Drawing the D-class of an element of a semigroup[0m
  
  [1m[4m[31m3.1-1 DrawDClassOfElement[0m
  
  [1m[34m> DrawDClassOfElement( [0m[22m[34marg[0m[1m[34m ) _______________________________________[0mfunction
  
  This  function  takes  as arguments a semigroup followed by a transformation
  which  is  the  element  whose D-class will be drawn. Optionally we can then
  specify  n  lists of elements and the elements of each list will be drawn in
  different  colours. Finally, we may specify a string name the file that will
  be  used to write the drawing of the class (in PostScript format) and if the
  last   argument   is  the  integer  1  then  the  elements  will  appear  as
  transformations,  otherwise  they will appear as words. The idempotents will
  be marked with a * before them.
  
  [22m[35m---------------------------  Example  ----------------------------[0m
    [22m[35mgap> DrawDClassOfElement(poi3, Transformation([1,4,3,4]));[0m
    [22m[35mgap> DrawDClassOfElement(poi3, Transformation([1,4,3,4]),1);[0m
    [22m[35mgap> DrawDClassOfElement(poi3, Transformation([1,4,3,4]),[0m
    [22m[35m [Transformation( [ 2, 3, 4, 4 ] )],1);[0m
    [22m[35mgap> DrawDClassOfElement(poi3, Transformation([1,4,3,4]),[0m
    [22m[35m [Transformation( [ 2, 3, 4, 4 ] ), Transformation( [ 2, 4, 3, 4 ] )],[0m
    [22m[35m [Transformation( [ 2, 4, 3, 4 ] )],1);[0m
    [22m[35mgap> DrawDClassOfElement(poi3, Transformation([1,4,3,4]), [0m
    [22m[35m [Transformation( [ 2, 4, 3, 4 ] )],"Dclass",1);[0m
    [22m[35m      [0m
  [22m[35m------------------------------------------------------------------[0m
  
  
  [1m[4m[31m3.2 Drawing the D-classes of a semigroup[0m
  
  [1m[4m[31m3.2-1 DrawDClasses[0m
  
  [1m[34m> DrawDClasses( [0m[22m[34marg[0m[1m[34m ) ______________________________________________[0mfunction
  
  This function is similar to the previous one, except that this one draws all
  the  D-classes  of  the semigroup given as the first argument. It then takes
  optionally  n  lists of elements and the elements of each list will be drawn
  in  different  colours.  It also accepts a string specifying the name of the
  file  in which the drawing will be written and the last, optional, argument,
  the  integer  1,  to specify whether the elements will appear as words or as
  transformations  as in the previous function. The idempotents will be marked
  with a * before them.
  
  [22m[35m---------------------------  Example  ----------------------------[0m
    [22m[35mgap> DrawDClasses(poi3,"DClasses");[0m
    [22m[35mgap> DrawDClasses(poi3, [Transformation( [ 2, 3, 4, 4 ] ),[0m
    [22m[35m  Transformation( [ 2, 4, 3, 4 ] )],[0m
    [22m[35m  [Transformation( [ 2, 4, 3, 4 ] )],1);[0m
    [22m[35m      [0m
  [22m[35m------------------------------------------------------------------[0m
  
  
  [1m[4m[31m3.3 Cayley graphs[0m
  
  [1m[4m[31m3.3-1 DrawRightCayleyGraph[0m
  
  [1m[34m> DrawRightCayleyGraph( [0m[22m[34mS[0m[1m[34m ) ________________________________________[0mfunction
  
  Draws the right Cayley graph of a finite monoid or semigroup [22m[34mS[0m.
  
  [1m[4m[31m3.3-2 DrawCayleyGraph[0m
  
  [1m[34m> DrawCayleyGraph( [0m[22m[34mS[0m[1m[34m ) _____________________________________________[0mfunction
  
  This function is a synonym of [1m[34mDrawRightCayleyGraph[0m ([1m3.3-1[0m).
  
  For  example,  the command [22m[32mDrawCayleyGraph(b21);[0m would produce the following
  image:
  
  
  [1m[4m[31m3.4 Schutzenberger graphs[0m
  
  [1m[4m[31m3.4-1 DrawSchutzenbergerGraphs[0m
  
  [1m[34m> DrawSchutzenbergerGraphs( [0m[22m[34mS[0m[1m[34m ) ____________________________________[0mfunction
  
  Draws the Schutzenberger graphs of the inverse semigroup [22m[34mS[0m.
  
  For example, [22m[32mDrawSchutzenbergerGraphs(poi3);[0m would produce the following:
  
