/*Loading the lists of subgroups of the automorphism groups of Picard lattices of Del Pezzo surfaces of degree r, as found by ComputeSubgroupsWeyl.txt.*/ load "SubgroupsWeyl1"; load "SubgroupsWeyl2"; load "SubgroupsWeyl3"; load "SubgroupsWeyl4"; load "SubgroupsWeyl5"; load "SubgroupsWeyl6"; load "SubgroupsWeyl7"; //load "SubgroupsWeyl8"; /*Some general definitions*/ ZZ:=IntegerRing(); I := ScalarMatrix(9, ZZ!1); /*Computes the orders of the generators of the first cohomology group of the int-th subgroup in the record Sgroups of subgroups*/ firstcohgroup := function(int,Sgroups) Sg := Sgroups[int]`subgroup; if #Sg eq 1 then orders := []; else Sgt := MatrixGroup<9,ZZ | [Transpose(gen): gen in Generators(Sg)]>; H2:=GModule(Sgt); test := CohomologyGroup(CohomologyModule(Sgt,H2),1); orders := [#sub: x in Generators(test)]; end if; return orders; end function; /*Computes the orders of the generators of the first cohomology group of the int-th subgroup in the record Sgroups of subgroups*/ firstcohgrouplog := function(int,Sgroups,U) Sg := Sgroups[int]`subgroup; t := [Transpose(Submatrix(U^(-1)*gen*U,[1,3,4,5,6,7,8,9],[1,3,4,5,6,7,8,9])): gen in Generators(Sg) ]; H := MatrixGroup< 8, ZZ | t >; if #H eq 1 then orders := []; else H2:=GModule(H); test := CohomologyGroup(CohomologyModule(H,H2),1); orders := [#sub: x in Generators(test)]; end if; return orders; end function; v := [Vector([-3,1,0,0,0,0,0,0,0]), Vector([-3,1,1,0,0,0,0,0,0]), Vector([-3,1,1,1,0,0,0,0,0]), Vector([-3,1,1,1,1,0,0,0,0]), Vector([-3,1,1,1,1,1,0,0,0]), Vector([-3,1,1,1,1,1,1,0,0]), Vector([-3,1,1,1,1,1,1,1,0]), Vector([-3,1,1,1,1,1,1,1,1])]; /*Let r be 9-(the degree of the Del Pezzo surfaces)*/ for r:=1 to 7 do U:=I; U[2] := v[r]; U:=Transpose(U); /*Read subgroups of Weyl group*/ string := ("SubgroupsWeyl" cat IntegerToString(r,10)); Sgroups := eval(string); print "Number of subgroups:", #Sgroups; CohGroups := {* PowerSequence(PowerSequence(IntegerRing())) | *}; for i:=1 to #Sgroups do orders := firstcohgroup(i,Sgroups); orderslog := firstcohgrouplog(i,Sgroups,U); Include(~CohGroups,[orders,orderslog]); //if i mod 1000 eq 0 then // print i, orders; //end if; end for; print "Possible groups for 9-degree=r=",r," are:", CohGroups; end for;