Polycyclic groups

PcGroupType
PcGroup

Polycyclic group

Examples

  • cyclic_group(n::Int): cyclic group of order n
  • abelian_group(PcGroup, v::Vector{Int}): direct product of cyclic groups of the orders v[1], v[2], ..., v[length(v)]
source

Julia has the following functions that allow to generate polycyclic groups:

abelian_groupMethod
abelian_group(::Type{T}, v::Vector{Int}) where T <: Group -> PcGroup

Return the direct product of cyclic groups of the orders v[1], v[2], $\ldots$, v[n], as an instance of T. Here, T must be one of PermGroup, FPGroup, or PcGroup.

Warning

The type need to be specified in the input of the function abelian_group, otherwise a group of type GrpAbFinGen is returned, which is not a GAP group type. In future versions of Oscar, this may change.

source
cyclic_groupFunction
cyclic_group(::Type{T} = PcGroup, n::Int) where T <: GAPGroup

Return the cyclic group of order n, as an instance of T.

source
dihedral_groupFunction
dihedral_group(::Type{T} = PcGroup, n::Int)

Return the dihedral group of order n, as an instance of T, where T is in {PcGroup,PermGroup,FPGroup}. An exception is thrown if n is odd.

source
quaternion_groupFunction
quaternion_group(::Type{T} = PcGroup, n::Int)

Return the (generalized) quaternion group of order n, as an instance of T, where n is a power of 2 and T is in {PcGroup,PermGroup,FPGroup}.

Examples

julia> g = quaternion_group(8)
<pc group of size 8 with 3 generators>

julia> quaternion_group(PermGroup, 8)
Group([ (1,5,3,7)(2,8,4,6), (1,2,3,4)(5,6,7,8) ])

julia> g = quaternion_group(FPGroup, 8)
<fp group of size 8 on the generators [ r, s ]>

julia> relators(g)
3-element Vector{FPGroupElem}:
 r^2*s^-2
 s^4
 r^-1*s*r*s
source

The generators of a polycyclic group are displayed as f1, f2, f3, etc., and every element of a polycyclic group is displayed as product of such generators.

Example:

julia> G=abelian_group(PcGroup, [2,4]);

julia> G[1], G[2]
(f1, f2)

julia> G[2]*G[1]
f1*f2

Note that this does not define Julia variables named f1, f2, etc.! To get the generators of the group G, use gens(G); for convenience they can also be accessed as G[1], G[2], as shown in Section Elements of groups.