The power-conjugate presentation is a very efficient way of representing a unipotent group; see Chapter FINITE SOLUBLE GROUPS for more information. In this section we describe a number of functions for finding such a PC-presentation for a unipotent matrix group defined over a finite field.
The algorithm used is a straightforward echelonisation-like procedure.
Given a matrix group G defined over a finite field, the intrinsic constructs a known unipotent matrix group from G. Note that Magma does not at this stage check that G is in fact unipotent.
Given a unipotent matrix group G defined over a finite field, the intrinsic constructs the word map for G. The word map is a map from G to the group of straight-line programs on n generators, where n is the number of generators of G. More information on SLP-groups may be found in Chapter GROUPS OF STRAIGHT-LINE PROGRAMS.
> G := MatrixGroup<4, GF(5) | [1,1,0,0, 0,1,0,0, 0,0,1,0, 0,0,0,1], > [1,-1,0,0, 0,1,1,0, 0,0,1,0, 0,0,0,1]>; > G; MatrixGroup(4, GF(5)) Generators: [1 1 0 0] [0 1 0 0] [0 0 1 0] [0 0 0 1] [1 4 0 0] [0 1 1 0] [0 0 1 0] [0 0 0 1] > IsUnipotent(G); true > > G := UnipotentMatrixGroup(G); > g := GL(4,5)![1,4,4,0, 0,1,3,0, 0,0,1,0, 0,0,0,1]; > g in G; true > phi := WordMap(G); > phi; Mapping from: GL(4, GF(5)) to SLPGroup(2) given by a rule [no inverse] > > assert g in G; > wg := phi(g); wg; function(G) w6 := G.1^4; w1 := G.1^-4; w2 := G.2 * w1; w7 := w2^3; w8 := w6 * w7; w3 := G.1^-1; w4 := G.1^w2; w5 := w3 * w4; w9 := w5^2; w10 := w8 * w9; return w10; end function > Evaluate(wg, G); [1 4 4 0] [0 1 3 0] [0 0 1 0] [0 0 0 1] > Evaluate(wg, G) eq g; true
Given a unipotent matrix group G defined over a finite field, the intrinsic constructs a PC-presentation for G. It returns a finite soluble group H as first return value, a map from G to H as the second value, and a map from H to G as the third.
Given a unipotent matrix group G defined over a finite field, this intrinsic returns the order of G as an integer or as a factored integer (depending upon the choice of intrinsic). It is faster than the standard matrix group order intrinsic because of the use of the PC-presentation of G.
Given a matrix g and a unipotent matrix group G defined over a finite field, the intrinsic returns true if g is an element of G, and false otherwise. It is faster than the standard matrix group membership intrinsic because of the use of the PC-presentation of G.
> G := UnipotentMatrixGroup(ClassicalSylow(GL(9,7), 7)); > H,phi,psi := PCPresentation(G); > phi; Mapping from: GrpMatUnip: G to GrpPC: H given by a rule [no inverse] > psi; Mapping from: GrpPC: H to GrpMatUnip: G > phi(G.2); H.9 > psi(H.3); [1 0 0 0 0 0 0 0 0] [0 1 0 0 0 0 0 0 0] [0 0 1 1 0 0 0 0 0] [0 0 0 1 0 0 0 0 0] [0 0 0 0 1 0 0 0 0] [0 0 0 0 0 1 0 0 0] [0 0 0 0 0 0 1 0 0] [0 0 0 0 0 0 0 1 0] [0 0 0 0 0 0 0 0 1] > FactoredOrder(G); [ <7, 36> ]