Derivations of function fields¶
For global function fields, which have positive characteristics, the higher derivation is available:
sage: K.<x> = FunctionField(GF(2)); _.<Y> = K[]
sage: L.<y> = K.extension(Y^3 + x + x^3*Y) # needs sage.rings.function_field
sage: h = L.higher_derivation() # needs sage.rings.function_field
sage: h(y^2, 2) # needs sage.rings.function_field
((x^7 + 1)/x^2)*y^2 + x^3*y
>>> from sage.all import *
>>> K = FunctionField(GF(Integer(2)), names=('x',)); (x,) = K._first_ngens(1); _ = K['Y']; (Y,) = _._first_ngens(1)
>>> L = K.extension(Y**Integer(3) + x + x**Integer(3)*Y, names=('y',)); (y,) = L._first_ngens(1)# needs sage.rings.function_field
>>> h = L.higher_derivation() # needs sage.rings.function_field
>>> h(y**Integer(2), Integer(2)) # needs sage.rings.function_field
((x^7 + 1)/x^2)*y^2 + x^3*y
K.<x> = FunctionField(GF(2)); _.<Y> = K[] L.<y> = K.extension(Y^3 + x + x^3*Y) # needs sage.rings.function_field h = L.higher_derivation() # needs sage.rings.function_field h(y^2, 2) # needs sage.rings.function_field
AUTHORS:
William Stein (2010): initial version
Julian Rüth (2011-09-14, 2014-06-23, 2017-08-21): refactored class hierarchy; added derivation classes; morphisms to/from fraction fields
Kwankyu Lee (2017-04-30): added higher derivations and completions
- class sage.rings.function_field.derivations.FunctionFieldDerivation(parent)[source]¶
Bases:
RingDerivationWithoutTwist
Base class for derivations on function fields.
A derivation on \(R\) is a map \(R \to R\) with \(D(\alpha+\beta)=D(\alpha)+D(\beta)\) and \(D(\alpha\beta)=\beta D(\alpha)+\alpha D(\beta)\) for all \(\alpha,\beta\in R\).
EXAMPLES:
sage: K.<x> = FunctionField(QQ) sage: d = K.derivation() sage: d d/dx
>>> from sage.all import * >>> K = FunctionField(QQ, names=('x',)); (x,) = K._first_ngens(1) >>> d = K.derivation() >>> d d/dx
K.<x> = FunctionField(QQ) d = K.derivation() d
- is_injective()[source]¶
Return
False
since a derivation is never injective.EXAMPLES:
sage: K.<x> = FunctionField(QQ) sage: d = K.derivation() sage: d.is_injective() False
>>> from sage.all import * >>> K = FunctionField(QQ, names=('x',)); (x,) = K._first_ngens(1) >>> d = K.derivation() >>> d.is_injective() False
K.<x> = FunctionField(QQ) d = K.derivation() d.is_injective()