GAP 4.8.9 installation with standard packages -- copy to your CoCalc project to get it
% This file was created automatically from tutorial.msk.1% DO NOT EDIT!2\Chapter{AllDiffsets and OneDiffset}34This chapter contains a number of examples as a very quick5introduction to a few brute-force methods which can be used to find6all (or just one) relative difference sets in a small group. Full7documentation of these functions including all parameters can be found8in section "RDS:Brute force methods".910Do not expect too much from these methods alone! If11you want to find examples of relative difference sets in larger12groups, you should familiarize with the notion of coset signatures by13also reading the next chapter.1415The functions "AllDiffsets" and "OneDiffset" present the16easiest way to calculate relative difference sets.1718For a quick start, try this:19\beginexample20gap> LoadPackage("rds");;21gap> G:=CyclicGroup(7);22<pc group of size 7 with 1 generators>23gap> AllDiffsets(G);24[ [ f1, f1^3 ], [ f1, f1^5 ], [ f1^2, f1^3 ], [ f1^2, f1^6 ], [ f1^4, f1^5 ],25[ f1^4, f1^6 ] ]26gap> OneDiffset(G);27[ f1, f1^3 ]28\endexample2930The first is the set of all ordinary difference sets of order $2$ in31the cyclic group of order $7$. Ok, they look too small (recall that32the order of a difference set is the number $k$ of elements it33contains minus the multiplicity $\lambda$). Here is the reason:3435Without loss of generality, every difference set contains the identity36element of the group it lives in. {\package{RDS}} knows this and37assumes it implicitly. So difference sets of length $n$ are38represented by lists of length $n-1$.3940We can calculate all ordinary difference sets in $G$ which contain the41last element using "AllDiffsetsNoSort". Observe, that "AllDiffsets"42calculates partial difference sets by adding elements to the given43list which are lexicographically larger than the last one of this44list:4546\beginexample47gap> AllDiffsetsNoSort([Set(G)[7]],G);48[ [ f1^6, f1^2 ], [ f1^6, f1^4 ] ]49gap> AllDiffsets([Set(G)[7]],G);50[ ]51\endexample5253You can also generate relative difference sets. Here we must give a54partial difference set to start with (the empty list is ok) and a55forbidden set. Notice that a forbidden subgroup cannot be input as a56*group*. It has to be converted to a set.5758\beginexample59gap> G:=ElementaryAbelianGroup(81);60<pc group of size 81 with 4 generators>61gap> N:=Subgroup(G,GeneratorsOfGroup(G){[1,2]});62Group([ f1, f2 ])63gap> OneDiffset([],Set(N),G);64[ f3, f4, f1*f3^2, f2*f3*f4, f1^2*f4^2, f2*f3^2*f4^2, f1*f2^2*f3^2*f4,65f1^2*f2^2*f3*f4^2 ]66\endexample6768If the parameter $\lambda$ is not given, it is set to $1$.69Of course, we can also find difference sets with $\lambda>1$. Here is a $(12,2,12,6)$ difference set in $SL(2,3)$:7071\beginexample72gap> G:=SmallGroup(24,3);73<pc group of size 24 with 4 generators>74gap> N:=First(NormalSubgroups(G),i->Size(i)=2);75Group([ f4 ])76gap> OneDiffset([],Set(N),G,6);77[ f1, f2, f3, f1^2, f1*f2, f1*f3, f2*f3, f1*f2*f3, f1^2*f2*f4, f1^2*f3*f4,78f1^2*f2*f3*f4 ]79\endexample8081To test if a set is a relative difference set, "IsDiffset" can be used:8283\beginexample84gap> a:=(1,2,3,4,5,6,7);85(1,2,3,4,5,6,7)86gap> IsDiffset([a,a^3],Group(a)); #an ordinary difference set87true88gap> IsDiffset([a,a^2,a^4],Group(a)); #no ordinary difference set89false90gap> IsDiffset([a,a^2,a^4],Group(a),2); #diffset with <lambda>=291true92\endexample9394In some cases, "AllDiffsets" and "OneDiffset" will refuse to work. A95solution for this is to calculate `IsomorphismPermGroup' for your96group and then work with the image under this isomorphism.9798See "RDS:Brute force methods" for details.99100101