The modular isomorphism problem (MIP) asks the following: Let \(p\) be a prime, \(k\) a field of characteristic \(p\) and let \(G\) and \(H\) be \(p\)-groups. Does \(kG \cong kH\) imply \(G \cong H\)? To our best knowledge, the problem was first posed by R. Brauer [Bra63]. See [San85], [HS06], [EK11] for some history of the problem and an overview of most known results.
The package ModIsomExt is an extension of the ModIsom package [Eic19]. ModIsom was used to study the modular isomorphim problem for groups of order \(2^8\) and \(3^6\) [Eic08] and \(2^9\) [EK11]. For this purpose so-called canonical forms of the associated augmentation ideals (and their quotients) are computed, see [Eic08]. \( \\ \) ModIsomExt is built on the same ideas, but uses more efficient methods. In particular ModIsomExt allows to compute quotients of augmentation ideals without first computing the full augmentation ideal, which is very time and memory consuming. ModIsomExt was used in [MM20] to verify that there are no counterexamples to MIP for groups of order \(3^7\). Moreover ModIsomExt allows an easier application of the methods directly to groups instead of the GroupId's, hence making it possible to work, in priniciple, with groups of any size.
The package ModIsomExt defines an info class InfoModIsomExt. Currently, there are two info levels implemented:
0
No additional information is printed.
1
MIPBinSplit
(1.5-2) and MIPBinsByGT
(2.1-1) print additional information during the respective computations.
If one sets also InfoModIsom to be 1, then MIPBinSplit
(1.5-2) prints further additional information.
We recall the format of nilpotent structure constants tables or just nilpotent tables as used in the ModIsom package. Let \(A\) be a finite-dimensional nilpotent associative algebra over a field \(F\). Furthermore let \((b_1,\ldots,b_d)\) be a weighted basis of \(A\), i.e. a basis with associated weights \((w_1,\ldots,w_d)\) such that \(A^j = \langle b_i \mid w_i \geq j \rangle\) and let \(a_{i,j,k}\) be such that \(b_ib_j = \sum \limits_k a_{i,j,k} b_k\). Then a nilpotent table for \(A\) is a record with the following entries.
dim
The dimension \(d\) of \(A\).
fld
The field over which \(A\) is defined.
rnk
The rank of \(A\), i.e. the dimension of \(A/A^2\).
wgs
The weights \((w_1,\ldots,w_d)\).
wds
A list of length \(d\) with possible holes. If the \(i\)-th enty is bound, then it has the form \([k,l]\) and \(w_i>1\), \(b_i=b_kb_l\) with \(w_k=1\) and \(w_l=w_i-1\) holds.
tab
A partial structure constants table for \(A\). If \(tab[i][j][k]\) is bound, then it equals \(a_{i,j,k}\).
com
Optional. If bound, then it is a boolean indicating whether the algebra is assumed to be commutative.
Note that the ModIsom package provides several functions for working with and manipulating nilpotent tables; see below and the ModIsom documentation for more information.
‣ MultByTable ( T, v, w ) | ( operation ) |
Given a nilpotent table T and two coefficient vectors v and w representing elements of the algebra described by T, the function returns a coefficient vector for the product of these elements, again relative to the basis for the algebra given in T.
The following functions provide the main functionality of the ModIsomExt package.
‣ TableOfRadQuotient ( kG, n ) | ( operation ) |
Given a modular group algebra kG the function computes the class-n quotient of the augmentation ideal \(I(kG)\), i.e. \(I(kG)/I(kG)^{\textit{n}+1}\). The output is a nilpotent table for this quotient. Note that in addition to the standard entries of a nilpotent table it contains further entries for computational reasons. This allows do determine the class-n quotient of the augmentation ideal without computing the full augmentation ideal using NilpotentTableOfRad
as provided by the ModIsom package.
The components dim, fld, rnk, tab, wgs, wds remain unchanged from the ModIsom package. The additional components are commwords, powwords and pre. These new components contain additional information on precisely which basis of \(I(kG)/I(kG)^{\textit{n}+1}\) is used and what the result of multiplying basis elements is. We explain how users can understand how the basis looks and how they can multiply two elements in the algebra.
The dimension of \(I(kG)/I(kG)^{\textit{n}+1}\) is recorded in T.dim. The basis of \(I(kG)/I(kG)^{\textit{n}+1}\) is found as in the theory of Jennings, cf. [MM20]. The elements of \(G\) chosen to provide the basis of subsequent quotients of dimension subgroups are recorded in T.pre.jen.pcgs. Let us call these elements \(g_1,\ldots,g_m\). Note that \(|G| = p^m\). If now \(l\) is an integer smaller than T.dim+1, then the \(l\)-th elements of the basis of \(I(kG)/I(kG)^{\textit{n}+1}\) is \((g_1-1)^{e_1} \cdot \ldots (g_m-1)^{e_m}\) where [e_1,...,e_m] = T.pre.exps[l]. The weight of this element is recorded in T.wgs[l] and also T.pre.weights[l].
We consider the group \(G=SmallGroup(3^7, 19)\). The following example shows that \(I(kG)/I(kG)^9\) has dimension \(135\) and that the full augmentation ideal \(I(kG)\) has dimension \(2186\).
gap> G := SmallGroup(3^7, 19);; gap> kG := GroupRing(GF(3), G);; gap> T := TableOfRadQuotient(kG, 8);; gap> T.dim; 135 gap> T := TableOfRadQuotient(kG, 38);; gap> T.dim; 2186 gap> T := TableOfRadQuotient(kG, 39);; gap> T.dim; 2186
We next consider an example how the basis used can be recognized.
gap> G := DihedralGroup(8);; gap> kG := GroupRing(GF(2), G);; gap> T := TableOfRadQuotient(kG, 4);; gap> T.dim; 7 gap> pcgs := T.pre.jen.pcgs; Pcgs([ f1, f2, f3 ]) gap> List(pcgs, Order); [ 2, 4, 2 ] gap> pcgs[3] in Center(G); true gap> T.pre.exps{[1..7]}; [ [ 1, 0, 0 ], [ 0, 1, 0 ], [ 1, 1, 0 ], [ 0, 0, 1 ], [ 1, 0, 1 ], [ 0, 1, 1 ], [ 1, 1, 1 ]]
We conclude that \(I(kG)/I(kG)^5\) is \(7\)-dimensional and if we denote by \(a\) a reflection and by \(b\) a non-central rotation in \(G\), then the basis used by T is: \((a-1)\), \((b-1)\), \((a-1)(b-1)\), \((b^2-1)\), \((a-1)(b^2-1)\), \((b-1)(b^2-1)\), \((a-1)(b-1)(b^2-1)\). \( \\ \) Say continuing the previous example we want to multiply \((b-1)+(a-1)(b-1)+(a-1)(b^2-1)\) and \((a-1)+(b-1)+(b^2-1)\).
gap> v := Z(2)^0*[0,1,1,0,1,0,0]; [ 0*Z(2), Z(2)^0, Z(2)^0, 0*Z(2), Z(2)^0, 0*Z(2), 0*Z(2) ] gap> w := Z(2)^0*[1,1,0,1,0,0,0]; [ Z(2)^0, Z(2)^0, 0*Z(2), Z(2)^0, 0*Z(2), 0*Z(2), 0*Z(2) ] gap> MultByTable(T,v,w); [ 0*Z(2), 0*Z(2), Z(2)^0, 0*Z(2), Z(2)^0, 0*Z(2), 0*Z(2) ]
So the result is \((a-1)(b-1) + (a-1)(b^2-1)\).
‣ MIPBinSplit ( p, n, max, start, step, L ) | ( operation ) |
Given a list L of small group library ids or a list of groups of order p^n this functions checks isomorphism of the associated modular group algebras using canonical forms for the quotients of the augmentation ideals \(I(kG)\). The parameter max is an integer or false that determines the maximal quotients \(I(kG)/I(kG)^{\textit{max}}\) to be checked (if false is given as input, then the quotients are enlarged until non-isomorphic quotients are found or eventually the full augmentation ideal will be checked). The parameter start specifies which quotients \(I(kG)/I(kG)^{\textit{start}}\) are precomputed. The parameter step determines in which steps the quotients are enlarged if necessary during the isomorphism check.
The output is a record containing three entries: bins
contains all the groups, for which the non-isomorphism of the associated modular group algebras could not be determined; splits
contains all the groups, for which the associated group algebras were determined to be non-isomorphic (and the first non-isomorphic quotient); time
contains the time used for the computation (in milliseconds).
The groups \(G=SmallGroup(3^7, 19)\) and \(H=SmallGroup(3^7, 43)\) are in the same bin after using the group theoretical invariants. The following example shows \(I(kG)/I(kG)^6 \cong I(kH)/I(kH)^6\) and \(I(kG)/I(kG)^9 \not \cong I(kH)/I(kH)^9\).
gap> MIPBinSplit(3, 7, 5, 10, 5, [19,43]); rec( bins := [ [ 19, 43 ] ], splits := [ ], time := 1056 ) gap> MIPBinSplit(3, 7, false, 10, 5, [19,43]); rec( bins := [ ], splits := [ [ 8, [ 19, 43 ] ] ], time := 78920 )
generated by GAPDoc2HTML