Derivations of function fields: extension¶
- class sage.rings.function_field.derivations_polymod.FunctionFieldDerivation_inseparable(parent, u=None)[source]¶
Bases:
FunctionFieldDerivation
Initialize this derivation.
INPUT:
parent
– the parent of this derivationu
– a parameter describing the derivation
EXAMPLES:
sage: K.<x> = FunctionField(GF(2)) sage: R.<y> = K[] sage: L.<y> = K.extension(y^2 - x) sage: d = L.derivation()
>>> from sage.all import * >>> K = FunctionField(GF(Integer(2)), names=('x',)); (x,) = K._first_ngens(1) >>> R = K['y']; (y,) = R._first_ngens(1) >>> L = K.extension(y**Integer(2) - x, names=('y',)); (y,) = L._first_ngens(1) >>> d = L.derivation()
K.<x> = FunctionField(GF(2)) R.<y> = K[] L.<y> = K.extension(y^2 - x) d = L.derivation()
This also works for iterated non-monic extensions:
sage: K.<x> = FunctionField(GF(2)) sage: R.<y> = K[] sage: L.<y> = K.extension(y^2 - 1/x) sage: R.<z> = L[] sage: M.<z> = L.extension(z^2*y - x^3) sage: M.derivation() d/dz
>>> from sage.all import * >>> K = FunctionField(GF(Integer(2)), names=('x',)); (x,) = K._first_ngens(1) >>> R = K['y']; (y,) = R._first_ngens(1) >>> L = K.extension(y**Integer(2) - Integer(1)/x, names=('y',)); (y,) = L._first_ngens(1) >>> R = L['z']; (z,) = R._first_ngens(1) >>> M = L.extension(z**Integer(2)*y - x**Integer(3), names=('z',)); (z,) = M._first_ngens(1) >>> M.derivation() d/dz
K.<x> = FunctionField(GF(2)) R.<y> = K[] L.<y> = K.extension(y^2 - 1/x) R.<z> = L[] M.<z> = L.extension(z^2*y - x^3) M.derivation()
We can also create a multiple of the canonical derivation:
sage: M.derivation([x]) x*d/dz
>>> from sage.all import * >>> M.derivation([x]) x*d/dz
M.derivation([x])
- class sage.rings.function_field.derivations_polymod.FunctionFieldDerivation_separable(parent, d)[source]¶
Bases:
FunctionFieldDerivation
Derivations of separable extensions.
EXAMPLES:
sage: K.<x> = FunctionField(QQ) sage: R.<y> = K[] sage: L.<y> = K.extension(y^2 - x) sage: L.derivation() d/dx
>>> from sage.all import * >>> K = FunctionField(QQ, names=('x',)); (x,) = K._first_ngens(1) >>> R = K['y']; (y,) = R._first_ngens(1) >>> L = K.extension(y**Integer(2) - x, names=('y',)); (y,) = L._first_ngens(1) >>> L.derivation() d/dx
K.<x> = FunctionField(QQ) R.<y> = K[] L.<y> = K.extension(y^2 - x) L.derivation()
- class sage.rings.function_field.derivations_polymod.FunctionFieldHigherDerivation(field)[source]¶
Bases:
Map
Base class of higher derivations on function fields.
INPUT:
field
– function field on which the derivation operates
EXAMPLES:
sage: F.<x> = FunctionField(GF(2)) sage: F.higher_derivation() Higher derivation map: From: Rational function field in x over Finite Field of size 2 To: Rational function field in x over Finite Field of size 2
>>> from sage.all import * >>> F = FunctionField(GF(Integer(2)), names=('x',)); (x,) = F._first_ngens(1) >>> F.higher_derivation() Higher derivation map: From: Rational function field in x over Finite Field of size 2 To: Rational function field in x over Finite Field of size 2
F.<x> = FunctionField(GF(2)) F.higher_derivation()
- class sage.rings.function_field.derivations_polymod.FunctionFieldHigherDerivation_char_zero(field)[source]¶
Bases:
FunctionFieldHigherDerivation
Higher derivations of function fields of characteristic zero.
INPUT:
field
– function field on which the derivation operates
EXAMPLES:
sage: K.<x> = FunctionField(QQ); _.<Y> = K[] sage: L.<y> = K.extension(Y^3 + x + x^3*Y) sage: h = L.higher_derivation() sage: h Higher derivation map: From: Function field in y defined by y^3 + x^3*y + x To: Function field in y defined by y^3 + x^3*y + x sage: h(y,1) == -(3*x^2*y+1)/(3*y^2+x^3) True sage: h(y^2,1) == -2*y*(3*x^2*y+1)/(3*y^2+x^3) True sage: e = L.random_element() sage: h(h(e,1),1) == 2*h(e,2) True sage: h(h(h(e,1),1),1) == 3*2*h(e,3) True
>>> from sage.all import * >>> K = FunctionField(QQ, 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) >>> h = L.higher_derivation() >>> h Higher derivation map: From: Function field in y defined by y^3 + x^3*y + x To: Function field in y defined by y^3 + x^3*y + x >>> h(y,Integer(1)) == -(Integer(3)*x**Integer(2)*y+Integer(1))/(Integer(3)*y**Integer(2)+x**Integer(3)) True >>> h(y**Integer(2),Integer(1)) == -Integer(2)*y*(Integer(3)*x**Integer(2)*y+Integer(1))/(Integer(3)*y**Integer(2)+x**Integer(3)) True >>> e = L.random_element() >>> h(h(e,Integer(1)),Integer(1)) == Integer(2)*h(e,Integer(2)) True >>> h(h(h(e,Integer(1)),Integer(1)),Integer(1)) == Integer(3)*Integer(2)*h(e,Integer(3)) True
K.<x> = FunctionField(QQ); _.<Y> = K[] L.<y> = K.extension(Y^3 + x + x^3*Y) h = L.higher_derivation() h h(y,1) == -(3*x^2*y+1)/(3*y^2+x^3) h(y^2,1) == -2*y*(3*x^2*y+1)/(3*y^2+x^3) e = L.random_element() h(h(e,1),1) == 2*h(e,2) h(h(h(e,1),1),1) == 3*2*h(e,3)
- class sage.rings.function_field.derivations_polymod.FunctionFieldHigherDerivation_global(field)[source]¶
Bases:
FunctionFieldHigherDerivation
Higher derivations of global function fields.
INPUT:
field
– function field on which the derivation operates
EXAMPLES:
sage: K.<x> = FunctionField(GF(2)); _.<Y> = K[] sage: L.<y> = K.extension(Y^3 + x + x^3*Y) sage: h = L.higher_derivation() sage: h Higher derivation map: From: Function field in y defined by y^3 + x^3*y + x To: Function field in y defined by y^3 + x^3*y + x sage: h(y^2, 2) ((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) >>> h = L.higher_derivation() >>> h Higher derivation map: From: Function field in y defined by y^3 + x^3*y + x To: Function field in y defined by y^3 + x^3*y + x >>> h(y**Integer(2), Integer(2)) ((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) h = L.higher_derivation() h h(y^2, 2)
- class sage.rings.function_field.derivations_polymod.RationalFunctionFieldHigherDerivation_global(field)[source]¶
Bases:
FunctionFieldHigherDerivation
Higher derivations of rational function fields over finite fields.
INPUT:
field
– function field on which the derivation operates
EXAMPLES:
sage: F.<x> = FunctionField(GF(2)) sage: h = F.higher_derivation() sage: h Higher derivation map: From: Rational function field in x over Finite Field of size 2 To: Rational function field in x over Finite Field of size 2 sage: h(x^2, 2) 1
>>> from sage.all import * >>> F = FunctionField(GF(Integer(2)), names=('x',)); (x,) = F._first_ngens(1) >>> h = F.higher_derivation() >>> h Higher derivation map: From: Rational function field in x over Finite Field of size 2 To: Rational function field in x over Finite Field of size 2 >>> h(x**Integer(2), Integer(2)) 1
F.<x> = FunctionField(GF(2)) h = F.higher_derivation() h h(x^2, 2)