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
-~----------~----~----~----~------~----~------~--~---

Reply via email to