##########################################################################
#72.maple                                                                #
#   This MAPLE code is designed to set up and run a single instance      #
#  of Shapiro's conjecture concerning real enumerative goemetry.         #
#                                                                        #
#  It treats the enumerative problem of 12 codimension 1 Schubert        #
#  hypersurfaces in G_{2,6}, each defined by a codimension 2-plane.      #  
#  There are 132 2-planes meeting 12 codimension 2 linear subspaces      #
#  of C^8.                                                               #
#                                                                        #
#   Computing drl Gr\"obner basis  (SINGULAR)  8175   seconds            #
#	                                                                 #
##########################################################################
interface(quiet=true):

with(linalg):

L := s -> matrix([
[s^8, 8*s^7,28*s^6,56*s^5,70*s^4,56*s^3,28*s^2, m , n ],
[s^7, 7*s^6,21*s^5,35*s^4,35*s^3,21*s^2, 7*s  , k , l ],
[s^6, 6*s^5,15*s^4,20*s^3,15*s^2, 6*s  ,  1   , i , j ],
[s^5, 5*s^4,10*s^3,10*s^2, 5*s  ,  1   ,  0   , g , h ],
[s^4, 4*s^3, 6*s^2, 4*s  ,  1   ,  0   ,  0   , e , f ],
[s^3, 3*s^2, 3*s  ,  1   ,  0   ,  0   ,  0   , c , d ],
[s^2, 2*s  ,  1   ,  0   ,  0   ,  0   ,  0   , a , b ],
[s  ,  1   ,  0   ,  0   ,  0   ,  0   ,  0   , 0 , 1 ],
[1  ,  0   ,  0   ,  0   ,  0   ,  0   ,  0   , 1 , 0 ]]):



lprint(`int t=timer;`);

lprint(`ring R = 0,(a,b,c,d,e,f,g,h,i,j,k,l,m,n), (dp(14));`);

Index:={1,2,3,4,5,6,7,8,9,10,11,12,13,14}:

equations:= {}:
for ii in Index do
equations:= equations union {det(L(ii))}:
od:


lprint(`print("interface(quiet=true):");`);
lprint(`print("with(linalg):");`);
lprint(`print("readlib(realroot):");`);
lprint(`print("");`);


lprint(`ideal I =`);
for ee in equations do
lprint(eval(ee),`,`);od;
lprint(`0;`);
lprint(`ideal G = std(I);`);
lprint(`dim(G);`);
lprint(`mult(G);`);
lprint(`timer-t;`);
lprint(`print(G);`);
lprint(`quit;`);


quit;