-
-
Notifications
You must be signed in to change notification settings - Fork 482
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
Refactor Drinfeld modules subclasses #36325
Refactor Drinfeld modules subclasses #36325
Conversation
I agree that this organization sounds better! I just have a little concern about the name In the case of Drinfeld modules defined over finite extensions of |
The idea was to denote any Drinfeld module whose base field can be embedded in
For Drinfeld modules over finite extension of |
So we can't just copy elliptic curves, because they have the following modules:
The situation is tricky because clearly our methods work, in theory, only for Drinfeld modules defined on a subfield of the "complex functions" |
I do agree that this naming scheme seems better and more extensible, though I'm not sure about the example you proposed regarding implementing I wouldn't hate the name Also, I will get back to the characteristic polynomial next week, and the endomorphism ring shortly after; my apologies for the delay. |
Although I definitely agree that the name of the methods really needs to be mathematically relevant, I think that it's more important that the names of the classes are programmatically relevant given that they are completely invisible to the user. So far, all analytic methods we have apply to any As a summary, the hierarchy I propose is:
|
Thank you both for your suggestions. They make a lot of sense.
Yes that's a good idea to distinguish between generic characteristic and finite characteristic! I think I will follow Xavier's naming convention and use Also, let me extend a bit on my plans for the rank 1 case. More precisely, I plan (in a following PR) to add methods for computing a period (i.e. a generator of the associated
The rank two case would also be possible in some cases I think, but I would need to read a bit more on the subject. |
So a Drinfeld module over |
Yes. |
Thanks! Works for me. |
Documentation preview for this PR (built with commit c3ac0c7; changes) is ready! 🎉 |
src/sage/rings/function_field/drinfeld_modules/charzero_drinfeld_module.py
Outdated
Show resolved
Hide resolved
src/sage/rings/function_field/drinfeld_modules/charzero_drinfeld_module.py
Outdated
Show resolved
Hide resolved
src/sage/rings/function_field/drinfeld_modules/charzero_drinfeld_module.py
Outdated
Show resolved
Hide resolved
src/sage/rings/function_field/drinfeld_modules/charzero_drinfeld_module.py
Outdated
Show resolved
Hide resolved
src/sage/rings/function_field/drinfeld_modules/charzero_drinfeld_module.py
Outdated
Show resolved
Hide resolved
…ld_module.py Co-authored-by: Xavier Caruso <[email protected]>
…ld_module.py Co-authored-by: Xavier Caruso <[email protected]>
…ld_module.py Co-authored-by: Xavier Caruso <[email protected]>
There are failing doctests but I think that there are not related to this ticket. |
No the failing doctests are not related. Thanks for the review! |
Hi Xavier. Next time could you wait a little for changing the label to |
Well, feel free to open a new PR if you want to do some modifications. |
The goal of this PR is to refactor the Drinfeld modules subclasses. In particular, we rename$\mathbb{F}_q[T]$ -characteristic zero. More conceptually, we propose the following structure:
FiniteDrinfeldModule
intoDrinfeldModule_finite
and we create a new class namedDrinfeldModule_charzero
. The second class denotes a Drinfeld module which is defined over a ring ofThe user will only have to interact with the metaclass
DrinfeldModule
.This refactorisation ensures that the exponential, the logarithm and the Goss polynomials methods always works as these are not defined in the finite case (and thus removes the required check).
In the near future, we plan to implement$A$ -lattice.
DrinfeldModule_charzero_rank_one
as a subclass ofDrinfeldModule_charzero
and implement their associatedCC: @kryzar @xcaruso @ymusleh
📝 Checklist
⌛ Dependencies