Many algebraic structures, or magmas, have generators. For a magma M that has generators, the name M.i is the default name of the i-th generator. This can be used as a value identifier, and may also be printed in output by Magma. In contexts where the magma has no name, but is the "current" magma (e.g. during a submagma construction), the name $.i takes on these roles.
It is often preferable for the user to choose what the generators should be called. The following generator assignment statement allows this to be done:
MAGMA_IDENTIFIER< IDENTIFIER, ..., IDENTIFIER > := EXPRESSION;
The main effect of this statement is to perform the usual assignment
MAGMA_IDENTIFIER := EXPRESSION;
The value of EXPRESSION should be a magma with at least as many generators as the number of identifiers inside the angle brackets. The generator assignment statement also assigns MAGMA_IDENTIFIER.i to the i-th identifier inside the angle brackets, for each i. If fewer identifiers are listed inside the < > than the total number of generators, then only the first generators are assigned.
In free magmas and quotients of free magmas (e.g. polynomial rings, finitely-presented groups, algebraic number fields), the generator assignment does a third task: it makes the printname of MAGMA_IDENTIFIER.i into the string which is the i-th identifier's name. This allows elements of the magma to be printed in a much more readable manner.
If the user has assigned a magma to an identifier M and subsequently wishes to assign special generator names and printnames (if applicable) then the statement
M< IDENTIFIER, ..., IDENTIFIER > := M;
may be used. An alternative method is to assign the generators to identifiers and (in free and finitely-presented magmas) to use the procedure AssignNames to specify the desired printnames.
> S5<a, b> := Sym(5); > print S5; Permutation group S5 acting on a set of cardinality 5 Order = 120 = 2^3 * 3 * 5 (1, 2, 3, 4, 5) (1, 2) > print b, a^3 * b; (1, 2) (1, 4)(2, 5, 3)> D<r, s, t>:=PolynomialAlgebra(Integers(30), 3); > print D; Polynomial ring : Integers(30)[r][s][t] > print t; t > h:=4*s^2*t - 3*r*s*t^5; > print h; 27 * r * s * t^5 + 4 * s^2 * t
> G<c, d> := Group< a, b | a^2, b^3, (a*b)^4 >; > print G; Finitely presented group G on 2 generators Relations c^2 = Id(G) d^3 = Id(G) (c * d)^4 = Id(G)
[Next] [Prev] [Right] [____] [Up] [Index] [Root]