IsAutomorphism( map )
IsAutomorphism returns true if the mapping map is an automorphism
and false otherwise. Signals an error if map is a multi valued
mapping.
A mapping is an automorphism if it is an isomorphism where the source and the range are equal (see IsIsomorphism, IsEndomorphism).
gap> g := Group( (1,2,3,4), (2,4), (5,6,7) );; g.name := "g";;
gap> p4 := MappingByFunction( g, g, x -> x^4 );
MappingByFunction( g, g, function ( x )
return x ^ 4;
end )
gap> IsAutomorphism( p4 );
false
gap> p5 := MappingByFunction( g, g, x -> x^5 );
MappingByFunction( g, g, function ( x )
return x ^ 5;
end )
gap> IsAutomorphism( p5 );
true
IsAutomorphism first test if the flag map.isAutomorphism is bound.
If the flag is bound, it returns this value. Otherwise it calls
map.operations.IsAutomorphism( map ), remembers the returned value
in map.isAutomorphism, and returns it.
The default function called this way is MappingOps.IsAutomorphism,
which calls the functions IsEndomorphism and IsBijection, and returns
the logical and of the results. This function is seldom overlaid,
because all the interesting work is done in IsEndomorphism and
IsBijection.
GAP 3.4.4