Automorphisms

The elements of a group of automorphisms are automorphisms of the base group, so Magma treats them as both homomorphisms and group elements. Thus they may be applied to elements and subgroups of the base group as a homomorphism, or they may be multiplied and have inverses taken as group elements. Of course, these last two operations are also homomorphism operations, being composition and the usual inverse of a bijection. Elements of a group of automorphisms are of type GrpAutoElt.

A . i : GrpAuto, RngIntElt -> GrpAutoElt
Let A be a group of automorphisms of a group G and let i be an integer such that -n ≤i ≤n, where n is the number of generators of A. This operator returns the i-th generator for A. A negative subscript indicates that the inverse of the generator is to be created. Finally, A.0 denotes the identity of A.
Identity(A) : GrpAuto -> GrpAutoElt
Id(A) : GrpAuto -> GrpAutoElt
A ! 1 : GrpAuto, RngIntElt -> GrpAutoElt
The identity element of the group of automorphisms A.
A ! f : GrpAuto, Map -> GrpAutoElt
Let A be a group of automorphisms of a group G. Given an automorphism f of G, represented as a Magma map, this function returns the element of A corresponding to f. An error will result if f is not in the group generated by the generators of A. This uses the permutation representation of A to test for membership.
Order(f) : GrpAutoElt -> RngIntElt
The order of the group automorphism f.
f * g : GrpAutoElt, GrpAutoElt -> GrpAutoElt
The product of the group automorphisms f and g. If f and g are regarded as maps, this function returns their composite: first apply f, then apply g.
f ^ n : GrpAutoElt, RngIntElt -> GrpAutoElt
The nth power of the group automorphism f. The integer n may be positive or negative.
(g1, ..., gr) : GrpAutoElt, ..., GrpAutoElt -> GrpAutoElt
The left-normed commutator of the group automorphisms g1, ..., gr. Each of g1, ..., gr must belong to a common automorphism group.
g eq h : GrpAutoElt, GrpAutoElt -> BoolElt
Given group automorphisms g and h belonging to the same automorphism group, return true if g and h are the same element, false otherwise.
g ne h : GrpAutoElt, GrpAutoElt -> BoolElt
Given group automorphisms g and h belonging to the same automorphism group, return false if g and h are the same element, true otherwise.
IsInner(f) : GrpAutoElt -> BoolElt, GrpElt
Returns true if the group automorphism f is an inner automorphism of the base group, false otherwise. If f is inner, then an element of the base group with conjugation action equal to the action of f is also returned.

Example GrpAuto_autogp-elts (H73E5)

We illustrate some arithmetic operations with elements of the full group of automorphisms of a group of order 81.
> G := SmallGroup(81, 10);
> G;
GrpPC : G of order 81 = 3^4
PC-Relations:
  G.1^3 = G.4,
  G.2^3 = G.4^2,
  G.2^G.1 = G.2 * G.3,
  G.3^G.1 = G.3 * G.4
> A := AutomorphismGroup(G);
> #A;
486
> Ngens(A);
5
> IsInner(A.3);
false
> Order(A.3);
3
> A.3;
Automorphism of GrpPC : G of order 3 which maps:
  G.1 |--> G.1
  G.2 |--> G.2 * G.4^2
  G.3 |--> G.3
  G.4 |--> G.4
> A.3*A.4;
Automorphism of GrpPC : G which maps:
  G.1 |--> G.1
  G.2 |--> G.2 * G.3 * G.4^2
  G.3 |--> G.3 * G.4
  G.4 |--> G.4
> (A.3*A.4)^3;
Automorphism of GrpPC : G which maps:
  G.1 |--> G.1
  G.2 |--> G.2
  G.3 |--> G.3
  G.4 |--> G.4
> $1 eq Id(A);
true

Example GrpAuto_characteristic-subgroups (H73E6)

We can use the automorphism group machinery to determine the characteristic subgroups of a group.
> CharacteristicSubgroups := function(G)
>    local A, outers, NS, CS;
>    A := AutomorphismGroup(G);
>    outers := [ a : a in Generators(A) | not IsInner(a) ];
>    NS := NormalSubgroups(G);
>    CS := [n : n in NS | forall{a: a in outers| a(n`subgroup) eq n`subgroup }];
>    return CS;
> end function;
>
> CS := CharacteristicSubgroups(DirectProduct(Alt(4),Alt(4)));
> [c`order: c in CS];
[ 1, 16, 144 ]
> G := SmallGroup(512,298);
> #NormalSubgroups(G);
42
> #CharacteristicSubgroups(G);
28
V2.28, 13 July 2023