############################################################### # Computing the j-invariants for the single vertex on Type IV # ############################################################### # The following script confirms that the vertex of the naive plane tropicalization on Type V curves of genus 2 corresponds to a genus 1 component with good reduction. We do so by computing the leading terms of both numerator and denominator of the j-invariant. This rational function was computed with Singular using the "genusComputationsTypeIV-V.sing" script. # We first do the calculations assuming any point in the Type IV cone will give the same initial for each of the 4 polynomials. We then check by a Groebner Cone computation that this is indeed the case. # The calculations are valid for all characteristics of the residue field other than 2. # The necessary functions are generated on a separate file: load("macroslocalJInvariantComputationsAndPrimesWithBadReduction.sage") ######################################### # Generate the ambient ring and Weights # ######################################### # We take two of the branch points to be 0 and 'Infinity', so we need only consider 4 variables a5, a4, a3, and a2. As = [var("a5"),var("a4"),var("a3"), var("a2")] R = PolynomialRing(QQ,As) K = FractionField(R); # K # Fraction Field of Multivariate Polynomial Ring in a5, a4, a3, a2 over Rational Field weightsAs = [16, 16, 9, 1] ############### # Type IV Cone # ############### # Recall: the variables of R are ordered a5,a4,a3,a2 # The following script constructs the Type IV cone, with respect to the variables a5,a4,a3,a2: # Its defining inequalities are: # a4 - a3 >= 0 # a3 - a2 >= 0 # Its defining equations are: # a5 = a4 TypeIVCone = Polyhedron(ieqs=[(0,0,1,-1,0),(0,0,0,1,-1)], eqns = [(0,1, -1,0,0)]) # TypeIVCone.Hrepresentation() # (An equation (1, -1, 0, 0) x + 0 == 0, # An inequality (0, 0, 1, -1) x + 0 >= 0, # An inequality (1, 0, -1, 0) x + 0 >= 0) # TypeIVCone.rays() # (A ray in the direction (1, 1, 0, 0), A ray in the direction (1, 1, 1, 0)) # TypeIVCone.lines() # (A line in the direction (1, 1, 1, 1),) # dim(TypeIVCone) # 3 ###################### # Vertex computation # ###################### # We first load the numerator and denominator of the corresponding jInvariant computed with Singular. # We load the plain text file containing the Numerator and Denominator of the j-invariant of the C2 curve (the expression is stored as "jC2Num and jC2Denom") computed with Singular. load("jC2OutputNumAndDenom.sage") # We turn both expressions into polynomials jC2Num = R(jC2Num) jC2Denom = R(jC2Denom) # We compute the number of monomials on each jC2Num and jC2Denom: # print len(jC2Num.monomials()) # 84 # print len(jC2Denom.monomials()) # 68 # We create the M2 scripts to compute the leading terms of jC2Num and jC2Denom with respect to a trivial valuation on Q, we pick any weight vector in the Type V range, e.g. (16, 16, 9, 1) # # File for jC2: # writeM2Code(R, 'jC2Num', 'jC2Denom', jC2Num, jC2Denom, weightsAs, 'TypeIV/jC2TypeIV.m2', 'Calculations for the right-most vertex of Type IV calculations') # We record the output on the m2 file and below: i4 : -- We compute the leadingTerms of the Numerator toString(leadTerm(1,jC2Num)) o4 = 256*a5^6-768*a5^5*a4+1536*a5^4*a4^2-1792*a5^3*a4^3+1536*a5^2*a4^4-768*a5*a4^5+256*a4^6 i5 : -- We compute the leadingTerms of the Denominator toString(leadTerm(1,jC2Denom)) o5 = a5^4*a4^2-2*a5^3*a4^3+a5^2*a4^4 leadjC2NumM2 = R(256*a5^6-768*a5^5*a4+1536*a5^4*a4^2-1792*a5^3*a4^3+1536*a5^2*a4^4-768*a5*a4^5+256*a4^6) leadjC2DenomM2 = R(a5^4*a4^2-2*a5^3*a4^3+a5^2*a4^4) # We check that our script for LT computations agrees with the ones computed by m2: leadjC2Num = LTFromWeights(jC2Num,weightsAs,R) # leadjC2Num == leadjC2NumM2 # True leadjC2Denom = LTFromWeights(jC2Denom,weightsAs,R) # leadjC2Denom == leadjC2DenomM2 # True # The computations of the leading terms assume the characteristic of the residue field is 0. Since the leading terms have content either 256 or 1, the calculation of the leading terms remains valid if we assume the characteristic of the residue field is not 2. # In order to certify the valuation, we must factor the leading terms to detect possible cancellations and jump in valuations: # factor(leadjC2Num) # (256) * (a5^2 - a5*a4 + a4^2)^3 # factor(leadjC2Denom) # a4^2 * a5^2 * (a5 - a4)^2 # The negative valuations are: # Num = 6*w5 (unless a5^2 - a5*a4 + a4^2 = (a5-a4)^2 + a5a4 has unexpected valuation (>-6w5)) # Denom = 2*w5+2*w4+2*w5 = 6*w5 # We conclude that the valuation of j1 is 0 unless a5 and a4 satisfy (a5^2 - a5*a4 + a4^2), which they can. In that case, the negative valuation becomes smaller, i.e. negative. In both cases we are in the good reduction case (assuming the characteristic of the residue field is not two). ################################################################################ ############################################################################### ############################## # Groebner cone computations # ############################## # We load the relevant dictionaries of maximal cones precomputed in "GrobnerConeComputationsjC2.sage" PolyMaximalConesgfjC2NumDict = load("gFjC2/PolyMaximalConesgfjC2NumDict.sobj") PolyMaximalConesgfjC2DenomDict = load("gFjC2/PolyMaximalConesgfjC2DenomDict.sobj") ##################################################################### # Subdivision of Type IV cone induced by the Groebner fan of jC2Num # ##################################################################### # PolyMaximalConesjC = PolyMaximalConesgfjC2NumDict # checkNoSubdivisions(TypeIVCone,PolyMaximalConesjC) # ([2, 3], True) # We conclude that the TypeIV lies in a single cone in the Groebner complex, namely in the intersection of the maximalCones 2, 3. ####################################################################### # Subdivision of Type IV cone induced by the Groebner fan of jC2Denom # ####################################################################### # PolyMaximalConesjC = PolyMaximalConesgfjC2DenomDict # checkNoSubdivisions(TypeIVCone,PolyMaximalConesjC) # ([8, 11], True) # We conclude that the TypeIV lies in a single cone in the Groebner complex, namely in the intersection of the maximalCones 8, 11. ################## # Conclusion jC2 # ################## # The calculation for the leading terms of jC2 for Type IV can be done for any weight vector (no subdivision needs to be considered). This justifies the correctness of the calculation for -val(jC2) done earlier.