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