Groups of automorphisms

automorphism_groupMethod
automorphism_group(G::Group) -> A::AutomorphismGroup{T}

Return the full automorphism group of G. If f is an object of type GAPGroupHomomorphism and it is bijective from G to itself, then A(f) return the embedding of f in A.

Groups of automorphisms over a group G have parametric type AutomorphismGroup{T}, where T is the type of G.

Examples

julia> S = symmetric_group(3)
Sym( [ 1 .. 3 ] )

julia> typeof(S)
PermGroup

julia> A = automorphism_group(S)
Aut( Sym( [ 1 .. 3 ] ) )

julia> typeof(A)
AutomorphismGroup{PermGroup}

The evaluation of the automorphism f in the element x is analogous to the homomorphism evaluation: it can be obtained by typing either f(x) or x^f.

julia> S = symmetric_group(4)
Sym( [ 1 .. 4 ] )

julia> A = automorphism_group(S)
Aut( Sym( [ 1 .. 4 ] ) )

julia> x = perm(S,[2,1,4,3])
(1,2)(3,4)

julia> f = A[2]
Pcgs([ (3,4), (2,4,3), (1,4)(2,3), (1,3)(2,4) ]) -> [ (2,3), (2,4,3), (1,3)(2,4), (1,2)(3,4) ]

julia> f(x)
(1,4)(2,3)

julia> x^f
(1,4)(2,3)

It is possible to turn an automorphism f into a homomorphism by typing hom(f).

julia> S = symmetric_group(4)
Sym( [ 1 .. 4 ] )

julia> A = automorphism_group(S)
Aut( Sym( [ 1 .. 4 ] ) )

julia> f = A[2]
Pcgs([ (3,4), (2,4,3), (1,4)(2,3), (1,3)(2,4) ]) -> [ (2,3), (2,4,3), (1,3)(2,4), (1,2)(3,4) ]

julia> typeof(f)
AutomorphismGroupElem{PermGroup} (alias for Oscar.BasicGAPGroupElem{AutomorphismGroup{PermGroup}})

julia> typeof(hom(f))
GAPGroupHomomorphism{PermGroup, PermGroup}

The converse is also possible: if g is a bijective homomorphism from the group G to itself and A is the automorphism group of G, then the instruction A(g) returns g as automorphism of G. This is the standard way to explicitly build an automorphism (another way, available for inner automorphisms, is shown in Section Inner_automorphisms).

Examples

julia> S = symmetric_group(4)
Sym( [ 1 .. 4 ] )

julia> a = perm(S,[2,1,4,3])
(1,2)(3,4)

julia> f = hom(S,S,x ->x^a)
Group homomorphism from 
Sym( [ 1 .. 4 ] )
to
Sym( [ 1 .. 4 ] )

julia> A = automorphism_group(S)
Aut( Sym( [ 1 .. 4 ] ) )

julia> A(f)
MappingByFunction( Sym( [ 1 .. 4 ] ), Sym( [ 1 .. 4 ] ), <Julia: gap_fun> )

Elements of A can be multiplied with other elements of A or by elements of type GAPGroupHomomorphism; in this last case, the result has type GAPGroupHomomorphism.

Examples

julia> S = symmetric_group(4);

julia> A = automorphism_group(S);

julia> g = hom(S,S,x->x^S[1]);

julia> g in A
false

julia> au = A(g);

julia> au in A
true

julia> g == hom(au)
true

julia> x = cperm(S,[1,2,3]);

julia> au(x)
(2,3,4)

julia> g(x) == au(x)
true

In Oscar it is possible to multiply homomorphisms and automorphisms (whenever it makes sense); in such cases, the output is always a variable of type GAPGroupHomomorphism{S,T}.

julia> S = symmetric_group(4)
Sym( [ 1 .. 4 ] )

julia> A = automorphism_group(S)
Aut( Sym( [ 1 .. 4 ] ) )

julia> g = hom(S,S,x->x^S[1])
Group homomorphism from 
Sym( [ 1 .. 4 ] )
to
Sym( [ 1 .. 4 ] )

julia> f = A(g)
MappingByFunction( Sym( [ 1 .. 4 ] ), Sym( [ 1 .. 4 ] ), <Julia: gap_fun> )

julia> typeof(g*f)
GAPGroupHomomorphism{PermGroup, PermGroup}
source

The following functions are available for automorphisms, some of them similar to the corresponding functions for homomorphisms of groups.

is_invariantMethod
is_invariant(f::GAPGroupElem{AutomorphismGroup{T}}, H::T)

Return whether f(H) == H.

source
restrict_automorphismMethod
restrict_automorphism(f::GAPGroupElem{AutomorphismGroup{T}}, H::T)

Return the restriction of f to H as an automorphism of H. An exception is thrown if H is not invariant under f.

source
induced_automorphismMethod
induced_automorphism(f::GAPGroupHomomorphism, g::GAPGroupHomomorphism)
induced_automorphism(f::GAPGroupHomomorphism, g::GAPGroupElem{AutomorphismGroup{T}})

Return the automorphism h of the image of f such that h(f) == f(g), where g is an automorphism of a group G and f is a group homomorphism defined over G such that the kernel of f is invariant under g

source
homMethod
hom(f::GAPGroupElem{AutomorphismGroup{T}}) where T

Return the element f of type GAPGroupHomomorphism{T,T}.

source

Inner automorphisms

OSCAR provides the following functions to handle inner automorphisms of a group.

inner_automorphismMethod
inner_automorphism(g::GAPGroupElem)

Return the inner automorphism in automorphism_group(parent(g)) defined by x -> x^g.

source
is_inner_automorphismMethod
is_inner_automorphism(f::GAPGroupHomomorphism)
is_inner_automorphism(f::GAPGroupElem{AutomorphismGroup{T}})

Return whether f is an inner automorphism.

source
This documentation is not for the latest stable release, but for either the development version or an older release.
Click here to go to the documentation for the latest stable release.