Skip to content

Commit 6da69c7

Browse files
author
Release Manager
committed
gh-35527: Improve morphisms between Drinfeld modules We implement several methods for arbitrary morphisms between Drinfeld modules. Especially, we implement the computation of norms and characteristic polynomials. @ymusleh @DavidAyotte @kryzar ### 📚 Description Here is a list of the most important added methods: - `hom`: fast interface for creating morphisms between Drinfeld modules - `_composition_`/`inverse`: composition and inverse of morphisms between Drinfeld modules - `is_isomorphic`: check whether two Drinfeld modules are isomorphic either over the base field or over an algebraic closure - `norm`: computation of the norm of a morphism between Drinfeld modules - `dual_isogeny`: computation of the dual isogeny - `characteristic_polynomial`/`charpoly`: computation of the characteristic polynomial of an *endomorphism* between Drinfeld modules We also implement addition of morphisms and the action of the function field $A$; this gives the structure of left $A$-module on the set of morphisms between two given Drinfeld modules. ### 📝 Checklist <!-- Put an `x` in all the boxes that apply. It should be `[x]` not `[x ]`. --> - [x] The title is concise, informative, and self-explanatory. - [x] The description explains in detail what this PR is about. - [ ] I have linked a relevant issue or discussion. - [x] I have created tests covering the changes. - [x] I have updated the documentation accordingly. URL: #35527 Reported by: Xavier Caruso Reviewer(s): Antoine Leudière, David Ayotte, Xavier Caruso, ymusleh
2 parents 1ca4a47 + 5f76571 commit 6da69c7

File tree

7 files changed

+1059
-108
lines changed

7 files changed

+1059
-108
lines changed

src/sage/categories/drinfeld_modules.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -768,3 +768,23 @@ def ore_polring(self):
768768
True
769769
"""
770770
return self.category().ore_polring()
771+
772+
def ore_variable(self):
773+
r"""
774+
Return the variable of the Ore polynomial ring of this Drinfeld module.
775+
776+
EXAMPLES::
777+
778+
sage: Fq = GF(25)
779+
sage: A.<T> = Fq[]
780+
sage: K.<z12> = Fq.extension(6)
781+
sage: p_root = 2*z12^11 + 2*z12^10 + z12^9 + 3*z12^8 + z12^7 + 2*z12^5 + 2*z12^4 + 3*z12^3 + z12^2 + 2*z12
782+
sage: phi = DrinfeldModule(A, [p_root, z12^3, z12^5])
783+
784+
sage: phi.ore_polring()
785+
Ore Polynomial Ring in t over Finite Field in z12 of size 5^12 over its base twisted by Frob^2
786+
sage: phi.ore_variable()
787+
t
788+
789+
"""
790+
return self.category().ore_polring().gen()

0 commit comments

Comments
 (0)