The standard mathematical notation is used to denote the calculation of
a map image. Certain mappings defined by standard functions permit the taking
of preimages. However, preimages are not available for any mapping defined
by means of the mapping constructor.
a @ f : Elt, Map -> Elt
Given a mapping f with domain A and codomain B, and an element a belonging to A, return the image of a under f as an element of B.
Given a mapping f with domain A and codomain B, and a finite enumerated set, indexed set, or sequence S of elements belonging to A, return the image of S under f as an enumerated set, indexed set, or sequence of elements of B.
Given a homomorphism f with domain A and codomain B, and a substructure C of A, return the image of C under f as a substructure of B.
Given a mapping f with domain A and codomain B, where f supports preimages, and an element y belonging to B, return the preimage of y under f as an element of A.If the mapping f is a homomorphism, then a single element is returned as the preimage of y. In order to obtain the full preimage of y, it is necessary to form the coset K * y@@f, where K is the kernel of f.
Given a mapping f with domain A and codomain B, where f supports preimages, and a finite enumerated set, indexed set, or sequence of elements R belonging to B, return the preimage of R under f as an enumerated set, indexed set, or sequence of elements of A.
Given a mapping f with domain A and codomain B, where f supports preimages, and a substructure D of B, return the preimage of D under f as a substructure of A. If the mapping f is a homomorphism, then D@@f returns the full preimage of D.
> F<w> := FiniteField(4); > V := VectorSpace(F, 3); > GL34 := GeneralLinearGroup(V); > // Find the action of GL34 on the orbit containing the line < (1,0,0) > > f, PGL34 := OrbitAction(GL34, sub<V | [1,0,0] >); > // Print the image of an element of GL34 > print (GL34 ! [1, w, 0, 0, 1, 0, 0, 0, 1]) @ f; (1, 13)(2, 16)(3, 14)(5, 10)(8, 15)(9, 19)(11, 12)(17, 18)A homomorphism of an imprimitive permutation group of degree 21 onto PSL(2, 7) is defined, and various preimages are calculated:
> P := sub< Sym(21) | (1,2)(3,4)(5,6)(7,8)(9,10)(11,12)(13,14)(15,16), > (1,17,18)(2,3,5)(4,7,9)(6,11,8)(10,19,13)(12,20,15)(14,21,16) >; > B := MaximalPartition(P); > f, Im, Ker := BlocksAction(P, B); > x := (Im.1*Im.2)@@f; > h1 := (sub< Im | Im.1, Im.1^Im.2>)@@f;This example presents a procedure for constructing the upper central series for a finite group G using a construction that is directly based on the standard definition of the upper central series. The series is returned as a sequence of subgroups UCS of G. While this procedure is quite efficient for soluble groups defined in terms of a power-commutator presentation, it is very inefficient for other types of groups. The user requiring upper central series should use the built-in function UpperCentralSeries.
> G := DihedralGroup(12);
> Z := sub<G | 1 >;
> UCS := [ Z ];
> while Order(Z) ne Order(G) do
> G1, f := quo< G | Z >;
> Z1 := Centre(G1);
> if Z1 eq sub< G1 | 1 > then break; end if;
> Z := Z1@@f;
> Append( UCS, Z);
> end while;
> print UCS;
[
Permutation group acting on a set of cardinality 12
Order = 1
Id($),
Permutation group acting on a set of cardinality 12
Order = 2
(1, 7)(2, 8)(3, 9)(4, 10)(5, 11)(6, 12),
Permutation group Z acting on a set of cardinality 12
Order = 4 = 2^2
(1, 4, 7, 10)(2, 5, 8, 11)(3, 6, 9, 12)
(1, 7)(2, 8)(3, 9)(4, 10)(5, 11)(6, 12)
]