2.3 Computing group properties

RepLAB helps us investigate the properties of groups. Let us see a few of those.

We will work with the symmetric group of degree \(4\), the alternating group of degree \(4\), and the cyclic group of order 4.

S4 = replab.PermutationGroup.symmetric(4)
A4 = replab.PermutationGroup.alternating(4)
C4 = replab.PermutationGroup.cyclic(4)
S4 =

Symmetric group acting on 4 elements
            identity: [1, 2, 3, 4]
generator(1 or 'x1'): [2, 3, 4, 1]
generator(2 or 'x2'): [2, 1, 3, 4]
    recognize.source: Symmetric group S(4)

A4 =

Permutation group acting on 4 elements of order 12
            identity: [1, 2, 3, 4]
generator(1 or 'x1'): [2, 1, 4, 3]
generator(2 or 'x2'): [2, 3, 1, 4]
    recognize.source: Alternating group A(4) of degree 4

C4 =

Permutation group acting on 4 elements of order 4
            identity: [1, 2, 3, 4]
generator(1 or 'x1'): [2, 3, 4, 1]
    recognize.source: Cyclic group C(4) of order 4 < x | x^4 = 1 >

Group order

We can readily compute the order of a group.

S4.order
ans =
    24

Since RepLAB can compute group orders that do not fit in a standard MATLAB/Octave number, all orders returned are of type vpi.

S100 = replab.S(100);
S100_order = S100.order
S100_order_class = class(S100.order)
S100_order =
    93326215443944152681699238856266700490715968264381621468592963895217
599993229915608941463976156518286253697920827223758251185210916864000000
000000000000000000                                                      
S100_order_class = vpi

Of course, when working only with smaller groups, the order can always be converted back into a standard number type.

double(S4.order)
ans = 24

But do not do that if the order is bigger than \(2^{53}\)! Otherwise the result cannot be stored exactly in a double anymore

double(S100.order) % beware
ans = 9.3326e+157

Commutativity

The center of a group is the set \(Z(G)\) of all elements of the group that commute with every element of \(G\).

A4.center
ans =

Permutation group acting on 4 elements of order 1
        identity: [1, 2, 3, 4]
recognize.source: Trivial group < | >

An abelian or commutative group has all its elements commute, and is equal to its center.

C4_commutative = C4.isCommutative
C4 == C4.center
A4_commutative = A4.isCommutative
A4 == A4.center
C4_commutative = 1
ans = 1
A4_commutative = 0
ans = 0

If a group can be generated by a single element, it is cyclic.

C4_cyclic = C4.isCyclic
A4_cyclic = A4.isCyclic
C4_cyclic = 1
A4_cyclic = 0

Simple groups

A simple group is a group that does not have a normal subgroup:

S4_simple = S4.isSimple
A4_simple = A4.isSimple
C4_simple = C4.isSimple
S4_simple = 0
A4_simple = 0
C4_simple = 0

Group exponent

The group exponent is the smallest positive integer \(e\) such that \(g^e = g \cdot g \cdots g = \operatorname{id}\) for all group element \(g\).

S4_exponent = S4.exponent
A4_exponent = A4.exponent
C4_exponent = C4.exponent
S4_exponent = 12
A4_exponent = 6
C4_exponent = 4