# 60.29 Other functions for CrystGroups

In the operations record of a `CrystGroup` many of the usual GAP functions are replaced with a `CrystGroup` specific implementation. For other functions the default implementation can be used. Since `CrystGroups` are matrix groups, all functions which work for a finite matrix group should work also for a finite `CrystGroup` (i.e., one which contains no pure translations). Of course, functions which require a finite group as input will work only for finite `CrystGroups`. Following is a (probably not exhaustive) list of functions that are known to work for also for infinite `CrystGroups`.

```     in
Parent, IsParent, Group, IsGroup
Subgroup, IsSubgroup, AsSubgroup, Index
Centralizer, Centre, Normalizer
Closure, NormalClosure
Intersection, NormalIntersection
ConjugacyClassSubgroups, ConjugateSubgroups
DerivedSubgroup, CommutatorSubgroup, Core
DerivedSeries, SubnormalSeries
FactorGroup, CommutatorFactorGroup
ConjugateSubgroup, TrivialSubgroup
IsAbelian, IsCentral, IsTrivial
IsNormal, IsSubnormal, IsPerfect, IsSolvable
```

The following functions work for `CrystGroups` provided the subgroup H has finite index in G. The elements of the resulting domain are given in ascending order (with respect to an ad hoc, but fixed ordering).

```     Cosets( G, H )
RightCosets( G, H )
LeftCosets( G, H )
```

The following functions dealing with group operations work for `CrystGroups` provided the orbits of the action are finite. Since `CrystGroups` are not finite in general, this is a non-trivial requirement, and so some care is needed.

```     Orbit( G, d, opr )
Orbits( G, D, opr )
OrbitLengths( G, D, opr )
Stabilizer( G, d, opr )
RepresentativeOperation( G, d, e, opr )
RepresentativesOperation( G, d, opr )
```

The following functions have a `CrystGroup` specific implementation, but work for finite `CrystGroups` only:

```     Elements( G )
ConjugacyClasses( G )
PermGroup( G )
SylowSubgroup( G, p )
```

GAP 3.4.4
April 1997