def test_lemma_3_4(m): a = (4*m-27).sqrt() if not a in ZZ: print "m must be of the form 1/4(a^2+27)" return None Q.=QQ[] if a % 3 != 0: fa = x^3 + x^2 + (1-m)/3*x - (m*(3+a)-1)/27 else: fa = x^3 - m/3*x-(a*m)/27 K.=NumberField(fa) if a % 3 != 0: w = a^2/36 + a*alpha/3 + alpha^2 +a/9 + 2/3*alpha+31/36 else: w = a^2/36 + alpha*a/3 + alpha^2 + 3/4 gm = x^3-m*x^2+2*m*x-m if gm(w) !=0: print "error, w is not a root of gm" print w,gm.roots(K) return None if a % 3 != 0: eta_ = alpha^2+(a-1)/3*alpha+a^2/36-a/18+1/36 else: eta_ = alpha^2 + (a-3)*alpha/3+a^2/36-a/6+1/4 mu_a = x^3 - (2*m-3-a)/2*x^2 + (2*m-3+a)/2*x - 1 if nu_a(eta_) != 0: print "error, eta is not a root of nu_a" return None nu_a = f=x^3+(m-3)*x^2+3*x-1 A = (x^2*(4*a^2+12)+x*(a^4+18*a^2-8*a+21)+(-2*a^3+6*a^2-30*a-6))/(16*a) assert uu_a(x=A) % nu_a == 0 print "everythng ok" test_lemma_3_4(19) test_lemma_3_4(9) """ test_lemma_3_4(19) """