[GAP Forum] automorphisms of the group of unitriangular matrices over finite fields

Bettina Eick beick at tu-bs.de
Tue May 16 09:01:22 BST 2006


Dear Ayan,

enclosed below is an example for an example computation with a unitriangular
group using the Polycyclic package. Note that you need to read the function
included below into GAP to run the example.

# the unitriangular matrices in GL(4,3);
gap> G := UnitriangularPcpGroup(4,3);
Pcp-group with orders [ 3, 3, 3, 3, 3, 3 ]

# generators corresponding to the second diagonal
gap> g := Igs(G){[1..3]};
[ g1, g2, g3 ]

# an example mapping
gap> map := GroupGeneralMappingByImages(G,G,g,[g[1]*g[2], g[2],g[3]]);
[ g1, g2, g3, g4, g5, g6 ] -> [ g1*g2, g2, g3, g4, g5, g6 ]
gap> IsPcpGroupHomomorphism(map);
false

# another example mapping
gap> map := GroupGeneralMappingByImages(G,G,g,[g[1]*Igs(G)[6], g[2],g[3]]);
[ g1, g2, g3, g4, g5, g6 ] -> [ g1*g6, g2, g3, g4, g5, g6 ]
gap> IsPcpGroupHomomorphism(map);
true

Please contact me directly (or send and e-mail to gap-support) if there
are any problems with this approach.

Best wishes,
             Bettina

#############################################################################
##
#M IsPcpGroupHomomorphism( map )
##
IsPcpGroupHomomorphism := function( map )
    local gens, imgs, rels, i, a, b, j;

    gens := MappingGeneratorsImages( map )[1];
    imgs := MappingGeneratorsImages( map )[2];
    rels := List( gens, x -> RelativeOrderPcp( x ) );

    # check relators
    for i in [1..Length( gens )] do
        if rels[i] > 0 then
            a := MappedVector(ExponentsByIgs(gens, gens[i]^rels[i]), imgs);
            b := imgs[i]^rels[i];
            if a <> b then return false; fi;
        fi;
        for j in [1..i-1] do
            a := MappedVector(ExponentsByIgs(gens, gens[i]^gens[j]), imgs);
            b := imgs[i] ^ imgs[j];
            if a <> b then return false; fi;
        od;
    od;
    return true;
end;




More information about the Forum mailing list