//Using the Chevalley-Weil formula: Two examples //Example 1: genus 5, <64,32> (Lev) K:=CyclotomicField(4); GL5K:=GeneralLinearGroup(5,K); A1:=DiagonalMatrix([1,1,1,-1,-1]); A2:=DiagonalMatrix([1,1,-1,1,-1]); A3:=DiagonalMatrix([1,-1,1,1,-1]); A4:=DiagonalMatrix([-1,1,1,1,-1]); Gmat:=elt; Mmat:=elt< GL5K | i,0,0,0,0, 0,0,0,0,1, 0,0,0,1,0, 0,1,0,0,0, 0,0,1,0,0>; G:=sub; Order(G); IdentifyGroup(G); //should get <64, 32> load "DGAv3.txt"; load "eichlerv3.txt"; load "CWv2.txt"; //find compatible surface kernel generators: SKG:=AllSurfaceKernelGenerators(G,[2,4,8]); #SKG; chi:=Character(GModule(G)); L:=[ chi eq Eichler(G,5,SKG[i]) : i in [1..128]]; L; /*Note: the last entry of L is "true." That means the last set of surface kernel generators is compatible with the matrices we have. */ M:=SKG[128]; M; T:=CharacterTable(G); CCL:=Classes(G); S:=PolynomialRing(K,5); CW(G,0,T,CCL,M,2,S); DecomposeGAction(G,S,2); //Conclusion: In this example, CW told us almost exactly what to pick //Example 2: genus 5, <192,181> (Tyler) K:=CyclotomicField(8); i:=z^2; sqrt2:=-z^3+z; GL5K:=GeneralLinearGroup(5,K); A1:=elt; A2:=elt; A3:=elt; E:=elt; H:=elt; T:=elt; G:=sub; Order(G); IdentifyGroup(G); //should get <192,181> load "DGAv3.txt"; load "eichlerv3.txt"; load "CWv2.txt"; //find compatible surface kernel generators: SKG:=AllSurfaceKernelGenerators(G,[2,3,8]); #SKG; chi:=Character(GModule(G)); L:=[ chi eq Eichler(G,5,SKG[i]) : i in [1..10]]; L; /* Note: the sixth entry of L is "true." That means the sixth set of surface kernel generators is compatible with the matrices we have. */ M:=SKG[6]; M; T:=CharacterTable(G); CCL:=Classes(G); S:=PolynomialRing(K,5); CW(G,0,T,CCL,M,2,S); DecomposeGAction(G,S,2); //Conclusion: We need to take a 3 dimensional subspace of Span {a^2,b^2,b*d,c^2,d^2,e^2} //How can we do this? S2,i2,B2:=GModule(G,S,2); S2; i2; B2; V6:=sub; E:=EndomorphismRing(V6); Image(E.1); Image(E.2); Image(E.3); Image(E.4); //Million dollar question: Will this always work???