Let V be the set of integers { 1, 2, ..., p } and let B = { B_1, ..., B_q } be a collection of subsets of V (actually stored as a sequence). The pair (V, B) is called a design. This function computes the automorphism group of a design D. This automorphism group is obtained as the automorphism group of an associated graph constructed according to the following rules:Now colour the vertices of V green and those of B red.
- The vertices are V union B.
- The adjacency rules are as follows:
- No element of V is adjacent to another element of V;
- Element v_i of V is adjacent to element B_j of B if and only if v_i is contained in B_j;
- No element of B is adjacent to another element of B.
The automorphism group of S is the automorphism group of this vertex-coloured graph.
> B1 := { 1, 2, 4 };
> B2 := { 2, 3, 5 };
> B3 := { 3, 4, 6 };
> B4 := { 4, 5, 7 };
> B5 := { 5, 6, 1 };
> B6 := { 6, 7, 2 };
> B7 := { 7, 1, 3 };
> D := [ B1, B2, B3, B4, B5, B6, B7 ];
> aut := AutomorphismGroup( 7, D );
> print aut;
Permutation group aut acting on a set of cardinality 14
Order = 168 = 2^3 * 3 * 7
(3, 5)(6, 7)(10, 11)(12, 14)
(3, 6)(5, 7)(9, 13)(12, 14)
(2, 3)(4, 7)(8, 14)(10, 13)
(1, 2)(5, 7)(9, 14)(12, 13)
> print Orbits(aut);
[
GSet{ 1, 2, 3, 4, 5, 6, 7 },
GSet{ 11, 12, 13, 14, 8, 9, 10 }
]
> // Restriction of this group to the orbit containing 1 gives the action
> // of the automorphism group on the points of the design
> A := OrbitImage(aut, 1);
> print A;
Permutation group A of degree 7
Order = 168 = 2^3 * 3 * 7
(3, 5)(6, 7)
(3, 6)(5, 7)
(2, 3)(4, 7)
(1, 2)(5, 7)
> // We determine the stabilizer of the block B1
> StabB1 := Stabilizer(A, B1);
> print StabB1;
Permutation group StabB1 of degree 7
Order = 24 = 2^3 * 3
(3, 7)(5, 6)
(1, 2)(5, 7)
(2, 4)(5, 6)
The function DifferenceSet given below may be used to
construct a design from a perfect difference set. We use this procedure to
construct a (19, 9, 4)-design and then proceed to compute its automorphism
group.
> DifferenceSet := function(S, n)
>
> // Given a set of integers S which form a perfect difference set
> // modulo n, create the corresponding design D.
>
> D := [ { (x + i) mod n + 1 : x in S } : i in [0..n-1] ];
> return D;
>
> end function;
>
> DSet := [1, 4, 5, 6, 7, 9, 11, 16, 17];
> D := DifferenceSet(DSet, 19);
> print D;
[
{ 2, 5, 6, 7, 8, 10, 12, 17, 18 },
{ 3, 6, 7, 8, 9, 11, 13, 18, 19 },
{ 4, 7, 8, 9, 10, 12, 14, 19, 1 },
{ 5, 8, 9, 10, 11, 13, 15, 1, 2 },
{ 6, 9, 10, 11, 12, 14, 16, 2, 3 },
{ 7, 10, 11, 12, 13, 15, 17, 3, 4 },
{ 8, 11, 12, 13, 14, 16, 18, 4, 5 },
{ 9, 12, 13, 14, 15, 17, 19, 5, 6 },
{ 10, 13, 14, 15, 16, 18, 1, 6, 7 },
{ 11, 14, 15, 16, 17, 19, 2, 7, 8 },
{ 12, 15, 16, 17, 18, 1, 3, 8, 9 },
{ 13, 16, 17, 18, 19, 2, 4, 9, 10 },
{ 14, 17, 18, 19, 1, 3, 5, 10, 11 },
{ 15, 18, 19, 1, 2, 4, 6, 11, 12 },
{ 16, 19, 1, 2, 3, 5, 7, 12, 13 },
{ 17, 1, 2, 3, 4, 6, 8, 13, 14 },
{ 18, 2, 3, 4, 5, 7, 9, 14, 15 },
{ 19, 3, 4, 5, 6, 8, 10, 15, 16 },
{ 1, 4, 5, 6, 7, 9, 11, 16, 17 }
]
> Aut := AutomorphismGroup(19, D);
> A := OrbitImage(Aut, 1);
> print A;
Permutation group A of degree 19
Order = 171 = 3^2 * 19
(2, 5, 17, 8, 10, 18, 12, 7, 6)(3, 9, 14, 15, 19, 16, 4, 13, 11)
(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19)
> // We look at the classes and normal subgroups of the automorphism group
> print Classes(A);
Conjugacy Classes of group A
----------------------------
Order 1 Length 1
Rep Id(A)
Order 3 Length 19
Rep (1, 7, 11)(2, 14, 3)(4, 9, 6)(5, 16, 17)(8, 18, 12)(10, 13, 15)
Order 3 Length 19
Rep (1, 11, 7)(2, 3, 14)(4, 6, 9)(5, 17, 16)(8, 12, 18)(10, 15, 13)
Order 9 Length 19
Rep (1, 4, 16, 7, 9, 17, 11, 6, 5)(2, 8, 13, 14, 18, 15, 3, 12, 10)
Order 9 Length 19
Rep (1, 16, 9, 11, 5, 4, 7, 17, 6)(2, 13, 18, 3, 10, 8, 14, 15, 12)
Order 9 Length 19
Rep (1, 9, 5, 7, 6, 16, 11, 4, 17)(2, 18, 10, 14, 12, 13, 3, 8, 15)
Order 9 Length 19
Rep (1, 17, 4, 11, 16, 6, 7, 5, 9)(2, 15, 8, 3, 13, 12, 14, 10, 18)
Order 9 Length 19
Rep (1, 6, 17, 7, 4, 5, 11, 9, 16)(2, 12, 15, 14, 8, 10, 3, 18, 13)
Order 9 Length 19
Rep (1, 5, 6, 11, 17, 9, 7, 16, 4)(2, 10, 12, 3, 15, 18, 14, 13, 8)
Order 19 Length 9
Rep (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19)
Order 19 Length 9
Rep (1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 2, 4, 6, 8, 10, 12, 14, 16, 18)
> print NormalSubgroups(A);
[1] Order 1 Generating classes: [1]
Union of classes: [1]
---
[2] Order 19 Generating classes: [10]
Union of classes: [1] [10] [11]
---
[3] Order 57 Generating classes: [2]
Maximals: [2]
Union of classes: [1] [2] [3] [10] [11]
---
[4] Order 171 Generating classes: [4]
Maximals: [3]
Union of classes: [1] [2] [3] [4] [5] [6] [7] [8] [9]
[10] [11]
> print IsPrimitive(A);
true
> print IsFrobenius(A);
true
> // Thus the group is a Frobenius group and the normal subgroup of order 19
> // must be the Frobenius kernel.