Skip to content

Commit 79d2b42

Browse files
author
Matthias Koeppe
committed
src/sage/rings/function_field: Remove tag sage.rings.finite_rings when only prime finite fields are used; use more block tags
1 parent 9736edd commit 79d2b42

File tree

9 files changed

+107
-134
lines changed

9 files changed

+107
-134
lines changed

src/sage/rings/function_field/derivations.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
For global function fields, which have positive characteristics, the higher
55
derivation is available::
66
7-
sage: # needs sage.rings.finite_rings
87
sage: K.<x> = FunctionField(GF(2)); _.<Y> = K[]
98
sage: L.<y> = K.extension(Y^3 + x + x^3*Y) # needs sage.rings.function_field
109
sage: h = L.higher_derivation() # needs sage.rings.function_field

src/sage/rings/function_field/derivations_polymod.py

Lines changed: 21 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -176,15 +176,13 @@ def __init__(self, parent, u=None):
176176
177177
EXAMPLES::
178178
179-
sage: # needs sage.rings.finite_rings
180179
sage: K.<x> = FunctionField(GF(2))
181180
sage: R.<y> = K[]
182181
sage: L.<y> = K.extension(y^2 - x)
183182
sage: d = L.derivation()
184183
185184
This also works for iterated non-monic extensions::
186185
187-
sage: # needs sage.rings.finite_rings
188186
sage: K.<x> = FunctionField(GF(2))
189187
sage: R.<y> = K[]
190188
sage: L.<y> = K.extension(y^2 - 1/x)
@@ -195,7 +193,7 @@ def __init__(self, parent, u=None):
195193
196194
We can also create a multiple of the canonical derivation::
197195
198-
sage: M.derivation([x]) # needs sage.rings.finite_rings
196+
sage: M.derivation([x])
199197
x*d/dz
200198
"""
201199
FunctionFieldDerivation.__init__(self, parent)
@@ -221,7 +219,6 @@ def _call_(self, x):
221219
222220
EXAMPLES::
223221
224-
sage: # needs sage.rings.finite_rings
225222
sage: K.<x> = FunctionField(GF(2))
226223
sage: R.<y> = K[]
227224
sage: L.<y> = K.extension(y^2 - x)
@@ -245,7 +242,6 @@ def _add_(self, other):
245242
246243
EXAMPLES::
247244
248-
sage: # needs sage.rings.finite_rings
249245
sage: K.<x> = FunctionField(GF(3))
250246
sage: R.<y> = K[]
251247
sage: L.<y> = K.extension(y^3 - x)
@@ -263,7 +259,6 @@ def _lmul_(self, factor):
263259
264260
EXAMPLES::
265261
266-
sage: # needs sage.rings.finite_rings
267262
sage: K.<x> = FunctionField(GF(2))
268263
sage: R.<y> = K[]
269264
sage: L.<y> = K.extension(y^2 - x)
@@ -286,8 +281,8 @@ class FunctionFieldHigherDerivation(Map):
286281
287282
EXAMPLES::
288283
289-
sage: F.<x> = FunctionField(GF(2)) # needs sage.rings.finite_rings
290-
sage: F.higher_derivation() # needs sage.rings.finite_rings
284+
sage: F.<x> = FunctionField(GF(2))
285+
sage: F.higher_derivation()
291286
Higher derivation map:
292287
From: Rational function field in x over Finite Field of size 2
293288
To: Rational function field in x over Finite Field of size 2
@@ -316,9 +311,9 @@ def _repr_type(self) -> str:
316311
317312
EXAMPLES::
318313
319-
sage: F.<x> = FunctionField(GF(2)) # needs sage.rings.finite_rings
320-
sage: h = F.higher_derivation() # needs sage.rings.finite_rings
321-
sage: h # indirect doctest # needs sage.rings.finite_rings
314+
sage: F.<x> = FunctionField(GF(2))
315+
sage: h = F.higher_derivation()
316+
sage: h # indirect doctest
322317
Higher derivation map:
323318
From: Rational function field in x over Finite Field of size 2
324319
To: Rational function field in x over Finite Field of size 2
@@ -331,9 +326,9 @@ def __eq__(self, other) -> bool:
331326
332327
TESTS::
333328
334-
sage: F.<x> = FunctionField(GF(2)) # needs sage.rings.finite_rings
335-
sage: h = F.higher_derivation() # needs sage.rings.finite_rings
336-
sage: loads(dumps(h)) == h # needs sage.rings.finite_rings
329+
sage: F.<x> = FunctionField(GF(2))
330+
sage: h = F.higher_derivation()
331+
sage: loads(dumps(h)) == h
337332
True
338333
"""
339334
if isinstance(other, FunctionFieldHigherDerivation):
@@ -349,9 +344,9 @@ def _pth_root_in_prime_field(e):
349344
350345
sage: from sage.rings.function_field.derivations_polymod import _pth_root_in_prime_field
351346
sage: p = 5
352-
sage: F.<a> = GF(p) # needs sage.rings.finite_rings
353-
sage: e = F.random_element() # needs sage.rings.finite_rings
354-
sage: _pth_root_in_prime_field(e)^p == e # needs sage.rings.finite_rings
347+
sage: F.<a> = GF(p)
348+
sage: e = F.random_element()
349+
sage: _pth_root_in_prime_field(e)^p == e
355350
True
356351
"""
357352
return e
@@ -383,7 +378,6 @@ class RationalFunctionFieldHigherDerivation_global(FunctionFieldHigherDerivation
383378
384379
EXAMPLES::
385380
386-
sage: # needs sage.rings.finite_rings
387381
sage: F.<x> = FunctionField(GF(2))
388382
sage: h = F.higher_derivation()
389383
sage: h
@@ -399,9 +393,9 @@ def __init__(self, field):
399393
400394
TESTS::
401395
402-
sage: F.<x> = FunctionField(GF(2)) # needs sage.rings.finite_rings
403-
sage: h = F.higher_derivation() # needs sage.rings.finite_rings
404-
sage: TestSuite(h).run(skip='_test_category') # needs sage.rings.finite_rings
396+
sage: F.<x> = FunctionField(GF(2))
397+
sage: h = F.higher_derivation()
398+
sage: TestSuite(h).run(skip='_test_category')
405399
"""
406400
FunctionFieldHigherDerivation.__init__(self, field)
407401

@@ -414,9 +408,9 @@ def _call_with_args(self, f, args=(), kwds={}):
414408
415409
EXAMPLES::
416410
417-
sage: F.<x> = FunctionField(GF(2)) # needs sage.rings.finite_rings
418-
sage: h = F.higher_derivation() # needs sage.rings.finite_rings
419-
sage: h(x^2, 2) # indirect doctest # needs sage.rings.finite_rings
411+
sage: F.<x> = FunctionField(GF(2))
412+
sage: h = F.higher_derivation()
413+
sage: h(x^2, 2) # indirect doctest
420414
1
421415
"""
422416
return self._derive(f, *args, **kwds)
@@ -430,7 +424,6 @@ def _derive(self, f, i, separating_element=None):
430424
431425
EXAMPLES::
432426
433-
sage: # needs sage.rings.finite_rings
434427
sage: F.<x> = FunctionField(GF(2))
435428
sage: h = F.higher_derivation()
436429
sage: h._derive(x^3, 0)
@@ -498,7 +491,6 @@ def _prime_power_representation(self, f, separating_element=None):
498491
499492
EXAMPLES::
500493
501-
sage: # needs sage.rings.finite_rings
502494
sage: F.<x> = FunctionField(GF(2))
503495
sage: h = F.higher_derivation()
504496
sage: h._prime_power_representation(x^2 + x + 1)
@@ -549,9 +541,9 @@ def _pth_root(self, c):
549541
550542
EXAMPLES::
551543
552-
sage: F.<x> = FunctionField(GF(2)) # needs sage.rings.finite_rings
553-
sage: h = F.higher_derivation() # needs sage.rings.finite_rings
554-
sage: h._pth_root((x^2+1)^2) # needs sage.rings.finite_rings
544+
sage: F.<x> = FunctionField(GF(2))
545+
sage: h = F.higher_derivation()
546+
sage: h._pth_root((x^2+1)^2)
555547
x^2 + 1
556548
"""
557549
K = self._field
@@ -578,7 +570,6 @@ class FunctionFieldHigherDerivation_global(FunctionFieldHigherDerivation):
578570
579571
EXAMPLES::
580572
581-
sage: # needs sage.rings.finite_rings
582573
sage: K.<x> = FunctionField(GF(2)); _.<Y> = K[]
583574
sage: L.<y> = K.extension(Y^3 + x + x^3*Y)
584575
sage: h = L.higher_derivation()
@@ -596,7 +587,6 @@ def __init__(self, field):
596587
597588
TESTS::
598589
599-
sage: # needs sage.rings.finite_rings
600590
sage: K.<x> = FunctionField(GF(2)); _.<Y> = K[]
601591
sage: L.<y> = K.extension(Y^3 + x + x^3*Y)
602592
sage: h = L.higher_derivation()
@@ -625,7 +615,6 @@ def _call_with_args(self, f, args, kwds):
625615
626616
EXAMPLES::
627617
628-
sage: # needs sage.rings.finite_rings
629618
sage: K.<x> = FunctionField(GF(2)); _.<Y> = K[]
630619
sage: L.<y> = K.extension(Y^3 + x + x^3*Y)
631620
sage: h = L.higher_derivation()
@@ -643,7 +632,6 @@ def _derive(self, f, i, separating_element=None):
643632
644633
EXAMPLES::
645634
646-
sage: # needs sage.rings.finite_rings
647635
sage: K.<x> = FunctionField(GF(2)); _.<Y> = K[]
648636
sage: L.<y> = K.extension(Y^3 + x + x^3*Y)
649637
sage: h = L.higher_derivation()
@@ -743,7 +731,6 @@ def _prime_power_representation(self, f, separating_element=None):
743731
744732
EXAMPLES::
745733
746-
sage: # needs sage.rings.finite_rings
747734
sage: K.<x> = FunctionField(GF(2)); _.<Y> = K[]
748735
sage: L.<y> = K.extension(Y^3 + x + x^3*Y)
749736
sage: h = L.higher_derivation()
@@ -790,7 +777,6 @@ def _pth_root(self, c):
790777
791778
EXAMPLES::
792779
793-
sage: # needs sage.rings.finite_rings
794780
sage: K.<x> = FunctionField(GF(2)); _.<Y> = K[]
795781
sage: L.<y> = K.extension(Y^3 + x + x^3*Y)
796782
sage: h = L.higher_derivation()

src/sage/rings/function_field/differential.py

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,6 @@ def __init__(self, parent, f, t=None):
105105
106106
TESTS::
107107
108-
sage: # needs sage.rings.finite_rings
109108
sage: F.<x> = FunctionField(GF(7))
110109
sage: f = x/(x^2 + x + 1)
111110
sage: w = f.differential()
@@ -173,10 +172,9 @@ def __hash__(self):
173172
174173
EXAMPLES::
175174
176-
sage: # needs sage.rings.finite_rings
177175
sage: K.<x> = FunctionField(GF(2)); _.<Y> = K[]
178176
sage: L.<y> = K.extension(Y^3 + x + x^3*Y) # needs sage.rings.function_field
179-
sage: {x.differential(): 1} # needs sage.rings.function_field
177+
sage: {x.differential(): 1}
180178
{d(x): 1}
181179
sage: {y.differential(): 1} # needs sage.rings.function_field
182180
{(x*y^2 + 1/x*y) d(x): 1}
@@ -411,7 +409,6 @@ def valuation(self, place):
411409
412410
EXAMPLES::
413411
414-
sage: # needs sage.rings.finite_rings
415412
sage: K.<x> = FunctionField(GF(5)); _.<Y> = K[]
416413
sage: L.<y> = K.extension(Y^3 + x + x^3*Y) # needs sage.rings.function_field
417414
sage: w = (1/y) * y.differential() # needs sage.rings.function_field
@@ -502,7 +499,6 @@ def monomial_coefficients(self, copy=True):
502499
503500
EXAMPLES::
504501
505-
sage: # needs sage.rings.finite_rings
506502
sage: K.<x> = FunctionField(GF(5)); _.<Y> = K[]
507503
sage: L.<y> = K.extension(Y^3 + x + x^3*Y) # needs sage.rings.function_field
508504
sage: d = y.differential() # needs sage.rings.function_field

src/sage/rings/function_field/element.pyx

Lines changed: 14 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@ Derivatives of elements in separable extensions::
2828
The divisor of an element of a global function field::
2929
3030
sage: K.<x> = FunctionField(GF(2)); _.<Y> = K[]
31-
sage: L.<y> = K.extension(Y^2 + Y + x + 1/x) # needs sage.rings.finite_rings sage.rings.function_field
32-
sage: y.divisor() # needs sage.rings.finite_rings sage.rings.function_field
31+
sage: L.<y> = K.extension(Y^2 + Y + x + 1/x) # needs sage.rings.function_field
32+
sage: y.divisor() # needs sage.rings.function_field
3333
- Place (1/x, 1/x*y)
3434
- Place (x, x*y)
3535
+ 2*Place (x + 1, x*y)
@@ -399,18 +399,17 @@ cdef class FunctionFieldElement(FieldElement):
399399
400400
Verify that :trac:`27712` is resolved::
401401
402-
sage: # needs sage.rings.finite_rings
403402
sage: K.<x> = FunctionField(GF(31))
404403
sage: R.<y> = K[]
405404
sage: L.<y> = K.extension(y^2 - x) # needs sage.rings.function_field
406405
sage: R.<z> = L[] # needs sage.rings.function_field
407406
sage: M.<z> = L.extension(z^2 - y) # needs sage.rings.function_field
408407
409-
sage: x.differential() # needs sage.modules sage.rings.finite_rings
408+
sage: x.differential() # needs sage.modules
410409
d(x)
411-
sage: y.differential() # needs sage.modules sage.rings.finite_rings sage.rings.function_field
410+
sage: y.differential() # needs sage.modules sage.rings.function_field
412411
(16/x*y) d(x)
413-
sage: z.differential() # needs sage.modules sage.rings.finite_rings sage.rings.function_field
412+
sage: z.differential() # needs sage.modules sage.rings.function_field
414413
(8/x*z) d(x)
415414
"""
416415
F = self.parent()
@@ -455,7 +454,7 @@ cdef class FunctionFieldElement(FieldElement):
455454
456455
sage: K.<t> = FunctionField(GF(2))
457456
sage: f = t^2
458-
sage: f.higher_derivative(2) # needs sage.modules sage.rings.finite_rings
457+
sage: f.higher_derivative(2) # needs sage.modules sage.rings.function_field
459458
1
460459
461460
::
@@ -485,8 +484,8 @@ cdef class FunctionFieldElement(FieldElement):
485484
::
486485
487486
sage: K.<x> = FunctionField(GF(2)); _.<Y> = K[]
488-
sage: L.<y> = K.extension(Y^2 + Y + x + 1/x) # needs sage.rings.finite_rings sage.rings.function_field
489-
sage: y.divisor() # needs sage.modules sage.rings.finite_rings sage.rings.function_field
487+
sage: L.<y> = K.extension(Y^2 + Y + x + 1/x) # needs sage.rings.function_field
488+
sage: y.divisor() # needs sage.modules sage.rings.function_field
490489
- Place (1/x, 1/x*y)
491490
- Place (x, x*y)
492491
+ 2*Place (x + 1, x*y)
@@ -602,7 +601,6 @@ cdef class FunctionFieldElement(FieldElement):
602601
603602
EXAMPLES::
604603
605-
sage: # needs sage.rings.finite_rings
606604
sage: K.<x> = FunctionField(GF(2)); _.<Y> = K[]
607605
sage: L.<y> = K.extension(Y^2 + Y + x + 1/x) # needs sage.rings.function_field
608606
sage: p = L.places_infinite()[0] # needs sage.modules sage.rings.function_field
@@ -638,7 +636,6 @@ cdef class FunctionFieldElement(FieldElement):
638636
639637
EXAMPLES::
640638
641-
sage: # needs sage.rings.finite_rings
642639
sage: K.<t> = FunctionField(GF(5))
643640
sage: p = K.place_infinite()
644641
sage: f = 1/t^2 + 3
@@ -647,16 +644,16 @@ cdef class FunctionFieldElement(FieldElement):
647644
648645
::
649646
650-
sage: # needs sage.rings.finite_rings
647+
sage: # needs sage.rings.finite_rings sage.rings.function_field
651648
sage: K.<x> = FunctionField(GF(4)); _.<Y> = K[]
652-
sage: L.<y> = K.extension(Y^2 + Y + x + 1/x) # needs sage.rings.function_field
653-
sage: p, = L.places_infinite() # needs sage.rings.function_field
654-
sage: p, = L.places_infinite() # needs sage.rings.function_field
655-
sage: (y + x).evaluate(p) # needs sage.rings.function_field
649+
sage: L.<y> = K.extension(Y^2 + Y + x + 1/x)
650+
sage: p, = L.places_infinite()
651+
sage: p, = L.places_infinite()
652+
sage: (y + x).evaluate(p)
656653
Traceback (most recent call last):
657654
...
658655
ValueError: has a pole at the place
659-
sage: (y/x + 1).evaluate(p) # needs sage.rings.function_field
656+
sage: (y/x + 1).evaluate(p)
660657
1
661658
"""
662659
R, _, to_R = place._residue_field()
@@ -715,7 +712,6 @@ cdef class FunctionFieldElement(FieldElement):
715712
716713
EXAMPLES::
717714
718-
sage: # needs sage.rings.finite_rings
719715
sage: K.<x> = FunctionField(GF(3))
720716
sage: R.<y> = K[]
721717
sage: L.<y> = K.extension(y^2 - x) # needs sage.rings.function_field

src/sage/rings/function_field/element_polymod.pyx

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -276,7 +276,6 @@ cdef class FunctionFieldElement_polymod(FunctionFieldElement):
276276
277277
EXAMPLES::
278278
279-
sage: # needs sage.rings.finite_rings
280279
sage: K.<x> = FunctionField(GF(3))
281280
sage: R.<y> = K[]
282281
sage: L.<y> = K.extension(y^2 - x)
@@ -287,7 +286,6 @@ cdef class FunctionFieldElement_polymod(FunctionFieldElement):
287286
288287
This also works for inseparable extensions::
289288
290-
sage: # needs sage.rings.finite_rings
291289
sage: K.<x> = FunctionField(GF(3))
292290
sage: R.<y> = K[]
293291
sage: L.<y> = K.extension(y^3 - x^2)
@@ -377,7 +375,6 @@ cdef class FunctionFieldElement_polymod(FunctionFieldElement):
377375
378376
EXAMPLES::
379377
380-
sage: # needs sage.rings.finite_rings
381378
sage: K.<x> = FunctionField(GF(3))
382379
sage: R.<y> = K[]
383380
sage: L.<y> = K.extension(y^2 - x)

src/sage/rings/function_field/element_rational.pyx

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -475,15 +475,16 @@ cdef class FunctionFieldElement_rational(FunctionFieldElement):
475475
476476
EXAMPLES::
477477
478+
sage: # needs sage.libs.pari
478479
sage: K.<t> = FunctionField(QQ)
479480
sage: f = (t+1) / (t^2 - 1/3)
480-
sage: f.factor() # needs sage.libs.pari
481+
sage: f.factor()
481482
(t + 1) * (t^2 - 1/3)^-1
482-
sage: (7*f).factor() # needs sage.libs.pari
483+
sage: (7*f).factor()
483484
(7) * (t + 1) * (t^2 - 1/3)^-1
484-
sage: ((7*f).factor()).unit() # needs sage.libs.pari
485+
sage: ((7*f).factor()).unit()
485486
7
486-
sage: (f^3).factor() # needs sage.libs.pari
487+
sage: (f^3).factor()
487488
(t + 1)^3 * (t^2 - 1/3)^-3
488489
"""
489490
P = self.parent()

0 commit comments

Comments
 (0)