Derivations of function fields: extension - Algebraic Function Fields

Skip to content
Back to top
View this page
Edit this page

# Derivations of function fields: extension

class sage.rings.function_field.derivations_polymod.FunctionFieldDerivation_inseparable(parent, u=None)

  Bases: `FunctionFieldDerivation`

  Initialize this derivation.

  INPUT:

  - `parent` – the parent of this derivation

  - `u` – a parameter describing the derivation

  EXAMPLES:

  Sage

      sage: K.<x> = FunctionField(GF(2))
      sage: R.<y> = K[]
      sage: L.<y> = K.extension(y^2 - x)
      sage: d = L.derivation()

  Python

      >>> 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()

  This also works for iterated non-monic extensions:

  Sage

      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

  [Python]

      >>> 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

  We can also create a multiple of the canonical derivation:

  Sage

      sage: M.derivation([x])
      x*d/dz

  Python

      >>> from sage.all import *
      >>> M.derivation([x])
      x*d/dz

class sage.rings.function_field.derivations_polymod.FunctionFieldDerivation_separable(parent, d)

  Bases: `FunctionFieldDerivation`

  Derivations of separable extensions.

  EXAMPLES:

  Sage

      sage: K.<x> = FunctionField(QQ)
      sage: R.<y> = K[]
      sage: L.<y> = K.extension(y^2 - x)
      sage: L.derivation()
      d/dx

  Python

      >>> 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

class sage.rings.function_field.derivations_polymod.FunctionFieldHigherDerivation(field)

  Bases: `Map`

  Base class of higher derivations on function fields.

  INPUT:

  - `field` – function field on which the derivation operates

  EXAMPLES:

  Sage

      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

  Python

      >>> 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

class sage.rings.function_field.derivations_polymod.FunctionFieldHigherDerivation_char_zero(field)

  Bases: `FunctionFieldHigherDerivation`

  Higher derivations of function fields of characteristic zero.

  INPUT:

  - `field` – function field on which the derivation operates

  EXAMPLES:

  Sage

      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

  Python

      >>> 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

class sage.rings.function_field.derivations_polymod.FunctionFieldHigherDerivation_global(field)

  Bases: `FunctionFieldHigherDerivation`

  Higher derivations of global function fields.

  INPUT:

  - `field` – function field on which the derivation operates

  EXAMPLES:

  Sage

      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

  Python

      >>> 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

class sage.rings.function_field.derivations_polymod.RationalFunctionFieldHigherDerivation_global(field)

  Bases: `FunctionFieldHigherDerivation`

  Higher derivations of rational function fields over finite fields.

  INPUT:

  - `field` – function field on which the derivation operates

  EXAMPLES:

  Sage

      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

  Python

      >>> 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