All set theoretic functions described in chapter "Domains" are also applicable to transformation monoids. This section describes which functions are implemented specially for transformation monoids. Functions not mentioned here are handled by the default methods described in the respective sections of chapter "Domains".

`Size( `

`M` )

`Size`

calls `RClasses`

(see RClasses), if necessary, and returns the
sum of the sizes of all *R* classes of `M`.

gap> Size( Monoid( Transformation( [ 1, 2, 1 ] ) ) ); 2

`Elements( `

`M` )

`Elements`

calls `RClasses`

(see RClasses) if necessary, and returns
the union of the elements of all *R* classes of `M`.

gap> Elements( Monoid( Transformation( [ 1, 2, 1 ] ) ) ); [ Transformation( [ 1, 2, 1 ] ), Transformation( [ 1 .. 3 ] ) ]

`obj` in `M`

The membership test of elements of transformation monoids first checks
whether `obj` is a transformation in the first place (see
Degree of a Transformation Monoid). Then the image and the kernel of `obj` is used
to locate the possible *R* class of `obj` in `M` and the membership test
is delegated to that *R* class (see Set Functions for Green Classes).

gap> M:= Monoid( Transformation( [ 1, 2, 1 ] ) );; gap> (1,2,3) in M; false gap> Transformation( [ 1, 2, 1 ] ) in M; true gap> Transformation( [ 1, 2, 2 ] ) in M; false gap> Transformation( [ 1, 2, 1, 4 ] ) in M; falseVersion 2.4 (May 1998)