Drinfeld modules#
Base class for Drinfeld modules over \(\mathbb{F}_q[T]\)
Drinfeld modules are currently being implemented in SageMath. See the following Pull Request: https://github.com/sagemath/sage/pull/35026.
You should not import from this module as it will be deprecated in the future.
AUTHORS:
David Ayotte (2021): initial version
- class drinfeld_modular_forms.drinfeld_modules.CarlitzModule(polynomial_base_ring, name='𝜏')#
Bases:
DrinfeldModule
- class drinfeld_modular_forms.drinfeld_modules.DrinfeldModule(*args, name='𝜏')#
Bases:
Parent
Base class of a Drinfeld module.
- action_endomorphism(a)#
Return the Ore polynomial corresponding to the action of \(a\).
INPUT:
a
(Polynomial) – A polynomial living in the univariate polynomial ring of the base field.
EXAMPLES:
sage: from drinfeld_modular_forms.drinfeld_modules import DrinfeldModule sage: A.<T> = GF(3)['T'] sage: C = DrinfeldModule(A.one()) sage: C.action_endomorphism(T) 𝜏 + T sage: C.action_endomorphism(T^2) 𝜏^2 + (T^3 + T)*𝜏 + T^2
This method can also be accessed more directly:
sage: C(T) 𝜏 + T sage: C(T^3) 𝜏^3 + (T^9 + T^3 + T)*𝜏^2 + (T^6 + T^4 + T^2)*𝜏 + T^3
- action_polynomial(a, name='X')#
Return the action endomorphism at a polynomial \(a\) but as a univariate polynomial in
name
(default: ‘X’).EXAMPLES:
sage: from drinfeld_modular_forms.drinfeld_modules import DrinfeldModule sage: A.<T> = GF(3)['T'] sage: C = DrinfeldModule(A.one()); C Drinfeld Module of rank 1 over Finite Field of size 3 defined by: T |--> 𝜏 + T sage: p = C.action_polynomial(T); p X^3 + T*X sage: p.parent() Univariate Polynomial Ring in X over Fraction Field of Univariate Polynomial Ring in T over Finite Field of size 3
- base_field()#
Return the base field of the given Drinfeld module.
EXAMPLES:
sage: from drinfeld_modular_forms.drinfeld_modules import DrinfeldModule sage: A.<T> = GF(11 ** 3)['T'] sage: phi = DrinfeldModule(T^2) sage: phi.base_field() Fraction Field of Univariate Polynomial Ring in T over Finite Field in z3 of size 11^3
- base_polynomial_ring()#
Return the ring of regular functions outside infinity.
EXAMPLES:
sage: from drinfeld_modular_forms.drinfeld_modules import DrinfeldModule sage: A.<T> = GF(19)['T'] sage: C = DrinfeldModule(A.one()) sage: C.base_polynomial_ring() Univariate Polynomial Ring in T over Finite Field of size 19 sage: C.base_polynomial_ring() is A True
An alias of this method is
regular_functions_outside_infinity
:sage: C.regular_functions_outside_infinity() Univariate Polynomial Ring in T over Finite Field of size 19
- field_of_constants()#
Return the field of constants of the base function field.
EXAMPLES:
sage: from drinfeld_modular_forms.drinfeld_modules import DrinfeldModule sage: A.<T> = GF(7)['T'] sage: DrinfeldModule(T).field_of_constants() Finite Field of size 7
- operator_polynomial()#
Return the Ore polynomial corresponding to the action of \(T\)
EXAMPLES:
sage: from drinfeld_modular_forms.drinfeld_modules import DrinfeldModule sage: A.<T> = GF(5 ** 2)['T'] sage: phi_T = DrinfeldModule(T).operator_polynomial(); phi_T T*𝜏 + T sage: phi_T.parent() Ore Polynomial Ring in 𝜏 over Fraction Field of Univariate Polynomial Ring in T over Finite Field in z2 of size 5^2 twisted by Frob
- q()#
- rank()#
Return the rank of the given Drinfeld module.
EXAMPLES:
sage: from drinfeld_modular_forms.drinfeld_modules import DrinfeldModule sage: A.<T> = GF(5 ** 2)['T'] sage: DrinfeldModule(T).rank() 1 sage: DrinfeldModule(T, T^2, T).rank() 3
- regular_functions_outside_infinity()#
Return the ring of regular functions outside infinity.
EXAMPLES:
sage: from drinfeld_modular_forms.drinfeld_modules import DrinfeldModule sage: A.<T> = GF(19)['T'] sage: C = DrinfeldModule(A.one()) sage: C.base_polynomial_ring() Univariate Polynomial Ring in T over Finite Field of size 19 sage: C.base_polynomial_ring() is A True
An alias of this method is
regular_functions_outside_infinity
:sage: C.regular_functions_outside_infinity() Univariate Polynomial Ring in T over Finite Field of size 19
- ring_of_constants()#
Return the field of constants of the base function field.
EXAMPLES:
sage: from drinfeld_modular_forms.drinfeld_modules import DrinfeldModule sage: A.<T> = GF(7)['T'] sage: DrinfeldModule(T).field_of_constants() Finite Field of size 7