Skip to content

Commit e2d3e7c

Browse files
author
Release Manager
committed
sagemathgh-40430: Use the variable name τ instead of t for Drinfeld modules In the theory of Drinfeld module, the classical name of the noncommutative variable is `τ`. However, in Sage, we currently use `t`, which might conflict with other standard notations (often the variable name of the underlying function ring is denoted by `t`). In this PR, we propose to shift to the notation `τ`. It just changes how the outputs are printed (by default), not the interface. ### 📝 Checklist <!-- Put an `x` in all the boxes that apply. --> - [x] The title is concise and informative. - [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 and checked the documentation preview. ### ⌛ Dependencies sagemath#40420, sagemath#40421 URL: sagemath#40430 Reported by: Xavier Caruso Reviewer(s): Antoine Leudière
2 parents b721b2b + e14b7cf commit e2d3e7c

File tree

7 files changed

+220
-221
lines changed

7 files changed

+220
-221
lines changed

src/sage/categories/drinfeld_modules.py

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ class DrinfeldModules(Category_over_base_ring):
123123
True
124124
125125
sage: C.ore_polring()
126-
Ore Polynomial Ring in t over Finite Field in z of size 11^4 twisted by z |--> z^11
126+
Ore Polynomial Ring in τ over Finite Field in z of size 11^4 twisted by z |--> z^11
127127
sage: C.ore_polring() is phi.ore_polring()
128128
True
129129
@@ -135,7 +135,7 @@ class DrinfeldModules(Category_over_base_ring):
135135
136136
sage: psi = C.object([p_root, 1])
137137
sage: psi
138-
Drinfeld module defined by T |--> t + z^3 + 7*z^2 + 6*z + 10
138+
Drinfeld module defined by T |--> τ + z^3 + 7*z^2 + 6*z + 10
139139
sage: psi.category() is C
140140
True
141141
@@ -207,7 +207,7 @@ class DrinfeldModules(Category_over_base_ring):
207207
TypeError: function ring base must be a finite field
208208
"""
209209

210-
def __init__(self, base_morphism, name='t'):
210+
def __init__(self, base_morphism, name='τ'):
211211
r"""
212212
Initialize ``self``.
213213
@@ -216,7 +216,7 @@ def __init__(self, base_morphism, name='t'):
216216
- ``base_field`` -- the base field, which is a ring extension
217217
over a base
218218
219-
- ``name`` -- (default: ``'t'``) the name of the Ore polynomial
219+
- ``name`` -- (default: ``'τ'``) the name of the Ore polynomial
220220
variable
221221
222222
TESTS::
@@ -227,7 +227,7 @@ def __init__(self, base_morphism, name='t'):
227227
sage: p_root = z^3 + 7*z^2 + 6*z + 10
228228
sage: phi = DrinfeldModule(A, [p_root, 0, 0, 1])
229229
sage: C = phi.category()
230-
sage: ore_polring.<t> = OrePolynomialRing(K, K.frobenius_endomorphism())
230+
sage: ore_polring.<τ> = OrePolynomialRing(K, K.frobenius_endomorphism())
231231
sage: C._ore_polring is ore_polring
232232
True
233233
sage: C._function_ring is A
@@ -507,7 +507,7 @@ def object(self, gen):
507507
508508
sage: phi = C.object([p_root, 0, 1])
509509
sage: phi
510-
Drinfeld module defined by T |--> t^2 + z^3 + 7*z^2 + 6*z + 10
510+
Drinfeld module defined by T |--> τ^2 + z^3 + 7*z^2 + 6*z + 10
511511
sage: t = phi.ore_polring().gen()
512512
sage: C.object(t^2 + z^3 + 7*z^2 + 6*z + 10) is phi
513513
True
@@ -534,7 +534,7 @@ def ore_polring(self):
534534
sage: phi = DrinfeldModule(A, [p_root, 0, 0, 1])
535535
sage: C = phi.category()
536536
sage: C.ore_polring()
537-
Ore Polynomial Ring in t over Finite Field in z of size 11^4 twisted by z |--> z^11
537+
Ore Polynomial Ring in τ over Finite Field in z of size 11^4 twisted by z |--> z^11
538538
"""
539539
return self._ore_polring
540540

@@ -769,7 +769,7 @@ def constant_coefficient(self):
769769
sage: t = phi.ore_polring().gen()
770770
sage: psi = C.object(phi.constant_coefficient() + t^3)
771771
sage: psi
772-
Drinfeld module defined by T |--> t^3 + 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
772+
Drinfeld module defined by T |--> τ^3 + 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
773773
774774
Reciprocally, it is impossible to create two Drinfeld modules in
775775
this category if they do not share the same constant
@@ -795,7 +795,7 @@ def ore_polring(self):
795795
sage: phi = DrinfeldModule(A, [p_root, z12^3, z12^5])
796796
sage: S = phi.ore_polring()
797797
sage: S
798-
Ore Polynomial Ring in t over Finite Field in z12 of size 5^12 twisted by z12 |--> z12^(5^2)
798+
Ore Polynomial Ring in τ over Finite Field in z12 of size 5^12 twisted by z12 |--> z12^(5^2)
799799
800800
The Ore polynomial ring can also be retrieved from the category
801801
of the Drinfeld module::
@@ -824,8 +824,8 @@ def ore_variable(self):
824824
sage: phi = DrinfeldModule(A, [p_root, z12^3, z12^5])
825825
826826
sage: phi.ore_polring()
827-
Ore Polynomial Ring in t over Finite Field in z12 of size 5^12 twisted by z12 |--> z12^(5^2)
827+
Ore Polynomial Ring in τ over Finite Field in z12 of size 5^12 twisted by z12 |--> z12^(5^2)
828828
sage: phi.ore_variable()
829-
t
829+
τ
830830
"""
831831
return self.category().ore_polring().gen()

src/sage/rings/function_field/drinfeld_modules/action.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ class DrinfeldModuleAction(Action):
6060
sage: action = phi.action()
6161
sage: action
6262
Action on Finite Field in z of size 11^2 over its base
63-
induced by Drinfeld module defined by T |--> t^3 + z
63+
induced by Drinfeld module defined by T |--> τ^3 + z
6464
6565
The action on elements is computed as follows::
6666
@@ -154,7 +154,7 @@ def _latex_(self):
154154
sage: phi = DrinfeldModule(A, [z, 0, 0, 1])
155155
sage: action = phi.action()
156156
sage: latex(action)
157-
\text{Action{ }on{ }}\Bold{F}_{11^{2}}\text{{ }induced{ }by{ }}\phi: T \mapsto t^{3} + z
157+
\text{Action{ }on{ }}\Bold{F}_{11^{2}}\text{{ }induced{ }by{ }}\phi: T \mapsto τ^{3} + z
158158
"""
159159
return f'\\text{{Action{{ }}on{{ }}}}' \
160160
f'{latex(self._base)}\\text{{{{ }}' \
@@ -174,7 +174,7 @@ def _repr_(self):
174174
sage: phi = DrinfeldModule(A, [z, 0, 0, 1])
175175
sage: action = phi.action()
176176
sage: action
177-
Action on Finite Field in z of size 11^2 over its base induced by Drinfeld module defined by T |--> t^3 + z
177+
Action on Finite Field in z of size 11^2 over its base induced by Drinfeld module defined by T |--> τ^3 + z
178178
"""
179179
return f'Action on {self._base} induced by ' \
180180
f'{self._drinfeld_module}'

src/sage/rings/function_field/drinfeld_modules/charzero_drinfeld_module.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ class DrinfeldModule_charzero(DrinfeldModule):
5959
sage: A.<T> = GF(3)[]
6060
sage: phi = DrinfeldModule(A, [T, 1])
6161
sage: phi
62-
Drinfeld module defined by T |--> t + T
62+
Drinfeld module defined by T |--> τ + T
6363
6464
::
6565
@@ -107,7 +107,7 @@ class DrinfeldModule_charzero(DrinfeldModule):
107107
sage: L.<s> = LaurentSeriesRing(GF(2)) # s = 1/T
108108
sage: phi = DrinfeldModule(A, [1/s, s + s^2 + s^5 + O(s^6), 1+1/s])
109109
sage: phi(T)
110-
(s^-1 + 1)*t^2 + (s + s^2 + s^5 + O(s^6))*t + s^-1
110+
(s^-1 + 1)*τ^2 + (s + s^2 + s^5 + O(s^6))*τ + s^-1
111111
112112
One can also construct Drinfeld modules over SageMath's global
113113
function fields::
@@ -116,7 +116,7 @@ class DrinfeldModule_charzero(DrinfeldModule):
116116
sage: K.<z> = FunctionField(GF(5)) # z = T
117117
sage: phi = DrinfeldModule(A, [z, 1, z^2])
118118
sage: phi(T)
119-
z^2*t^2 + t + z
119+
z^2*τ^2 + τ + z
120120
"""
121121
@cached_method
122122
def _compute_coefficient_exp(self, k):
@@ -448,7 +448,7 @@ class DrinfeldModule_rational(DrinfeldModule_charzero):
448448
sage: Fq = GF(q)
449449
sage: A.<T> = Fq[]
450450
sage: C = DrinfeldModule(A, [T, 1]); C
451-
Drinfeld module defined by T |--> t + T
451+
Drinfeld module defined by T |--> τ + T
452452
sage: type(C)
453453
<class 'sage.rings.function_field.drinfeld_modules.charzero_drinfeld_module.DrinfeldModule_rational_with_category'>
454454
"""
@@ -556,7 +556,7 @@ def class_polynomial(self):
556556
sage: Fq = GF(q)
557557
sage: A.<T> = Fq[]
558558
sage: C = DrinfeldModule(A, [T, 1]); C
559-
Drinfeld module defined by T |--> t + T
559+
Drinfeld module defined by T |--> τ + T
560560
sage: C.class_polynomial()
561561
1
562562

0 commit comments

Comments
 (0)