#| From pilgrim@polygon.math.cornell.edu Tue Oct 21 12:07:20 1997 Return-Path: pilgrim@polygon.math.cornell.edu Date: Tue, 21 Oct 1997 15:06:59 -0400 (EDT) From: "Kevin M. Pilgrim - Math H.C. Wang Visiting Prof." X-Sender: pilgrim@polygon To: rychlik@math.arizona.edu Subject: A test for grobner bases algorithms Mime-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Hi, Below are some sample equations I looked at this summer. Here's the setup: A general degree two rational map is (generically) conjugate in at most six ways to a map of the form f_ab = z(az^2 + bz + a) = 1/ (a (z+1/z) + b), a nonzero. as you can easily check using algebra. The critical points are at +/- 1 and infinity maps to zero, which is fixed. Such a map has three fixed points whose multipliers are, say, m1, m2, m3. Let s1=m1+m2+m3 and s2=m1*m2 + m1*m3 + m2*m3 be the first two elementary symmetric functions of these multipliers. From work of Milnor (generalized by Silverman) one knows that s1 and s2 give canonical coordinates for the moduli space of degree two rational maps, i.e. the space of rational maps of degree two modulo moebius conjugation is biholomorphic to C^2 with these canonical coordinates s1 and s2. One can easily check that a*s1-4*a^2-1+b^2+2*a = 0 and (E1) a^2*s2-4*a^4+4*a^3+2*a+b^2+b^2*a^2-5*a^2 = 0. Now, let s denote the ith elementary symmetric function of the multipliers of the points of period n. From work of Silverman, s is a polynomial with integer coefficients in s1 and s2. PROBLEM: Calculate s in terms of i and n. Even for n=3 and i=1 this is not easy to do using "brute force" symbolic computation. But somehow there ought to be a way to do this using this approach. Case n=3 and i=1: ----------------- A degree two rational map has two three-cycles, generically. Let s = s(3,1) denote the sum of the multipliers of these two three-cycles. We want to find s in terms of s1 and s2. Let z00 -> z10 -> z20 -> z00 and (E2) z01 -> z11 -> z21 -> z01 denote the points in the two three-cycles (the arrows denote application of f_ab). Then s = f'(z00)*f'(z10)*f'(z20)+f'(z01)*f'(z11)*f'(z21) (E3) and s is the sum of these two quantities and depends only on s1 and s2. The conditions in (E2) and (E3) can be translated into polynomial equations. Adding in the equations (E1) gives us a system of poly. equations. Here are the details, in a maple-readable form: variables:=[z21, z11, z01, z20, z10, z00, a, b, s1, s2, s]; equations:= [a*s1-4*a^2-1+b^2+2*a, a^2*s2-4*a^4+4*a^3+2*a+b^2+b^2*a^2-5*a^2, z00-z10*(a*z00^2+b*z00+a), z10-z20*(a*z10^2+b*z10+a), z20-z00*(a*z20^2+b*z20+a), z01-z11*(a*z01^2+b*z01+a), z11-z21*(a*z11^2+b*z11+a), z21-z01*(a*z21^2+b*z21+a), s-a^3*(1-z00^2)*(1-z10^2)*(1-z20^2)-a^3*(1-z01^2)*(1-z11^2)*(1-z21^2)]; There are, however, some degeneracy constraints: we may not allow the coefficient a to be zero. Also, there will be solutions to the equations where e.g. z00=z01, z10=z11, z20=z21 which we must discard. So we have the following quantities which must be nonzero: (D1) a (D2) z00-z10, z00-z20, z10-z20, z01-z11, z01-z21, z11-z21, (where points in the same cycle collide) and (D3) z00-z01, z00-z11, z00-z21, z10-z01, z10-z11, z10-z21, z20-z01, z20-z11, z20-z21 (where points in different cycles collide). But in fact one can reduce this set of 1 + 6 + 9 = 16 degeneracy conditions somewhat using the fact that the zij's are period of the prime period 3 to: degs:=[a, z00-z10, z01-z11, z00-z01, z00-z11, z00-z21]; which is a great improvement. Thus our problem is: Solve "equations" in "variables" subject to the constraint that "degs" are nonzero, and eliminate all the variables save s,s1,s2. An alternative approach, which you mentioned, is to first omit consideration of the degeneracy equations. I'm curious to see how you would approach this problem using what you called parameters. I'd be grateful for any input you could give. If this one looks too easy, I can send you the data for higher periods. For e.g. n=4 there are 3 four-cycles and the degeneracies which can occur are more complicated. Another useful thing to have would be the equations in a,b, and the zij's defining the locus where the values of the zij's represent precisely the locations of the points in the two three-cycles (i.e. calculate a basis for the ideal corresponding to the variety defined by (E2) subject to the constraint that the degeneracies (D1)-(D3) are nonzero. Even this looks hard. If you're interested I can send some samples of the equations which arise when trying to find postcritically finite maps. I enjoyed your talk in Atlanta, and thank you for organizing a great session and allowing me the opportunity to speak. Kevin M. Pilgrim Dept. of Mathematics B-35 White Hall Cornell University Ithaca, NY 14853-7901 (607) 255-5380 w (607) 256-1634 h, before 9PM pilgrim@math.cornell.edu |# (setf main-variables '(s s1 s2)) (setf parameters '(a b z00 z10 z20 z01 z11 z21)) (setf variables (append main-variables parameters)) (setf equations "[ z00-z10*(a*z00^2+b*z00+a), z10-z20*(a*z10^2+b*z10+a), z20-z00*(a*z20^2+b*z20+a), z01-z11*(a*z01^2+b*z01+a), z11-z21*(a*z11^2+b*z11+a), z21-z01*(a*z21^2+b*z21+a), a*s1-4*a^2-1+b^2+2*a, a^2*s2-4*a^4+4*a^3+2*a+b^2+b^2*a^2-5*a^2, s-a^3*(1-z00^2)*(1-z10^2)*(1-z20^2)-a^3*(1-z01^2)*(1-z11^2)*(1-z21^2) ]" ) (setf parametric-equations "[ a*s1-4*a^2-1+b^2+2*a, a^2*s2-4*a^4+4*a^3+2*a+b^2+b^2*a^2-5*a^2, s-a^3*(1-z00^2)*(1-z10^2)*(1-z20^2)-a^3*(1-z01^2)*(1-z11^2)*(1-z21^2) ]") (setf green-list "[ z00-z10*(a*z00^2+b*z00+a), z10-z20*(a*z10^2+b*z10+a), z20-z00*(a*z20^2+b*z20+a), z01-z11*(a*z01^2+b*z01+a), z11-z21*(a*z11^2+b*z11+a), z21-z01*(a*z21^2+b*z21+a) ]") (setf red-list "[a, z00-z10, z00-z20, z10-z20, z01-z11, z01-z21, z11-z21, z00-z01, z00-z11, z00-z21, z10-z01, z10-z11, z10-z21, z20-z01, z20-z11, z20-z21, z00-z10, z01-z11, z00-z01, z00-z11, z00-z21]") (setf order #'grevlex>) #| (string-grobner equations variables :order order) |# #| (string-ideal-polysaturation-1 equations red-list variables :order order ) |# #| (string-grobner-system parametric-equations main-variables parameters :cover (list (list green-list red-list)) :main-order #'grevlex> :parameter-order #'grevlex>) |# #| (string-grobner green-list parameters :order #'grevlex>) |# (string-ideal-polysaturation-1 green-list red-list parameters :order order )