NormalSubgroupsForRep(
groupdata,
divisor ) O
Let groupdata be the output of PermutationRepForDiffsetCalculations
and
divisor an integer. Then NormalSubgroupsForRep
calculates all normal
subgroups of groupdata.G such that the size of the factor group is divisible
by divisor and the factor group is a semidirect product of cyclic groups.
The output is a record consisting of
.alpha and .root may be used as input for OrderedSigs
OrderedSigs(
coeffSums,
absSum,
alpha,
root ) O
Let G be group which contains a normal subgroup of index s such that the coset signature for a difference set for this normal subgroup is coeffSums. Let N be a normal subgroup of G such that G/N is a semidirect product of cyclic group of orders s,q and i divides the order of G/N.
Then OrderedSigs(
coeffSums,
absSum,
alpha,
root)
calculates
all ordered signatures for N. Here root is a primitive q-th root
of unity and alpha is a Galois- automorphism of CS(q) with order
dividing s. absSum is the order of the difference set.
(i.e. order=k−λ).
OrderedSigs
is based on calculations using an s-dimensional unitary
representation of G/N.
In this representation a subset of G induces a semi-circular matrix.
The returned value is a list of lists s-tuples
The entries of the s-tuples are coefficients of numbers in
Z[root ] such that the semi-circular matrix defined by these numbers
together with alpha meets necessary conditions for matrices induced
by difference sets.
To gain the algebraic numbers from the s-tuple tup, use
List(
tup,i->CoeffList2CyclotomicList(i,
root))
Each |coeffSums |-tuple returned defines an ordered signature. The ordering
of G/N is chosen to fit to the data returned by NormalSubgroupsForRep
:
[a0,a1,...,aq−1],[a0b,a1b,...,aq−1b],...,[a0bs−1,...,aq−1bs−1]
So for the calculation of ordered signatures, smaller ordered signatures coeffSums have to be known. But this is not so bad, as small signatures are easy to calculate. The following example shows an application.
gap> G:=SmallGroup(273,3); <pc group of size 273 with 3 generators> gap> Gdata:=PermutationRepForDiffsetCalculations(G);; gap> CosetSignatures(273,273/3,16); [ [ 3, 7, 7 ] ] gap> nsgs:=NormalSubgroupsForRep(Gdata,3); [ rec( Nsg := Group([ f2 ]), alpha := ANFAutomorphism( CF(13), 3 ), root := E(13), fgrp := Group([ f1, <identity> of ..., f2 ]), epi := [ f1, f2, f3 ] -> [ f1, <identity> of ..., f2 ], a := f2, b := f1, int2pairtable := [ [ 1, 1 ], [ 1, 2 ], [ 1, 1 ], [ 2, 1 ], [ 1, 3 ], ... [ 8, 3 ], [ 11, 3 ], [ 5, 2 ], [ 11, 3 ] ] ), rec( Nsg := Group([ f3 ]), alpha := ANFAutomorphism( CF(7), 2 ), root := E(7), fgrp := Group([ f1, f2, <identity> of ... ]), epi := [ f1, f2, f3 ] -> [ f1, f2, <identity> of ... ], a := f2, b := f1, int2pairtable := [ [ 1, 1 ], [ 1, 2 ], [ 2, 1 ], [ 1, 1 ], [ 1, 3 ], ... [ 6, 3 ], [ 4, 3 ], [ 4, 2 ], [ 6, 3 ] ] ) ] gap> osigs:=OrderedSigs([3,7,7],16,nsgs[2].alpha,nsgs[2].root); [ [ [ 0, 0, 0, 1, 0, 1, 1 ], [ 0, 0, 1, 2, 2, 0, 2 ], [ 2, 2, 0, 2, 0, 0, 1 ] ], [ [ 0, 0, 0, 1, 0, 1, 1 ], [ 0, 1, 2, 2, 0, 2, 0 ], [ 2, 0, 0, 1, 2, 2, 0 ] ], ... [ [ 1, 1, 0, 1, 0, 0, 0 ], [ 2, 2, 1, 0, 0, 2, 0 ], [ 2, 1, 0, 0, 2, 0, 2 ] ] ] gap> Size(osigs); 98 gap> Set(osigs,g->SortedList(Concatenation(g))); [ [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2 ] ]
Note that the signature [3, 7, 7]
can be assumed to be ordered (by
passing to a suitable translate). So even if we are not interested in
ordered signatures, we have found out that there is only one admissible
unordered signature for this normal subgroup. To get this result using
TestedSignatures
would have taken a very long time.
Of course, ordered signatures can also be used directly.
OrderedSignatureOfSet( set, normal_data ) O
takes a set set of integers (meant to be a partial difference set) and
a list of records as returned by NormalSubgroupsForRep
.
The returned value is a list of lists which is the ordered signature of the
partial difference set set and can be compared to the output of OrderedSigs
gap> OrderedSignatureOfSet([2,3,4,5],nsgs[2]); [ [ 1, 1, 1, 0, 0, 0, 0 ], [ 1, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0 ] ]
[Up] [Previous] [Next] [Index]
RDS manual