In addition to the usual components of an L class record, the record
representing the L class `lClass` of `s` in a transformation monoid can
have the following components. They are created by the function
`SchutzenbergerGroup`

(see SchutzenbergerGroup) which is called
whenever the size, the list of elements of `lClass`, or a membership test
in `lClass` is asked for.

`schutzenbergerGroup`

:

set to the Schaccent127utzenberger group of`lClass`as a permutation group on the set of images of SchutzenbergerGroup for Transformation Monoids).`kernels`

:

is the list of different kernels occurring in the L class`lClass`. The first entry in this list is the kernel of

.`rClass`.representative`lMults`

:

is a list of binary relations such that the product of the inverse of the*i*th entry in the list and the representative of`rClass`yields an element of`rClass`whose kernel is the*i*th entry in the list

.`rClass`.kernels

The following functions have a special implementation in terms of these components.

`Size( `

`lClass` )

returns the size of the L class `lClass`. This function calls
`SchutzenbergerGroup`

and determines the size of `lClass` as the size of
the resulting group times the length of the list

.
`lClass`.kernels

`Elements( `

`lClass` )

returns the set of elements of the L class `lClass`. This function calls
`SchutzenbergerGroup`

and determines the set of elements of `lClass` as
the set of elements of the resulting group premultiplied by the
representative of `lClass` and each single binary relation in the list

.
`lClass`.lMults

`x` in `lClass`

returns `true`

if `x` is an element of the L class `lClass` and `false`

otherwise. This function calls `SchutzenbergerGroup`

and tests whether
the quotient of the representative of `lClass` and

(see PermLeftQuoTrans) is in the resulting group where `lClass`.lMults[`i`]
* `x``i` is
the position of the kernel of `x` in

.
`lClass`.kernels

`HClasses( `

`lClass` )

returns the list of H classes contained in the L class `lClass`.