You can do K(r.lift()), but it would be nicer if this was handled by coercion magic. I don't know how that could be done in Sage, but mathematically it would make sense whenever the defining polynomial of K divided that of R.
John 2008/12/22 Alex Ghitza <aghi...@gmail.com>: > Hi, > > While working with number fields, I've run into this: > > sage: K.<a> = NumberField(x^8+1) > sage: R = K.polynomial_quotient_ring() > sage: r = R.random_element() > > And now the point of this: I would like to think of r as an element of K. > However: > > sage: K(r) > --------------------------------------------------------------------------- > TypeError Traceback (most recent call last) > > /opt/sage-3.2.1/devel/sage-main/sage/<ipython console> in <module>() > > /opt/sage-3.2.1/local/lib/python2.5/site-packages/sage/structure/parent.so > in sage.structure.parent.Parent.__call__ (sage/structure/parent.c:3645)() > > /opt/sage-3.2.1/local/lib/python2.5/site-packages/sage/structure/coerce_maps.so > in sage.structure.coerce_maps.DefaultConvertMap_unique._call_ > (sage/structure/coerce_maps.c:2778)() > > /opt/sage-3.2.1/local/lib/python2.5/site-packages/sage/structure/coerce_maps.so > in sage.structure.coerce_maps._call_ (sage/structure/coerce_maps.c:2685)() > > /opt/sage-3.2.1/local/lib/python2.5/site-packages/sage/rings/number_field/number_field.pyc > in _element_constructor_(self, x) > 1422 raise ValueError, "vector must be of length equal to > the degree of this number field" > 1423 return sum([ x[i]*self.gen(0)**i for i in > range(self.degree()) ]) > -> 1424 return self._coerce_non_number_field_element_in(x) > 1425 > 1426 def _coerce_from_str(self, x): > > /opt/sage-3.2.1/local/lib/python2.5/site-packages/sage/rings/number_field/number_field.pyc > in _coerce_non_number_field_element_in(self, x) > 1520 except (TypeError, AttributeError), msg: > 1521 pass > -> 1522 raise TypeError, type(x) > 1523 > 1524 def _coerce_map_from_(self, R): > > TypeError: <class > 'sage.rings.polynomial.polynomial_quotient_ring_element.PolynomialQuotientRingElement'> > > > > Since K and R are canonically isomorphic, it seems to me that K(r) should > really work. Any thoughts? Is there another way I can get r into K? > > Best, > Alex > > > -- > Alex Ghitza -- Lecturer in Mathematics -- The University of Melbourne -- > Australia -- http://www.ms.unimelb.edu.au/~aghitza/ > > > > --~--~---------~--~----~------------~-------~--~----~ To post to this group, send email to sage-devel@googlegroups.com To unsubscribe from this group, send email to sage-devel-unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/sage-devel URLs: http://www.sagemath.org -~----------~----~----~----~------~----~------~--~---