Fordham
    University

Finding equations of a genus 7 Riemann surface with 64 automorphisms

Magaard, Shaska, Shpectorov, and Völklein give tables of smooth Riemann surfaces of genus \( g \leq 10\) with large automorphism groups (that is, \( \# G > 4(g-1)\)). Their list is based on a computer search by Breuer.

Their table lists a genus 7 Riemann surface with automorphism group (64,41) in the GAP library of small groups. The quotient of this surface by its automorphism group has genus zero, and the quotient morphism is branched over three points with ramification indices (2,4,16).

We use GAP, Macaulay2, and Magma to compute equations of this curve. The main tools are the Eichler trace formula, black-box commands in GAP for obtaining matrix generators of a representation of a finite group having a specified character, and a partial computation of a flattening stratification using Gröbner bases in Macaulay2

Obtaining candidate polynomials in Magma and GAP

We use some Magma code written by David Swinarski during a visit to the University of Sydney in June/July 2011. Here is the file autcv10e.txt used below.
Magma V2.21-7     Wed May 25 2016 12:42:05 on Davids-MacBook-Pro-2 [Seed = 
1718936792]

+-------------------------------------------------------------------+
|       This copy of Magma has been made available through a        |
|                   generous initiative of the                      |
|                                                                   |
|                         Simons Foundation                         |
|                                                                   |
| covering U.S. Colleges, Universities, Nonprofit Research entities,|
|               and their students, faculty, and staff              |
+-------------------------------------------------------------------+

Type ? for help.  Type -D to quit.
> load "autcv10e.txt";
Loading "autcv10e.txt"
> G:=SmallGroup(64,41);
> G;
GrpPC : G of order 64 = 2^6
PC-Relations:
    G.1^2 = G.4, 
    G.3^2 = G.5, 
    G.5^2 = G.6, 
    G.2^G.1 = G.2 * G.3, 
    G.3^G.1 = G.3 * G.5, 
    G.3^G.2 = G.3 * G.5 * G.6, 
    G.4^G.2 = G.4 * G.6, 
    G.5^G.1 = G.5 * G.6, 
    G.5^G.2 = G.5 * G.6
> RunExample(G,7,[2,4,16]);
Set seed to 0.


Character Table of Group G
--------------------------


--------------------------------------------------------------
Class |   1  2  3  4  5  6  7  8  9  10  11 12  13  14  15  16
Size  |   1  1  2  8  2  2  8  8  8   2   2  4   4   4   4   4
Order |   1  2  2  2  4  4  4  4  4   8   8  8  16  16  16  16
--------------------------------------------------------------
p  =  2   1  1  1  1  2  2  3  3  2   5   5  5  10  10  11  11
--------------------------------------------------------------
X.1   +   1  1  1  1  1  1  1  1  1   1   1  1   1   1   1   1
X.2   +   1  1  1 -1  1  1 -1 -1 -1   1   1  1   1   1   1   1
X.3   +   1  1  1  1  1  1 -1 -1  1   1   1  1  -1  -1  -1  -1
X.4   +   1  1  1 -1  1  1  1  1 -1   1   1  1  -1  -1  -1  -1
X.5   0   1  1 -1  1  1 -1 -I  I -1  -1  -1  1   I  -I   I  -I
X.6   0   1  1 -1  1  1 -1  I -I -1  -1  -1  1  -I   I  -I   I
X.7   0   1  1 -1 -1  1 -1  I -I  1  -1  -1  1   I  -I   I  -I
X.8   0   1  1 -1 -1  1 -1 -I  I  1  -1  -1  1  -I   I  -I   I
X.9   +   2  2 -2  0  2 -2  0  0  0   2   2 -2   0   0   0   0
X.10  +   2  2  2  0  2  2  0  0  0  -2  -2 -2   0   0   0   0
X.11  +   2  2  2  0 -2 -2  0  0  0   0   0  0  Z2 -Z2 -Z2  Z2
X.12  0   2  2 -2  0 -2  2  0  0  0   0   0  0  Z3  Z3 -Z3 -Z3
X.13  +   2  2  2  0 -2 -2  0  0  0   0   0  0 -Z2  Z2  Z2 -Z2
X.14  0   2  2 -2  0 -2  2  0  0  0   0   0  0 -Z3 -Z3  Z3  Z3
X.15  0   4 -4  0  0  0  0  0  0  0  Z1 -Z1  0   0   0   0   0
X.16  0   4 -4  0  0  0  0  0  0  0 -Z1  Z1  0   0   0   0   0


Explanation of Character Value Symbols
--------------------------------------

# denotes algebraic conjugation, that is,
#k indicates replacing the root of unity w by w^k

I = RootOfUnity(4)

Z1     = (CyclotomicField(8: Sparse := true)) ! [ RationalField() | 0, -2, 0, -2
]

Z2     = (CyclotomicField(8: Sparse := true)) ! [ RationalField() | 0, -1, 0, 1 
]

Z3     = (CyclotomicField(8: Sparse := true)) ! [ RationalField() | 0, 1, 0, 1 ]


Conjugacy Classes of group G
----------------------------
[1]     Order 1       Length 1      
        Rep Id(G)

[2]     Order 2       Length 1      
        Rep G.6

[3]     Order 2       Length 2      
        Rep G.4

[4]     Order 2       Length 8      
        Rep G.2

[5]     Order 4       Length 2      
        Rep G.5

[6]     Order 4       Length 2      
        Rep G.4 * G.5

[7]     Order 4       Length 8      
        Rep G.1 * G.4

[8]     Order 4       Length 8      
        Rep G.1

[9]     Order 4       Length 8      
        Rep G.2 * G.4

[10]    Order 8       Length 2      
        Rep G.3 * G.4 * G.6

[11]    Order 8       Length 2      
        Rep G.3 * G.4

[12]    Order 8       Length 4      
        Rep G.3

[13]    Order 16      Length 4      
        Rep G.1 * G.2

[14]    Order 16      Length 4      
        Rep G.1 * G.2 * G.4 * G.5

[15]    Order 16      Length 4      
        Rep G.1 * G.2 * G.5

[16]    Order 16      Length 4      
        Rep G.1 * G.2 * G.4


Surface kernel generators:  [ G.2, G.1, G.1 * G.2 * G.4 * G.6 ]
Is hyperelliptic?  false
Is cyclic trigonal?  false
Multiplicities of irreducibles in relevant G-modules:
I_1      =[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ]
S_1      =[ 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0 ]
H^0(C,K) =[ 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0 ]
I_2      =[ 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1 ]
S_2      =[ 0, 0, 2, 0, 1, 1, 0, 0, 0, 2, 2, 0, 1, 1, 1, 2 ]
H^0(C,2K)=[ 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1 ]
I_3      =[ 0, 1, 1, 1, 1, 0, 2, 0, 3, 0, 1, 3, 1, 2, 3, 4 ]
S_3      =[ 0, 1, 1, 2, 1, 1, 3, 1, 4, 1, 2, 4, 1, 3, 5, 6 ]
H^0(C,3K)=[ 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 2, 2 ]
I2timesS1=[ 1, 2, 1, 1, 1, 0, 2, 0, 4, 0, 1, 4, 2, 2, 4, 5 ]
Is clearly not generated by quadrics? false
No subgroup found

RunExample(
    G: GrpPC : G,
    genus: 7,
    E: [ 2, 4, 16 ]
)
FindMatrixGenerators(
    G: GrpPC : G,
    genus: 7,
    T:   Character Table of Group G --------------------------   --...,
    CCL: Conjugacy Classes of group G ---------------------------- [1...,
    M: [ G.2, G.1, G.1 * G.2 * G.4 * G.6 ]
)
In file "autcv10e.txt", line 221, column 28:
>>       ags:=ActionGenerators(GModule(T[i]));
                              ^
Runtime error in 'ActionGenerators': Bad argument types
Argument types given: BoolElt

What does this error "No subgroup found" mean? From examining the code in autcv10e.txt that would have been run after printing the line "Is clearly not generated by quadrics? false" it seems that Magma gets an error when it tries to produce matrix generators of a representation having one of the characters \( \chi_8\), \( \chi_{14}\), or \( \chi_{15} \).

I obtained these matrix generators using GAP instead of Magma. Conveniently, GAP and Magma use the same generators for this group. (To check this, I checked that the GAP generators satisfy the Magma relations.)

gap> G:=SmallGroup(64,41);
<pc group of size 64 with 6 generators>
gap> G;
<pc group of size 64 with 6 generators>
gap> G.1^2*(G.4)^-1;
<identity> of ...
gap> G.3^2*(G.5)^-1;
<identity> of ...
gap> G.5^2*(G.6)^-1;
<identity> of ...
gap> G.2^G.1*(G.2*G.3)^-1;
<identity> of ...
gap> G.3^G.1*(G.3 * G.5)^-1;
<identity> of ...
gap> G.3^G.2*(G.3 * G.5 * G.6)^-1;
<identity> of ...
gap> (G.4^G.2)*(G.4*G.6)^-1;
<identity> of ...
gap> G.5^G.1*(G.5 * G.6)^-1;
<identity> of ...
gap> G.5^G.2*(G.5 * G.6)^-1;
<identity> of ...
gap> IrreducibleRepresentations(G);
[ Pcgs([ f1, f2, f3, f4, f5, f6 ]) -> [ [ [ 1 ] ], [ [ 1 ] ], [ [ 1 ] ], 
      [ [ 1 ] ], [ [ 1 ] ], [ [ 1 ] ] ], Pcgs([ f1, f2, f3, f4, f5, f6 ]) -> 
    [ [ [ -1 ] ], [ [ 1 ] ], [ [ 1 ] ], [ [ 1 ] ], [ [ 1 ] ], [ [ 1 ] ] ], 
  Pcgs([ f1, f2, f3, f4, f5, f6 ]) -> [ [ [ 1 ] ], [ [ -1 ] ], [ [ 1 ] ], 
      [ [ 1 ] ], [ [ 1 ] ], [ [ 1 ] ] ], Pcgs([ f1, f2, f3, f4, f5, f6 ]) -> 
    [ [ [ -1 ] ], [ [ -1 ] ], [ [ 1 ] ], [ [ 1 ] ], [ [ 1 ] ], [ [ 1 ] ] ], 
  Pcgs([ f1, f2, f3, f4, f5, f6 ]) -> [ [ [ E(4) ] ], [ [ 1 ] ], [ [ 1 ] ], 
      [ [ -1 ] ], [ [ 1 ] ], [ [ 1 ] ] ], Pcgs([ f1, f2, f3, f4, f5, f6 ]) -> 
    [ [ [ -E(4) ] ], [ [ 1 ] ], [ [ 1 ] ], [ [ -1 ] ], [ [ 1 ] ], [ [ 1 ] ] ],
  Pcgs([ f1, f2, f3, f4, f5, f6 ]) -> [ [ [ E(4) ] ], [ [ -1 ] ], [ [ 1 ] ], 
      [ [ -1 ] ], [ [ 1 ] ], [ [ 1 ] ] ], Pcgs([ f1, f2, f3, f4, f5, f6 ]) -> 
    [ [ [ -E(4) ] ], [ [ -1 ] ], [ [ 1 ] ], [ [ -1 ] ], [ [ 1 ] ], [ [ 1 ] ] ]
    , Pcgs([ f1, f2, f3, f4, f5, f6 ]) -> 
    [ [ [ 0, 1 ], [ 1, 0 ] ], [ [ 1, 0 ], [ 0, -1 ] ], 
      [ [ -1, 0 ], [ 0, -1 ] ], [ [ 1, 0 ], [ 0, 1 ] ], 
      [ [ 1, 0 ], [ 0, 1 ] ], [ [ 1, 0 ], [ 0, 1 ] ] ], 
  Pcgs([ f1, f2, f3, f4, f5, f6 ]) -> 
    [ [ [ 0, -1 ], [ 1, 0 ] ], [ [ 1, 0 ], [ 0, -1 ] ], 
      [ [ -1, 0 ], [ 0, -1 ] ], [ [ -1, 0 ], [ 0, -1 ] ], 
      [ [ 1, 0 ], [ 0, 1 ] ], [ [ 1, 0 ], [ 0, 1 ] ] ], 
  Pcgs([ f1, f2, f3, f4, f5, f6 ]) -> [ [ [ 0, E(8)^3 ], [ -E(8), 0 ] ], 
      [ [ 0, 1 ], [ 1, 0 ] ], [ [ E(4), 0 ], [ 0, -E(4) ] ], 
      [ [ 1, 0 ], [ 0, 1 ] ], [ [ -1, 0 ], [ 0, -1 ] ], 
      [ [ 1, 0 ], [ 0, 1 ] ] ], Pcgs([ f1, f2, f3, f4, f5, f6 ]) -> 
    [ [ [ 0, -E(8)^3 ], [ E(8), 0 ] ], [ [ 0, 1 ], [ 1, 0 ] ], 
      [ [ E(4), 0 ], [ 0, -E(4) ] ], [ [ 1, 0 ], [ 0, 1 ] ], 
      [ [ -1, 0 ], [ 0, -1 ] ], [ [ 1, 0 ], [ 0, 1 ] ] ], 
  Pcgs([ f1, f2, f3, f4, f5, f6 ]) -> [ [ [ 0, -E(8) ], [ -E(8)^3, 0 ] ], 
      [ [ 0, 1 ], [ 1, 0 ] ], [ [ E(4), 0 ], [ 0, -E(4) ] ], 
      [ [ -1, 0 ], [ 0, -1 ] ], [ [ -1, 0 ], [ 0, -1 ] ], 
      [ [ 1, 0 ], [ 0, 1 ] ] ], Pcgs([ f1, f2, f3, f4, f5, f6 ]) -> 
    [ [ [ 0, E(8) ], [ E(8)^3, 0 ] ], [ [ 0, 1 ], [ 1, 0 ] ], 
      [ [ E(4), 0 ], [ 0, -E(4) ] ], [ [ -1, 0 ], [ 0, -1 ] ], 
      [ [ -1, 0 ], [ 0, -1 ] ], [ [ 1, 0 ], [ 0, 1 ] ] ], 
  Pcgs([ f1, f2, f3, f4, f5, f6 ]) -> 
    [ 
      [ [ 0, 0, 0, 1 ], [ 0, 0, -E(8), 0 ], [ 0, -E(8)^3, 0, 0 ], 
          [ 1, 0, 0, 0 ] ], 
      [ [ 0, 1, 0, 0 ], [ 1, 0, 0, 0 ], [ 0, 0, 0, 1 ], [ 0, 0, 1, 0 ] ], 
      [ [ E(8), 0, 0, 0 ], [ 0, -E(8)^3, 0, 0 ], [ 0, 0, -E(8), 0 ], 
          [ 0, 0, 0, E(8)^3 ] ], 
      [ [ 1, 0, 0, 0 ], [ 0, -1, 0, 0 ], [ 0, 0, -1, 0 ], [ 0, 0, 0, 1 ] ], 
      [ [ E(4), 0, 0, 0 ], [ 0, -E(4), 0, 0 ], [ 0, 0, E(4), 0 ], 
          [ 0, 0, 0, -E(4) ] ], 
      [ [ -1, 0, 0, 0 ], [ 0, -1, 0, 0 ], [ 0, 0, -1, 0 ], [ 0, 0, 0, -1 ] ] ]
    , Pcgs([ f1, f2, f3, f4, f5, f6 ]) -> 
    [ 
      [ [ 0, 0, 0, 1 ], [ 0, 0, E(8), 0 ], [ 0, E(8)^3, 0, 0 ], [ 1, 0, 0, 0 ] 
         ], [ [ 0, 1, 0, 0 ], [ 1, 0, 0, 0 ], [ 0, 0, 0, 1 ], [ 0, 0, 1, 0 ] ]
        , 
      [ [ -E(8), 0, 0, 0 ], [ 0, E(8)^3, 0, 0 ], [ 0, 0, E(8), 0 ], 
          [ 0, 0, 0, -E(8)^3 ] ], 
      [ [ 1, 0, 0, 0 ], [ 0, -1, 0, 0 ], [ 0, 0, -1, 0 ], [ 0, 0, 0, 1 ] ], 
      [ [ E(4), 0, 0, 0 ], [ 0, -E(4), 0, 0 ], [ 0, 0, E(4), 0 ], 
          [ 0, 0, 0, -E(4) ] ], 
      [ [ -1, 0, 0, 0 ], [ 0, -1, 0, 0 ], [ 0, 0, -1, 0 ], [ 0, 0, 0, -1 ] ] 
     ] ]

Next, I loaded these matrices into Magma, computed the characters of the representations they give, and compared them to the order of the characters in the Magma character table.

> K<z_8>:=CyclotomicField(8);
> GL7K:=GeneralLinearGroup(7,K);
> rho:=function(G,K,L)
function>     n:=NumberOfRows(Matrix(L[1]));
function>     GLnK:=GeneralLinearGroup(n,K);
function>     L:=[GLnK!Matrix(L[i]): i in [1..#L]];
function>     return hom< G -> GLnK | L>;
function> end function;
> char:=function(CCLR,f)
function>     return [Trace(f(CCLR[i])) : i in [1..#CCLR]];
function> end function;
> LookupCharacter:=function(T,chi)
function>     for i:=1 to #T do
function|for>         if T[i] eq chi then
function|for|if>             return i;
function|for|if>         end if;
function|for>     end for;
function> end function;
> L:=[
> [ [ [ 1 ] ], [ [ 1 ] ], [ [ 1 ] ], [ [ 1 ] ], [ [ 1 ] ], [ [ 1 ] ] ],
> [ [ [ -1 ] ], [ [ 1 ] ], [ [ 1 ] ], [ [ 1 ] ], [ [ 1 ] ], [ [ 1 ] ] ], 
> [ [ [ 1 ] ], [ [ -1 ] ], [ [ 1 ] ], [ [ 1 ] ], [ [ 1 ] ], [ [ 1 ] ] ],
> [ [ [ -1 ] ], [ [ -1 ] ], [ [ 1 ] ], [ [ 1 ] ], [ [ 1 ] ], [ [ 1 ] ] ], 
> [ [ [ z_8^2 ] ], [ [ 1 ] ], [ [ 1 ]], [ [ -1 ] ], [ [ 1 ] ], [ [ 1 ] ] ],
> [ [ [ -z_8^2 ] ], [ [ 1 ] ], [ [ 1 ] ], [ [ -1 ] ], [ [ 1 ] ], [ [ 1 ] ] ],
> [ [ [ z_8^2 ] ], [ [ -1 ] ], [ [ 1 ]], [ [ -1 ] ], [ [ 1 ] ], [ [ 1 ] ] ],
> [ [ [ -z_8^2 ] ], [ [ -1 ] ], [ [ 1 ] ], [ [ -1 ] ], [ [ 1 ] ], [ [ 1 ] ] ], 
> [ [ [ 0, 1 ], [ 1, 0 ] ], [ [ 1, 0 ], [ 0, -1 ] ], [ [ -1, 0 ], [ 0, -1 ] ],\
 [ [ 1, 0 ], [ 0, 1 ] ], [ [ 1, 0 ], [ 0, 1 ] ], [ [ 1, 0 ], [ 0, 1 ] ] ], 
> [ [ [ 0, -1 ], [ 1, 0 ] ], [ [ 1, 0 ], [ 0, -1 ] ], [ [ -1, 0 ], [ 0, -1 ] ]\
, [ [ -1, 0 ], [ 0, -1 ] ], [ [ 1, 0 ], [ 0, 1 ] ], [ [ 1, 0 ], [ 0, 1 ] ] ],
> [ [ [ 0, z_8^3 ], [ -z_8, 0 ] ], [ [ 0, 1 ], [ 1, 0 ] ], [ [ z_8^2, 0 ], [ 0\
, -z_8^2 ] ], [ [ 1, 0 ], [ 0, 1 ] ], [ [ -1, 0 ], [ 0, -1 ] ], [ [ 1, 0 ], [ \
0, 1 ] ] ],
> [ [ [ 0, -z_8^3 ], [ z_8, 0 ] ], [ [ 0, 1 ], [ 1, 0 ] ], [ [ z_8^2, 0 ], [ 0\
, -z_8^2 ] ], [ [ 1, 0 ], [ 0, 1 ] ], [ [ -1, 0 ], [ 0, -1 ] ], [ [ 1, 0 ], [ \
0, 1 ] ] ], 
> [ [ [ 0, -z_8 ], [ -z_8^3, 0 ] ], [ [ 0, 1 ], [ 1, 0 ] ], [ [ z_8^2, 0 ], [ \
0, -z_8^2 ] ], [ [ -1, 0 ], [ 0, -1 ] ], [ [ -1, 0 ], [ 0, -1 ] ], [ [ 1, 0 ],\
 [ 0, 1 ] ] ], 
> [ [ [ 0, z_8 ], [ z_8^3, 0 ] ], [ [ 0, 1 ], [ 1, 0 ] ], [ [ z_8^2, 0 ], [ 0,\
 -z_8^2 ] ], [ [ -1, 0 ], [ 0, -1 ] ], [ [ -1, 0 ], [ 0, -1 ] ], [ [ 1, 0 ], [\
 0, 1 ] ] ], 
> [[[ 0, 0, 0, 1 ], [ 0, 0, -z_8, 0 ], [ 0, -z_8^3, 0, 0 ], [ 1, 0, 0, 0 ] ], \
[ [ 0, 1, 0, 0 ], [ 1, 0, 0, 0 ], [ 0, 0, 0, 1 ], [ 0, 0, 1, 0 ] ], [ [ z_8, 0\
, 0, 0 ], [ 0, -z_8^3, 0, 0 ], [ 0, 0, -z_8, 0 ],  [ 0, 0, 0, z_8^3 ] ], [ [ 1\
, 0, 0, 0 ], [ 0, -1, 0, 0 ], [ 0, 0, -1, 0 ], [ 0, 0, 0, 1 ] ], [ [ z_8^2, 0,\
 0, 0 ], [ 0, -z_8^2, 0, 0 ], [ 0, 0, z_8^2, 0 ],  [ 0, 0, 0, -z_8^2 ] ], [ [ \
-1, 0, 0, 0 ], [ 0, -1, 0, 0 ], [ 0, 0, -1, 0 ], [ 0, 0, 0, -1 ] ] ], 
> [[[ 0, 0, 0, 1 ], [ 0, 0, z_8, 0 ], [ 0, z_8^3, 0, 0 ], [ 1, 0, 0, 0 ]  ], [\
 [ 0, 1, 0, 0 ], [ 1, 0, 0, 0 ], [ 0, 0, 0, 1 ], [ 0, 0, 1, 0 ] ] , [ [ -z_8, \
0, 0, 0 ], [ 0, z_8^3, 0, 0 ], [ 0, 0, z_8, 0 ],  [ 0, 0, 0, -z_8^3 ] ], [ [ 1\
, 0, 0, 0 ], [ 0, -1, 0, 0 ], [ 0, 0, -1, 0 ], [ 0, 0, 0, 1 ] ], [ [ z_8^2, 0,\
 0, 0 ], [ 0, -z_8^2, 0, 0 ], [ 0, 0, z_8^2, 0 ],  [ 0, 0, 0, -z_8^2 ] ], [ [ \
-1, 0, 0, 0 ], [ 0, -1, 0, 0 ], [ 0, 0, -1, 0 ], [ 0, 0, 0, -1 ] ] ]
> ];
> G:=SmallGroup(64,41);
> CCLR:=Classes(G);
> CCLR:=[CCLR[i][3]: i in [1..#CCLR]];
> T:=CharacterTable(G);
> D:=[LookupCharacter(T,CharacterRing(G)!char(CCLR,rho(G,K,L[i]))) : i in [1..\
#L]];
> D;
[ 1, 3, 4, 2, 5, 6, 8, 7, 10, 9, 11, 13, 14, 12, 15, 16 ]

Thus, matrix generators for a representation with character \( \chi_8 + \chi_{14}+\chi_{15}\) are

> MG:=[Matrix([[z_8^2, 0, 0, 0, 0, 0, 0], [0, 0, -z_8, 0, 0, 0, 0], [0, -z_8^3\
, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 1], [0, 0, 0, 0, 0, -z_8, 0], [0, 0, 0, 0\
, -z_8^3, 0, 0], [0, 0, 0, 1, 0, 0, 0]]), Matrix([[-1, 0, 0, 0, 0, 0, 0], [0, \
0, 1, 0, 0, 0, 0], [0, 1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 1, 0, 0], [0, 0, 0, 1, \
0, 0, 0], [0, 0, 0, 0, 0, 0, 1], [0, 0, 0, 0, 0, 1, 0]]), Matrix([[1, 0, 0, 0,\
 0, 0, 0], [0, z_8^2, 0, 0, 0, 0, 0], [0, 0, -z_8^2, 0, 0, 0, 0], [0, 0, 0, z_\
8, 0, 0, 0], [0, 0, 0, 0, -z_8^3, 0, 0], [0, 0, 0, 0, 0, -z_8, 0], [0, 0, 0, 0\
, 0, 0, z_8^3]]), Matrix([[-1, 0, 0, 0, 0, 0, 0], [0, -1, 0, 0, 0, 0, 0], [0, \
0, -1, 0, 0, 0, 0], [0, 0, 0, 1, 0, 0, 0], [0, 0, 0, 0, -1, 0, 0], [0, 0, 0, 0\
, 0, -1, 0], [0, 0, 0, 0, 0, 0, 1]]), Matrix([[1, 0, 0, 0, 0, 0, 0], [0, -1, 0\
, 0, 0, 0, 0], [0, 0, -1, 0, 0, 0, 0], [0, 0, 0, z_8^2, 0, 0, 0], [0, 0, 0, 0,\
 -z_8^2, 0, 0], [0, 0, 0, 0, 0, z_8^2, 0], [0, 0, 0, 0, 0, 0, -z_8^2]]), Matri\
x([[1, 0, 0, 0, 0, 0, 0], [0, 1, 0, 0, 0, 0, 0], [0, 0, 1, 0, 0, 0, 0], [0, 0,\
 0, -1, 0, 0, 0], [0, 0, 0, 0, -1, 0, 0], [0, 0, 0, 0, 0, -1, 0], [0, 0, 0, 0,\
 0, 0, -1]])];
> MG;
[
    [ z_8^2      0      0      0      0      0      0]
    [     0      0   -z_8      0      0      0      0]
    [     0 -z_8^3      0      0      0      0      0]
    [     0      0      0      0      0      0      1]
    [     0      0      0      0      0   -z_8      0]
    [     0      0      0      0 -z_8^3      0      0]
    [     0      0      0      1      0      0      0],

    [-1  0  0  0  0  0  0]
    [ 0  0  1  0  0  0  0]
    [ 0  1  0  0  0  0  0]
    [ 0  0  0  0  1  0  0]
    [ 0  0  0  1  0  0  0]
    [ 0  0  0  0  0  0  1]
    [ 0  0  0  0  0  1  0],

    [     1      0      0      0      0      0      0]
    [     0  z_8^2      0      0      0      0      0]
    [     0      0 -z_8^2      0      0      0      0]
    [     0      0      0    z_8      0      0      0]
    [     0      0      0      0 -z_8^3      0      0]
    [     0      0      0      0      0   -z_8      0]
    [     0      0      0      0      0      0  z_8^3],

    [-1  0  0  0  0  0  0]
    [ 0 -1  0  0  0  0  0]
    [ 0  0 -1  0  0  0  0]
    [ 0  0  0  1  0  0  0]
    [ 0  0  0  0 -1  0  0]
    [ 0  0  0  0  0 -1  0]
    [ 0  0  0  0  0  0  1],

    [     1      0      0      0      0      0      0]
    [     0     -1      0      0      0      0      0]
    [     0      0     -1      0      0      0      0]
    [     0      0      0  z_8^2      0      0      0]
    [     0      0      0      0 -z_8^2      0      0]
    [     0      0      0      0      0  z_8^2      0]
    [     0      0      0      0      0      0 -z_8^2],

    [ 1  0  0  0  0  0  0]
    [ 0  1  0  0  0  0  0]
    [ 0  0  1  0  0  0  0]
    [ 0  0  0 -1  0  0  0]
    [ 0  0  0  0 -1  0  0]
    [ 0  0  0  0  0 -1  0]
    [ 0  0  0  0  0  0 -1]
]

The surface kernel generators from the first block of Magma code above were [ G.2, G.1, G.1 * G.2 * G.4 * G.6 ]. Thus we obtain the following matrix surface kernel generators:


> GL7K:=GeneralLinearGroup(7,K);
> MG:=[GL7K!MG[i] : i in [1..#MG]];
> rho:=hom< G -> GL7K | MG>;
> A:=rho(G.2);
> B:=rho(G.1);
> C:=rho(G.1 * G.2 * G.4*G.6);
> A;
[-1  0  0  0  0  0  0]
[ 0  0  1  0  0  0  0]
[ 0  1  0  0  0  0  0]
[ 0  0  0  0  1  0  0]
[ 0  0  0  1  0  0  0]
[ 0  0  0  0  0  0  1]
[ 0  0  0  0  0  1  0]
> B;
[ z_8^2      0      0      0      0      0      0]
[     0      0   -z_8      0      0      0      0]
[     0 -z_8^3      0      0      0      0      0]
[     0      0      0      0      0      0      1]
[     0      0      0      0      0   -z_8      0]
[     0      0      0      0 -z_8^3      0      0]
[     0      0      0      1      0      0      0]
> C;
[z_8^2     0     0     0     0     0     0]
[    0   z_8     0     0     0     0     0]
[    0     0 z_8^3     0     0     0     0]
[    0     0     0     0     0     1     0]
[    0     0     0     0     0     0   z_8]
[    0     0     0 z_8^3     0     0     0]
[    0     0     0     0     1     0     0]

We use these matrix surface kernel generators to obtain candidate polynomials.

> MatrixGens,MatrixSKG,Q,C:=RunGivenSKMatrixGenerators(64,7,[A,B,C]);
Set seed to 0.


Character Table of Group G
--------------------------


--------------------------------------------------------------
Class |   1  2  3  4  5  6  7  8  9  10  11 12  13  14  15  16
Size  |   1  1  2  8  2  2  8  8  8   2   2  4   4   4   4   4
Order |   1  2  2  2  4  4  4  4  4   8   8  8  16  16  16  16
--------------------------------------------------------------
p  =  2   1  1  1  1  2  2  2  3  3   6   6  6  10  11  11  10
--------------------------------------------------------------
X.1   +   1  1  1  1  1  1  1  1  1   1   1  1   1   1   1   1
X.2   +   1  1  1 -1  1  1 -1 -1 -1   1   1  1   1   1   1   1
X.3   +   1  1  1  1  1  1  1 -1 -1   1   1  1  -1  -1  -1  -1
X.4   +   1  1  1 -1  1  1 -1  1  1   1   1  1  -1  -1  -1  -1
X.5   0   1  1 -1 -1 -1  1  1 -I  I  -1  -1  1   I  -I   I  -I
X.6   0   1  1 -1 -1 -1  1  1  I -I  -1  -1  1  -I   I  -I   I
X.7   0   1  1 -1  1 -1  1 -1  I -I  -1  -1  1   I  -I   I  -I
X.8   0   1  1 -1  1 -1  1 -1 -I  I  -1  -1  1  -I   I  -I   I
X.9   +   2  2 -2  0 -2  2  0  0  0   2   2 -2   0   0   0   0
X.10  +   2  2  2  0  2  2  0  0  0  -2  -2 -2   0   0   0   0
X.11  0   2  2 -2  0  2 -2  0  0  0   0   0  0  Z2 -Z2 -Z2  Z2
X.12  +   2  2  2  0 -2 -2  0  0  0   0   0  0  Z3  Z3 -Z3 -Z3
X.13  +   2  2  2  0 -2 -2  0  0  0   0   0  0 -Z3 -Z3  Z3  Z3
X.14  0   2  2 -2  0  2 -2  0  0  0   0   0  0 -Z2  Z2  Z2 -Z2
X.15  0   4 -4  0  0  0  0  0  0  0  Z1 -Z1  0   0   0   0   0
X.16  0   4 -4  0  0  0  0  0  0  0 -Z1  Z1  0   0   0   0   0


Explanation of Character Value Symbols
--------------------------------------

# denotes algebraic conjugation, that is,
#k indicates replacing the root of unity w by w^k

I = RootOfUnity(4)

Z1     = (CyclotomicField(8: Sparse := true)) ! [ RationalField() | 0, -2, 0, -2
]

Z2     = (CyclotomicField(8: Sparse := true)) ! [ RationalField() | 0, 1, 0, 1 ]

Z3     = (CyclotomicField(8: Sparse := true)) ! [ RationalField() | 0, -1, 0, 1 
]


Conjugacy Classes of group G
----------------------------
[1]     Order 1       Length 1      
        Rep [1 0 0 0 0 0 0]
        [0 1 0 0 0 0 0]
        [0 0 1 0 0 0 0]
        [0 0 0 1 0 0 0]
        [0 0 0 0 1 0 0]
        [0 0 0 0 0 1 0]
        [0 0 0 0 0 0 1]

[2]     Order 2       Length 1      
        Rep [ 1  0  0  0  0  0  0]
        [ 0  1  0  0  0  0  0]
        [ 0  0  1  0  0  0  0]
        [ 0  0  0 -1  0  0  0]
        [ 0  0  0  0 -1  0  0]
        [ 0  0  0  0  0 -1  0]
        [ 0  0  0  0  0  0 -1]

[3]     Order 2       Length 2      
        Rep [-1  0  0  0  0  0  0]
        [ 0 -1  0  0  0  0  0]
        [ 0  0 -1  0  0  0  0]
        [ 0  0  0  1  0  0  0]
        [ 0  0  0  0 -1  0  0]
        [ 0  0  0  0  0 -1  0]
        [ 0  0  0  0  0  0  1]

[4]     Order 2       Length 8      
        Rep [-1  0  0  0  0  0  0]
        [ 0  0  1  0  0  0  0]
        [ 0  1  0  0  0  0  0]
        [ 0  0  0  0  1  0  0]
        [ 0  0  0  1  0  0  0]
        [ 0  0  0  0  0  0  1]
        [ 0  0  0  0  0  1  0]

[5]     Order 4       Length 2      
        Rep [   -1     0     0     0     0     0     0]
        [    0     1     0     0     0     0     0]
        [    0     0     1     0     0     0     0]
        [    0     0     0 -z^16     0     0     0]
        [    0     0     0     0 -z^16     0     0]
        [    0     0     0     0     0  z^16     0]
        [    0     0     0     0     0     0  z^16]

[6]     Order 4       Length 2      
        Rep [    1     0     0     0     0     0     0]
        [    0    -1     0     0     0     0     0]
        [    0     0    -1     0     0     0     0]
        [    0     0     0  z^16     0     0     0]
        [    0     0     0     0 -z^16     0     0]
        [    0     0     0     0     0  z^16     0]
        [    0     0     0     0     0     0 -z^16]

[7]     Order 4       Length 8      
        Rep [    1     0     0     0     0     0     0]
        [    0     0  z^16     0     0     0     0]
        [    0 -z^16     0     0     0     0     0]
        [    0     0     0     0  z^24     0     0]
        [    0     0     0   z^8     0     0     0]
        [    0     0     0     0     0     0  z^24]
        [    0     0     0     0     0   z^8     0]

[8]     Order 4       Length 8      
        Rep [-z^16     0     0     0     0     0     0]
        [    0     0   z^8     0     0     0     0]
        [    0  z^24     0     0     0     0     0]
        [    0     0     0     0     0     0     1]
        [    0     0     0     0     0   z^8     0]
        [    0     0     0     0  z^24     0     0]
        [    0     0     0     1     0     0     0]

[9]     Order 4       Length 8      
        Rep [ z^16     0     0     0     0     0     0]
        [    0     0  -z^8     0     0     0     0]
        [    0 -z^24     0     0     0     0     0]
        [    0     0     0     0     0     0     1]
        [    0     0     0     0     0  -z^8     0]
        [    0     0     0     0 -z^24     0     0]
        [    0     0     0     1     0     0     0]

[10]    Order 8       Length 2      
        Rep [   -1     0     0     0     0     0     0]
        [    0 -z^16     0     0     0     0     0]
        [    0     0  z^16     0     0     0     0]
        [    0     0     0  -z^8     0     0     0]
        [    0     0     0     0 -z^24     0     0]
        [    0     0     0     0     0  -z^8     0]
        [    0     0     0     0     0     0 -z^24]

[11]    Order 8       Length 2      
        Rep [   -1     0     0     0     0     0     0]
        [    0 -z^16     0     0     0     0     0]
        [    0     0  z^16     0     0     0     0]
        [    0     0     0   z^8     0     0     0]
        [    0     0     0     0  z^24     0     0]
        [    0     0     0     0     0   z^8     0]
        [    0     0     0     0     0     0  z^24]

[12]    Order 8       Length 4      
        Rep [    1     0     0     0     0     0     0]
        [    0  z^16     0     0     0     0     0]
        [    0     0 -z^16     0     0     0     0]
        [    0     0     0   z^8     0     0     0]
        [    0     0     0     0 -z^24     0     0]
        [    0     0     0     0     0  -z^8     0]
        [    0     0     0     0     0     0  z^24]

[13]    Order 16      Length 4      
        Rep [ z^16     0     0     0     0     0     0]
        [    0  -z^8     0     0     0     0     0]
        [    0     0 -z^24     0     0     0     0]
        [    0     0     0     0     0  z^16     0]
        [    0     0     0     0     0     0 -z^24]
        [    0     0     0  -z^8     0     0     0]
        [    0     0     0     0 -z^16     0     0]

[14]    Order 16      Length 4      
        Rep [-z^16     0     0     0     0     0     0]
        [    0  z^24     0     0     0     0     0]
        [    0     0   z^8     0     0     0     0]
        [    0     0     0     0     0 -z^24     0]
        [    0     0     0     0     0     0 -z^16]
        [    0     0     0  z^16     0     0     0]
        [    0     0     0     0  -z^8     0     0]

[15]    Order 16      Length 4      
        Rep [ z^16     0     0     0     0     0     0]
        [    0   z^8     0     0     0     0     0]
        [    0     0  z^24     0     0     0     0]
        [    0     0     0     0     0    -1     0]
        [    0     0     0     0     0     0  -z^8]
        [    0     0     0 -z^24     0     0     0]
        [    0     0     0     0    -1     0     0]

[16]    Order 16      Length 4      
        Rep [-z^16     0     0     0     0     0     0]
        [    0 -z^24     0     0     0     0     0]
        [    0     0  -z^8     0     0     0     0]
        [    0     0     0     0     0  -z^8     0]
        [    0     0     0     0     0     0     1]
        [    0     0     0     1     0     0     0]
        [    0     0     0     0 -z^24     0     0]


Is hyperelliptic?  false
Is cyclic trigonal?  false
Multiplicities of irreducibles in relevant G-modules:
I_1      =[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ]
S_1      =[ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0 ]
H^0(C,K) =[ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0 ]
I_2      =[ 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1 ]
S_2      =[ 0, 0, 2, 0, 0, 0, 1, 1, 0, 2, 0, 1, 2, 1, 1, 2 ]
H^0(C,2K)=[ 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1 ]
I_3      =[ 0, 1, 1, 1, 0, 2, 0, 1, 3, 0, 3, 1, 1, 2, 3, 4 ]
S_3      =[ 0, 1, 1, 2, 1, 3, 1, 1, 4, 1, 4, 1, 2, 3, 5, 6 ]
H^0(C,3K)=[ 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 2, 2 ]
I2timesS1=[ 1, 2, 1, 1, 0, 2, 0, 1, 4, 0, 4, 2, 1, 2, 4, 5 ]
Is clearly not generated by quadrics? false
Matrix Surface Kernel Generators:
Field K Cyclotomic Field of order 64 and degree 32
[
    [-1  0  0  0  0  0  0]
    [ 0  0  1  0  0  0  0]
    [ 0  1  0  0  0  0  0]
    [ 0  0  0  0  1  0  0]
    [ 0  0  0  1  0  0  0]
    [ 0  0  0  0  0  0  1]
    [ 0  0  0  0  0  1  0],

    [ z^16     0     0     0     0     0     0]
    [    0     0  -z^8     0     0     0     0]
    [    0 -z^24     0     0     0     0     0]
    [    0     0     0     0     0     0     1]
    [    0     0     0     0     0  -z^8     0]
    [    0     0     0     0 -z^24     0     0]
    [    0     0     0     1     0     0     0],

    [z^16    0    0    0    0    0    0]
    [   0  z^8    0    0    0    0    0]
    [   0    0 z^24    0    0    0    0]
    [   0    0    0    0    0    1    0]
    [   0    0    0    0    0    0  z^8]
    [   0    0    0 z^24    0    0    0]
    [   0    0    0    0    1    0    0]
]
Finding quadrics:
I2 contains a 1-dimensional subspace of CharacterRow 3
Dimension 2
Multiplicity 2
[
    x_0^2,
    x_1*x_2
]
I2 contains a 1-dimensional subspace of CharacterRow 8
Dimension 1
Multiplicity 1
[
    x_3*x_4 - z^8*x_5*x_6
]
I2 contains a 2-dimensional subspace of CharacterRow 10
Dimension 4
Multiplicity 2
[
    x_1^2,
    x_2^2,
    x_3*x_6,
    x_4*x_5
]
I2 contains a 2-dimensional subspace of CharacterRow 13
Dimension 4
Multiplicity 2
[
    x_0*x_1,
    x_0*x_2,
    x_3^2 + z^24*x_5^2,
    x_4^2 + z^24*x_6^2
]
I2 contains a 4-dimensional subspace of CharacterRow 16
Dimension 8
Multiplicity 2
[
    x_0*x_3,
    x_0*x_4,
    x_0*x_5,
    x_0*x_6,
    x_1*x_3,
    x_1*x_5,
    x_2*x_4,
    x_2*x_6
]

The output above shows that the ideal contains quadrics from five isotypical subspaces of \(S_2\). Note that the power of z\(=\zeta_{64}\) in our equations is always a multiple of 8. Therefore in the sequel we reduce these to z_8\(= \zeta_{8}\).

Also, by comparing the character table shown above to the first character table shown at the beginning, we see that Magma has reordered some of the rows and columns.

The first isotypical subspace, which corresponds to the character \( \chi_3\) in the second character table shown above, yields a polynomial of the form \[ c_1(x_0^2) + c_2(x_1 x_2) \] After scaling \(x_0\) we may assume that this polynomial is \(x_0^2+ x_0 x_1\).

The second isotypical subspace, which corresponds to the character \( \chi_8\) in the second character table shown above, yields the polynomial \[ x_3 x_4- \zeta_8 x_5x_6 \]

The third isotypical subspace corresponds to the character \( \chi_{10}\) in the second character table shown above. Note that the matrix surface kernel generators have a block diagonal form with blocks of size \(1 \times 1\), \(2 \times 2\), and \(4 \times 4\). We therefore let \( \operatorname{Span}\langle x_1^2,x_1x_2\rangle \) generate one copy of \(V_{10}\) and use the FindParallelBases function to find an ordered basis of \( \operatorname{Span}\langle x_3 x_6, x_4 x_5 \rangle \) such that the action of \(G\) is given by the same matrices relative to both ordered bases.

>GL7K:=Parent(MatrixGens[1]);
> MatrixG:=sub<GL7K | MatrixGens>;
> FindParallelBases(MatrixG,[Q[3][1],Q[3][2]],[Q[3][3],Q[3][4]]);
[x_3*x_6 + z^16*x_4*x_5]
[z^16*x_3*x_6 + x_4*x_5]
Therefore the candidate polynomials for this isotypical subspace are \[ \begin{array}{l} c_3 x_1^2 + c_4(x_3 x_6 + i x_4 x_5) \\ c_3 x_2^2 + c_4(i x_3 x_6 + x_4x_5) \end{array} \] After scaling \(x_1\) and \(x_2\) we may assume that \(c_3 = c_4 = 1\). Thus, we obtain \[ \begin{array}{l} x_1^2 + x_3 x_6 + i x_4 x_5 \\ x_2^2 + i x_3 x_6 + x_4x_5 \end{array} \]

The fourth isotypical subspace corresponds to the character \( \chi_{13}\) in the second character table shown above. We follow the same approach used for the previous isotypical subspace:

> FindParallelBases(MatrixG,[Q[4][1],Q[4][2]],[Q[4][3],Q[4][4]]);
[ x_3^2 + z^24*x_5^2]
[-x_4^2 - z^24*x_6^2]
This yields the candidate polynomials \[ \begin{array}{l} x_0 x_1 + c_6( x_3^2 + \zeta_8^3 x_5^2) \\ x_0 x_1 + c_6(-x_4^2 - \zeta_8^3 x_6^2) \end{array} \]

The fifth isotypical subspace corresponds to the character \( \chi_{16}\) in the second character table shown above. We follow the same approach used for the previous two isotypical subspaces:

> FindParallelBases(MatrixG,[Q[5][1],Q[5][2],Q[5][3],Q[5][4]],[Q[5][5],Q[5][6],Q[\
5][7],Q[5][8]]);
[-z^8*x_2*x_6]
[ z^8*x_1*x_5]
[    -x_2*x_4]
[     x_1*x_3]
This yields the candidate polynomials \[ \begin{array}{l} x_0 x_3+c_8(-\zeta_8 x_2 x_6)\\ x_0 x_4+c_8(\zeta_8 x_1 x_5)\\ x_0 x_5+c_8(-x_2 x_4)\\ x_0 x_6+c_8(x_1 x_3) \end{array} \]

For generic values of \(c_6\) and \( c_8\), the intersection of these 10 quadrics in \(\mathbb{P}^6\) is zero-dimensional. Here is an example showing this:
K<z_8>:=CyclotomicField(8);
> c_6:=1;      
> c_8:=1;
> i:=z_8^2;
> P6<x_0,x_1,x_2,x_3,x_4,x_5,x_6>:=ProjectiveSpace(K,6);
> X:=Scheme(P6,[
> x_0^2+x_1*x_2,
> x_3*x_4 - z_8*x_5*x_6,
> x_1^2+x_3*x_6 + i*x_4*x_5,
> x_2^2+i*x_3*x_6 + x_4*x_5,
> x_0*x_1+c_6*(x_3^2 + z_8^3*x_5^2),
> x_0*x_2+c_6*(-x_4^2 - z_8^3*x_6^2),
> x_0*x_3+c_8*(-z_8*x_2*x_6),
> x_0*x_4+c_8*(z_8*x_1*x_5),
> x_0*x_5+c_8*(-x_2*x_4),
> x_0*x_6+c_8*(x_1*x_3)
> ]);
> Dimension(X);
0
Therefore next we turn to Macaulay2 to compute part of a flattening stratification. (We switch software packages because, to the best of our knowledge, Magma will not compute Gröbner bases in a polynomial ring over a polynomial ring.)

Flattening stratification in Macaulay2

We compute the leading coefficients of the degree three elements in a Gröbner basis in Macaulay2 for the ideal generated by the candidate polynomials.
Macaulay2, version 1.7
with packages: ConwayPolynomials, Elimination, IntegralClosure, LLLBases,
               PrimaryDecomposition, ReesAlgebra, TangentCone

i1 : loadPackage("Cyclotomic");

i2 : K=cyclotomicField(8);

i3 : z_8=K_0;

i4 : i=z_8^2;

i5 : S=K[c_6,c_8,Degrees=>{0,0}];

i6 : T=S[x_0..x_6];

i7 : I=ideal({
     x_0^2+x_1*x_2,
     x_3*x_4 - z_8*x_5*x_6,
     x_1^2+x_3*x_6 + i*x_4*x_5,
     x_2^2+i*x_3*x_6 + x_4*x_5,
     x_0*x_1+c_6*(x_3^2 + z_8^3*x_5^2),
     x_0*x_2+c_6*(-x_4^2 - z_8^3*x_6^2),
     x_0*x_3+c_8*(-z_8*x_2*x_6),
     x_0*x_4+c_8*(z_8*x_1*x_5),
     x_0*x_5+c_8*(-x_2*x_4),
     x_0*x_6+c_8*(x_1*x_3)});

o7 : Ideal of T

i8 : L=flatten entries gens gb(I);

i9 : L3=select(L, i -> degree i == {3,0});

i10 : L3c=unique apply(L3, i -> leadCoefficient i);

i11 : for i from 0 to #L3c-1 do (print toString(L3c_i) << endl)
c_6*c_8+c_8^2
c_6+c_8
c_6*c_8^2+ww_8^3*c_6
c_8^2+ww_8^3
c_6*c_8-ww_8^3
1
c_6

This suggests setting \( c_6 = -c_8\). We repeat the Gröbner basis calculation with this choice:

Macaulay2, version 1.7
with packages: ConwayPolynomials, Elimination, IntegralClosure, LLLBases,
               PrimaryDecomposition, ReesAlgebra, TangentCone

i1 : loadPackage("Cyclotomic");

i2 : K=cyclotomicField(8);

i3 : z_8=K_0;

i4 : i=z_8^2;

i5 : S=K[c_6,Degrees=>{0}];

i6 : c_8=-c_6;

i7 : T=S[x_0..x_6];

i8 : I=ideal({
     x_0^2+x_1*x_2,
     x_3*x_4 - z_8*x_5*x_6,
     x_1^2+x_3*x_6 + i*x_4*x_5,
     x_2^2+i*x_3*x_6 + x_4*x_5,
     x_0*x_1+c_6*(x_3^2 + z_8^3*x_5^2),
     x_0*x_2+c_6*(-x_4^2 - z_8^3*x_6^2),
     x_0*x_3+c_8*(-z_8*x_2*x_6),
     x_0*x_4+c_8*(z_8*x_1*x_5),
     x_0*x_5+c_8*(-x_2*x_4),
     x_0*x_6+c_8*(x_1*x_3)});

o8 : Ideal of T

i9 : L=flatten entries gens gb(I);

i10 : L3=select(L, i -> degree i == {3,0});

i11 : L3c=unique apply(L3, i -> leadCoefficient i);

i12 : for i from 0 to #L3c-1 do (print toString(L3c_i) << endl)
c_6^3+ww_8^3*c_6
c_6^2+ww_8^3
1
c_6

We solve \(c_6^3+\zeta_8^3 c_6 = 0 \) to get \( c_6 = 0, \zeta_{16}^3, \zeta_{16}^7 \). In the next section we show that \( c_6 = \zeta_{16}^7, c_8 = -c_6\) yields equations of the desired curve.

Checking the equations in Magma

We check that the equations we obtained give a smooth genus 7 curve with the desired automorphism group.
> K<z_16>:=CyclotomicField(16);
> z_8:=z_16^2;
> i:=z_16^4;
> P6<x_0,x_1,x_2,x_3,x_4,x_5,x_6>:=ProjectiveSpace(K,6);
> X:=Scheme(P6,[
> x_0^2+x_1*x_2,
> x_3*x_4-z_8*x_5*x_6,
> x_1^2+x_3*x_6+i*x_4*x_5,
> x_2^2+i*x_3*x_6+x_4*x_5,
> x_0*x_1+z_16^7*x_3^2-z_16^5*x_5^2,
> x_0*x_2-z_16^7*x_4^2+z_16^5*x_6^2,
> x_0*x_3-z_16*x_2*x_6,
> x_0*x_4+z_16*x_1*x_5,
> x_0*x_5+z_16^7*x_2*x_4,
> x_0*x_6-z_16^7*x_1*x_3
> ]);
> Dimension(X);
1
> IsSingular(X);
false
> HilbertPolynomial(Ideal(X));
12*$.1 - 6
2
> A:=Matrix([
> [-1, 0, 0, 0, 0, 0, 0],
> [0, 0, 1, 0, 0, 0, 0],
> [0, 1, 0, 0, 0, 0, 0],
> [0, 0, 0, 0, 1, 0, 0],
> [0, 0, 0, 1, 0, 0, 0],
> [0, 0, 0, 0, 0, 0, 1],
> [0, 0, 0, 0, 0, 1, 0]
> ]);
> B:=Matrix([
> [z_8^2, 0, 0, 0, 0, 0, 0],
> [0, 0, -z_8, 0, 0, 0, 0],
> [0, -z_8^3, 0, 0, 0, 0, 0],
> [0, 0, 0, 0, 0, 0, 1],
> [0, 0, 0, 0, 0, -z_8, 0],
> [0, 0, 0, 0, -z_8^3, 0, 0],
> [0, 0, 0, 1, 0, 0, 0]
> ]);
> Order(A);
2
> Order(B);
4
> Order( (A*B)^-1);
16
> GL7K:=GeneralLinearGroup(7,K);
> IdentifyGroup(sub<GL7K | A,B>);
<64, 41>
> Automorphism(X,A);
Mapping from: Sch: X to Sch: X
with equations : 
-x_0
x_2
x_1
x_4
x_3
x_6
x_5
and inverse
-x_0
x_2
x_1
x_4
x_3
x_6
x_5
> Automorphism(X,B);
Mapping from: Sch: X to Sch: X
with equations : 
z_16^4*x_0
-z_16^6*x_2
-z_16^2*x_1
x_6
-z_16^6*x_5
-z_16^2*x_4
x_3
and inverse
-z_16^4*x_0
z_16^6*x_2
z_16^2*x_1
x_6
z_16^6*x_5
z_16^2*x_4
x_3

Computing the Betti table in Macaulay2

We use Macaulay2 to compute the Betti table of the ideal generated by these equations.
Macaulay2, version 1.7
with packages: ConwayPolynomials, Elimination, IntegralClosure, LLLBases,
               PrimaryDecomposition, ReesAlgebra, TangentCone

i1 : loadPackage("Cyclotomic");

i2 : K=cyclotomicField(16);

i3 : z_16=K_0;

i4 : z_8=z_16^2;

i5 : i=z_16^4;

i6 : S=K[x_0..x_6];

i7 : I=ideal({
     x_0^2+x_1*x_2,
     x_3*x_4-z_8*x_5*x_6,
     x_1^2+x_3*x_6+i*x_4*x_5,
     x_2^2+i*x_3*x_6+x_4*x_5,
     x_0*x_1+z_16^7*x_3^2-z_16^5*x_5^2,
     x_0*x_2-z_16^7*x_4^2+z_16^5*x_6^2,
     x_0*x_3-z_16*x_2*x_6,
     x_0*x_4+z_16*x_1*x_5,
     x_0*x_5+z_16^7*x_2*x_4,
     x_0*x_6-z_16^7*x_1*x_3
     });

o7 : Ideal of S

i8 : betti res I

            0  1  2  3  4 5
o8 = total: 1 10 19 19 10 1
         0: 1  .  .  .  . .
         1: . 10 16  3  . .
         2: .  .  3 16 10 .
         3: .  .  .  .  . 1

o8 : BettiTally
By [Schreyer], this Betti table implies that the curve has a \( g^{1}_{4} \) but no \( g^{2}_{6} \).