#20261: Conversion between cyclotomic field fails
------------------------------+------------------------
Reporter: fstromberg | Owner:
Type: defect | Status: new
Priority: major | Milestone: sage-7.3
Component: coercion | Resolution:
Keywords: cyclotomic | Merged in:
Authors: | Reviewers:
Report Upstream: N/A | Work issues:
Branch: | Commit:
Dependencies: | Stopgaps:
------------------------------+------------------------
Description changed by vdelecroix:
Old description:
> In some cases the element 0 of one cyclotomic field cannot be converted
> properly to 0
> in another cyclotomic field. For instance in Sage 7.1 and Sage 7.2.rc1:
> {{{
> sage: K12 = CyclotomicField(12)
> sage: K6 = CyclotomicField(6)
> sage: K12(K6(0)) # coercion K6 -> K12 is fine
> 0
> sage: K6(K12(0)) # partial conversion K12 -> K6 is not
> Traceback (most recent call last)
> ...
> TypeError: unable to coerce <class 'sage.rings.infinity.PlusInfinity'> to
> an integer
> }}}
New description:
When there is an embedding `K -> L` of number fields, it comes with a
coercion and Sage knows how to map elements of `K` as elements of `L`. But
such embedding also comes with a partial map `L --> K`. In the case of
cyclotomic field this partial map is only partially implemented...
{{{
sage: K12 = CyclotomicField(12)
sage: K6 = CyclotomicField(6)
sage: K12(K6(0)) # coercion K6 -> K12 is fine
0
sage: K6(K12(0)) # partial conversion K12 -> K6 is not
Traceback (most recent call last)
...
TypeError: unable to coerce <class 'sage.rings.infinity.PlusInfinity'> to
an integer
}}}
More precisely, the partial conversion `L --> K` only works for roots of
unity
{{{
sage: K6(K12.gen()**2)
zeta6
sage: K6(K12.gen()**4)
zeta6 - 1
}}}
This behavior does not coincide with the fact that Sage knows how to
convert rationals between number fields
{{{
sage: R.<cbrt2> = NumberField(x^3 - 2)
sage: K6(R(1/3))
1/3
sage: R(K6(1/3))
1/3
}}}
More generally, given two number fields there always are partial maps
between them (well defined on the intersection). It would be nice if this
would work as expected.
--
--
Ticket URL: <http://trac.sagemath.org/ticket/20261#comment:13>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica,
and MATLAB
--
You received this message because you are subscribed to the Google Groups
"sage-trac" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/d/optout.