Places of function fields#
The places of a function field correspond, one-to-one, to valuation rings of the function field, each of which defines a discrete valuation for the elements of the function field. “Finite” places are in one-to-one correspondence with the prime ideals of the finite maximal order while places “at infinity” are in one-to-one correspondence with the prime ideals of the infinite maximal order.
EXAMPLES:
All rational places of a function field can be computed:
sage: K.<x> = FunctionField(GF(2)); _.<Y> = K[]
sage: L.<y> = K.extension(Y^3 + x + x^3*Y)
sage: L.places()
[Place (1/x, 1/x^3*y^2 + 1/x),
Place (1/x, 1/x^3*y^2 + 1/x^2*y + 1),
Place (x, y)]
The residue field associated with a place is given as an extension of the constant field:
sage: F.<x> = FunctionField(GF(2))
sage: O = F.maximal_order()
sage: p = O.ideal(x^2 + x + 1).place()
sage: k, fr_k, to_k = p.residue_field()
sage: k
Finite Field in z2 of size 2^2
The homomorphisms are between the valuation ring and the residue field:
sage: fr_k
Ring morphism:
From: Finite Field in z2 of size 2^2
To: Valuation ring at Place (x^2 + x + 1)
sage: to_k
Ring morphism:
From: Valuation ring at Place (x^2 + x + 1)
To: Finite Field in z2 of size 2^2
AUTHORS:
Kwankyu Lee (2017-04-30): initial version
Brent Baccala (2019-12-20): function fields of characteristic zero
- class sage.rings.function_field.place.FunctionFieldPlace(parent, prime)#
Bases:
Element
Places of function fields.
INPUT:
parent
– place set of a function fieldprime
– prime ideal associated with the place
EXAMPLES:
sage: K.<x>=FunctionField(GF(2)); _.<Y> = K[] sage: L.<y>=K.extension(Y^3 + x + x^3*Y) sage: L.places_finite()[0] Place (x, y)
- divisor(multiplicity=1)#
Return the prime divisor corresponding to the place.
EXAMPLES:
sage: K.<x> = FunctionField(GF(5)); R.<Y> = PolynomialRing(K) sage: F.<y> = K.extension(Y^2 - x^3 - 1) sage: O = F.maximal_order() sage: I = O.ideal(x + 1,y) sage: P = I.place() sage: P.divisor() Place (x + 1, y)
- function_field()#
Return the function field to which the place belongs.
EXAMPLES:
sage: K.<x> = FunctionField(GF(2)); _.<Y> = K[] sage: L.<y> = K.extension(Y^3 + x^3*Y + x) sage: p = L.places()[0] sage: p.function_field() == L True
- prime_ideal()#
Return the prime ideal associated with the place.
EXAMPLES:
sage: K.<x> = FunctionField(GF(2)); _.<Y> = K[] sage: L.<y> = K.extension(Y^3 + x^3*Y + x) sage: p = L.places()[0] sage: p.prime_ideal() Ideal (1/x^3*y^2 + 1/x) of Maximal infinite order of Function field in y defined by y^3 + x^3*y + x
- class sage.rings.function_field.place.FunctionFieldPlace_polymod(parent, prime)#
Bases:
FunctionFieldPlace
Places of extensions of function fields.
- degree()#
Return the degree of the place.
EXAMPLES:
sage: K.<x> = FunctionField(GF(2)); _.<Y> = K[] sage: L.<y> = K.extension(Y^3 + x^3*Y + x) sage: OK = K.maximal_order() sage: OL = L.maximal_order() sage: p = OK.ideal(x^2 + x + 1) sage: dec = OL.decomposition(p) sage: q = dec[0][0].place() sage: q.degree() 2
- gaps()#
Return the gap sequence for the place.
EXAMPLES:
sage: K.<x> = FunctionField(GF(4)); _.<Y> = K[] sage: L.<y> = K.extension(Y^3 + x^3*Y + x) sage: O = L.maximal_order() sage: p = O.ideal(x,y).place() sage: p.gaps() # a Weierstrass place [1, 2, 4] sage: K.<x> = FunctionField(GF(2)); _.<Y> = K[] sage: L.<y> = K.extension(Y^3 + x^3 * Y + x) sage: [p.gaps() for p in L.places()] [[1, 2, 4], [1, 2, 4], [1, 2, 4]]
- is_infinite_place()#
Return
True
if the place is above the unique infinite place of the underlying rational function field.EXAMPLES:
sage: K.<x> = FunctionField(GF(2)); _.<Y> = K[] sage: L.<y> = K.extension(Y^3 + x^3*Y + x) sage: pls = L.places() sage: [p.is_infinite_place() for p in pls] [True, True, False] sage: [p.place_below() for p in pls] [Place (1/x), Place (1/x), Place (x)]
- local_uniformizer()#
Return an element of the function field that has a simple zero at the place.
EXAMPLES:
sage: K.<x> = FunctionField(GF(4)); _.<Y> = K[] sage: L.<y> = K.extension(Y^3 + x^3*Y + x) sage: pls = L.places() sage: [p.local_uniformizer().valuation(p) for p in pls] [1, 1, 1, 1, 1]
- place_below()#
Return the place lying below the place.
EXAMPLES:
sage: K.<x> = FunctionField(GF(2)); _.<Y> = K[] sage: L.<y> = K.extension(Y^3 + x^3*Y + x) sage: OK = K.maximal_order() sage: OL = L.maximal_order() sage: p = OK.ideal(x^2 + x + 1) sage: dec = OL.decomposition(p) sage: q = dec[0][0].place() sage: q.place_below() Place (x^2 + x + 1)
- relative_degree()#
Return the relative degree of the place.
EXAMPLES:
sage: K.<x> = FunctionField(GF(2)); _.<Y> = K[] sage: L.<y> = K.extension(Y^3 + x^3*Y + x) sage: OK = K.maximal_order() sage: OL = L.maximal_order() sage: p = OK.ideal(x^2 + x + 1) sage: dec = OL.decomposition(p) sage: q = dec[0][0].place() sage: q.relative_degree() 1
- residue_field(name=None)#
Return the residue field of the place.
INPUT:
name
– string; name of the generator of the residue field
OUTPUT:
a field isomorphic to the residue field
a ring homomorphism from the valuation ring to the field
a ring homomorphism from the field to the valuation ring
EXAMPLES:
sage: K.<x> = FunctionField(GF(2)); _.<Y> = K[] sage: L.<y> = K.extension(Y^2 + Y + x + 1/x) sage: p = L.places_finite()[0] sage: k, fr_k, to_k = p.residue_field() sage: k Finite Field of size 2 sage: fr_k Ring morphism: From: Finite Field of size 2 To: Valuation ring at Place (x, x*y) sage: to_k Ring morphism: From: Valuation ring at Place (x, x*y) To: Finite Field of size 2 sage: to_k(y) Traceback (most recent call last): ... TypeError: y fails to convert into the map's domain Valuation ring at Place (x, x*y)... sage: to_k(1/y) 0 sage: to_k(y/(1+y)) 1
- valuation_ring()#
Return the valuation ring at the place.
EXAMPLES:
sage: K.<x> = FunctionField(GF(2)); _.<Y> = K[] sage: L.<y> = K.extension(Y^2 + Y + x + 1/x) sage: p = L.places_finite()[0] sage: p.valuation_ring() Valuation ring at Place (x, x*y)
- class sage.rings.function_field.place.FunctionFieldPlace_rational(parent, prime)#
Bases:
FunctionFieldPlace
Places of rational function fields.
- degree()#
Return the degree of the place.
EXAMPLES:
sage: F.<x> = FunctionField(GF(2)) sage: O = F.maximal_order() sage: i = O.ideal(x^2 + x + 1) sage: p = i.place() sage: p.degree() 2
- is_infinite_place()#
Return
True
if the place is at infinite.EXAMPLES:
sage: F.<x> = FunctionField(GF(2)) sage: F.places() [Place (1/x), Place (x), Place (x + 1)] sage: [p.is_infinite_place() for p in F.places()] [True, False, False]
- local_uniformizer()#
Return a local uniformizer of the place.
EXAMPLES:
sage: F.<x> = FunctionField(GF(2)) sage: F.places() [Place (1/x), Place (x), Place (x + 1)] sage: [p.local_uniformizer() for p in F.places()] [1/x, x, x + 1]
- residue_field(name=None)#
Return the residue field of the place.
EXAMPLES:
sage: F.<x> = FunctionField(GF(2)) sage: O = F.maximal_order() sage: p = O.ideal(x^2 + x + 1).place() sage: k, fr_k, to_k = p.residue_field() sage: k Finite Field in z2 of size 2^2 sage: fr_k Ring morphism: From: Finite Field in z2 of size 2^2 To: Valuation ring at Place (x^2 + x + 1) sage: to_k Ring morphism: From: Valuation ring at Place (x^2 + x + 1) To: Finite Field in z2 of size 2^2
- valuation_ring()#
Return the valuation ring at the place.
EXAMPLES:
sage: K.<x> = FunctionField(GF(2)); _.<Y> = K[] sage: L.<y> = K.extension(Y^2 + Y + x + 1/x) sage: p = L.places_finite()[0] sage: p.valuation_ring() Valuation ring at Place (x, x*y)
- class sage.rings.function_field.place.PlaceSet(field)#
Bases:
UniqueRepresentation
,Parent
Sets of Places of function fields.
INPUT:
field
– function field
EXAMPLES:
sage: K.<x> = FunctionField(GF(2)); _.<Y> = K[] sage: L.<y> = K.extension(Y^3 + x^3*Y + x) sage: L.place_set() Set of places of Function field in y defined by y^3 + x^3*y + x
- Element#
alias of
FunctionFieldPlace
- function_field()#
Return the function field to which this place set belongs.
EXAMPLES:
sage: K.<x> = FunctionField(GF(2)); _.<Y> = K[] sage: L.<y> = K.extension(Y^3 + x^3*Y + x) sage: PS = L.place_set() sage: PS.function_field() == L True