#
# G2G2 Minicourse 1 Exercises, Leonard Soicher, June 2021
# =======================================================
#
#
# First, make sure that GAP (version at least 4.11.0) is
# installed on your computer, together with its included
# packages GRAPE and DESIGN fully installed.
#
# I suggest you add your code to this file as you attempt
# the exercises, and correct any errors and update the file
# with new answers as you go.
#
# You can copy and paste your code into a running GAP session
# to see the results.
#
#
#
# Exercise session 1
# ==================
#
#
# Exercise 1
# ----------
#
# Start up GAP and run the code below. This code creates objects
# you will be using in the exercises to follow. Make sure you
# understand what the code is doing.
#
# We first set M24 to be the Mathieu group M_{24},
# octad1 to be the octad for M24 containing [1..5],
# and octads to be the set of all 759 octads for M24.
#
n:=24;
M24:=MathieuGroup(n);
L:=[1..5];
H:=Stabilizer(M24,L,OnSets);
orbs:=Orbits(H,[1..n]);
for orb in orbs do
if Length(orb)=3 then
octad1:=Union(L,orb);
break;
fi;
od;
octad1;
octads:=Set(Orbit(M24,octad1,OnSets));;
Length(octads);
#
# We next construct the setwise stabilizer in M24 of [23,24],
# determine the kernel and image of its action on [1..22], and
# assign this image to autM22 (since this image is isomorphic
# to the automorphism group of the Mathieu group M_{22}).
#
pair:=[23,24];
pair_stab:=Stabilizer(M24,pair,OnSets);
hom:=ActionHomomorphism(pair_stab,[1..22],OnPoints);;
Kernel(hom);
autM22:=Image(hom);
Size(autM22);
#
# Now autM22 acts on the set of *hexads*, which is
# the set of all octads containing 23 and 24, but with
# 23 and 24 removed from each. We compute this set of hexads.
#
hexads:=[];
for octad in octads do
if IsSubset(octad,pair) then
AddSet(hexads,Difference(octad,pair));
fi;
od;
Length(hexads);
#
# (Note that hexads is the set of blocks of a 3-(22,6,1) design
# having points [1..22].)
#
#
# Exercise 2
# ----------
#
# Write a function called SymmetricDifference, with parameters
# S and T, such that if each of S and T is a set or collection,
# then the function returns the symmetric difference of S and T
# (which is the set consisting of all the elements that are in
# S or T, but not in both).
#
# Test your function with some well-chosen examples.
#
#
# Exercise 3
# ----------
#
# A *dodecad* is the symmetric difference of two octads that
# intersect in exactly two points.
#
# Use a for-loop containing a break statement to
# assign to octad2 the first element of the set octads
# that intersects octad1 in exactly two points.
#
# Now determine the symmetric difference of octad1 and octad2,
# and assign the result to dodecad1.
#
# Determine the (setwise) stabilizer in M24 of dodecad1,
# and the kernel and image of the action of this stabilizer
# on dodecad1.
#
# The image should be the small Mathieu group M_{12}.
# Check this using DisplayCompositionSeries.
#
#
# Exercise 4
# ----------
#
# A *sextet* is a partition of [1..24] into subsets of size 4,
# such that the union of any two distinct parts is an octad.
#
# It is known that every 4-subset of [1..24] belongs to a
# unique sextet.
#
# Let sextet1 be the sextet to which [5,10,15,20] belongs.
# Determine sextet1 (as a set of sets).
#
# Determine the orbit of sextet1 under M24 acting on
# sets of disjoint sets, but supress the printing of this orbit.
# What is the length of the orbit?
#
# Determine the stabilizer in M24 of sextet1, and
# the orders of the kernel and image of the action
# of this stabilizer on the set of six parts of the sextet.
# Hence, identify the image.
#
#
#
# Exercise session 2
# ==================
#
# Exercise 5
# ----------
#
# Load the GRAPE package.
#
# Construct the complement of the Hoffman-Singleton graph as
# the (unique) generalized orbital graph gamma of vertex-degree
# 42 for the (unique) primitive permutation group of degree 50
# and order 252000.
#
# Classify the cliques of gamma of size 15, up to the action
# of gamma.group.
#
# Now use the GRAPE function Graph to construct the Higman-Sims graph
# as the graph delta whose vertices are the cliques of size 15
# in gamma, with two such cliques joined by an edge iff the size
# of their intersection is 0 or 8. Make use of gamma.group and
# its action on the cliques of size 15 of gamma.
#
# Determine the number of vertices of delta and the vertex-degrees
# of delta.
#
# Determine the automorphism group of delta.
#
# What is the index of delta.group in the automorphism group of
# delta?
#
# Now use the function NewGroupGraph to assign to delta a copy of
# delta whose associated group is the full automorphism group of delta.
#
# Determine the global parameters, clique number, independence number,
# and chromatic number of delta.
#
#
# Exercise 6
# ----------
#
# Now you are to implement a different construction for the
# Higman-Sims graph, which is the one originally used by
# D.G. Higman and C.C. Sims.
#
# Call this graph to be constructed HSgraph.
#
# The vertices of HSgraph are 0,1,2,...,22, and the
# the hexads of the 3-(22,6,1) design for autM22 constructed
# in the first exercise session.
#
# Construct HSvertices as a set of these 100 vertices.
#
#
# The joining rules for HSgraph are as follows:
#
# - 0 is joined only to each of the points 1,2,...,22;
#
# - if i is in [1..22], then i is joined only to 0 and
# the hexads to which i belongs;
#
# - if H is a hexad then H is joined only to the points in H
# and the hexads disjoint from H.
#
#
# Implement these joining rules as a boolean function HSadj of
# two vertices of HSgraph, returning true iff the vertices
# are joined by an edge in HSgraph.
#
# Clearly autM22 acts as a group of automorphisms of HSgraph,
# in its action on the vertices of HSgraph, fixing 0,
# acting naturally on [1..22], and acting by OnSets on the hexads.
#
# Implement this action as a user-defined action HSact in GAP.
#
# Now construct HSgraph using the GRAPE function Graph
# applied to autM22, HSvertices, HSact, and HSadj.
#
# Check that HSgraph is isomorphic to the graph delta
# constructed previously.
#
#
# Exercise 7
# ----------
#
# Now load the DESIGN package for GAP.
#
# Classify the 2-(12,4,3) designs invariant under the cyclic
# group generated by (1,2,3,4)(5,6,7,8)(9,10,11,12), such that
# every pair of distinct blocks intersect in at most two points.
#
# Then, for each such design classified, determine the order of
# its automorphism group.
#
#
# Exercise 8
# ----------
#
# Consider the group M24 and the set octads from the first
# exercise session.
#
# Construct the block design D (in DESIGN package format),
# whose points are [1..24] and whose block-list is octads.
#
# Check that the automorphism group of D is the group M24.
#
# Look at the online help for the DESIGN package function WittDesign.
# Check that D is isomorphic to WittDesign(24).
#
# Construct one resolution of D invariant under a Sylow
# 23-subgroup of M24.
#
# (Note that this shows that the image of the action OnSets
# of M24 on octads is nonsynchronizing.)
#