Construct the free abelian group F on n generators, where n is a positive integer. The i-th generator may be referenced by the expression F.i, i = 1, ..., n. Note that a special form of the assignment statement is provided which enables the user to assign names to the generators of F. In this form of assignment, the list of generator names is enclosed within angle brackets and appended to the variable name on the left hand side of the assignment statement.
> F := FreeAbelianGroup(2);creates the free abelian group on two generators. Here the generators may be referenced using the standard names, F.1 and F.2.
The statement
> F<x, y> := FreeAbelianGroup(2);defines F to be the free abelian group on two generators and assigns the names x and y to the generators.
Given words w1 and w2 over the generators of an abelian group A, create the relation w1 = w2. Note that this relation is not automatically added to the existing set of defining relations R for S. It may be added to R, for example, through use of the quo-constructor (see below).
Given a relation r over the generators of A, return the left hand side of the relation r. The object returned is a word over the generators of A.
Given a relation r over the generators of A, return the right hand side of the relation r. The object returned is a word over the generators of A.
Group over which the relation r is taken.
> F<x, y> := FreeAbelianGroup(2); > rels := { 2*x = 3*y, 4*x + 4*y = Id(F) } ;
To replace one side of a relation, the easiest way is to reassign the relation. So for example, to replace the relation 2 x = 3 y by 2 x = 4 y:
> r := 2*x = 3*y; > r := LHS(r) = 4*y;
An abelian group with non-trivial relations is constructed as a quotient of an existing abelian group, possibly a free abelian group.
A simple way of specifying an abelian group is as a product of cyclic groups.
Given a list X of variables x1, ..., xr, and a list of relations R over these generators, let F be the free abelian group on the generators x1, ..., xr. Then construct (a) an abelian group A isomorphic to the quotient of F by the subgroup of F defined by R, and (b) the natural homomorphism φ : F -> A.Each term of the list R is either a word, a relation, a relation list or a subgroup of F.
A subgroup H appearing in the list R contributes its generators to the relation set for A, i.e., each generator of H is interpreted as a relator for A.
- A relation consists of a pair of words, separated by `='.
- A word w is interpreted as a relator, that is, it is equivalent to the relation w = 0. (See above).
- A relation list consists of a list of words, where each pair of adjacent words is separated by `=': w1 = w2 = ... = wr. This is interpreted as the set of relations w1 = wr, ..., wr - 1 = wr. Note that the relation list construct is only meaningful in the context of the quo-constructor.
The group F may be referred to by the special symbol $ in any word appearing to the right of the `|' symbol in the quo-constructor. Also, in the context of the quo-constructor, the identity element (empty word) may be represented by the digit 0.
The function returns:
- (a)
- The quotient group A;
- (b)
- The natural homomorphism φ : F -> A.
> F<a, b, c> := FreeAbelianGroup(3); > A := quo< F | 7*a + 4*b + c, 8*a + 5*b + 2*c, 9*a + 6*b + 3*c >; > A; AbelianGroup isomorphic to Z_3 + Z Defined on 2 generators Relations: 3*A.1 = 0
Construct the abelian group defined by the sequence [n1, ..., nr] of non-negative integers as an abelian group. The function returns the direct product of cyclic groups Cn1 x Cn2 x ... x Cnr, where C0 is interpreted as an infinite cyclic group.
> G<[x]> := AbelianGroup([2,3,4,5,6,0,0]); > G; Abelian Group isomorphic to Z/2 + Z/6 + Z/60 + Z + Z Defined on 7 generators Relations: 2*G.1 = 0 3*G.2 = 0 4*G.3 = 0 5*G.4 = 0 6*G.5 = 0
The functions described here provide access to basic information stored for an abelian group A.
The i-th defining generator for A.
A set containing the generators for A.
The number of generators for A.
The parent group A of the word u.
A sequence containing the defining relations for A.
A matrix where each row corresponds to one of the defining relations of A.