backwards compatibility

82 views
Skip to first unread message

John Cremona

unread,
Apr 26, 2016, 7:58:13 AM4/26/16
to SAGE support
In a publisged paper [1] I gave a reference to a Sage script which
could reproduce the results of the paper. The output of this (using
sagetex) is also in the ArXiV version of the paper [2].

That was 3 years ago, and I just tried to see if that Sage script
would still work. It didn't. In the script I have several nested
cyclotomic fields, and I found that the easy way to be able to compute
with them all at once (as a mathematician would) was to first define
the largest one, Q(zeta_1092), and then define all the others as
subfields using the embedding= construction. Here are the relevant
fields and assignments:

sage: Q1092.<zeta1092> = CyclotomicField(1092)
sage: Q84.<zeta84> = CyclotomicField(84, embedding=zeta1092^13)
sage: Q12.<zeta12> = CyclotomicField(12, embedding=zeta84^7)
sage: Q7.<zeta7> = CyclotomicField(7, embedding=zeta84^12)
sage: zeta7p=zeta7+1/zeta7
sage: Q7p.<zeta7p>=NumberField(zeta7p.minpoly(), embedding=zeta7+1/zeta7)
sage: a=1/zeta7p
sage: a*zeta12 # boom

Does anyone know how or why this happened, or how to do this
calculation now? It used to be that one could do arithmetic between
elements of all these fields and Sage would magically find the
relavant embeddings.

John


[1] Cremona and Banwait, Tetrahedral Elliptic Curves and the
local-to-global principle for Isogenies, Algebra & Number Theory 8-5
(2014), 1201--1229. DOI 10.2140/ant.2014.8.1201
[2] http://arxiv.org/abs/1306.6818
Message has been deleted

Kwankyu

unread,
Apr 26, 2016, 10:52:04 PM4/26/16
to sage-support

sage: zeta84 in Q1092

True

sage: zeta12 in Q84

True

sage: zeta12 in Q1092

False

sage: Q12.embeddings(Q1092)

[

Ring morphism:

  From: Cyclotomic Field of order 12 and degree 4

  To:   Cyclotomic Field of order 1092 and degree 288

  Defn: zeta12 |--> zeta1092^91,

Ring morphism:

  From: Cyclotomic Field of order 12 and degree 4

  To:   Cyclotomic Field of order 1092 and degree 288

  Defn: zeta12 |--> -zeta1092^91,

Ring morphism:

  From: Cyclotomic Field of order 12 and degree 4

  To:   Cyclotomic Field of order 1092 and degree 288

  Defn: zeta12 |--> zeta1092^273 - zeta1092^91,

Ring morphism:

  From: Cyclotomic Field of order 12 and degree 4

  To:   Cyclotomic Field of order 1092 and degree 288

  Defn: zeta12 |--> -zeta1092^273 + zeta1092^91

]


Perhaps Sage now wants you to choose an embedding.

Kwankyu

unread,
Apr 27, 2016, 12:04:44 AM4/27/16
to sage-support
This is also strange:

sage: (zeta1092^13) == zeta84

True

sage: zeta84^7 == zeta12

True

sage: (zeta1092^13)^7 == zeta12

False

John Cremona

unread,
Apr 27, 2016, 4:21:22 AM4/27/16
to SAGE support
Thanks for helping with this. I repeat -- it used to work, and I do
not know what changed.

John
> --
> You received this message because you are subscribed to the Google Groups
> "sage-support" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to sage-support...@googlegroups.com.
> To post to this group, send email to sage-s...@googlegroups.com.
> Visit this group at https://groups.google.com/group/sage-support.
> For more options, visit https://groups.google.com/d/optout.

Vincent Delecroix

unread,
Apr 28, 2016, 10:22:22 AM4/28/16
to sage-s...@googlegroups.com
It is a lack of coercion discovery

sage: K12.<zeta12> = CyclotomicField(12)
sage: K6.<zeta6> = CyclotomicField(6,embedding=zeta12**2)
sage: K3.<zeta3> = CyclotomicField(3,embedding=zeta6**2)

Then

sage: K6.has_coerce_map_from(K3)
True
sage: K12.has_coerce_map_from(K6)
True

But

sage: K12.has_coerce_map_from(K3)
!BOOM!

Could you test this on older Sage version? And even better find out the
way coercion was discovered.

Vincent

Vincent Delecroix

unread,
Apr 28, 2016, 11:18:25 AM4/28/16
to sage-s...@googlegroups.com
fixed at

http://trac.sagemath.org/ticket/20513

Vincent

On 26/04/16 08:57, John Cremona wrote:

John Cremona

unread,
Apr 28, 2016, 12:05:17 PM4/28/16
to SAGE support
Thanks! I will try that out and see if my script now runs again.
Reply all
Reply to author
Forward
0 new messages