Goto Chapter: Top 1 2 3 4 5 6 7 Bib Ind
 Top of Book   Previous Chapter   Next Chapter 

2 Transformations
 2.1 More Functions for Transformations
  2.1-1 IsRegularTransformation

  2.1-2 IsTransversal

  2.1-3 Idempotent

  2.1-4 PermRepTrans

  2.1-5 RandomTransformation

  2.1-6 IndexPeriodOfTransformation

2 Transformations

2.1 More Functions for Transformations

The functions described in this section extend the functionality of GAP relating to transformations.

2.1-1 IsRegularTransformation
> IsRegularTransformation( S, f )( operation )

if f is a regular element of the transformation semigroup S, then true is returned. Otherwise false is returned.

A transformation f is regular inside a transformation semigroup S if it lies inside a regular D-class. This is equivalent to the orbit of the image of f containing a transversal of the kernel of f.

gap> g1:=Transformation([2,2,4,4,5,6]);;
gap> g2:=Transformation([5,3,4,4,6,6]);;
gap> m1:=Monoid(g1,g2);;
gap> IsRegularTransformation(m1, g1);
true
gap> img:=ImageSetOfTransformation(g1);
[ 2, 4, 5, 6 ]
gap> ker:=KernelOfTransformation(g1);
[ [ 1, 2 ], [ 3, 4 ], [ 5 ], [ 6 ] ]
gap> ForAny(MonoidOrbit(m1, img), x-> IsTransversal(ker, x));
true
gap> IsRegularTransformation(m1, g2);
false
gap> IsRegularTransformation(FullTransformationSemigroup(6), g2);
true
	

2.1-2 IsTransversal
> IsTransversal( ker, img )( function )

If ker is a partition of the set {1,2,...,n} and img a subset of the same set, then IsTransversal returns true if img is a transversal of ker. That is, if every class in ker contains exactly one element in img. Otherwise false is returned.

  gap> g1:=Transformation([2,2,4,4,5,6]);;
  gap> g2:=Transformation([5,3,4,4,6,6]);;
  gap> ker:=KernelOfTransformation(g2*g1);
  [ [ 1 ], [ 2, 3, 4 ], [ 5, 6 ] ] 
  gap> im:=ImageListOfTransformation(g2);
  [ 5, 3, 4, 4, 6, 6 ]
  gap> IsTransversal(ker, im);
  false
  gap> IsTransversal([[1,2,3],[4,5],[6,7]], [1,5,6]);
  true
  

2.1-3 Idempotent
> IdempotentNC( ker, img )( function )
> Idempotent( ker, img )( function )

IdempotentNC returns an idempotent with kernel ker and image img without checking IsTransversal (2.1-2) with arguments ker and im.

Idempotent returns an idempotent with kernel ker and image img after checking that IsTransversal (2.1-2) with arguments ker and im returns true.

  gap> g1:=Transformation([2,2,4,4,5,6]);;
  gap> g2:=Transformation([5,3,4,4,6,6]);;
  gap> ker:=KernelOfTransformation(g2*g1);;
  gap> im:=ImageListOfTransformation(g2);;
  gap> Idempotent(ker, im);
  Error,  the image must be a transversal of the kernel
  [ ... ]
  gap> Idempotent([[1,2,3],[4,5],[6,7]], [1,5,6]);
  Transformation( [ 1, 1, 1, 5, 5, 6, 6 ] )
  gap> IdempotentNC([[1,2,3],[4,5],[6,7]], [1,5,6]);
  Transformation( [ 1, 1, 1, 5, 5, 6, 6 ] )

2.1-4 PermRepTrans
> PermRepTrans( f )( operation )

converts a transformation f that is a permutation of its image into that permutation.

  gap> f:=Transformation([1,2,9,9,9,8,8,8,4]);
  Transformation( [ 1, 2, 9, 9, 9, 8, 8, 8, 4 ] )
  gap> PermRepTrans(f);
  (4,9)
  gap> f*last;
  Transformation( [ 1, 2, 4, 4, 4, 8, 8, 8, 9 ] )
  gap> PermRepTrans(last);
  ()

2.1-5 RandomTransformation
> RandomTransformation( ker, img )( operation )

This is a new method for the existing library function RandomTransformation. A random transformation is returned that has the given image img and kernel ker. Note that ker must have the same number of classes as img has elements.

gap> f:=RandomTransformation([[1,2,3], [4,5], [6,7,8]], [1,2,3]);;
gap> KernelOfTransformation(f)=[[1,2,3], [4,5], [6,7,8]];
true
gap> ImageSetOfTransformation(f)=[1,2,3];
true

2.1-6 IndexPeriodOfTransformation
> IndexPeriodOfTransformation( f )( operation )

returns the minimum numbers m, r such that f^(m+r)=f^m; known as the index and period of the transformation.

  gap> f:=Transformation( [ 3, 4, 4, 6, 1, 3, 3, 7, 1 ] );;
  gap> IndexPeriodOfTransformation(f);
  [ 2, 3 ]
  gap> f^2=f^5;
  true
 Top of Book   Previous Chapter   Next Chapter 
Goto Chapter: Top 1 2 3 4 5 6 7 Bib Ind

generated by GAPDoc2HTML