37.4 Nice Monomorphisms

GAP contains very efficient algorithms for some special representations of groups (for example pc groups or permutation groups) while for other representations only slow generic methods are available. In this case it can be worthwhile to do all calculations rather in an isomorphic image of the group, which is in a ``better'' representation. The way to achieve this in GAP is via nice monomorphisms.

For this mechanism to work, of course there must be effective methods to evaluate the NiceMonomorphism on elements and to take preimages under it. As by definition no good algorithms exist for the source group, normally this can only be achieved by using an ActionHomomorphism or a GroupHomomorphismByFunction (see also section Efficiency of Homomorphisms).

  • IsHandledByNiceMonomorphism( obj ) P

    If this property is true, high-valued methods that translate all calculations in obj in the image under the NiceMonomorphism become available for obj.

  • NiceMonomorphism( obj ) A

    is a homomorphism that is defined (at least) on the whole of obj and whose restriction to obj is injective. The concrete morphism (and also the image group) will depend on the representation of obj.

  • NiceObject( obj ) A

    The NiceObject of obj is the image of obj under its NiceMonomorphism.

    A typical example are finite matrix groups, which use a faithful action on vectors to translate all calculations in a permutation group.

    gap> gl:=GL(3,2);
    SL(3,2)
    gap> IsHandledByNiceMonomorphism(gl);
    true
    gap> NiceObject(gl);
    Group([ (5,7)(6,8), (2,3,5)(4,7,6) ])
    gap> Image(NiceMonomorphism(gl),Z(2)*[[1,0,0],[0,1,1],[1,0,1]]);
    (2,6)(3,4,7,8)
    

  • IsCanonicalNiceMonomorphism( nhom ) P

    A NiceMonomorphism nhom is canonical if the image set will only depend on the set of group elements but not on the generating set and < comparison of group elements translates through the nice monomorphism. This implies that equal objects will always have equal NiceObjects. In some situations however this condition would be expensive to achieve, therefore it is not guaranteed for every nice monomorphism.

    [Top] [Previous] [Up] [Next] [Index]

    GAP 4 manual
    February 2000