Places of function fields¶
Places are defined for arbitrary function fields, but presently Sage can find and compute with places only of rational function fields and global function fields.
The places of a function field correspond, one-to-one, to valuation rings of the function field, each of which defines discrete valuation of 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 the 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 isomorphisms 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
-
class
sage.rings.function_field.place.
FunctionFieldPlace
(parent, prime)¶ Bases:
sage.structure.element.Element
Places of function fields.
INPUT:
field
– 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.<t> = PolynomialRing(K) sage: F.<y> = K.extension(t^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+x^3*Y) 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+x^3*Y) 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_global
(parent, prime)¶ Bases:
sage.rings.function_field.place.FunctionFieldPlace
Places 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+x^3*Y) 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+x^3*Y) 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+x^3*Y) 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+x^3*Y) 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+x^3*Y) 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
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:
sage.rings.function_field.place.FunctionFieldPlace
Places of rational function field.
-
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:
sage.structure.unique_representation.UniqueRepresentation
,sage.structure.parent.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 + x^3*Y) sage: L.place_set() Set of places of Function field in y defined by y^3 + x^3*y + x
-
Element
¶ alias of
FunctionFieldPlace