Group Theory - Maple Programming Help

 Group Theory

Maple 17 introduces a new package for working with groups, especially finite groups represented as groups of permutations.

 > $\mathrm{restart}:$
 > $\mathrm{with}\left(\mathrm{GroupTheory}\right);$
 $\left[{\mathrm{<|>}}{,}{\mathrm{AllSmallGroups}}{,}{\mathrm{AllTransitiveGroups}}{,}{\mathrm{Alt}}{,}{\mathrm{AlternatingGroup}}{,}{\mathrm{AreConjugate}}{,}{\mathrm{AreIsomorphic}}{,}{\mathrm{BabyMonster}}{,}{\mathrm{CayleyTable}}{,}{\mathrm{CayleyTableGroup}}{,}{\mathrm{Center}}{,}{\mathrm{Centraliser}}{,}{\mathrm{Centralizer}}{,}{\mathrm{Centre}}{,}{\mathrm{ConjugacyClass}}{,}{\mathrm{ConjugacyClasses}}{,}{\mathrm{Conjugator}}{,}{\mathrm{ConwayGroup}}{,}{\mathrm{Core}}{,}{\mathrm{CustomGroup}}{,}{\mathrm{CyclicGroup}}{,}{\mathrm{Degree}}{,}{\mathrm{DerivedLength}}{,}{\mathrm{DerivedSeries}}{,}{\mathrm{DerivedSubgroup}}{,}{\mathrm{DicyclicGroup}}{,}{\mathrm{DihedralGroup}}{,}{\mathrm{DirectProduct}}{,}{\mathrm{DirectProductImplementation}}{,}{\mathrm{DrawCayleyTable}}{,}{\mathrm{DrawSubgroupLattice}}{,}{\mathrm{ElementaryGroup}}{,}{\mathrm{Elements}}{,}{\mathrm{Embedding}}{,}{\mathrm{ExceptionalGroup}}{,}{\mathrm{FPGroup}}{,}{\mathrm{Factor}}{,}{\mathrm{FischerGroup}}{,}{\mathrm{FittingSubgroup}}{,}{\mathrm{FrattiniSubgroup}}{,}{\mathrm{GL}}{,}{\mathrm{GaloisGroup}}{,}{\mathrm{GeneralLinearGroup}}{,}{\mathrm{GeneralOrthogonalGroup}}{,}{\mathrm{GeneralUnitaryGroup}}{,}{\mathrm{Generators}}{,}{\mathrm{Group}}{,}{\mathrm{GroupOrder}}{,}{\mathrm{HaradaNortonGroup}}{,}{\mathrm{HeldGroup}}{,}{\mathrm{HigmanSimsGroup}}{,}{\mathrm{Hypercentre}}{,}{\mathrm{IdentifySmallGroup}}{,}{\mathrm{Index}}{,}{\mathrm{Intersection}}{,}{\mathrm{IsAbelian}}{,}{\mathrm{IsAlternating}}{,}{\mathrm{IsCommutative}}{,}{\mathrm{IsElementary}}{,}{\mathrm{IsFinite}}{,}{\mathrm{IsNilpotent}}{,}{\mathrm{IsNormal}}{,}{\mathrm{IsPerfect}}{,}{\mathrm{IsPrimitive}}{,}{\mathrm{IsRegular}}{,}{\mathrm{IsSimple}}{,}{\mathrm{IsSoluble}}{,}{\mathrm{IsSolvable}}{,}{\mathrm{IsSubgroup}}{,}{\mathrm{IsSymmetric}}{,}{\mathrm{IsTransitive}}{,}{\mathrm{JankoGroup}}{,}{\mathrm{Labels}}{,}{\mathrm{LeftCoset}}{,}{\mathrm{LeftCosets}}{,}{\mathrm{LowerCentralSeries}}{,}{\mathrm{LyonsGroup}}{,}{\mathrm{MathieuGroup}}{,}{\mathrm{McLaughlinGroup}}{,}{\mathrm{MetacyclicGroup}}{,}{\mathrm{Monster}}{,}{\mathrm{NilpotencyClass}}{,}{\mathrm{NilpotentResidual}}{,}{\mathrm{NonRedundantGenerators}}{,}{\mathrm{NormalClosure}}{,}{\mathrm{Normaliser}}{,}{\mathrm{NormaliserSubgroup}}{,}{\mathrm{NormalizerSubgroup}}{,}{\mathrm{NumGroups}}{,}{\mathrm{NumTransitiveGroups}}{,}{\mathrm{ONanGroup}}{,}{\mathrm{Operations}}{,}{\mathrm{Orbit}}{,}{\mathrm{Orbits}}{,}{\mathrm{OrthogonalGroup}}{,}{\mathrm{PCore}}{,}{\mathrm{PGL}}{,}{\mathrm{PGU}}{,}{\mathrm{PSL}}{,}{\mathrm{PSU}}{,}{\mathrm{PSp}}{,}{\mathrm{PermApply}}{,}{\mathrm{PermCommutator}}{,}{\mathrm{PermConjugate}}{,}{\mathrm{PermCycleType}}{,}{\mathrm{PermDegree}}{,}{\mathrm{PermFixed}}{,}{\mathrm{PermInverse}}{,}{\mathrm{PermLeftQuotient}}{,}{\mathrm{PermOrder}}{,}{\mathrm{PermParity}}{,}{\mathrm{PermPower}}{,}{\mathrm{PermProduct}}{,}{\mathrm{PermRightQuotient}}{,}{\mathrm{PermSupport}}{,}{\mathrm{PermutationGroup}}{,}{\mathrm{ProjectiveGeneralLinearGroup}}{,}{\mathrm{ProjectiveGeneralUnitaryGroup}}{,}{\mathrm{ProjectiveSpecialLinearGroup}}{,}{\mathrm{ProjectiveSpecialUnitaryGroup}}{,}{\mathrm{ProjectiveSymplecticGroup}}{,}{\mathrm{QuaternionGroup}}{,}{\mathrm{RandomElement}}{,}{\mathrm{Relators}}{,}{\mathrm{RightCoset}}{,}{\mathrm{RightCosets}}{,}{\mathrm{RubiksCubeGroup}}{,}{\mathrm{RudvalisGroup}}{,}{\mathrm{SL}}{,}{\mathrm{SmallGroup}}{,}{\mathrm{SolubleResidual}}{,}{\mathrm{SolvableResidual}}{,}{\mathrm{SpecialLinearGroup}}{,}{\mathrm{SpecialOrthogonalGroup}}{,}{\mathrm{SpecialUnitaryGroup}}{,}{\mathrm{Stabiliser}}{,}{\mathrm{Stabilizer}}{,}{\mathrm{Subgroup}}{,}{\mathrm{SubgroupLattice}}{,}{\mathrm{SubgroupMembership}}{,}{\mathrm{Supergroup}}{,}{\mathrm{SuzukiGroup}}{,}{\mathrm{SylowSubgroup}}{,}{\mathrm{Symm}}{,}{\mathrm{SymmetricGroup}}{,}{\mathrm{SymplecticGroup}}{,}{\mathrm{ThompsonGroup}}{,}{\mathrm{TitsGroup}}{,}{\mathrm{TransitiveGroup}}{,}{\mathrm{TrivialGroup}}{,}{\mathrm{UpperCentralSeries}}\right]$ (1)

Permutations

Permutations are created by using the Perm constructor.  Arithmetic with permutations is effected by non-commutative multiplication (.) and exponentiation (^), with a permutation understood as conjugation, or otherwise, a power.

 > $a:=\mathrm{Perm}\left(\left[\left[1,2\right]\right]\right);$
 ${a}{:=}\left({1}{,}{2}\right)$ (1.1)
 > $b≔\mathrm{Perm}\left(\left[\left[1,3,5\right],\left[2,4\right]\right]\right)$
 ${b}{:=}\left({1}{,}{3}{,}{5}\right)\left({2}{,}{4}\right)$ (1.2)
 > $\mathrm{PermProduct}\left(a,b\right)=a.b$
 $\left({1}{,}{4}{,}{2}{,}{3}{,}{5}\right){=}\left({1}{,}{4}{,}{2}{,}{3}{,}{5}\right)$ (1.3)
 > $\mathrm{PermConjugate}\left(a,b\right)={a}^{b}$
 $\left({3}{,}{4}\right){=}\left({3}{,}{4}\right)$ (1.4)
 > $\mathrm{PermInverse}\left(a\right)={a}^{-1}$
 $\left({1}{,}{2}\right){=}\left({1}{,}{2}\right)$ (1.5)
 > $\mathrm{PermCommutator}\left(a,b\right)={a}^{-1}.{b}^{-1}.a.b$
 $\left({1}{,}{2}\right)\left({3}{,}{4}\right){=}\left({1}{,}{2}\right)\left({3}{,}{4}\right)$ (1.6)

Permutation Groups

A focus for this release has been permutation groups: groups generated by a finite set of permutations on a finite set, which is taken to be the set {1,2,...,n}, for some positive integer n.  In addition to abstract group-theoretic properties and computations applicable to any (finite) group, a selection of computations specific to permutation groups is included.

 > $G:=\mathrm{Group}\left(\mathrm{Perm}\left(\left[\left[1,2\right],\left[3,4\right]\right]\right),\mathrm{Perm}\left(\left[\left[1,2,3,4\right]\right]\right)\right)$
 ${G}{:=}⟨\left({1}{,}{2}\right)\left({3}{,}{4}\right){,}\left({1}{,}{2}{,}{3}{,}{4}\right)⟩$ (2.1)
 > $\mathrm{GroupOrder}\left(G\right)$
 ${8}$ (2.2)
 > $\mathrm{IsTransitive}\left(G\right)$
 ${\mathrm{true}}$ (2.3)
 > $\mathrm{IsPrimitive}\left(G\right)$
 ${\mathrm{false}}$ (2.4)
 > $\mathrm{IsRegular}\left(G\right)$
 ${\mathrm{false}}$ (2.5)
 > $\mathrm{IsNilpotent}\left(G\right)$
 ${\mathrm{true}}$ (2.6)
 > $G:=\mathrm{PSL}\left(3,3\right)$
 ${G}{:=}{\mathbf{PSL}}\left({3}{,}{3}\right)$ (2.7)
 > $\mathrm{GroupOrder}\left(G\right)$
 ${5616}$ (2.8)
 > $\mathrm{Generators}\left(G\right)$
 $\left[\left({5}{,}{8}{,}{11}\right)\left({6}{,}{9}{,}{12}\right)\left({7}{,}{10}{,}{13}\right){,}\left({1}{,}{2}{,}{5}\right)\left({3}{,}{8}{,}{7}\right)\left({4}{,}{11}{,}{6}\right)\left({9}{,}{10}{,}{13}\right)\right]$ (2.9)
 > $\mathrm{IsPrimitive}\left(G\right)$
 ${\mathrm{true}}$ (2.10)
 > $G:=\mathrm{RubiksCubeGroup}\left(\right):$
 > $\mathrm{IsTransitive}\left(G\right)$
 ${\mathrm{false}}$ (2.11)
 > $\mathrm{O1}:=\mathrm{Orbit}\left(1,G\right)$
 ${\mathrm{O1}}{:=}{{1}}^{⟨\left({6}{,}{25}{,}{43}{,}{16}\right)\left({7}{,}{28}{,}{42}{,}{13}\right)\left({8}{,}{30}{,}{41}{,}{11}\right)\left({17}{,}{19}{,}{24}{,}{22}\right)\left({18}{,}{21}{,}{23}{,}{20}\right){,}\left({1}{,}{14}{,}{48}{,}{27}\right)\left({2}{,}{12}{,}{47}{,}{29}\right)\left({3}{,}{9}{,}{46}{,}{32}\right)\left({33}{,}{35}{,}{40}{,}{38}\right)\left({34}{,}{37}{,}{39}{,}{36}\right){,}\left({1}{,}{17}{,}{41}{,}{40}\right)\left({4}{,}{20}{,}{44}{,}{37}\right)\left({6}{,}{22}{,}{46}{,}{35}\right)\left({9}{,}{11}{,}{16}{,}{14}\right)\left({10}{,}{13}{,}{15}{,}{12}\right){,}\left({3}{,}{38}{,}{43}{,}{19}\right)\left({5}{,}{36}{,}{45}{,}{21}\right)\left({8}{,}{33}{,}{48}{,}{24}\right)\left({25}{,}{27}{,}{32}{,}{30}\right)\left({26}{,}{29}{,}{31}{,}{28}\right){,}\left({1}{,}{3}{,}{8}{,}{6}\right)\left({2}{,}{5}{,}{7}{,}{4}\right)\left({9}{,}{33}{,}{25}{,}{17}\right)\left({10}{,}{34}{,}{26}{,}{18}\right)\left({11}{,}{35}{,}{27}{,}{19}\right){,}\left({14}{,}{22}{,}{30}{,}{38}\right)\left({15}{,}{23}{,}{31}{,}{39}\right)\left({16}{,}{24}{,}{32}{,}{40}\right)\left({41}{,}{43}{,}{48}{,}{46}\right)\left({42}{,}{45}{,}{47}{,}{44}\right)⟩}$ (2.12)
 > $\mathrm{Elements}\left(\mathrm{O1}\right)$
 $\left\{{1}{,}{3}{,}{6}{,}{8}{,}{9}{,}{11}{,}{14}{,}{16}{,}{17}{,}{19}{,}{22}{,}{24}{,}{25}{,}{27}{,}{30}{,}{32}{,}{33}{,}{35}{,}{38}{,}{40}{,}{41}{,}{43}{,}{46}{,}{48}\right\}$ (2.13)

CayleyTable Groups

A group may be defined by its Cayley table, the operation table of the group.  Cayley tables are specified as integer arrays or matrices.

 > $\mathrm{ct}:=⟨⟨⟨1|2|3⟩,⟨2|3|1⟩,⟨3|1|2⟩⟩⟩$
 ${\mathrm{ct}}{:=}\left[\begin{array}{rrr}{1}& {2}& {3}\\ {2}& {3}& {1}\\ {3}& {1}& {2}\end{array}\right]$ (3.1)
 > $G:=\mathrm{Group}\left(\mathrm{ct}\right)$
 ${G}{:=}{\mathrm{< a Cayley table group with 3 elements >}}$ (3.2)
 > $\mathrm{IsAbelian}\left(G\right)$
 ${\mathrm{true}}$ (3.3)

Finitely Presented Groups

You can define a group by specifying a set of generators and defining relations.

For example, here is a definition of the alternating group of degree 5:

 > $G:=⟨⟨x,y⟩|⟨{x}^{2}=1,{y}^{3}=1,{\left(x.y\right)}^{5}=1⟩⟩$
 ${G}{:=}⟨{x}{,}{y}{\mid }{{x}}^{{2}}{,}{{y}}^{{3}}{,}{x}{}{y}{}{x}{}{y}{}{x}{}{y}{}{x}{}{y}{}{x}{}{y}⟩$ (4.1)

We can verify the order of the group directly.

 > $\mathrm{GroupOrder}\left(G\right)$
 ${60}$ (4.2)

To check simplicity, we first convert the finitely presented group to a permutation group, and then use the IsSimple command.

 > $\mathrm{IsSimple}\left(\mathrm{PermutationGroup}\left(G\right)\right)$
 ${\mathrm{true}}$ (4.3)

Symbolic Groups

Symbolic groups are used to represent groups that depend on zero or more "parameters" (usually integers).  They are used, for example, to represent some of the larger sporadic finite simple groups (such as the Monster and the Harada-Norton simple group) that are too large to support practical computation with group elements.  Additionally, some constructors can take symbolic expressions for parameters and return a symbolic representation of the constructed group.

 > $\mathrm{Monster}\left(\right)$
 ${𝕄}$ (5.1)
 > $\mathrm{GroupOrder}\left(\mathrm{Monster}\left(\right)\right)$
 ${808017424794512875886459904961710757005754368000000000}$ (5.2)
 > $\mathrm{IsSimple}\left(\mathrm{Monster}\left(\right)\right)$
 ${\mathrm{true}}$ (5.3)
 > $G:=\mathrm{GeneralLinearGroup}\left(3,q\right)$
 ${G}{:=}{\mathbf{GL}}\left({3}{,}{q}\right)$ (5.4)
 > $\mathrm{GroupOrder}\left(G\right)$
 $\left({{q}}^{{3}}{-}{1}\right){}\left({{q}}^{{3}}{-}{q}\right){}\left({{q}}^{{3}}{-}{{q}}^{{2}}\right)$ (5.5)
 > $\mathrm{IsSimple}\left(\mathrm{Alt}\left(n\right)\right)\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}assuming\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}5
 ${\mathrm{true}}$ (5.6)

Group Constructors

Many groups can be created directly and conveniently by using purpose-built constructors provided by the GroupTheory package:

 > $\mathrm{Symm}\left(4\right)$
 ${{\mathbf{S}}}_{{4}}$ (6.1)
 > $\mathrm{Alt}\left(6\right)$
 ${{\mathbf{A}}}_{{6}}$ (6.2)
 > $\mathrm{DihedralGroup}\left(14\right)$
 ${{\mathrm{D}}}_{{14}}$ (6.3)
 > $\mathrm{PSL}\left(3,4\right)$
 ${\mathbf{PSL}}\left({3}{,}{4}\right)$ (6.4)
 > $\mathrm{GL}\left(2,2\right)$
 ${\mathbf{GL}}\left({2}{,}{2}\right)$ (6.5)

Visualizations

It is useful to be able to visualize a group by examining its subgroup lattice graphically:

 > $\mathrm{DrawSubgroupLattice}\left(\mathrm{QuaternionGroup}\left(\right)\right)$
 > $G:=\mathrm{SmallGroup}\left(24,7\right):$
 > $\mathrm{DrawSubgroupLattice}\left(G,\mathrm{derived},\mathrm{labels}=\mathrm{none}\right)$
 > $\mathrm{DrawCayleyTable}\left(\mathrm{Symm}\left(3\right)\right)$

Group Properties

Support for testing a variety of group properties is included in the GroupTheory package.

 > $G:=\mathrm{Symm}\left(3\right)$
 ${G}{:=}{{\mathbf{S}}}_{{3}}$ (8.1)
 > $\mathrm{IsAbelian}\left(G\right)$
 ${\mathrm{false}}$ (8.2)
 > $\mathrm{IsNilpotent}\left(G\right)$
 ${\mathrm{false}}$ (8.3)
 > $\mathrm{IsSoluble}\left(G\right)$
 ${\mathrm{true}}$ (8.4)
 > $\mathrm{IsSimple}\left(G\right)$
 ${\mathrm{false}}$ (8.5)

Interesting Subgroups

A number of standard subgroups can be constructed with the GroupTheory package.

 > $G:=\mathrm{DihedralGroup}\left(8\right)$
 ${G}{:=}{{\mathrm{D}}}_{{8}}$ (9.1)
 > $Z:=\mathrm{Centre}\left(G\right)$
 ${Z}{:=}{Z}{}\left({{\mathrm{D}}}_{{8}}\right)$ (9.2)
 > $\mathrm{GroupOrder}\left(Z\right)$
 ${2}$ (9.3)
 > $C:=\mathrm{DerivedSubgroup}\left(G\right)$
 ${C}{:=}\left[{{\mathrm{D}}}_{{8}}{,}{{\mathrm{D}}}_{{8}}\right]$ (9.4)
 > $\mathrm{GroupOrder}\left(C\right)$
 ${4}$ (9.5)
 > $P:=\mathrm{PCore}\left(2,\mathrm{MetacyclicGroup}\left(3,2,2\right)\right)$
 ${P}{:=}{{O}}_{{2}}{}\left(⟨\left({1}{,}{3}{,}{4}\right)\left({2}{,}{5}{,}{6}\right){,}\left({1}{,}{2}\right)\left({3}{,}{5}\right)\left({4}{,}{6}\right)⟩\right)$ (9.6)
 > $\mathrm{LowerCentralSeries}\left(P\right)$
 ${{O}}_{{2}}{}\left(⟨\left({1}{,}{3}{,}{4}\right)\left({2}{,}{5}{,}{6}\right){,}\left({1}{,}{2}\right)\left({3}{,}{5}\right)\left({4}{,}{6}\right)⟩\right){▹}⟨⟩$ (9.7)
 > $R:=\mathrm{SolubleResidual}\left(\mathrm{Symm}\left(6\right)\right)$
 ${R}{:=}⟨\left({1}{,}{3}{,}{2}\right){,}\left({2}{,}{4}{,}{3}\right){,}\left({3}{,}{5}{,}{4}\right){,}\left({4}{,}{6}{,}{5}\right)⟩$ (9.8)
 > $\mathrm{IsPerfect}\left(R\right)$
 ${\mathrm{true}}$ (9.9)

Isomorphism Testing and Group Identification

The GroupTheory package includes an isomorphism test for finite groups given by their Cayley tables.  Operation of the command is extended to other finite groups by computing their Cayley tables, which is done automatically.  The package also includes a database of all the finite groups of order not exceeding 200.   Together, this allows any finite group with at most 200 elements to be identified unambiguously in a standard way.

We can verify the commutativity, up to isomorphism, of the direct product construction by using the AreIsomorphic command.

 > $G:=\mathrm{DirectProduct}\left(\mathrm{Alt}\left(4\right),\mathrm{DihedralGroup}\left(6\right)\right)$
 ${G}{:=}{{\mathbf{A}}}_{{4}}{×}{{\mathrm{D}}}_{{6}}$ (10.1)
 > $H:=\mathrm{DirectProduct}\left(\mathrm{DihedralGroup}\left(6\right),\mathrm{Alt}\left(4\right)\right)$
 ${H}{:=}{{\mathrm{D}}}_{{6}}{×}{{\mathbf{A}}}_{{4}}$ (10.2)
 > $\mathrm{AreIsomorphic}\left(G,H\right)$
 ${\mathrm{true}}$ (10.3)
 > $\mathrm{IdentifySmallGroup}\left(G\right)$
 ${144}{,}{190}$ (10.4)