##################################################################### # Calculations of all Grobner Cones for all Cells of yz-projections # ##################################################################### # We use the calculations of the 8 subdivisions of the TypeIICone done in "ComputingSubdivisionsCoefficientsyz.sage" in order to compute the possible Newton Subdivisions for the yz-projection on each of the 8 cells, and detect possible subdivisions that need to be considered. # The required functions are obtain by loading the following auxiliary file: load("macroslocalJInvariantComputationsAndPrimesWithBadReduction.sage") ######################################### # Generate the ambient ring and Weights # ######################################### AXs = [var("b5"),var("b4"),var("b34"), var("b2"), var("x"), var("y")] RX = PolynomialRing(QQ,AXs) KX = FractionField(RX); # We write the monomials (in the order of allLeadingTermsyz.keys()) monomialsInyz = [x^4, x^3*y, x^2*y^2, x*y^3, y^4, x^3, x^2*y, x*y^2, y^3, x^2, x*y, y^2, x,y] # We load the expected leading terms, computed in "ComputingSubdivisionsCoefficientsyz.sage" allLeadingTermsyz = load("allLeadingTermsyz.sobj") # We construct the polynomial in RX, compute it's Grobner fan and intersect with the cone we have for each known vertex. We start with the leading terms for sample points: PolysPerCell = {} for k in allLeadingTermsyz[0].keys(): PolysPerCell[k] = sum([RX(allLeadingTermsyz[j][k])*RX(monomialsInyz[j]) for j in allLeadingTermsyz.keys()]) # # We record the polynomials: # PolysPerCell # {0: b5^8*b4^8*b34^2*b2^2*x - b5^8*b4^8*b34^2*b2^2*y - 4*b5^7*b4^4*b34^2*b2^2*x^2 + 2*b5^7*b4^6*b34^2*x*y - b5^7*b4^6*b34^2*y^2 - b5^4*b4^4*b2^2*x^3 + 2*b5^6*b4^2*b2^2*x^2*y - 3*b5^6*b4^2*b2^2*x*y^2 + b5^6*b4^2*b2^2*y^3 + 2*b5^3*b2^2*x^4 - 2*b5^3*b4^2*x^3*y + 4*b5^5*x^2*y^2 - 4*b5^5*x*y^3 + b5^5*y^4, # 1: b5^8*b4^8*b34^2*b2^2*x - b5^8*b4^8*b34^2*b2^2*y - 4*b5^7*b4^4*b34^2*b2^2*x^2 + 2*b5^7*b4^6*b34^2*x*y - b5^7*b4^6*b34^2*y^2 - b5^4*b4^4*b34^2*x^3 - 6*b5^6*b4^2*b34^2*x^2*y + 9*b5^6*b4^2*b34^2*x*y^2 - 3*b5^6*b4^2*b34^2*y^3 + 2*b5^3*b34^2*x^4 - 2*b5^3*b4^2*x^3*y + 4*b5^5*x^2*y^2 - 4*b5^5*x*y^3 + b5^5*y^4, # 2: b5^8*b4^8*b34^2*b2^2*x - b5^8*b4^8*b34^2*b2^2*y - 4*b5^7*b4^4*b34^2*b2^2*x^2 + 2*b5^7*b4^6*b34^2*x*y - b5^7*b4^6*b34^2*y^2 + b5^6*b2^4*x^3 + 2*b5^6*b4^2*b2^2*x^2*y - 3*b5^6*b4^2*b2^2*x*y^2 + b5^6*b4^2*b2^2*y^3 + 2*b5^3*b2^2*x^4 - 2*b5^3*b4^2*x^3*y + 4*b5^5*x^2*y^2 - 4*b5^5*x*y^3 + b5^5*y^4, # 3: b5^8*b4^8*b34^2*b2^2*x - b5^8*b4^8*b34^2*b2^2*y - 4*b5^7*b4^4*b34^2*b2^2*x^2 + 2*b5^7*b4^6*b34^2*x*y - b5^7*b4^6*b34^2*y^2 + b5^6*b34^4*x^3 - 6*b5^6*b4^2*b34^2*x^2*y + 9*b5^6*b4^2*b34^2*x*y^2 - 3*b5^6*b4^2*b34^2*y^3 + 2*b5^3*b34^2*x^4 - 2*b5^3*b4^2*x^3*y + 4*b5^5*x^2*y^2 - 4*b5^5*x*y^3 + b5^5*y^4, # 4: b5^8*b4^8*b34^2*b2^2*x - b5^8*b4^8*b34^2*b2^2*y - 4*b5^7*b4^4*b34^2*b2^2*x^2 + 2*b5^7*b4^6*b34^2*x*y - b5^7*b4^6*b34^2*y^2 - b5^4*b4^4*b34^2*x^3 - b5^4*b4^4*b2^2*x^3 - 6*b5^6*b4^2*b34^2*x^2*y + 2*b5^6*b4^2*b2^2*x^2*y + 9*b5^6*b4^2*b34^2*x*y^2 - 3*b5^6*b4^2*b2^2*x*y^2 - 3*b5^6*b4^2*b34^2*y^3 + b5^6*b4^2*b2^2*y^3 + 2*b5^3*b34^2*x^4 + 2*b5^3*b2^2*x^4 - 2*b5^3*b4^2*x^3*y + 4*b5^5*x^2*y^2 - 4*b5^5*x*y^3 + b5^5*y^4, # 5: b5^8*b4^8*b34^2*b2^2*x - b5^8*b4^8*b34^2*b2^2*y - 4*b5^7*b4^4*b34^2*b2^2*x^2 + 2*b5^7*b4^6*b34^2*x*y - b5^7*b4^6*b34^2*y^2 - b5^4*b4^4*b34^2*x^3 + b5^6*b34^4*x^3 - 6*b5^6*b4^2*b34^2*x^2*y + 9*b5^6*b4^2*b34^2*x*y^2 - 3*b5^6*b4^2*b34^2*y^3 + 2*b5^3*b34^2*x^4 - 2*b5^3*b4^2*x^3*y + 4*b5^5*x^2*y^2 - 4*b5^5*x*y^3 + b5^5*y^4, # 6: b5^8*b4^8*b34^2*b2^2*x - b5^8*b4^8*b34^2*b2^2*y - 4*b5^7*b4^4*b34^2*b2^2*x^2 + 2*b5^7*b4^6*b34^2*x*y - b5^7*b4^6*b34^2*y^2 + b5^6*b34^4*x^3 + 2*b5^6*b34^2*b2^2*x^3 + b5^6*b2^4*x^3 - 6*b5^6*b4^2*b34^2*x^2*y + 2*b5^6*b4^2*b2^2*x^2*y + 9*b5^6*b4^2*b34^2*x*y^2 - 3*b5^6*b4^2*b2^2*x*y^2 - 3*b5^6*b4^2*b34^2*y^3 + b5^6*b4^2*b2^2*y^3 + 2*b5^3*b34^2*x^4 + 2*b5^3*b2^2*x^4 - 2*b5^3*b4^2*x^3*y + 4*b5^5*x^2*y^2 - 4*b5^5*x*y^3 + b5^5*y^4, # 7: b5^8*b4^8*b34^2*b2^2*x - b5^8*b4^8*b34^2*b2^2*y - 4*b5^7*b4^4*b34^2*b2^2*x^2 + 2*b5^7*b4^6*b34^2*x*y - b5^7*b4^6*b34^2*y^2 - b5^4*b4^4*b2^2*x^3 + b5^6*b2^4*x^3 + 2*b5^6*b4^2*b2^2*x^2*y - 3*b5^6*b4^2*b2^2*x*y^2 + b5^6*b4^2*b2^2*y^3 + 2*b5^3*b2^2*x^4 - 2*b5^3*b4^2*x^3*y + 4*b5^5*x^2*y^2 - 4*b5^5*x*y^3 + b5^5*y^4, # 8: b5^8*b4^8*b34^2*b2^2*x - b5^8*b4^8*b34^2*b2^2*y - 4*b5^7*b4^4*b34^2*b2^2*x^2 + 2*b5^7*b4^6*b34^2*x*y - b5^7*b4^6*b34^2*y^2 - b5^4*b4^4*b34^2*x^3 + b5^6*b34^4*x^3 - b5^4*b4^4*b2^2*x^3 + 2*b5^6*b34^2*b2^2*x^3 + b5^6*b2^4*x^3 - 6*b5^6*b4^2*b34^2*x^2*y + 2*b5^6*b4^2*b2^2*x^2*y + 9*b5^6*b4^2*b34^2*x*y^2 - 3*b5^6*b4^2*b2^2*x*y^2 - 3*b5^6*b4^2*b34^2*y^3 + b5^6*b4^2*b2^2*y^3 + 2*b5^3*b34^2*x^4 + 2*b5^3*b2^2*x^4 - 2*b5^3*b4^2*x^3*y + 4*b5^5*x^2*y^2 - 4*b5^5*x*y^3 + b5^5*y^4} # # We save the polynomials: # save(PolysPerCell, "expectedLTPolysPerCells.sobj") ################################# # Calculations of Grobner cones # ################################# # We compute the Grobner fans of each one of the 8 polynomials: # allGfm = {} # for k in PolysPerCell.keys(): # print str(k) # allGfm[k] = GrobnerFanComputations(fromPolynomialsToExtremalMonomials(PolysPerCell[k],RX)) # # We save the output: # save(allGfm, "allGfmCells0to8.sobj") # We load the saved values: allGfm =load("allGfmCells0to8.sobj") # We confirm that the dimensions are the expected ones: # print [allGfm[k].dim() for k in allGfm.keys()] # [6, 6, 6, 6, 6, 6, 6, 6, 6] # We record the f-vectors: # [allGfm[k].f_vector() for k in allGfm.keys()] # [[1, 10, 34, 52, 38, 12], # [1, 14, 46, 64, 42, 12], # [1, 13, 45, 65, 43, 12], # [1, 19, 59, 74, 43, 11], # [1, 15, 55, 84, 58, 16], # [1, 19, 61, 79, 47, 12], # [1, 19, 66, 91, 56, 14], # [1, 14, 47, 67, 45, 13], # [1, 19, 68, 98, 63, 16]] # We record the coordinates of the rays of the Grobner fans: # print [allGfm[k].rays() for k in allGfm.keys()] # [[[-71, 10, 64, 37, -31, 23], [-61, -7, 101, 47, -35, 19], [-22, 5, 32, 5, -2, -2], [-11, -11, 43, -11, -1, -1], [-1, -1, -1, 53, -5, -5], [1, 1, -53, 1, 5, 5], [7, -11, 7, 7, -1, -1], [23, 23, -85, -31, 7, 7], [43, -11, -11, -11, -1, -1], [55, 1, -53, -53, 59, -49]], [[-119, 43, 43, 43, -55, 53], [-71, 10, 37, 64, -31, 23], [-61, -7, 47, 101, -35, 19], [-55, -1, 17, 89, -23, 13], [-22, 5, 5, 32, -2, -2], [-11, -11, -11, 43, -1, -1], [-7, 11, -7, -7, 1, 1], [-1, -1, 53, -1, -5, -5], [0, 0, -1, 1, 0, 0], [1, 1, 1, -53, 5, 5], [7, -11, 7, 7, -1, -1], [23, 23, -85, -31, 7, 7], [43, -11, -11, -11, -1, -1], [55, 1, -53, -53, 59, -49]], [[-101, -47, 223, 115, -73, 35], [-71, 10, 64, 37, -31, 23], [-61, -7, 101, 47, -35, 19], [-41, -5, 67, 49, -25, 11], [-22, 5, 32, 5, -2, -2], [-11, -11, 43, -11, -1, -1], [-7, 11, -25, 11, 1, 1], [-5, 1, 7, 7, -1, -1], [-1, -55, 107, -1, -5, -5], [1, 1, -53, 1, 5, 5], [23, 23, -85, -31, 7, 7], [43, -11, -11, -11, -1, -1], [55, 1, -53, -53, 59, -49]], [[-163, 53, 107, 53, -59, 49], [-119, 43, 43, 43, -55, 53], [-101, -47, 115, 223, -73, 35], [-71, 10, 37, 64, -31, 23], [-65, 43, 43, -11, -1, -1], [-61, -7, 47, 101, -35, 19], [-55, -1, 17, 89, -23, 13], [-55, 17, 71, 17, -23, 13], [-41, -5, 49, 67, -25, 11], [-22, 5, 5, 32, -2, -2], [-11, -11, -11, 43, -1, -1], [-11, 7, 16, -2, -1, -1], [-5, 1, 7, 7, -1, -1], [-1, -55, -1, 107, -5, -5], [0, 0, -1, 1, 0, 0], [1, 1, 1, -53, 5, 5], [23, 23, -85, -31, 7, 7], [43, -11, -11, -11, -1, -1], [55, 1, -53, -53, 59, -49]], [[-143, 19, 127, 127, -67, 41], [-119, 43, 43, 43, -55, 53], [-47, 7, 25, 25, -19, 17], [-31, -4, 50, 50, -20, 7], [-7, 11, -7, -7, 1, 1], [-5, -5, -5, -5, 2, 2], [-5, 1, 7, 7, -1, -1], [-1, -1, -1, 53, -5, -5], [-1, -1, 53, -1, -5, -5], [1, 1, -53, 1, 5, 5], [1, 1, 1, -53, 5, 5], [7, -11, 7, 7, -1, -1], [23, 23, -85, -31, 7, 7], [43, -11, -11, -11, -1, -1], [55, 1, -53, -53, 59, -49]], [[-119, 43, 43, 43, -55, 53], [-101, -47, 115, 223, -73, 35], [-71, 10, 37, 64, -31, 23], [-61, -7, 47, 101, -35, 19], [-61, 20, 101, 20, -35, 19], [-55, -1, 17, 89, -23, 13], [-41, -5, 49, 67, -25, 11], [-23, 31, 85, -23, -7, -7], [-22, 5, 5, 32, -2, -2], [-11, -11, -11, 43, -1, -1], [-8, 1, 10, 7, -4, 2], [-7, 11, -7, -7, 1, 1], [-5, 1, 7, 7, -1, -1], [-1, -55, -1, 107, -5, -5], [0, 0, -1, 1, 0, 0], [1, 1, 1, -53, 5, 5], [23, 23, -85, -31, 7, 7], [43, -11, -11, -11, -1, -1], [55, 1, -53, -53, 59, -49]], [[-305, 73, 181, 181, -121, 95], [-163, 53, 107, 53, -59, 49], [-119, 43, 43, 43, -55, 53], [-109, 53, 53, 53, -5, -5], [-89, 1, 109, 109, -49, 23], [-65, 43, 43, -11, -1, -1], [-55, 17, 71, 17, -23, 13], [-47, 7, 25, 25, -19, 17], [-11, -5, 13, 13, -7, 5], [-11, 7, 16, -2, -1, -1], [-7, 11, -25, 11, 1, 1], [-5, -5, -5, -5, 2, 2], [-5, 1, 7, 7, -1, -1], [1, -53, 1, 1, 5, 5], [1, 1, -53, 1, 5, 5], [1, 1, 1, -53, 5, 5], [23, 23, -85, -31, 7, 7], [43, -11, -11, -11, -1, -1], [55, 1, -53, -53, 59, -49]], [[-101, -47, 223, 115, -73, 35], [-71, 10, 64, 37, -31, 23], [-61, -7, 101, 47, -35, 19], [-41, -5, 67, 49, -25, 11], [-22, 5, 32, 5, -2, -2], [-11, -11, 43, -11, -1, -1], [-8, 1, 7, 10, -4, 2], [-5, 1, 7, 7, -1, -1], [-1, -55, 107, -1, -5, -5], [1, 1, -53, 1, 5, 5], [11, 11, -43, 11, 1, 1], [23, 23, -85, -31, 7, 7], [43, -11, -11, -11, -1, -1], [55, 1, -53, -53, 59, -49]], [[-143, 19, 127, 127, -67, 41], [-119, 43, 43, 43, -55, 53], [-89, 1, 109, 109, -49, 23], [-61, 20, 101, 20, -35, 19], [-47, 7, 25, 25, -19, 17], [-23, 31, 85, -23, -7, -7], [-11, -5, 13, 13, -7, 5], [-8, 1, 7, 10, -4, 2], [-8, 1, 10, 7, -4, 2], [-7, 11, -7, -7, 1, 1], [-5, -5, -5, -5, 2, 2], [-5, 1, 7, 7, -1, -1], [1, -53, 1, 1, 5, 5], [1, 1, -53, 1, 5, 5], [1, 1, 1, -53, 5, 5], [11, 11, -43, 11, 1, 1], [23, 23, -85, -31, 7, 7], [43, -11, -11, -11, -1, -1], [55, 1, -53, -53, 59, -49]]] # print [allGfm[k].lineality_dim() for k in allGfm.keys()] # [1, 1, 1, 1, 1, 1, 1, 1, 1] # We record the maximal cones of the fans. Each cone is described by the indices of the extremal rays spanning these cones. Such indices refer to the list of 76 rays: MaximalConesAllGfm ={} for k in allGfm.keys(): MaximalConesAllGfm[k] = allGfm[k].maximal_cones().values()[0] # print MaximalConesAllGfm.values() # [[[0, 1, 2, 3, 4, 5, 6, 9], [0, 1, 2, 3, 7, 8], [0, 1, 2, 4, 7, 8], [0, 1, 3, 5, 6, 7, 8], [0, 1, 4, 5, 6, 7, 8], [0, 2, 3, 5, 7, 9], [0, 2, 4, 5, 7, 9], [1, 2, 3, 4, 6, 8, 9], [2, 3, 7, 8, 9], [2, 4, 7, 8, 9], [3, 5, 6, 7, 8, 9], [4, 5, 6, 7, 8, 9]], [[0, 1, 2, 3, 4, 6, 7, 8, 11, 12], [0, 1, 2, 3, 5, 8, 9, 10, 11, 12], [0, 1, 3, 4, 5, 6, 8, 9, 11, 13], [0, 1, 2, 7, 9, 10, 12], [0, 1, 4, 6, 7, 9, 13], [1, 2, 3, 4, 5, 7, 9, 10, 13], [0, 6, 7, 9, 11, 12], [2, 3, 4, 5, 7, 8, 10, 12, 13], [4, 6, 7, 8, 11, 12, 13], [7, 9, 10, 12, 13], [6, 7, 9, 11, 12, 13], [5, 8, 9, 10, 11, 12, 13]], [[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 12], [0, 1, 2, 3, 6, 9, 10, 11], [0, 1, 2, 5, 8, 9, 10, 11], [0, 2, 3, 4, 5, 7, 8, 11, 12], [1, 2, 3, 4, 6, 7, 10, 11], [1, 2, 4, 5, 10, 11], [0, 3, 6, 7, 8, 9, 11, 12], [1, 4, 5, 6, 9, 10, 12], [4, 6, 7, 10, 11, 12], [4, 5, 10, 11, 12], [5, 8, 9, 10, 11, 12], [6, 9, 10, 11, 12]], [[0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15, 18], [0, 1, 3, 4, 5, 6, 7, 8, 9, 11, 12, 14, 16, 17], [0, 1, 2, 3, 5, 7, 8, 15, 17], [0, 1, 3, 4, 6, 9, 10, 14, 15, 16, 18], [1, 2, 3, 5, 6, 10, 13, 14, 15, 16, 17], [0, 1, 4, 7, 11, 15, 16, 17], [2, 5, 6, 8, 9, 10, 12, 13, 14, 17, 18], [2, 7, 8, 11, 12, 13, 15, 17, 18], [4, 9, 11, 12, 14, 16, 17, 18], [4, 11, 15, 16, 17, 18], [10, 13, 14, 15, 16, 17, 18]], [[0, 1, 2, 3, 8, 10, 11, 13], [0, 1, 2, 3, 7, 9, 11, 12, 13], [0, 1, 2, 4, 6, 8, 10, 14], [0, 1, 2, 4, 6, 7, 9, 12, 14], [0, 1, 3, 4, 6, 7, 8, 12, 13], [0, 2, 3, 5, 6, 7, 9, 11, 14], [0, 2, 3, 5, 6, 8, 10, 11, 14], [1, 2, 4, 5, 9, 10, 12, 14], [1, 2, 5, 9, 10, 11, 12, 13], [1, 4, 8, 10, 12, 13], [3, 6, 7, 8, 11, 13, 14], [8, 10, 11, 13, 14], [4, 6, 7, 8, 12, 13, 14], [4, 8, 10, 12, 13, 14], [5, 9, 10, 11, 12, 13, 14], [7, 9, 11, 12, 13, 14]], [[0, 1, 2, 3, 4, 6, 10, 15, 17], [0, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 14, 16, 17], [0, 1, 2, 3, 5, 9, 13, 14, 15, 16, 17], [1, 2, 3, 5, 6, 8, 9, 10, 12, 13, 15, 18], [0, 2, 4, 7, 8, 10, 11, 12, 15, 18], [0, 2, 5, 8, 9, 11, 14, 15, 16, 18], [1, 3, 5, 6, 8, 9, 12, 13, 14, 17, 18], [0, 4, 7, 11, 15, 16, 17], [1, 4, 6, 7, 10, 12, 13, 15, 17, 18], [7, 8, 11, 12, 14, 16, 17, 18], [7, 11, 15, 16, 17, 18], [9, 13, 14, 15, 16, 17, 18]], [[0, 1, 2, 3, 4, 5, 6, 9, 10, 12, 16, 17], [0, 1, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 15, 18], [0, 1, 2, 4, 6, 7, 8, 15, 17], [0, 1, 2, 3, 5, 7, 10, 11, 14, 15, 16, 18], [0, 3, 4, 7, 8, 10, 11, 12, 13, 14, 18], [0, 2, 4, 7, 8, 10, 14, 16, 17], [1, 2, 5, 6, 9, 15, 16, 17], [2, 7, 8, 11, 13, 14, 15, 16, 17], [3, 5, 9, 10, 12, 16, 17, 18], [4, 6, 8, 9, 12, 13, 15, 17, 18], [4, 8, 10, 12, 13, 14, 17, 18], [5, 9, 15, 16, 17, 18], [10, 14, 16, 17, 18], [11, 13, 14, 15, 16, 17, 18]], [[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 13], [0, 1, 2, 3, 6, 9, 10, 11, 12], [0, 1, 2, 5, 8, 9, 11, 12], [0, 2, 3, 4, 5, 7, 8, 12, 13], [1, 2, 3, 4, 6, 7, 10, 11, 12], [1, 2, 4, 5, 11, 12], [0, 3, 6, 7, 8, 9, 10, 12, 13], [1, 4, 5, 9, 11, 13], [1, 4, 6, 7, 9, 10, 11, 13], [4, 5, 11, 12, 13], [4, 7, 10, 11, 12, 13], [5, 8, 9, 11, 12, 13], [9, 10, 11, 12, 13]], [[0, 1, 2, 3, 4, 6, 8, 14, 17], [0, 1, 2, 3, 5, 7, 8, 9, 11, 15, 16, 17], [0, 1, 3, 4, 5, 8, 9, 11, 14, 18], [0, 1, 2, 4, 6, 7, 13, 15, 16, 17], [0, 2, 4, 6, 7, 10, 11, 12, 13, 18], [0, 2, 4, 6, 8, 10, 11, 12, 14, 18], [0, 1, 4, 7, 9, 11, 13, 15, 16, 18], [1, 3, 5, 9, 14, 16, 17], [1, 4, 6, 10, 12, 13, 14, 16, 17], [1, 4, 9, 10, 13, 14, 16, 18], [2, 3, 5, 6, 8, 11, 12, 14, 17, 18], [2, 6, 7, 11, 12, 13, 15, 17, 18], [5, 9, 14, 16, 17, 18], [5, 9, 11, 15, 16, 17, 18], [10, 12, 13, 14, 16, 17, 18], [13, 15, 16, 17, 18]]] # We record the maximal cones in the Grobner Fans as a dictionary of polyhedral objects. The keys coincide with the indices of the maximal cones in the output of the Gfan computation. PolyMaximalConesAllGfmDict ={} for k in allGfm.keys(): PolyMaximalConesAllGfmDict[k] = MaximalCones(allGfm[k]) # save(PolyMaximalConesAllGfmDict, "PolyMaximalConesAllGfmDict.sobj") # [set([dim(x) for x in PolyMaximalConesAllGfmDict[k].values()]) for k in allGfm.keys()] # [{6}, {6}, {6}, {6}, {6}, {6}, {6}, {6}, {6}]