###################################################### # All 7 types of cones of M_2^trop and sample points # ###################################################### # The following script computes the polyhedran cones for representatives of all 7 cones in the moduli space of tropical curves of genus 2, and sample points on each relative interior. # The descriptions are different for Dumbbell and Theta cones. In the first case, the variables are the 6 branch points, whereas for the later, we use a changing of variable, replacing a4 by x34 + a3. ################# # Dumbbell Cone # ################# # The following script constructs the Theta cone, with respect to the variables a6,a5,a4,a3,a2,a1: # Its defining inequalities are: # a6 - a5 >= 0 # a5 - a4 >= 0 # a4 - a3 >= 0 # a3 - a2 >= 0 # a2 - a1 >= 0 DumbbellCone = Polyhedron(ieqs=[(0,1,-1,0,0,0,0),(0,0,1,-1,0,0,0), (0,0,0,1,-1,0,0), (0,0,0,0,1,-1,0),(0,0,0,0,0,1,-1)]) # DumbbellCone.Hrepresentation() # (An inequality (0, 0, 0, 0, 1, -1) x + 0 >= 0, # An inequality (0, 0, 0, 1, -1, 0) x + 0 >= 0, # An inequality (0, 0, 1, -1, 0, 0) x + 0 >= 0, # An inequality (0, 1, -1, 0, 0, 0) x + 0 >= 0, # An inequality (1, -1, 0, 0, 0, 0) x + 0 >= 0) # DumbbellCone.rays() # (A ray in the direction (0, -1, -1, -1, -1, -1), # A ray in the direction (0, 0, -1, -1, -1, -1), # A ray in the direction (0, 0, 0, -1, -1, -1), # A ray in the direction (0, 0, 0, 0, -1, -1), # A ray in the direction (0, 0, 0, 0, 0, -1)) # DumbbellCone.lines() # (A line in the direction (1, 1, 1, 1, 1, 1),) # print dim(DumbbellCone) # 6 ############## # Theta Cone # ############## # Recall: the variables of SS are ordered a6,a5,x34,a3,a2,a1 # The following script constructs the Theta cone, with respect to the variables a6,a5,x34,a3,a2,a1: # Its defining inequalities are: # a6 - a5 >= 0 # a5 - a3 >= 0 # a3 - a2 >= 0 # a2 - a1 >= 0 # a3 - x34 >= 0 ThetaCone = Polyhedron(ieqs=[(0,1,-1,0,0,0,0),(0,0,1,0,-1,0,0), (0,0,0,0,1,-1,0),(0,0,0,0,0,1,-1), (0,0,0,-1,1,0,0)]) # ThetaCone.Hrepresentation() # (An inequality (0, 0, -1, 1, 0, 0) x + 0 >= 0, # An inequality (0, 0, 0, 0, 1, -1) x + 0 >= 0, # An inequality (0, 0, 0, 1, -1, 0) x + 0 >= 0, # An inequality (0, 1, 0, -1, 0, 0) x + 0 >= 0, # An inequality (1, -1, 0, 0, 0, 0) x + 0 >= 0) # ThetaCone.rays() # (A ray in the direction (0, -1, -1, -1, -1, -1), # A ray in the direction (0, 0, -1, -1, -1, -1), # A ray in the direction (0, 0, 0, 0, -1, -1), # A ray in the direction (0, 0, 0, 0, 0, -1), # A ray in the direction (0, 0, -1, 0, 0, 0)) # ThetaCone.lines() # (A line in the direction (1, 1, 1, 1, 1, 1),) # print dim(ThetaCone) # 6 ##################### # Figure Eight Cone # ##################### # The following script constructs the Figure Eight cone, with respect to the variables a6,a5,a4,a3,a2,a1: # Its defining inequalities are: # a6 - a5 >= 0 # a5 - a4 >= 0 # a3 - a2 >= 0 # a2 - a1 >= 0 # a4 == a3 FigEightCone = Polyhedron(ieqs=[(0,1,-1,0,0,0,0),(0,0,1,-1,0,0,0), (0,0,0,0,1,-1,0),(0,0,0,0,0,1,-1)], eqns=[(0,0,0,1,-1,0,0)]) # FigEightCone.Hrepresentation() # (An equation (0, 0, 1, -1, 0, 0) x + 0 == 0, # An inequality (0, 0, 0, 0, 1, -1) x + 0 >= 0, # An inequality (0, 0, 1, 0, -1, 0) x + 0 >= 0, # An inequality (0, 1, -1, 0, 0, 0) x + 0 >= 0, # An inequality (1, -1, 0, 0, 0, 0) x + 0 >= 0) # FigEightCone.rays() # (A ray in the direction (0, -1, -1, -1, -1, -1), # A ray in the direction (0, 0, -1, -1, -1, -1), # A ray in the direction (0, 0, 0, 0, -1, -1), # A ray in the direction (0, 0, 0, 0, 0, -1)) # FigEightCone.lines() # (A line in the direction (1, 1, 1, 1, 1, 1),) # print dim(FigEightCone) # 5 ################################ # Figure Eight Cone from Theta # ################################ # Recall: the variables of SS are ordered a6,a5,x34,a3,a2,a1 # The following script constructs the Figure Eight cone, with respect to the variables a6,a5,x34,a3,a2,a1: # Its defining inequalities are: # a6 - a5 >= 0 # a5 - x34 >= 0 # a3 - a2 >= 0 # a2 - a1 >= 0 # x34 == a3 FigEightConeT = Polyhedron(ieqs=[(0,1,-1,0,0,0,0),(0,0,1,-1,0,0,0), (0,0,0,0,1,-1,0),(0,0,0,0,0,1,-1)], eqns=[(0,0,0,1,-1,0,0)]) # FigEightConeT.Hrepresentation() # (An equation (0, 0, 1, -1, 0, 0) x + 0 == 0, # An inequality (0, 0, 0, 0, 1, -1) x + 0 >= 0, # An inequality (0, 0, 1, 0, -1, 0) x + 0 >= 0, # An inequality (0, 1, -1, 0, 0, 0) x + 0 >= 0, # An inequality (1, -1, 0, 0, 0, 0) x + 0 >= 0) # FigEightConeT.rays() # (A ray in the direction (0, -1, -1, -1, -1, -1), # A ray in the direction (0, 0, -1, -1, -1, -1), # A ray in the direction (0, 0, 0, 0, -1, -1), # A ray in the direction (0, 0, 0, 0, 0, -1)) # FigEightConeT.lines() # (A line in the direction (1, 1, 1, 1, 1, 1),) # print dim(FigEightConeT) # 5 ############### # TypeIV Cone # ############### # The following script constructs the TypeIV cone, with respect to the variables a6,a5,a4,a3,a2,a1: # Its defining inequalities are: # a6 - a5 >= 0 # a5 - a3 >= 0 # a3 - a2 >= 0 # a2 - a1 >= 0 # a5 == a4 TypeIVCone = Polyhedron(ieqs=[(0,1,-1,0,0,0,0),(0,0,1,0,-1,0,0), (0,0,0,0,1,-1,0),(0,0,0,0,0,1,-1)], eqns=[(0,0,1,-1,0,0,0)]) # TypeIVCone.Hrepresentation() # (An equation (0, 1, -1, 0, 0, 0) x + 0 == 0, # An inequality (0, 0, 0, 0, 1, -1) x + 0 >= 0, # An inequality (0, 0, 0, 1, -1, 0) x + 0 >= 0, # An inequality (0, 1, 0, -1, 0, 0) x + 0 >= 0, # An inequality (1, -1, 0, 0, 0, 0) x + 0 >= 0) # TypeIVCone.rays() # (A ray in the direction (0, -1, -1, -1, -1, -1), # A ray in the direction (0, 0, 0, -1, -1, -1), # A ray in the direction (0, 0, 0, 0, -1, -1), # A ray in the direction (0, 0, 0, 0, 0, -1)) # TypeIVCone.lines() # (A line in the direction (1, 1, 1, 1, 1, 1),) # print dim(TypeIVCone) # 5 ############### # TypeIV Cone # ############### # The following script constructs the TypeIV cone, with respect to the variables a6,a5,a4,a3,a2,a1: # Its defining inequalities are: # a6 - a4 >= 0 # a4 - a2 >= 0 # a2 - a1 >= 0 # a5 == a4 # a3 == a2 TypeVCone = Polyhedron(ieqs=[(0,1,0,-1,0,0,0),(0,0,0,1,0,-1,0), (0,0,0,0,0,1,-1)], eqns=[(0,0,1,-1,0,0,0), (0,0,0,0,1,-1,0)]) # TypeVCone.Hrepresentation() # (An equation (0, 0, 0, 1, -1, 0) x + 0 == 0, # An equation (0, 1, -1, 0, 0, 0) x + 0 == 0, # An inequality (0, 0, 0, 1, 0, -1) x + 0 >= 0, # An inequality (0, 1, 0, -1, 0, 0) x + 0 >= 0, # An inequality (1, -1, 0, 0, 0, 0) x + 0 >= 0) # TypeVCone.rays() # (A ray in the direction (0, -1, -1, -1, -1, -1), # A ray in the direction (0, 0, 0, -1, -1, -1), # A ray in the direction (0, 0, 0, 0, 0, -1)) # TypeVCone.lines() # (A line in the direction (1, 1, 1, 1, 1, 1),) # print dim(TypeVCone) # 4 ############### # TypeVI Cone # ############### # The following script constructs the Type VI cone, with respect to the variables a6,a5,a4,a3,a2,a1: # Its defining inequalities are: # a6 - a5 >= 0 # a3 - a2 >= 0 # a2 - a1 >= 0 # a5 == a3 # a4 == a3 TypeVICone = Polyhedron(ieqs=[(0,1,-1,0,0,0,0), (0,0,0,0,1,-1,0),(0,0,0,0,0,1,-1)], eqns=[(0,0,1,-1,0,0,0),(0,0,0,1,-1,0,0)]) # TypeVICone.Hrepresentation() # (An equation (0, 1, 0, -1, 0, 0) x + 0 == 0, # An equation (0, 1, -1, 0, 0, 0) x + 0 == 0, # An inequality (0, 0, 0, 0, 1, -1) x + 0 >= 0, # An inequality (0, 1, 0, 0, -1, 0) x + 0 >= 0, # An inequality (1, -1, 0, 0, 0, 0) x + 0 >= 0) # TypeVICone.rays() # (A ray in the direction (0, -1, -1, -1, -1, -1), # A ray in the direction (0, 0, 0, 0, -1, -1), # A ray in the direction (0, 0, 0, 0, 0, -1)) # TypeVICone.lines() # (A line in the direction (1, 1, 1, 1, 1, 1),) # print dim(TypeVICone) # 4 ################ # TypeVII Cone # ################ # The following script constructs the Type VII cone, with respect to the variables a6,a5,a4,a3,a2,a1: # Its defining inequalities are: # a6 - a2 >= 0 # a2 - a1 >= 0 # a5 == a4 # a4 == a3 # a3 == a2 TypeVIICone = Polyhedron(ieqs=[(0,1,0,0,0,-1,0),(0,0,0,0,0,1,-1)], eqns=[(0,0,1,-1,0,0,0),(0,0,0,1,-1,0,0), (0,0,0,0,1,-1,0)]) # TypeVIICone.Hrepresentation() # (An equation (0, 1, 0, 0, -1, 0) x + 0 == 0, # An equation (0, 1, 0, -1, 0, 0) x + 0 == 0, # An equation (0, 1, -1, 0, 0, 0) x + 0 == 0, # An inequality (0, 1, 0, 0, 0, -1) x + 0 >= 0, # An inequality (1, -1, 0, 0, 0, 0) x + 0 >= 0) # TypeVIICone.rays() # (A ray in the direction (0, -1, -1, -1, -1, -1), # A ray in the direction (0, 0, 0, 0, 0, -1)) # TypeVIICone.lines() # (A line in the direction (1, 1, 1, 1, 1, 1),) # print dim(TypeVIICone) # 3 # ########################## # ########################## # # TypeVI Cone from Theta # # ########################## # # Recall: the variables of SS are ordered a6,a5,x34,a3,a2,a1 # # The following script constructs the TypeVI cone, with respect to the variables a6,a5,x34,a3,a2,a1: # # Its defining inequalities are: # # a6 - a5 >= 0 # # a3 - x34 >= 0 # # a3 - a2 >= 0 # # a2 - a1 >= 0 # # a5 == a3 # # a5 == a34 # TypeVIConeT = Polyhedron(ieqs=[(0,1,-1,0,0,0,0), (0,0,0,-1,1,0,0),(0,0,0,0,1,-1,0),(0,0,0,0,0,1,-1)], eqns=[(0,0,1,-1,0,0,0),(0,0,0,1,-1,0,0)]) # # TypeVIConeT.Hrepresentation() # # (An equation (0, 1, 0, -1, 0, 0) x + 0 == 0, # # An equation (0, 1, -1, 0, 0, 0) x + 0 == 0, # # An inequality (0, 0, 0, 0, 1, -1) x + 0 >= 0, # # An inequality (0, 1, 0, 0, -1, 0) x + 0 >= 0, # # An inequality (1, -1, 0, 0, 0, 0) x + 0 >= 0) # # TypeVIConeT.rays() # # (A ray in the direction (0, -1, -1, -1, -1, -1), # # A ray in the direction (0, 0, 0, 0, -1, -1), # # A ray in the direction (0, 0, 0, 0, 0, -1)) # # TypeVIConeT.lines() # # (A line in the direction (1, 1, 1, 1, 1, 1),) # # print dim(TypeVICone) # # 4 ################################ # Computation of sample points # ################################ ################# # Dumbbell Cone # ################# subdivisionsOfTypeCone = DumbbellCone samplePoint = findRaysPiecesSamplePoint([subdivisionsOfTypeCone])[-1] pointDumbbell = makeNegativeAndPrimitive(samplePoint[0]) # print pointDumbbell # [0, -1, -2, -3, -4, -5] ############## # Theta Cone # ############## subdivisionsOfTypeCone = ThetaCone samplePoint = findRaysPiecesSamplePoint([subdivisionsOfTypeCone])[-1] pointTheta = makeNegativeAndPrimitive(samplePoint[0]) # print pointTheta # [0, -1, -3, -2, -3, -4] ##################### # Figure Eight Cone # ##################### subdivisionsOfTypeCone = FigEightCone samplePoint = findRaysPiecesSamplePoint([subdivisionsOfTypeCone])[-1] pointFigEight = makeNegativeAndPrimitive(samplePoint[0]) # print pointFigEight # [0, -1, -2, -2, -3, -4] ############### # TypeIV Cone # ############### subdivisionsOfTypeCone = TypeIVCone samplePoint = findRaysPiecesSamplePoint([subdivisionsOfTypeCone])[-1] pointTypeIV = makeNegativeAndPrimitive(samplePoint[0]) # print pointTypeIV # [0, -1, -1, -2, -3, -4] ############## # TypeV Cone # ############## subdivisionsOfTypeCone = TypeVCone samplePoint = findRaysPiecesSamplePoint([subdivisionsOfTypeCone])[-1] pointTypeV = makeNegativeAndPrimitive(samplePoint[0]) # print pointTypeV # [0, -1, -1, -2, -2, -3] ############### # TypeVI Cone # ############### subdivisionsOfTypeCone = TypeVICone samplePoint = findRaysPiecesSamplePoint([subdivisionsOfTypeCone])[-1] pointTypeVI = makeNegativeAndPrimitive(samplePoint[0]) # print pointTypeVI # [0, -1, -1, -1, -2, -3] ################ # TypeVII Cone # ################ subdivisionsOfTypeCone = TypeVIICone samplePoint = findRaysPiecesSamplePoint([subdivisionsOfTypeCone])[-1] pointTypeVII = makeNegativeAndPrimitive(samplePoint[0]) # print pointTypeVII # [0, -1, -1, -1, -1, -2]