Lesson 8

Permutation groups

Goal

Build a group from generators, ask its Size, recognise the standard families SymmetricGroup/AlternatingGroup, and read the structural predicates IsAbelian, IsPerfect, Center. Theses are the the important structural details about a Group that you studied heavily in Hungerford.

Concept

A permutation group is the set of all products of some generators. You give GAP a handful of permutations; it knows (via serious algorithms) the whole group they generate, often astronomically large, without listing it. Group(g1,g2) builds it; Size returns the order; predicates like IsPerfect answer structural questions. A5 (the icosahedral simple group) is AlternatingGroup(5).

Commands to try

G := Group( (1,2,3), (1,2) );
Size(G);

Predict before checking: these two generate all of S_3. Expect 6. Group(…) takes generators; Size computes the order without enumerating blindly.

GeneratorsOfGroup(G);

The generators you gave back (as a list). A group remembers a generating set.

S5 := SymmetricGroup(5);
Size(S5);
A5 := AlternatingGroup(5);
Size(A5);

Expect 120 and 60. These constructors build the standard groups directly. There are no generators to type.

IsAbelian(A5);
IsPerfect(A5);

Expect false then true. Perfect means G = [G,G] (it equals its own commutator subgroup). Equivalently, no nontrivial abelian quotient. A5 is the smallest nonabelian simple group, hence perfect. IsPerfect is the predicate you reach for whenever you need to know a group has no nontrivial abelian quotient.

Center(A5);
Size(Center(A5));

Expect the trivial group and 1. A5 is simple, so its center is trivial. (Contrast: an abelian group is all center Size(Center(G)) = Size(G).)

IsSimple(A5);

Expect true.

Predict-then-check

The Klein four-group sits inside A4. Predict each:

V := Group( (1,2)(3,4), (1,3)(2,4) );
Size(V);
IsAbelian(V);
Size(Center(V));

(Two commuting double-transpositions. How big is the group, and since it's abelian, what must its centre equal?)

Exercise

  1. Build S4 two ways: as SymmetricGroup(4) and as Group( (1,2,3,4), (1,2) ). Confirm both have Size 24. Are they = as GAP objects? (Try G1 = G2.)
  2. For A5: confirm IsPerfect is true and IsAbelian is false, and that Size(DerivedSubgroup(A5)) = 60 (perfect ⟺ derived subgroup is the whole group).
  3. Find a generator pair for the cyclic group of order 5 inside A5, build it with Group, and check its Size and that IsAbelian is true.
  4. Predict, then check, IsPerfect(SymmetricGroup(5)). (Is S5 equal to its own commutator subgroup?)

Pitfalls

  • Order(G) and Size(G) both give the group order and agree - but Order is overloaded (it's also an element's order, Lesson 07). For groups, prefer Size; use Size(...) for a group's order and Order(elt) for an element's.
  • Two groups can be equal as sets (G1 = G2 true) without being the same object; and IsSubgroup/= compare the actual point-sets, so S4 built two ways with the same moved points will compare equal.
  • Group(gens) with gens a list also works: Group([g1,g2]). Mixing the two forms is fine.
  • IsPerfect, IsSimple, Center can be expensive on huge groups but are instant on A5/S5. Don't fear them here; do respect them at large-group scale.
  • A trivial group prints as Group(()) and has Size 1: that's the centre of a simple group, not an error.
← Back to Learning GAP - Part 1: Foundations