Morphisms of function fields

Maps and morphisms useful for computations with function fields.

EXAMPLES:

sage: K.<x> = FunctionField(QQ); R.<y> = K[]
sage: K.hom(1/x)
Function Field endomorphism of Rational function field in x over Rational Field
  Defn: x |--> 1/x
sage: L.<y> = K.extension(y^2 - x)
sage: K.hom(y)
Function Field morphism:
  From: Rational function field in x over Rational Field
  To:   Function field in y defined by y^2 - x
  Defn: x |--> y
sage: L.hom([y,x])
Function Field endomorphism of Function field in y defined by y^2 - x
  Defn: y |--> y
        x |--> x
sage: L.hom([x,y])
Traceback (most recent call last):
...
ValueError: invalid morphism

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
class sage.rings.function_field.maps.FractionFieldToFunctionField

Bases: sage.rings.function_field.maps.FunctionFieldVectorSpaceIsomorphism

Isomorphism from a fraction field of a polynomial ring to the isomorphic function field.

EXAMPLES:

sage: K = QQ['x'].fraction_field()
sage: L = K.function_field()
sage: f = L.coerce_map_from(K); f
Isomorphism:
    From: Fraction Field of Univariate Polynomial Ring in x over Rational Field
    To:   Rational function field in x over Rational Field
section()

Return the inverse map of this isomorphism.

EXAMPLES:

sage: K = QQ['x'].fraction_field()
sage: L = K.function_field()
sage: f = L.coerce_map_from(K)
sage: f.section()
Isomorphism:
    From: Rational function field in x over Rational Field
    To:   Fraction Field of Univariate Polynomial Ring in x over Rational Field
class sage.rings.function_field.maps.FunctionFieldConversionToConstantBaseField(parent)

Bases: sage.categories.map.Map

Conversion map from the function field to its constant base field.

EXAMPLES:

sage: K.<x> = FunctionField(QQ)
sage: QQ.convert_map_from(K)
Conversion map:
  From: Rational function field in x over Rational Field
  To:   Rational Field
class sage.rings.function_field.maps.FunctionFieldDerivation(K)

Bases: sage.categories.map.Map

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
Derivation map:
  From: Rational function field in x over Rational Field
  To:   Rational function field in x over Rational Field
is_injective()

Return False since a derivation is never injective.

EXAMPLES:

sage: K.<x> = FunctionField(QQ)
sage: d = K.derivation()
sage: d.is_injective()
False
class sage.rings.function_field.maps.FunctionFieldDerivation_rational(K, u)

Bases: sage.rings.function_field.maps.FunctionFieldDerivation

Derivations on rational function fields.

EXAMPLES:

sage: K.<x> = FunctionField(QQ)
sage: K.derivation()
Derivation map:
  From: Rational function field in x over Rational Field
  To:   Rational function field in x over Rational Field
class sage.rings.function_field.maps.FunctionFieldDerivation_separable(L, d)

Bases: sage.rings.function_field.maps.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()
Derivation map:
  From: Function field in y defined by y^2 - x
  To:   Function field in y defined by y^2 - x
  Defn: y |--> (-1/2/-x)*y
class sage.rings.function_field.maps.FunctionFieldMorphism(parent, im_gen, base_morphism)

Bases: sage.rings.morphism.RingHomomorphism

Base class for morphisms between function fields.

EXAMPLES:

sage: K.<x> = FunctionField(QQ)
sage: f = K.hom(1/x); f
Function Field endomorphism of Rational function field in x over Rational Field
  Defn: x |--> 1/x
class sage.rings.function_field.maps.FunctionFieldMorphism_polymod(parent, im_gen, base_morphism)

Bases: sage.rings.function_field.maps.FunctionFieldMorphism

Morphism from a finite extension of a function field to a function field.

EXAMPLES:

sage: K.<x> = FunctionField(GF(7)); R.<y> = K[]
sage: L.<y> = K.extension(y^3 + 6*x^3 + x)
sage: f = L.hom(y*2); f
Function Field endomorphism of Function field in y defined by y^3 + 6*x^3 + x
  Defn: y |--> 2*y
sage: factor(L.polynomial())
y^3 + 6*x^3 + x
sage: f(y).charpoly('y')
y^3 + 6*x^3 + x
class sage.rings.function_field.maps.FunctionFieldMorphism_rational(parent, im_gen, base_morphism)

Bases: sage.rings.function_field.maps.FunctionFieldMorphism

Morphism from a rational function field to a function field.

class sage.rings.function_field.maps.FunctionFieldToFractionField

Bases: sage.rings.function_field.maps.FunctionFieldVectorSpaceIsomorphism

Isomorphism from rational function field to the isomorphic fraction field of a polynomial ring.

EXAMPLES:

sage: K = QQ['x'].fraction_field()
sage: L = K.function_field()
sage: f = K.coerce_map_from(L); f
Isomorphism:
  From: Rational function field in x over Rational Field
  To:   Fraction Field of Univariate Polynomial Ring in x over Rational Field
section()

Return the inverse map of this isomorphism.

EXAMPLES:

sage: K = QQ['x'].fraction_field()
sage: L = K.function_field()
sage: f = K.coerce_map_from(L)
sage: f.section()
Isomorphism:
    From: Fraction Field of Univariate Polynomial Ring in x over Rational Field
    To:   Rational function field in x over Rational Field
class sage.rings.function_field.maps.FunctionFieldVectorSpaceIsomorphism

Bases: sage.categories.morphism.Morphism

Base class for isomorphisms between function fields and vector spaces.

EXAMPLES:

sage: K.<x> = FunctionField(QQ); R.<y> = K[]
sage: L.<y> = K.extension(y^2 - x*y + 4*x^3)
sage: V, f, t = L.vector_space()
sage: isinstance(f, sage.rings.function_field.maps.FunctionFieldVectorSpaceIsomorphism)
True
is_injective()

Return True, since the isomorphism is injective.

EXAMPLES:

sage: K.<x> = FunctionField(QQ); R.<y> = K[]
sage: L.<y> = K.extension(y^2 - x*y + 4*x^3)
sage: V, f, t = L.vector_space()
sage: f.is_injective()
True
is_surjective()

Return True, since the isomorphism is surjective.

EXAMPLES:

sage: K.<x> = FunctionField(QQ); R.<y> = K[]
sage: L.<y> = K.extension(y^2 - x*y + 4*x^3)
sage: V, f, t = L.vector_space()
sage: f.is_surjective()
True
class sage.rings.function_field.maps.MapFunctionFieldToVectorSpace(K, V)

Bases: sage.rings.function_field.maps.FunctionFieldVectorSpaceIsomorphism

Isomorphism from a function field to a vector space.

EXAMPLES:

sage: K.<x> = FunctionField(QQ); R.<y> = K[]
sage: L.<y> = K.extension(y^2 - x*y + 4*x^3)
sage: V, f, t = L.vector_space(); t
Isomorphism:
  From: Function field in y defined by y^2 - x*y + 4*x^3
  To:   Vector space of dimension 2 over Rational function field in x over Rational Field
class sage.rings.function_field.maps.MapVectorSpaceToFunctionField(V, K)

Bases: sage.rings.function_field.maps.FunctionFieldVectorSpaceIsomorphism

Isomorphism from a vector space to a function field.

EXAMPLES:

sage: K.<x> = FunctionField(QQ); R.<y> = K[]
sage: L.<y> = K.extension(y^2 - x*y + 4*x^3)
sage: V, f, t = L.vector_space(); f
Isomorphism:
  From: Vector space of dimension 2 over Rational function field in x over Rational Field
  To:   Function field in y defined by y^2 - x*y + 4*x^3
codomain()

Return the function field which is the codomain of the isomorphism.

EXAMPLES:

sage: K.<x> = FunctionField(QQ); R.<y> = K[]
sage: L.<y> = K.extension(y^2 - x*y + 4*x^3)
sage: V, f, t = L.vector_space()
sage: f.codomain()
Function field in y defined by y^2 - x*y + 4*x^3
domain()

Return the vector space which is the domain of the isomorphism.

EXAMPLES:

sage: K.<x> = FunctionField(QQ); R.<y> = K[]
sage: L.<y> = K.extension(y^2 - x*y + 4*x^3)
sage: V, f, t = L.vector_space()
sage: f.domain()
Vector space of dimension 2 over Rational function field in x over Rational Field