-
-
Notifications
You must be signed in to change notification settings - Fork 565
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Clean up S-class group, S-unit and Selmer group code #14746
Comments
based on 5.10.rc1 + #14489 |
comment:1
Attachment: trac_14746_selmer_group_cleanup.patch.gz |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
Attachment: trac_14746_doctests_32_64_bit_undo.patch.gz undo the effect of trac_14489_doctests_32_64_bit.patch |
This comment has been minimized.
This comment has been minimized.
comment:4
For patchbot: Apply trac_14746_doctests_32_64_bit_undo.patch, trac_14746_selmer_group_cleanup.patch |
This comment has been minimized.
This comment has been minimized.
comment:6
The source file needs to specify UTF-8 encoding if you want to use non-ascii characters, but |
comment:7
Replying to @vbraun:
My patch fixes that as well, by adding a line |
comment:8
After checking the documentation, I doubt that the 'raw' declaration (changing |
comment:9
OK, I didn't see the last patch in context. The raw only concerns backlashes but handy to not have to escape |
comment:10
I removed the second part of the patch, which changed |
comment:11
I hope I can look at this and get it finished next week. Does it provide a class for S-units like the class for units? |
comment:12
Test failure in my 32-bit VM:
Edit: sorry had the wrong ticket number, this is the failure I'm getting. |
comment:13
Replying to @JohnCremona:
It doesn't add new (user-level) functionality, but the clean-up might make it easier to add this in the future. |
comment:14
Replying to @vbraun:
With hindsight I could have guessed that the new doctest would create another 32/64-bit difference... I am preparing a patch that
|
Attachment: trac_14746_docstring_fixes.patch.gz add doctest, utf-8 declaration, r""" for backslashes, trivial edit in code |
Changed keywords from S-class group, S-units, Selmer group to S-class group, S-units, Selmer group, sd51 |
comment:16
All three patches apply fine to (5.11.beta3 + the two patches from #14489). |
Reviewer: John Cremona, Alejandro Argaez, Angelos Koutsianas |
comment:18
All tests (including long) pass in sage/rings, so I'll give this a positive review. |
Merged: sage-5.12.beta2 |
comment:22
See #16496. |
The code for S-class groups, S-units and Selmer groups of number fields, and more generally étale algebras, is not entirely satisfactory in the following respects:
The code for computing Selmer groups is somewhat convoluted. Conceptually, the computation of the generators for principal ideals of the form genorder belongs in selmer_group, not _S_class_group_and_units. It would be more correct to return, as S-class group generators, pairs (gen, order) instead of triples (gen, order, pr), and leave the computation of the principal ideal generators to selmer_group.
The docstrings are not very clear. The sentences are very long and contain awkward constructions ("a fractional ideal representative of the S-class group generator whose order (in the S-class group) is order"; "principal generator").
The docstring of NumberField._S_class_group_and_units suggests that to obtain a principal ideal, genorder can be multiplied by any fractional ideal J whose class is in the subgroup of the class group generated by ideals in S. However, the condition is more strict: J must be in the subgroup of the ideal group generated by ideals in S.
The attached patch does the following things:
Move computation of generators of principal ideals from NumberField._S_class_group_and_units to NumberField.selmer_group.
Add a method _S_decomposition to PolynomialQuotientRing_generic, which computes the decomposition of an étale algebra as a product of number fields. Use this function in S_class_group, S_units and selmer_group.
Delete PolynomialQuotientRing_generic._S_class_group_and_units, and move its code and doctests to S_class_group, class_group, S_units and units.
Reimplement PolynomialQuotientRing_generic.selmer_group to compute the Selmer group as the product of the Selmer groups of the distinct components, instead of imitating the algorithm of NumberField.selmer_group.
Make the documentation more precise.
Apply: attachment: trac_14746_doctests_32_64_bit_undo.patch, attachment: trac_14746_selmer_group_cleanup.patch, attachment: trac_14746_docstring_fixes.patch
Depends on #14489
CC: @sagetrac-ArgaezG @sagetrac-akoutsianas
Component: number fields
Keywords: S-class group, S-units, Selmer group, sd51
Author: Peter Bruin
Reviewer: John Cremona, Alejandro Argaez, Angelos Koutsianas
Merged: sage-5.12.beta2
Issue created by migration from https://trac.sagemath.org/ticket/14746
The text was updated successfully, but these errors were encountered: