Closed mstreng closed 10 years ago
Branch: u/chapoton/15218
I have tried to do what was suggested. Not able to say if this is correct mathematically.
If yes, then there remains to add a doctest checking that this has been corrected.
New commits:
a7290d3 | trac #15218 first try : divide by K.number_of_roots_of_unity |
Branch pushed to git repo; I updated commit sha1. New commits:
0293a71 | trac #15218 added the doctest and correct parentheses |
Author: Frédéric Chapoton
Changed branch from u/chapoton/15218 to u/pbruin/15218-ring_class_field_degree
Looks good; just a small reviewer patch to also fix the formula in the comment.
Reviewer: Peter Bruin
Changed branch from u/pbruin/15218-ring_class_field_degree to 25588d5
The degree function returns incorrect answers for ring class fields over QQ(zeta_3) and QQ(i).
See also The second part of this thread on sage-nt, the part with title "Computing ring class fields".
The output should be 2, since ZZ[sqrt(-3)] has trivial picard group.
The problem is that there is a bug in the degree function for these ring class fields. The fields themselves seem to be correct.
In the method degree_over_H of the RingClassField class in sage/schemes/elliptic_curves/heegner.py, the degree is calculated using the following formula:
However, one should also divide out by units in
O_K^*
other than {+/- 1}. This explains the factor 3 that the degree function is off for K=QQ(sqrt(-3)). This is also exactly the difference between equation (7.27) of Cox's book (Primes of the form ...) and exercise 7.30 of the same book.Component: number fields
Author: Frédéric Chapoton
Branch/Commit:
25588d5
Reviewer: Peter Bruin
Issue created by migration from https://trac.sagemath.org/ticket/15218