On Mon, May 11, 2009 at 12:19 PM, Conrado PLG <conrado...@gmail.com> wrote: > > Hello, > > I'm trying to build a "tower" of field extensions but an error occurs. > This is the code: > > p = 0xb640000000008c6352000000288d94aa50000534d459922940402af3364b031b > R = GF(p) > _.<X> = PolynomialRing(R) > R2.<X> = R.extension(X^2+1, 'X') > _.<Y> = PolynomialRing(R2) > xi = -X + 1 > R6.<Y> = R2.extension(Y^3-xi, 'Y') > _.<Z> = PolynomialRing(R6) > R12.<Z> = R6.extension(Z^2-(Y), 'Z') > > An "NotImplementedError" is raised on the "_.<Z> = PolynomialRing(R6)" > line. Is there any other way to accomplish this, or it's just a Sage > limitation? From the traceback, I see it tries to factor the modulus > of R6 but it fails.
Here's a total hack to get around the problem: sage: p = 0xb640000000008c6352000000288d94aa50000534d459922940402af3364b031b sage: R = GF(p) sage: _.<X> = PolynomialRing(R) sage: R2.<X> = R.extension(X^2+1, 'X') sage: _.<Y> = PolynomialRing(R2) sage: xi = -X + 1 sage: R6.<Y> = R2.extension(Y^3-xi, 'Y') sage: R6.is_field = lambda : True sage: _.<Z> = PolynomialRing(R6) sage: R12.<Z> = R6.extension(Z^2-(Y), 'Z') sage: R12 Univariate Quotient Polynomial Ring in Z over Univariate Quotient Polynomial Ring in Y over Univariate Quotient Polynomial Ring in X over Finite Field of size 82434016654300524875808230406429140937527925673742161687619861377398365422363 with modulus X^2 + 1 with modulus Y^3 + X + 82434016654300524875808230406429140937527925673742161687619861377398365422362 with modulus Z^2 + 82434016654300524875808230406429140937527925673742161687619861377398365422362*Y > > Traceback: > > > /home/conrado/.sage/temp/matamune/8922/ > _home_conrado_workspace_sage_bn_sage_14.py in bn_create(p) > 80 xi = -X + _sage_const_1 > 81 R6 = R2.extension(Y**_sage_const_3 -xi, 'Y', names= > ('Y',)); (Y,) = R6._first_ngens(1) > ---> 82 _ = PolynomialRing(R6, names=('Z',)); (Z,) = _._first_ngens > (1) > 83 R12 = R6.extension(Z**_sage_const_2 -(Y), 'Z', names= > ('Z',)); (Z,) = R12._first_ngens(1) > 84 return R, R2, R6, R12, X, Y, Z > > /home/conrado/sage-3.4.1-linux-Ubuntu_8.10-sse2-i686-Linux/local/lib/ > python2.5/site-packages/sage/rings/polynomial/ > polynomial_ring_constructor.pyc in PolynomialRing(base_ring, arg1, > arg2, sparse, order, names, name, implementation) > 281 raise TypeError, "if second arguments is a > string with no commas, then there must be no other non-optional > arguments" > 282 name = arg1 > --> 283 R = _single_variate(base_ring, name, sparse, > implementation) > 284 else: > 285 # 2-4. PolynomialRing(base_ring, names, > order='degrevlex'): > > /home/conrado/sage-3.4.1-linux-Ubuntu_8.10-sse2-i686-Linux/local/lib/ > python2.5/site-packages/sage/rings/polynomial/ > polynomial_ring_constructor.pyc in _single_variate(base_ring, name, > sparse, implementation) > 368 R = m.PolynomialRing_dense_padic_ring_fixed_mod > (base_ring, name) > 369 > --> 370 elif base_ring.is_field(): > 371 R = m.PolynomialRing_field(base_ring, name, > sparse) > 372 > > /home/conrado/sage-3.4.1-linux-Ubuntu_8.10-sse2-i686-Linux/local/lib/ > python2.5/site-packages/sage/rings/polynomial/ > polynomial_quotient_ring.pyc in is_field(self) > 454 True > 455 """ > --> 456 return self.base_ring().is_field() and self.modulus > ().is_irreducible() > 457 > 458 def krull_dimension(self): > > /home/conrado/sage-3.4.1-linux-Ubuntu_8.10-sse2-i686-Linux/local/lib/ > python2.5/site-packages/sage/rings/polynomial/polynomial_element.so in > sage.rings.polynomial.polynomial_element.Polynomial.is_irreducible > (sage/rings/polynomial/polynomial_element.c:37402)() > > /home/conrado/sage-3.4.1-linux-Ubuntu_8.10-sse2-i686-Linux/local/lib/ > python2.5/site-packages/sage/rings/polynomial/polynomial_element.so in > sage.rings.polynomial.polynomial_element.Polynomial.factor (sage/rings/ > polynomial/polynomial_element.c:25443)() > > NotImplementedError: > > > > -- William Stein Associate Professor of Mathematics University of Washington http://wstein.org --~--~---------~--~----~------------~-------~--~----~ To post to this group, send email to sage-support@googlegroups.com To unsubscribe from this group, send email to sage-support-unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/sage-support URLs: http://www.sagemath.org -~----------~----~----~----~------~----~------~--~---