The functions described in this section extend the functionality of GAP relating to transformations.
> 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 |
> 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 |
> 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 ] ) |
> 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); () |
> 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 |
> 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 |
generated by GAPDoc2HTML