########################################################### # Finding the Extra Trees for the Apex of the Naruki cone # ########################################################### # If the valuation on the Cross functions are the expected ones, all anticanonical coordinates of the tropical nodes can be determined. If the valuations are higher than expected, some entries on the tropical nodes become unknown, yielding to jumps. For the apex, all Cross functions have unknown true valuations and their expected valuations are zero. # The goal of this script is to understand these differences and certify that the only case when we get extra lines is when all five Cross valuations agree. We go over all candidate quintuples of nodes and all lines and analyze the structure of the true and expected tropical matrices for the apex. We find a singular 3x3 minor every time a cross valuation has unexpected valuation. Note that the tropically collinearity of points does not guarantee that the resulting tropical line lies in the tropical cubic surface. # The tropical lines have 5 rays and after a shift, the center point is the origin. The script computes the shift and the 5 relevant Cross functions for each extra tropical lines. ############################################################################################### # Setting up the ambient rings with the W(E6) action, the Cross functions, and Tropical Nodes # ############################################################################################### # A list of variables d_1, ..., d_6 for the coefficients ds = [var("d%s"%i) for i in range(1,7)] # A list of variables E_1, ..., E_6 Es = [var("E%s"%i) for i in range(1,7)] # A list of variables F_12, ..., F_56 Fs = [var("F%s%s"%(i,j)) for i in range(1,7) for j in range(1,7) if i < j] # A list of variables G_1, ..., G_6 Gs = [var("G%s"%i) for i in range(1,7)] # A list of variables X_12, ..., X_65 Xs = [var("X%s%s"%(i,j)) for i in range(1,7) for j in range(1,7) if i != j] # A list of variables Y_123456, ..., Y_162534 Ys = [var("Y%s%s%s%s%s%s"%(i,j,k,l,m,n)) for i in range(1,7) for j in range(1,7) for k in range(1,7) for l in range(1,7) for m in range(1,7) for n in range(1,7) if i1: candidate = [cross for cross in cross_variables if cross in nonInf[x][0] if cross in nonInf[x][1]] print len(candidate) # We find the sign of 'candidate' and check that it is the same for all non-infinity entries on the column: if all([bool(len(YCRing(dict_cols[x][k] + candidate[0]).monomials()) == 1) for k in range(0,len(dict_cols[x])) if dict_cols[x][k]!=+Infinity]) == True: shiftPt[x] = -candidate[0] else: print 'we have at most one non-zero entry!' # Now that we have the shift, we can go back and change the matrix: newTropLink = [] for k in range(0,len(TropLinkExtremal[extremal])): newRow =dict() for x in TropLinkExtremal[extremal][0].keys(): if TropLinkExtremal[extremal][k][x] != +Infinity: newRow[x] = TropLinkExtremal[extremal][k][x] - shiftPt[x] else: newRow[x] = TropLinkExtremal[extremal][k][x] newTropLink.append(newRow) return (newTropLink, shiftPt) # We construct the shifts and the new matrices for the 27 cases: # newTropLinkExtremal = dict() # shiftPtExtremal = dict() # for extremal in extremalCurves: # print extremal # (newTropLinkExtremal[extremal], shiftPtExtremal[extremal]) = extractingTranslation(extremal, TropLinkExtremal) # # We safe the results: # save(shiftPtExtremal, 'Input/shiftPtExtremal.sobj') # save(newTropLinkExtremal, 'Input/newTropLinkExtremal.sobj') # We load the result shiftPtExtremal = load('Input/shiftPtExtremal.sobj') newTropLinkExtremal = load('Input/newTropLinkExtremal.sobj') ####################################### # Collecting relevant Cross functions # ####################################### # The following function takes a list of lists, and returns a list of all the elements (without repetitions) def combineLists(listOfList): newList = [] for x in listOfList: for y in x: newList.append(y) return list(set(newList)) # We collect the five Cross functions responsible for ruling out extra lines: crossesForExtremal = dict() for extremal in extremalCurves: listvalues = combineLists([newTropLinkExtremal[extremal][k].values() for k in range(0,len(newTropLinkExtremal[extremal]))]) crossesForExtremal[extremal] = sorted([YCRing(x) for x in listvalues if x != 0 if x != +Infinity], reverse=True) # # We record the output: # crossesForExtremal # {F45: [Cross3, Cross6, Cross76, Cross97, Cross117], # F36: [Cross37, Cross41, Cross97, Cross99, Cross120], # G4: [Cross21, Cross42, Cross76, Cross102, Cross123], # F13: [Cross0, Cross48, Cross78, Cross117, Cross132], # F12: [Cross9, Cross57, Cross81, Cross97, Cross114], # F56: [Cross48, Cross51, Cross57, Cross66, Cross129], # G5: [Cross3, Cross51, Cross90, Cross93, Cross111], # F26: [Cross12, Cross54, Cross63, Cross110, Cross117], # E4: [Cross3, Cross18, Cross28, Cross73, Cross126], # G1: [Cross0, Cross18, Cross24, Cross45, Cross114], # F16: [Cross6, Cross33, Cross45, Cross60, Cross69], # F46: [Cross30, Cross73, Cross81, Cross123, Cross132], # F14: [Cross12, Cross18, Cross42, Cross120, Cross129], # G6: [Cross33, Cross63, Cross66, Cross73, Cross99], # F34: [Cross28, Cross54, Cross57, Cross69, Cross102], # E5: [Cross15, Cross24, Cross66, Cross76, Cross87], # F15: [Cross24, Cross30, Cross41, Cross54, Cross111], # G3: [Cross15, Cross28, Cross37, Cross78, Cross105], # G2: [Cross9, Cross84, Cross87, Cross110, Cross126], # E6: [Cross37, Cross45, Cross51, Cross110, Cross123], # F24: [Cross21, Cross41, Cross48, Cross60, Cross126], # F23: [Cross6, Cross30, Cross84, Cross105, Cross129], # E1: [Cross9, Cross33, Cross42, Cross78, Cross111], # F35: [Cross12, Cross15, Cross60, Cross81, Cross90], # F25: [Cross69, Cross87, Cross93, Cross120, Cross132], # E3: [Cross0, Cross84, Cross90, Cross99, Cross102], # E2: [Cross21, Cross63, Cross93, Cross105, Cross114]} ######################################################################## # Finding the Eckardt quintics associated to the potential extra lines # ######################################################################## # We check that the 5 hyperplanes containing the corresponding extremal curve are labelling the 5 Eckardt quintics corresponding to each of the 5 essential Cross functions appearing in the 5x45 matrix of boundary points for each potential extra line. It suffices to work out the result for E1: Qd = PolynomialRing(QQ,ds) quintics = load('../../Yoshida/Scripts/Input/quintics.sobj') # crossesForExtremal[E1] # [Cross9, Cross111, Cross33, Cross42, Cross78] quintic9 = [f[0] for f in factor(basering(cross_to_yoshidas[Cross9][0].substitute(y_to_d))) if Qd(f[0]).total_degree() == 5][0] quintic111 = [f[0] for f in factor(basering(cross_to_yoshidas[Cross111][0].substitute(y_to_d))) if Qd(f[0]).total_degree() == 5][0] quintic33 = [f[0] for f in factor(basering(cross_to_yoshidas[Cross33][0].substitute(y_to_d))) if Qd(f[0]).total_degree() == 5][0] quintic42 = [f[0] for f in factor(basering(cross_to_yoshidas[Cross42][0].substitute(y_to_d))) if Qd(f[0]).total_degree() == 5][0] quintic78 = [f[0] for f in factor(basering(cross_to_yoshidas[Cross78][0].substitute(y_to_d))) if Qd(f[0]).total_degree() == 5][0] # We record the anticanonical triangles associated to the five quintics and confirm they correspond to the anticanonical coordinates vanishing along E1: # [key for key in quintics.keys() if Qd(quintics[key]) == Qd(-1*quintic9)] # [X12] # [key for key in quintics.keys() if Qd(quintics[key]) == Qd(quintic111)] # [X15] # [key for key in quintics.keys() if Qd(quintics[key]) == Qd(quintic33)] # [X16] # [key for key in quintics.keys() if Qd(quintics[key]) == Qd(quintic42)] # [X14] # [key for key in quintics.keys() if Qd(quintics[key]) == Qd(quintic78)] # [X13] ############################################## # Computing the non-singular tropical minors # ############################################## # By symmetry, it suffices to determine the non-singular minors for one extremal curve. We pick E1. We certify that the only way the five shifted boundary points become collinear is if the five associated Cross functions have equal valuations. This does not address the question of the tropical line lying on the tropical cubic surface Trop(X_Yos). # extremal = E1 # crossesForExtremal[extremal] # [Cross9, Cross33, Cross42, Cross78, Cross111] # The following function takes a list of numbers (rows) and a list of keys (cols) of the same size and builds a submatrix out of the dictionary dictmatrix. def buildMatrix(rows,cols, dictmatrix): # return # matrix(SR,[[dictmatrix[x][y] for y in cols] for x in rows]) return matrix(SR, [[dictmatrix[x][y] for y in cols] for x in rows]) # The following minors will ensure that all Cross valuations must have the same valuation for the shifted boundary points to be tropically collinear: ######################## # Cross 42 == Cross 78 # ######################## test = buildMatrix([0,1,3],[S(X16), S(X23), S(X24)], newTropLinkExtremal[E1]) # test # [ Cross42 0 +Infinity] # [ Cross78 +Infinity 0] # [+Infinity 0 0] ######################### # Cross 42 == Cross 111 # ######################### test = buildMatrix([0,3,4],[S(X16), S(X25), S(X24)], newTropLinkExtremal[E1]) # test # [ Cross42 0 +Infinity] # [+Infinity 0 0] # [ Cross111 +Infinity 0] ####################### # Cross 42 == Cross 9 # ####################### test = buildMatrix([0,2,3],[S(X16), S(X21), S(X24)], newTropLinkExtremal[E1]) # test # [ Cross42 0 +Infinity] # [ Cross9 +Infinity 0] # [+Infinity 0 0] ######################## # Cross 42 == Cross 33 # ######################## test = buildMatrix([0,3,4],[S(X15), S(X26), S(X34)], newTropLinkExtremal[E1]) # test # [ Cross42 0 +Infinity] # [ Cross33 +Infinity 0] # [+Infinity 0 0] # CONCLUSION: The points are tropically collinear if and only if all 5 Cross functions have the same valuation. The line will be the star tree on 5 rays, shifted by shiftPtExtremal, together with Cross9 on the relevant anticanonical points. ############################################################## # Comparing shift pt with center of associated boundary tree # ############################################################## # We compare the shift obtained with the shift used to describe the associated boundary metric tree and confirm that the shift agrees after projection to TP^9. The same will be true over TP^44. The new shift is nothing but the unique vertex of the extra tropical line. # We load the shift in TP^9: allShiftsOfTNodesApex = load('../../TropicalConvexHulls/Scripts/Input/allShiftsOfTNodesApex.sobj') # # We certify that all shift values are the same: # all([all([bool(shiftPtExtremal[extremal][x] == allShiftsOfTNodesApex[extremal][x]) for x in allShiftsOfTNodesApex[extremal].keys()]) for extremal in extremalCurves]) # True # We work with extremal E1, since the others will be obtained by symmetry: newShiftPtExtremal = dict() for extremal in extremalCurves: print extremal dictCrossExtremal = {cross: SR(var('a')) for cross in crossesForExtremal[extremal]} newShiftPtExtremal[extremal]=dict() for x in shiftPtExtremal[extremal].keys(): if bool(newTropLinkExtremal[extremal][0][x] != +Infinity) == True: newShiftPtExtremal[extremal][x] = SR(SR(shiftPtExtremal[extremal][x] + newTropLinkExtremal[extremal][0][x]).substitute(dictCrossExtremal)).substitute({SR(a):crossesForExtremal[extremal][0]}) else: newShiftPtExtremal[extremal][x] = SR(SR(shiftPtExtremal[extremal][x] + newTropLinkExtremal[extremal][1][x]).substitute(dictCrossExtremal)).substitute({SR(a):crossesForExtremal[extremal][0]}) # # We check that the entries of the true shift match those of allShiftsOfTNodesApex[extremal]: # all([all([bool(newShiftPtExtremal[extremal][x] == allShiftsOfTNodesApex[extremal][x]) for x in allShiftsOfTNodesApex[extremal].keys()]) for extremal in extremalCurves]) # True # We record the output: # for extremal in extremalCurves: # print str(extremal) # print newShiftPtExtremal[extremal] # print '' # E1 # {X31: -Cross0, X45: -Cross3, X26: -Cross63, X12: 0, Y142635: -Cross12, X35: -Cross90, X41: -Cross18, X24: -Cross21, Y123645: -Cross97, X51: -Cross24, X43: -Cross28, Y132546: -Cross132, X16: 0, X63: -Cross37, Y152436: -Cross41, X14: 0, X61: -Cross45, Y132456: -Cross48, X65: -Cross51, Y152634: -Cross54, Y123456: -Cross57, Y162345: -Cross6, X56: -Cross66, Y162534: -Cross69, X46: -Cross73, X54: -Cross76, X13: 0, Y123546: -Cross81, X32: -Cross84, X34: -Cross102, X53: -Cross15, X25: -Cross93, Y162435: -Cross60, X36: -Cross99, X52: -Cross87, X23: -Cross105, X62: -Cross110, X15: 0, X21: -Cross114, Y132645: -Cross117, Y142536: -Cross120, X64: -Cross123, X42: -Cross126, Y142356: -Cross129, Y152346: -Cross30} # E2 # {X31: -Cross0, X45: -Cross3, X26: 0, X12: -Cross9, Y142635: -Cross12, X35: -Cross90, X41: -Cross18, X24: 0, Y123645: -Cross97, X51: -Cross24, X43: -Cross28, Y132546: -Cross132, X16: -Cross33, X63: -Cross37, Y152436: -Cross41, X14: -Cross42, X61: -Cross45, Y132456: -Cross48, X65: -Cross51, Y152634: -Cross54, Y123456: -Cross57, Y162345: -Cross6, X56: -Cross66, Y162534: -Cross69, X46: -Cross73, X54: -Cross76, X13: -Cross78, Y123546: -Cross81, X32: -Cross84, X34: -Cross102, X53: -Cross15, X25: 0, Y162435: -Cross60, X36: -Cross99, X52: -Cross87, X23: 0, X62: -Cross110, X15: -Cross111, X21: 0, Y132645: -Cross117, Y142536: -Cross120, X64: -Cross123, X42: -Cross126, Y142356: -Cross129, Y152346: -Cross30} # E3 # {X31: 0, X45: -Cross3, X26: -Cross63, X12: -Cross9, Y142635: -Cross12, X35: 0, X41: -Cross18, X24: -Cross21, Y123645: -Cross97, X51: -Cross24, X43: -Cross28, Y132546: -Cross132, X16: -Cross33, X63: -Cross37, Y152436: -Cross41, X14: -Cross42, X61: -Cross45, Y132456: -Cross48, X65: -Cross51, Y152634: -Cross54, Y123456: -Cross57, Y162345: -Cross6, X56: -Cross66, Y162534: -Cross69, X46: -Cross73, X54: -Cross76, X13: -Cross78, Y123546: -Cross81, X32: 0, X34: 0, X53: -Cross15, X25: -Cross93, Y162435: -Cross60, X36: 0, X52: -Cross87, X23: -Cross105, X62: -Cross110, X15: -Cross111, X21: -Cross114, Y132645: -Cross117, Y142536: -Cross120, X64: -Cross123, X42: -Cross126, Y142356: -Cross129, Y152346: -Cross30} # E4 # {X31: -Cross0, X45: 0, X26: -Cross63, X12: -Cross9, Y142635: -Cross12, X35: -Cross90, X41: 0, X24: -Cross21, Y123645: -Cross97, X51: -Cross24, X43: 0, Y132546: -Cross132, X16: -Cross33, X63: -Cross37, Y152436: -Cross41, X14: -Cross42, X61: -Cross45, Y132456: -Cross48, X65: -Cross51, Y152634: -Cross54, Y123456: -Cross57, Y162345: -Cross6, X56: -Cross66, Y162534: -Cross69, X46: 0, X54: -Cross76, X13: -Cross78, Y123546: -Cross81, X32: -Cross84, X34: -Cross102, X53: -Cross15, X25: -Cross93, Y162435: -Cross60, X36: -Cross99, X52: -Cross87, X23: -Cross105, X62: -Cross110, X15: -Cross111, X21: -Cross114, Y132645: -Cross117, Y142536: -Cross120, X64: -Cross123, X42: 0, Y142356: -Cross129, Y152346: -Cross30} # E5 # {X31: -Cross0, X45: -Cross3, X26: -Cross63, X12: -Cross9, Y142635: -Cross12, X35: -Cross90, X41: -Cross18, X24: -Cross21, Y123645: -Cross97, X51: 0, X43: -Cross28, Y132546: -Cross132, X16: -Cross33, X63: -Cross37, Y152436: -Cross41, X14: -Cross42, X61: -Cross45, Y132456: -Cross48, X65: -Cross51, Y152634: -Cross54, Y123456: -Cross57, Y162345: -Cross6, X56: 0, Y162534: -Cross69, X46: -Cross73, X54: 0, X13: -Cross78, Y123546: -Cross81, X32: -Cross84, X34: -Cross102, X53: 0, X25: -Cross93, Y162435: -Cross60, X36: -Cross99, X52: 0, X23: -Cross105, X62: -Cross110, X15: -Cross111, X21: -Cross114, Y132645: -Cross117, Y142536: -Cross120, X64: -Cross123, X42: -Cross126, Y142356: -Cross129, Y152346: -Cross30} # E6 # {X31: -Cross0, X45: -Cross3, X26: -Cross63, X12: -Cross9, Y142635: -Cross12, X35: -Cross90, X41: -Cross18, X24: -Cross21, Y123645: -Cross97, X51: -Cross24, X43: -Cross28, Y132546: -Cross132, X16: -Cross33, X63: 0, Y152436: -Cross41, X14: -Cross42, X61: 0, Y132456: -Cross48, X65: 0, Y152634: -Cross54, Y123456: -Cross57, Y162345: -Cross6, X56: -Cross66, Y162534: -Cross69, X46: -Cross73, X54: -Cross76, X13: -Cross78, Y123546: -Cross81, X32: -Cross84, X34: -Cross102, X53: -Cross15, X25: -Cross93, Y162435: -Cross60, X36: -Cross99, X52: -Cross87, X23: -Cross105, X62: 0, X15: -Cross111, X21: -Cross114, Y132645: -Cross117, Y142536: -Cross120, X64: 0, X42: -Cross126, Y142356: -Cross129, Y152346: -Cross30} # F12 # {X31: -Cross0, X45: -Cross3, X26: -Cross63, X12: 0, Y142635: -Cross12, X35: -Cross90, X41: -Cross18, X24: -Cross21, Y123645: 0, X51: -Cross24, X43: -Cross28, Y132546: -Cross132, X16: -Cross33, X63: -Cross37, Y152436: -Cross41, X14: -Cross42, X61: -Cross45, Y132456: -Cross48, X65: -Cross51, Y152634: -Cross54, Y123456: 0, Y162345: -Cross6, X56: -Cross66, Y162534: -Cross69, X46: -Cross73, X54: -Cross76, X13: -Cross78, Y123546: 0, X32: -Cross84, X34: -Cross102, X53: -Cross15, X25: -Cross93, Y162435: -Cross60, X36: -Cross99, X52: -Cross87, X23: -Cross105, X62: -Cross110, X15: -Cross111, X21: 0, Y132645: -Cross117, Y142536: -Cross120, X64: -Cross123, X42: -Cross126, Y142356: -Cross129, Y152346: -Cross30} # F13 # {X31: 0, X45: -Cross3, X26: -Cross63, X12: -Cross9, Y142635: -Cross12, X35: -Cross90, X41: -Cross18, X24: -Cross21, Y123645: -Cross97, X51: -Cross24, X43: -Cross28, Y132546: 0, X16: -Cross33, X63: -Cross37, Y152436: -Cross41, X14: -Cross42, X61: -Cross45, Y132456: 0, X65: -Cross51, Y152634: -Cross54, Y123456: -Cross57, Y162345: -Cross6, X56: -Cross66, Y162534: -Cross69, X46: -Cross73, X54: -Cross76, X13: 0, Y123546: -Cross81, X32: -Cross84, X34: -Cross102, X53: -Cross15, X25: -Cross93, Y162435: -Cross60, X36: -Cross99, X52: -Cross87, X23: -Cross105, X62: -Cross110, X15: -Cross111, X21: -Cross114, Y132645: 0, Y142536: -Cross120, X64: -Cross123, X42: -Cross126, Y142356: -Cross129, Y152346: -Cross30} # F14 # {X31: -Cross0, X45: -Cross3, X26: -Cross63, X12: -Cross9, Y142635: 0, X35: -Cross90, X41: 0, X24: -Cross21, Y123645: -Cross97, X51: -Cross24, X43: -Cross28, Y132546: -Cross132, X16: -Cross33, X63: -Cross37, Y152436: -Cross41, X14: 0, X61: -Cross45, Y132456: -Cross48, X65: -Cross51, Y152634: -Cross54, Y123456: -Cross57, Y162345: -Cross6, X56: -Cross66, Y162534: -Cross69, X46: -Cross73, X54: -Cross76, X13: -Cross78, Y123546: -Cross81, X32: -Cross84, X34: -Cross102, X53: -Cross15, X25: -Cross93, Y162435: -Cross60, X36: -Cross99, X52: -Cross87, X23: -Cross105, X62: -Cross110, X15: -Cross111, X21: -Cross114, Y132645: -Cross117, Y142536: 0, X64: -Cross123, X42: -Cross126, Y142356: 0, Y152346: -Cross30} # F15 # {X31: -Cross0, X45: -Cross3, X26: -Cross63, X12: -Cross9, Y142635: -Cross12, X35: -Cross90, X41: -Cross18, X24: -Cross21, Y123645: -Cross97, X51: 0, X43: -Cross28, Y132546: -Cross132, X16: -Cross33, X63: -Cross37, Y152436: 0, X14: -Cross42, X61: -Cross45, Y132456: -Cross48, X65: -Cross51, Y152634: 0, Y123456: -Cross57, Y162345: -Cross6, X56: -Cross66, Y162534: -Cross69, X46: -Cross73, X54: -Cross76, X13: -Cross78, Y123546: -Cross81, X32: -Cross84, X34: -Cross102, X53: -Cross15, X25: -Cross93, Y162435: -Cross60, X36: -Cross99, X52: -Cross87, X23: -Cross105, X62: -Cross110, X15: 0, X21: -Cross114, Y132645: -Cross117, Y142536: -Cross120, X64: -Cross123, X42: -Cross126, Y142356: -Cross129, Y152346: 0} # F16 # {X31: -Cross0, X45: -Cross3, X26: -Cross63, X12: -Cross9, Y142635: -Cross12, X35: -Cross90, X41: -Cross18, X24: -Cross21, Y123645: -Cross97, X51: -Cross24, X43: -Cross28, Y132546: -Cross132, X16: 0, X63: -Cross37, Y152436: -Cross41, X14: -Cross42, X61: 0, Y132456: -Cross48, X65: -Cross51, Y152634: -Cross54, Y123456: -Cross57, Y162345: 0, X56: -Cross66, Y162534: 0, X46: -Cross73, X54: -Cross76, X13: -Cross78, Y123546: -Cross81, X32: -Cross84, X34: -Cross102, X53: -Cross15, X25: -Cross93, Y162435: 0, X36: -Cross99, X52: -Cross87, X23: -Cross105, X62: -Cross110, X15: -Cross111, X21: -Cross114, Y132645: -Cross117, Y142536: -Cross120, X64: -Cross123, X42: -Cross126, Y142356: -Cross129, Y152346: -Cross30} # F23 # {X31: -Cross0, X45: -Cross3, X26: -Cross63, X12: -Cross9, Y142635: -Cross12, X35: -Cross90, X41: -Cross18, X24: -Cross21, Y123645: -Cross97, X51: -Cross24, X43: -Cross28, Y132546: -Cross132, X16: -Cross33, X63: -Cross37, Y152436: -Cross41, X14: -Cross42, X61: -Cross45, Y132456: -Cross48, X65: -Cross51, Y152634: -Cross54, Y123456: -Cross57, Y162345: 0, X56: -Cross66, Y162534: -Cross69, X46: -Cross73, X54: -Cross76, X13: -Cross78, Y123546: -Cross81, X32: 0, X34: -Cross102, X53: -Cross15, X25: -Cross93, Y162435: -Cross60, X36: -Cross99, X52: -Cross87, X23: 0, X62: -Cross110, X15: -Cross111, X21: -Cross114, Y132645: -Cross117, Y142536: -Cross120, X64: -Cross123, X42: -Cross126, Y142356: 0, Y152346: 0} # F24 # {X31: -Cross0, X45: -Cross3, X26: -Cross63, X12: -Cross9, Y142635: -Cross12, X35: -Cross90, X41: -Cross18, X24: 0, Y123645: -Cross97, X51: -Cross24, X43: -Cross28, Y132546: -Cross132, X16: -Cross33, X63: -Cross37, Y152436: 0, X14: -Cross42, X61: -Cross45, Y132456: 0, X65: -Cross51, Y152634: -Cross54, Y123456: -Cross57, Y162345: -Cross6, X56: -Cross66, Y162534: -Cross69, X46: -Cross73, X54: -Cross76, X13: -Cross78, Y123546: -Cross81, X32: -Cross84, X34: -Cross102, X53: -Cross15, X25: -Cross93, Y162435: 0, X36: -Cross99, X52: -Cross87, X23: -Cross105, X62: -Cross110, X15: -Cross111, X21: -Cross114, Y132645: -Cross117, Y142536: -Cross120, X64: -Cross123, X42: 0, Y142356: -Cross129, Y152346: -Cross30} # F25 # {X31: -Cross0, X45: -Cross3, X26: -Cross63, X12: -Cross9, Y142635: -Cross12, X35: -Cross90, X41: -Cross18, X24: -Cross21, Y123645: -Cross97, X51: -Cross24, X43: -Cross28, Y132546: 0, X16: -Cross33, X63: -Cross37, Y152436: -Cross41, X14: -Cross42, X61: -Cross45, Y132456: -Cross48, X65: -Cross51, Y152634: -Cross54, Y123456: -Cross57, Y162345: -Cross6, X56: -Cross66, Y162534: 0, X46: -Cross73, X54: -Cross76, X13: -Cross78, Y123546: -Cross81, X32: -Cross84, X34: -Cross102, X53: -Cross15, X25: 0, Y162435: -Cross60, X36: -Cross99, X52: 0, X23: -Cross105, X62: -Cross110, X15: -Cross111, X21: -Cross114, Y132645: -Cross117, Y142536: 0, X64: -Cross123, X42: -Cross126, Y142356: -Cross129, Y152346: -Cross30} # F26 # {X31: -Cross0, X45: -Cross3, X26: 0, X12: -Cross9, Y142635: 0, X35: -Cross90, X41: -Cross18, X24: -Cross21, Y123645: -Cross97, X51: -Cross24, X43: -Cross28, Y132546: -Cross132, X16: -Cross33, X63: -Cross37, Y152436: -Cross41, X14: -Cross42, X61: -Cross45, Y132456: -Cross48, X65: -Cross51, Y152634: 0, Y123456: -Cross57, Y162345: -Cross6, X56: -Cross66, Y162534: -Cross69, X46: -Cross73, X54: -Cross76, X13: -Cross78, Y123546: -Cross81, X32: -Cross84, X34: -Cross102, X53: -Cross15, X25: -Cross93, Y162435: -Cross60, X36: -Cross99, X52: -Cross87, X23: -Cross105, X62: 0, X15: -Cross111, X21: -Cross114, Y132645: 0, Y142536: -Cross120, X64: -Cross123, X42: -Cross126, Y142356: -Cross129, Y152346: -Cross30} # F34 # {X31: -Cross0, X45: -Cross3, X26: -Cross63, X12: -Cross9, Y142635: -Cross12, X35: -Cross90, X41: -Cross18, X24: -Cross21, Y123645: -Cross97, X51: -Cross24, X43: 0, Y132546: -Cross132, X16: -Cross33, X63: -Cross37, Y152436: -Cross41, X14: -Cross42, X61: -Cross45, Y132456: -Cross48, X65: -Cross51, Y152634: 0, Y123456: 0, Y162345: -Cross6, X56: -Cross66, Y162534: 0, X46: -Cross73, X54: -Cross76, X13: -Cross78, Y123546: -Cross81, X32: -Cross84, X34: 0, X53: -Cross15, X25: -Cross93, Y162435: -Cross60, X36: -Cross99, X52: -Cross87, X23: -Cross105, X62: -Cross110, X15: -Cross111, X21: -Cross114, Y132645: -Cross117, Y142536: -Cross120, X64: -Cross123, X42: -Cross126, Y142356: -Cross129, Y152346: -Cross30} # F35 # {X31: -Cross0, X45: -Cross3, X26: -Cross63, X12: -Cross9, Y142635: 0, X35: 0, X41: -Cross18, X24: -Cross21, Y123645: -Cross97, X51: -Cross24, X43: -Cross28, Y132546: -Cross132, X16: -Cross33, X63: -Cross37, Y152436: -Cross41, X14: -Cross42, X61: -Cross45, Y132456: -Cross48, X65: -Cross51, Y152634: -Cross54, Y123456: -Cross57, Y162345: -Cross6, X56: -Cross66, Y162534: -Cross69, X46: -Cross73, X54: -Cross76, X13: -Cross78, Y123546: 0, X32: -Cross84, X34: -Cross102, X53: 0, X25: -Cross93, Y162435: 0, X36: -Cross99, X52: -Cross87, X23: -Cross105, X62: -Cross110, X15: -Cross111, X21: -Cross114, Y132645: -Cross117, Y142536: -Cross120, X64: -Cross123, X42: -Cross126, Y142356: -Cross129, Y152346: -Cross30} # F36 # {X31: -Cross0, X45: -Cross3, X26: -Cross63, X12: -Cross9, Y142635: -Cross12, X35: -Cross90, X41: -Cross18, X24: -Cross21, Y123645: 0, X51: -Cross24, X43: -Cross28, Y132546: -Cross132, X16: -Cross33, X63: 0, Y152436: 0, X14: -Cross42, X61: -Cross45, Y132456: -Cross48, X65: -Cross51, Y152634: -Cross54, Y123456: -Cross57, Y162345: -Cross6, X56: -Cross66, Y162534: -Cross69, X46: -Cross73, X54: -Cross76, X13: -Cross78, Y123546: -Cross81, X32: -Cross84, X34: -Cross102, X53: -Cross15, X25: -Cross93, Y162435: -Cross60, X36: 0, X52: -Cross87, X23: -Cross105, X62: -Cross110, X15: -Cross111, X21: -Cross114, Y132645: -Cross117, Y142536: 0, X64: -Cross123, X42: -Cross126, Y142356: -Cross129, Y152346: -Cross30} # F45 # {X31: -Cross0, X45: 0, X26: -Cross63, X12: -Cross9, Y142635: -Cross12, X35: -Cross90, X41: -Cross18, X24: -Cross21, Y123645: 0, X51: -Cross24, X43: -Cross28, Y132546: -Cross132, X16: -Cross33, X63: -Cross37, Y152436: -Cross41, X14: -Cross42, X61: -Cross45, Y132456: -Cross48, X65: -Cross51, Y152634: -Cross54, Y123456: -Cross57, Y162345: 0, X56: -Cross66, Y162534: -Cross69, X46: -Cross73, X54: 0, X13: -Cross78, Y123546: -Cross81, X32: -Cross84, X34: -Cross102, X53: -Cross15, X25: -Cross93, Y162435: -Cross60, X36: -Cross99, X52: -Cross87, X23: -Cross105, X62: -Cross110, X15: -Cross111, X21: -Cross114, Y132645: 0, Y142536: -Cross120, X64: -Cross123, X42: -Cross126, Y142356: -Cross129, Y152346: -Cross30} # F46 # {X31: -Cross0, X45: -Cross3, X26: -Cross63, X12: -Cross9, Y142635: -Cross12, X35: -Cross90, X41: -Cross18, X24: -Cross21, Y123645: -Cross97, X51: -Cross24, X43: -Cross28, Y132546: 0, X16: -Cross33, X63: -Cross37, Y152436: -Cross41, X14: -Cross42, X61: -Cross45, Y132456: -Cross48, X65: -Cross51, Y152634: -Cross54, Y123456: -Cross57, Y162345: -Cross6, X56: -Cross66, Y162534: -Cross69, X46: 0, X54: -Cross76, X13: -Cross78, Y123546: 0, X32: -Cross84, X34: -Cross102, X53: -Cross15, X25: -Cross93, Y162435: -Cross60, X36: -Cross99, X52: -Cross87, X23: -Cross105, X62: -Cross110, X15: -Cross111, X21: -Cross114, Y132645: -Cross117, Y142536: -Cross120, X64: 0, X42: -Cross126, Y142356: -Cross129, Y152346: 0} # F56 # {X31: -Cross0, X45: -Cross3, X26: -Cross63, X12: -Cross9, Y142635: -Cross12, X35: -Cross90, X41: -Cross18, X24: -Cross21, Y123645: -Cross97, X51: -Cross24, X43: -Cross28, Y132546: -Cross132, X16: -Cross33, X63: -Cross37, Y152436: -Cross41, X14: -Cross42, X61: -Cross45, Y132456: 0, X65: 0, Y152634: -Cross54, Y123456: 0, Y162345: -Cross6, X56: 0, Y162534: -Cross69, X46: -Cross73, X54: -Cross76, X13: -Cross78, Y123546: -Cross81, X32: -Cross84, X34: -Cross102, X53: -Cross15, X25: -Cross93, Y162435: -Cross60, X36: -Cross99, X52: -Cross87, X23: -Cross105, X62: -Cross110, X15: -Cross111, X21: -Cross114, Y132645: -Cross117, Y142536: -Cross120, X64: -Cross123, X42: -Cross126, Y142356: 0, Y152346: -Cross30} # G1 # {X31: 0, X45: -Cross3, X26: -Cross63, X12: -Cross9, Y142635: -Cross12, X35: -Cross90, X41: 0, X24: -Cross21, Y123645: -Cross97, X51: 0, X43: -Cross28, Y132546: -Cross132, X16: -Cross33, X63: -Cross37, Y152436: -Cross41, X14: -Cross42, X61: 0, Y132456: -Cross48, X65: -Cross51, Y152634: -Cross54, Y123456: -Cross57, Y162345: -Cross6, X56: -Cross66, Y162534: -Cross69, X46: -Cross73, X54: -Cross76, X13: -Cross78, Y123546: -Cross81, X32: -Cross84, X34: -Cross102, X53: -Cross15, X25: -Cross93, Y162435: -Cross60, X36: -Cross99, X52: -Cross87, X23: -Cross105, X62: -Cross110, X15: -Cross111, X21: 0, Y132645: -Cross117, Y142536: -Cross120, X64: -Cross123, X42: -Cross126, Y142356: -Cross129, Y152346: -Cross30} # G2 # {X31: -Cross0, X45: -Cross3, X26: -Cross63, X12: 0, Y142635: -Cross12, X35: -Cross90, X41: -Cross18, X24: -Cross21, Y123645: -Cross97, X51: -Cross24, X43: -Cross28, Y132546: -Cross132, X16: -Cross33, X63: -Cross37, Y152436: -Cross41, X14: -Cross42, X61: -Cross45, Y132456: -Cross48, X65: -Cross51, Y152634: -Cross54, Y123456: -Cross57, Y162345: -Cross6, X56: -Cross66, Y162534: -Cross69, X46: -Cross73, X54: -Cross76, X13: -Cross78, Y123546: -Cross81, X32: 0, X34: -Cross102, X53: -Cross15, X25: -Cross93, Y162435: -Cross60, X36: -Cross99, X52: 0, X23: -Cross105, X62: 0, X15: -Cross111, X21: -Cross114, Y132645: -Cross117, Y142536: -Cross120, X64: -Cross123, X42: 0, Y142356: -Cross129, Y152346: -Cross30} # G3 # {X31: -Cross0, X45: -Cross3, X26: -Cross63, X12: -Cross9, Y142635: -Cross12, X35: -Cross90, X41: -Cross18, X24: -Cross21, Y123645: -Cross97, X51: -Cross24, X43: 0, Y132546: -Cross132, X16: -Cross33, X63: 0, Y152436: -Cross41, X14: -Cross42, X61: -Cross45, Y132456: -Cross48, X65: -Cross51, Y152634: -Cross54, Y123456: -Cross57, Y162345: -Cross6, X56: -Cross66, Y162534: -Cross69, X46: -Cross73, X54: -Cross76, X13: 0, Y123546: -Cross81, X32: -Cross84, X34: -Cross102, X53: 0, X25: -Cross93, Y162435: -Cross60, X36: -Cross99, X52: -Cross87, X23: 0, X62: -Cross110, X15: -Cross111, X21: -Cross114, Y132645: -Cross117, Y142536: -Cross120, X64: -Cross123, X42: -Cross126, Y142356: -Cross129, Y152346: -Cross30} # G4 # {X31: -Cross0, X45: -Cross3, X26: -Cross63, X12: -Cross9, Y142635: -Cross12, X35: -Cross90, X41: -Cross18, X24: 0, Y123645: -Cross97, X51: -Cross24, X43: -Cross28, Y132546: -Cross132, X16: -Cross33, X63: -Cross37, Y152436: -Cross41, X14: 0, X61: -Cross45, Y132456: -Cross48, X65: -Cross51, Y152634: -Cross54, Y123456: -Cross57, Y162345: -Cross6, X56: -Cross66, Y162534: -Cross69, X46: -Cross73, X54: 0, X13: -Cross78, Y123546: -Cross81, X32: -Cross84, X34: 0, X53: -Cross15, X25: -Cross93, Y162435: -Cross60, X36: -Cross99, X52: -Cross87, X23: -Cross105, X62: -Cross110, X15: -Cross111, X21: -Cross114, Y132645: -Cross117, Y142536: -Cross120, X64: 0, X42: -Cross126, Y142356: -Cross129, Y152346: -Cross30} # G5 # {X31: -Cross0, X45: 0, X26: -Cross63, X12: -Cross9, Y142635: -Cross12, X35: 0, X41: -Cross18, X24: -Cross21, Y123645: -Cross97, X51: -Cross24, X43: -Cross28, Y132546: -Cross132, X16: -Cross33, X63: -Cross37, Y152436: -Cross41, X14: -Cross42, X61: -Cross45, Y132456: -Cross48, X65: 0, Y152634: -Cross54, Y123456: -Cross57, Y162345: -Cross6, X56: -Cross66, Y162534: -Cross69, X46: -Cross73, X54: -Cross76, X13: -Cross78, Y123546: -Cross81, X32: -Cross84, X34: -Cross102, X53: -Cross15, X25: 0, Y162435: -Cross60, X36: -Cross99, X52: -Cross87, X23: -Cross105, X62: -Cross110, X15: 0, X21: -Cross114, Y132645: -Cross117, Y142536: -Cross120, X64: -Cross123, X42: -Cross126, Y142356: -Cross129, Y152346: -Cross30} # G6 # {X31: -Cross0, X45: -Cross3, X26: 0, X12: -Cross9, Y142635: -Cross12, X35: -Cross90, X41: -Cross18, X24: -Cross21, Y123645: -Cross97, X51: -Cross24, X43: -Cross28, Y132546: -Cross132, X16: 0, X63: -Cross37, Y152436: -Cross41, X14: -Cross42, X61: -Cross45, Y132456: -Cross48, X65: -Cross51, Y152634: -Cross54, Y123456: -Cross57, Y162345: -Cross6, X56: 0, Y162534: -Cross69, X46: 0, X54: -Cross76, X13: -Cross78, Y123546: -Cross81, X32: -Cross84, X34: -Cross102, X53: -Cross15, X25: -Cross93, Y162435: -Cross60, X36: 0, X52: -Cross87, X23: -Cross105, X62: -Cross110, X15: -Cross111, X21: -Cross114, Y132645: -Cross117, Y142536: -Cross120, X64: -Cross123, X42: -Cross126, Y142356: -Cross129, Y152346: -Cross30} ################################################### # Saving the relevant information as a plain text # ################################################### # # We save the result as plain text: # f = file('../Output/ShiftPtAndBoundaryPointsPotentialExtraLinesApex.txt', 'w') # f.write('Shift Points and resulting five shifted boundary points for each of the 27 potential extra tropical lines on Trop(X_Yos), where Yos has trivial valuation.' + '\n' +'\n') # for extremal in extremalCurves: # f.write('Indexing curve: ' + str(extremal)+'\n') # f.write('Initial value of shift Pt: ' + str(shiftPtExtremal[extremal])+'\n') # f.write('Five boundary points of the potential extra line' +'\n') # for k in range(0,len(newTropLinkExtremal[extremal])): # f.write(str(newTropLinkExtremal[extremal][k])+'\n') # f.write('Cross functions with equal valuation: ' + str(crossesForExtremal[extremal])+'\n') # f.write('Vertex of the tropical line TP^44 if the five boundary points are tropically collinear: ' + str(newShiftPtExtremal[extremal])) # f.write('\n')