Each pc-group can have up to three pc-presentations associated with it. If the user specifies a consistent presentation in the PolycyclicGroup-constructor, then this presentation (the "user" presentation) will be used for all printing and interpretation of element input. If the specified presentation is inconsistent, a runtime error is generated.
Internally, Magma{} uses a "conditioned" presentation for computation. The composition series associated with this presentation is guaranteed to refine a normal series with elementary abelian factors. If G is a p-group, then the composition series is guaranteed to be a central series and the first d pc-generators are a minimal set of generators for the group. Hence, their images generate the Frattini factor group. If the user presentation satisfies these conditions, then it is used as the conditioned presentation. Otherwise, a separate presentation is computed automatically.
Several algorithms rely on a "special" presentation for the group. This presentation exhibits Hall pi-subgroups and a characteristic series with elementary abelian factors. When needed, such a presentation is computed and elements are automatically translated between presentations.
The "compact" presentation is not a presentation used in computation. Rather it provides an efficient means to input and output large pc-groups. This is especially useful for stored collections of groups (libraries or databases).
Magma will compute a pc-presentation which will be used for internal computation, but the user's presentation will be used for all input and output. The recommended way to access the conditioned internal presentation is via the intrinsic ConditionedGroup.
The internally used, conditioned presentation of the pc-group G. The returned group is recorded as a subgroup of G in the relationship tables, so coercion can be used to move between presentations.
Reutrns true if G uses the user presentation as the internal presentation, false otherwise.
Given an element x of a pc-group G with n pc-generators and a conditioned presentation, where x is of the form a_1^(alpha_1) ... a_n^(alpha_n), return a_i^(alpha_i) for the smallest i such that alpha_i > 0. If x is the identity of G, then the identity is returned.
Given an element x of a pc-group G with n pc-generators and a conditioned presentation, where x is of the form a_1^(alpha_1) ... a_n^(alpha_n), return a_i for the smallest i such that alpha_i > 0. If x is the identity of G, then the identity is returned.
Given an element x of a pc-group G with n pc-generators and a conditioned presentation, where x is of the form a_1^(alpha_1) ... a_n^(alpha_n), return alpha_i for the smallest i such that alpha_i > 0. If x is the identity of G, then 0 is returned.
Given an element x of a pc-group G with n pc-generators and a conditioned presentation, where x is of the form a_1^(alpha_1) ... a_n^(alpha_n), return the smallest i such that alpha_i > 0. If x is the identity of G, then 0 is returned.
The weight class of the element x. The WeightClass of an arbitrary element of a pc-group G is defined to be k if x in G_(delta_(k - 1)) and x notin G_(delta_(k)). If x is the identity of G, then WeightClass returns n + 1.
A sequence [p_1, ..., p_n] containing the primes associated with the pc-generators of G. The i-th term of the sequence contains the prime associated with generator a_i of G for i = 1, ..., n.
A special presentation is one which has several properties described by C. R. Leedham-Green:
Returns a new group H which is defined by a special presentation. H is in fact a subgroup of G (equal to G) and so one can use the coercion operator (!) to translate elements between the two presentations. Furthermore, any subgroup of H is automatically a subgroup of G. For instance, if one computed the center Z of H (using some algorithm relying on the special presentation), Z would be a subgroup of G, and would be the center of G.
A sequence of triples of integers is returned, with one triple corresponding to each pc-generator. The first integer in a triple gives the number of the nilpotent section containing the generator, the second gives the number of the square-free exponent abelian section of that nilpotent section containing it, and the third gives the number of the elementary abelian p-group layer that contains the generator. The prime for the generator is not included in the triple (see PCPrimes).
The number of nilpotent factors in the nilpotent series.
The subscript of the last generator in the ith nilpotent section, where i lies between 1 and NilpotentLength(G).
The number of minor sections (Frattini factors) in the ith nilpotent section of G.
The subscript of the last generator in the jth minor section of the ith nilpotent section, where j lies between 1 and MinorLength(G,i).
The number of elementary abelian p-group layers in the jth minor section of the ith nilpotent section of G.
The subscript of the last generator in the kth elementary abelian p-group layer of the jth minor section of the ith nilpotent section, where k lies between 1 and LayerLength(G,i,j).
> T := PolycyclicGroup<a,b,c,d|a^3,b^3,c^3,d^3,
> b^a=c, c^a=d, d^a=b>;
> T;
GrpPC : T of order 81 = 3^4
PC-Relations:
T.2^T.1 = T.3,
T.3^T.1 = T.4,
T.4^T.1 = T.2
> S := SpecialPresentation(T);
> S;
GrpPC : S of order 81 = 3^4
PC-Relations:
S.2^S.1 = S.2 * S.3^2 * S.4,
S.3^S.1 = S.3 * S.4^2
Here we build another wreath product and construct a special presentation.
> C6 := CyclicGroup(GrpPC,6);
> C2 := CyclicGroup(GrpPC,2);
> G := WreathProduct(C2,C6);
> G;
GrpPC : G of order 384 = 2^7 * 3
PC-Relations:
G.1^2 = G.2,
G.2^3 = Id(G),
G.3^2 = Id(G),
G.4^2 = Id(G),
G.5^2 = Id(G),
G.6^2 = Id(G),
G.7^2 = Id(G),
G.8^2 = Id(G),
G.3^G.1 = G.8,
G.3^G.2 = G.5,
G.4^G.1 = G.6,
G.4^G.2 = G.3,
G.5^G.1 = G.7,
G.5^G.2 = G.4,
G.6^G.1 = G.3,
G.6^G.2 = G.8,
G.7^G.1 = G.4,
G.7^G.2 = G.6,
G.8^G.1 = G.5,
G.8^G.2 = G.7
> H := SpecialPresentation(G);
> H;
GrpPC : H of order 384 = 2^7 * 3
PC-Relations:
H.1^2 = Id(H),
H.2^2 = Id(H),
H.3^3 = Id(H),
H.4^2 = Id(H),
H.5^2 = Id(H),
H.6^2 = Id(H),
H.7^2 = Id(H),
H.8^2 = Id(H),
H.2^H.1 = H.2 * H.4,
H.5^H.3 = H.6,
H.6^H.3 = H.5 * H.6,
H.7^H.1 = H.6 * H.7,
H.7^H.3 = H.8,
H.8^H.1 = H.5 * H.6 * H.8,
H.8^H.3 = H.7 * H.8
We can coerce between the presentations.
> G!(H.2), H!(G.2); G.6 * G.7 * G.8 H.3Look at some specific features of the presentation.
> SpecialWeights(H); [ <1, 1, 1>, <1, 1, 1>, <1, 1, 2>, <1, 2, 1>, <2, 1, 1>, <2, 1, 1>, <2, 1, 1>, <2, 1, 1> ] > MinorLength(H,1); 2 > MinorBoundary(H,1,1); 3
When the Magma parser reads in large group presentations of the form
S4 := PolycyclicGroup< a, b, c, d | a^2 = 1, b^3 = 1, c^2 = 1,
d^2 = 1, b^a = b^2, c^a = c * d, c^b = c * d, d^b = c >;
a large amount of memory and time is used to build all of the expressions
involved in the statement. This time is most noticeable when loading in
large libraries of Magma code containing many large presentations. The
following intrinsics provide a way to avoid this overhead.
Given a pc-group G, return a sequence of integers that contains the information needed to define the group's presentation.
Check: BoolElt Default: true
ExponentLimit: RngIntElt Default: 20
Return a group G in category GrpPC, whose presentation is provided by the integer sequence Q. Constructing the group from the integer sequence has very low overhead in the parser.The parameter Check indicates whether or not the presentation is checked for consistency. ExponentLimit determines the amount of space that will be used by the group to speed calculations. Given ExponentLimit := e, the group will store the products a^i * b^j where a and b are generators and i and j are in the range 1 to e.
> S4 := PolycyclicGroup< a, b, c, d | a^2 = 1, b^3 = 1, c^2 = 1, d^2 = 1, > b^a = b^2, c^a = c * d, c^b = c * d, d^b = c >; > Q := CompactPresentation( S4 ); > Q; [ 4, 2, 3, 2, 2, 33, 218, 114, 55 ]
The library code would then be
> Make:=func< | PCGroup(\[4, 2, 3, 2, 2, 33, 218, 114, 55] : Check := false) >;Note the use of a literal sequence here --- see Chapter SEQUENCES.