Discrete valuations on function fields¶
AUTHORS:
- Julian Rüth (2016-10-16): initial version
EXAMPLES:
We can create classical valuations that correspond to finite and infinite places on a rational function field:
sage: K.<x> = FunctionField(QQ)
sage: v = K.valuation(1); v
(x - 1)-adic valuation
sage: v = K.valuation(x^2 + 1); v
(x^2 + 1)-adic valuation
sage: v = K.valuation(1/x); v
Valuation at the infinite place
Note that we can also specify valuations which do not correspond to a place of the function field:
sage: R.<x> = QQ[]
sage: w = valuations.GaussValuation(R, QQ.valuation(2))
sage: v = K.valuation(w); v
2-adic valuation
Valuations on a rational function field can then be extended to finite extensions:
sage: v = K.valuation(x - 1); v
(x - 1)-adic valuation
sage: R.<y> = K[]
sage: L.<y> = K.extension(y^2 - x)
sage: w = v.extensions(L); w
[[ (x - 1)-adic valuation, v(y + 1) = 1 ]-adic valuation,
[ (x - 1)-adic valuation, v(y - 1) = 1 ]-adic valuation]
REFERENCES:
An overview of some computational tools relating to valuations on function fields can be found in Section 4.6 of [Rüt2014]. Most of this was originally developed for number fields in [Mac1936I] and [Mac1936II].
-
class
sage.rings.function_field.function_field_valuation.ClassicalFunctionFieldValuation_base(parent)¶ Bases:
sage.rings.function_field.function_field_valuation.DiscreteFunctionFieldValuation_baseBase class for discrete valuations on rational function fields that come from points on the projective line.
-
class
sage.rings.function_field.function_field_valuation.DiscreteFunctionFieldValuation_base(parent)¶ Bases:
sage.rings.valuation.valuation.DiscreteValuationBase class for discrete valuations on function fields.
-
extensions(L)¶ Return the extensions of this valuation to
L.EXAMPLES:
sage: K.<x> = FunctionField(QQ) sage: v = K.valuation(x) sage: R.<y> = K[] sage: L.<y> = K.extension(y^2 - x) sage: v.extensions(L) [(x)-adic valuation]
-
-
class
sage.rings.function_field.function_field_valuation.FiniteRationalFunctionFieldValuation(parent, base_valuation)¶ Bases:
sage.rings.function_field.function_field_valuation.InducedFunctionFieldValuation_base,sage.rings.function_field.function_field_valuation.ClassicalFunctionFieldValuation_base,sage.rings.function_field.function_field_valuation.RationalFunctionFieldValuation_baseValuation of a finite place of a function field.
EXAMPLES:
sage: K.<x> = FunctionField(QQ) sage: v = K.valuation(x + 1); v # indirect doctest (x + 1)-adic valuation
A finite place with residual degree:
sage: w = K.valuation(x^2 + 1); w (x^2 + 1)-adic valuation
A finite place with ramification:
sage: K.<t> = FunctionField(GF(3)) sage: L.<x> = FunctionField(K) sage: u = L.valuation(x^3 - t); u (x^3 + 2*t)-adic valuation
A finite place with residual degree and ramification:
sage: q = L.valuation(x^6 - t); q (x^6 + 2*t)-adic valuation
-
class
sage.rings.function_field.function_field_valuation.FunctionFieldExtensionMappedValuation(parent, base_valuation, to_base_valuation_domain, from_base_valuation_domain)¶ Bases:
sage.rings.function_field.function_field_valuation.FunctionFieldMappedValuation_baseA valuation on a finite extensions of function fields \(L=K[y]/(G)\) where \(K\) is another function field which redirects to another
base_valuationon an isomorphism function field \(M=K[y]/(H)\).The isomorphisms must be trivial on
K.EXAMPLES:
sage: K.<x> = FunctionField(GF(2)) sage: R.<y> = K[] sage: L.<y> = K.extension(y^2 + y + x^3) sage: v = K.valuation(1/x) sage: w = v.extension(L) sage: w(x) -1 sage: w(y) -3/2 sage: w.uniformizer() 1/x^2*y
-
restriction(ring)¶ Return the restriction of this valuation to
ring.EXAMPLES:
sage: K.<x> = FunctionField(GF(2)) sage: R.<y> = K[] sage: L.<y> = K.extension(y^2 + y + x^3) sage: v = K.valuation(1/x) sage: w = v.extension(L) sage: w.restriction(K) is v True
-
-
class
sage.rings.function_field.function_field_valuation.FunctionFieldFromLimitValuation(parent, approximant, G, approximants)¶ Bases:
sage.rings.valuation.mapped_valuation.FiniteExtensionFromLimitValuation,sage.rings.function_field.function_field_valuation.DiscreteFunctionFieldValuation_baseA valuation on a finite extensions of function fields \(L=K[y]/(G)\) where \(K\) is another function field.
EXAMPLES:
sage: K.<x> = FunctionField(QQ) sage: R.<y> = K[] sage: L.<y> = K.extension(y^2 - (x^2 + x + 1)) sage: v = K.valuation(x - 1) # indirect doctest sage: w = v.extension(L); w (x - 1)-adic valuation
-
scale(scalar)¶ Return this valuation scaled by
scalar.EXAMPLES:
sage: K.<x> = FunctionField(QQ) sage: R.<y> = K[] sage: L.<y> = K.extension(y^2 - (x^2 + x + 1)) sage: v = K.valuation(x - 1) # indirect doctest sage: w = v.extension(L) sage: 3*w 3 * (x - 1)-adic valuation
-
-
class
sage.rings.function_field.function_field_valuation.FunctionFieldMappedValuation_base(parent, base_valuation, to_base_valuation_domain, from_base_valuation_domain)¶ Bases:
sage.rings.function_field.function_field_valuation.FunctionFieldValuation_base,sage.rings.valuation.mapped_valuation.MappedValuation_baseA valuation on a function field which relies on a
base_valuationon an isomorphic function field.EXAMPLES:
sage: K.<x> = FunctionField(GF(2)) sage: v = K.valuation(1/x); v Valuation at the infinite place
-
is_discrete_valuation()¶ Return whether this is a discrete valuation.
EXAMPLES:
sage: K.<x> = FunctionField(QQ) sage: R.<y> = K[] sage: L.<y> = K.extension(y^2 - x^4 - 1) sage: v = K.valuation(1/x) sage: w0,w1 = v.extensions(L) sage: w0.is_discrete_valuation() True
-
scale(scalar)¶ Return this valuation scaled by
scalar.EXAMPLES:
sage: K.<x> = FunctionField(GF(2)) sage: R.<y> = K[] sage: L.<y> = K.extension(y^2 + y + x^3) sage: v = K.valuation(1/x) sage: w = v.extension(L) sage: 3*w 3 * (x)-adic valuation (in Rational function field in x over Finite Field of size 2 after x |--> 1/x)
-
-
class
sage.rings.function_field.function_field_valuation.FunctionFieldValuationFactory¶ Bases:
sage.structure.factory.UniqueFactoryCreate a valuation on
domaincorresponding toprime.INPUT:
domain– a function fieldprime– a place of the function field, a valuation on a subring, or a valuation on another function field together with information for isomorphisms to and from that function field
EXAMPLES:
sage: K.<x> = FunctionField(QQ) sage: v = K.valuation(1); v # indirect doctest (x - 1)-adic valuation sage: v(x) 0 sage: v(x - 1) 1
See
sage.rings.function_field.function_field.FunctionField.valuation()for further examples.-
create_key_and_extra_args(domain, prime)¶ Create a unique key which identifies the valuation given by
primeondomain.
-
create_key_and_extra_args_from_place(domain, generator)¶ Create a unique key which identifies the valuation at the place specified by
generator.
-
create_key_and_extra_args_from_valuation(domain, valuation)¶ Create a unique key which identifies the valuation which extends
valuation.
-
create_key_and_extra_args_from_valuation_on_isomorphic_field(domain, valuation, to_valuation_domain, from_valuation_domain)¶ Create a unique key which identifies the valuation which is
valuationafter mapping throughto_valuation_domain.
-
create_object(version, key, **extra_args)¶ Create the valuation specified by
key.EXAMPLES:
sage: K.<x> = FunctionField(QQ) sage: R.<x> = QQ[] sage: w = valuations.GaussValuation(R, QQ.valuation(2)) sage: v = K.valuation(w); v # indirect doctest 2-adic valuation
-
class
sage.rings.function_field.function_field_valuation.FunctionFieldValuation_base(parent)¶ Bases:
sage.rings.valuation.valuation.DiscretePseudoValuationAbstract base class for any discrete (pseudo-)valuation on a function field.
-
class
sage.rings.function_field.function_field_valuation.InducedFunctionFieldValuation_base(parent, base_valuation)¶ Bases:
sage.rings.function_field.function_field_valuation.FunctionFieldValuation_baseBase class for function field valuation induced by a valuation on the underlying polynomial ring.
-
extensions(L)¶ Return all extensions of this valuation to
Lwhich has a larger constant field than the domain of this valuation.EXAMPLES:
sage: K.<x> = FunctionField(QQ) sage: v = K.valuation(x^2 + 1) sage: L.<x> = FunctionField(GaussianIntegers().fraction_field()) sage: v.extensions(L) # indirect doctest [(x - I)-adic valuation, (x + I)-adic valuation]
-
lift(F)¶ Return a lift of
Fto the domain of this valuation such thatreduce()returns the original element.EXAMPLES:
sage: K.<x> = FunctionField(QQ) sage: v = K.valuation(x) sage: v.lift(0) 0 sage: v.lift(1) 1
-
reduce(f)¶ Return the reduction of
finresidue_ring().EXAMPLES:
sage: K.<x> = FunctionField(QQ) sage: v = K.valuation(x^2 + 1) sage: v.reduce(x) u1
-
residue_ring()¶ Return the residue field of this valuation.
EXAMPLES:
sage: K.<x> = FunctionField(QQ) sage: K.valuation(x).residue_ring() Rational Field sage: K.<x> = FunctionField(QQ) sage: v = valuations.GaussValuation(QQ['x'], QQ.valuation(2)) sage: w = K.valuation(v) sage: w.residue_ring() Fraction Field of Univariate Polynomial Ring in x over Finite Field of size 2 (using ...) sage: R.<x> = QQ[] sage: vv = v.augmentation(x, 1) sage: w = K.valuation(vv) sage: w.residue_ring() Fraction Field of Univariate Polynomial Ring in x over Finite Field of size 2 (using ...)
-
uniformizer()¶ Return a uniformizing element for this valuation.
EXAMPLES:
sage: K.<x> = FunctionField(QQ) sage: K.valuation(x).uniformizer() x
-
value_group()¶ Return the value group of this valuation.
EXAMPLES:
sage: K.<x> = FunctionField(QQ) sage: K.valuation(x).value_group() Additive Abelian Group generated by 1
-
-
class
sage.rings.function_field.function_field_valuation.InfiniteRationalFunctionFieldValuation(parent)¶ Bases:
sage.rings.function_field.function_field_valuation.FunctionFieldMappedValuation_base,sage.rings.function_field.function_field_valuation.RationalFunctionFieldValuation_base,sage.rings.function_field.function_field_valuation.ClassicalFunctionFieldValuation_baseValuation of the infinite place of a function field.
EXAMPLES:
sage: K.<x> = FunctionField(QQ) sage: v = K.valuation(1/x) # indirect doctest
-
class
sage.rings.function_field.function_field_valuation.NonClassicalRationalFunctionFieldValuation(parent, base_valuation)¶ Bases:
sage.rings.function_field.function_field_valuation.InducedFunctionFieldValuation_base,sage.rings.function_field.function_field_valuation.RationalFunctionFieldValuation_baseValuation induced by a valuation on the underlying polynomial ring which is non-classical.
EXAMPLES:
sage: K.<x> = FunctionField(QQ) sage: v = GaussValuation(QQ['x'], QQ.valuation(2)) sage: w = K.valuation(v); w # indirect doctest 2-adic valuation
-
class
sage.rings.function_field.function_field_valuation.RationalFunctionFieldMappedValuation(parent, base_valuation, to_base_valuation_doain, from_base_valuation_domain)¶ Bases:
sage.rings.function_field.function_field_valuation.FunctionFieldMappedValuation_base,sage.rings.function_field.function_field_valuation.RationalFunctionFieldValuation_baseValuation on a rational function field that is implemented after a map to an isomorphic (rational) function field.
EXAMPLES:
sage: K.<x> = FunctionField(QQ) sage: R.<x> = QQ[] sage: w = GaussValuation(R, QQ.valuation(2)).augmentation(x, 1) sage: w = K.valuation(w) sage: v = K.valuation((w, K.hom([~K.gen()]), K.hom([~K.gen()]))); v Valuation on rational function field induced by [ Gauss valuation induced by 2-adic valuation, v(x) = 1 ] (in Rational function field in x over Rational Field after x |--> 1/x)
-
class
sage.rings.function_field.function_field_valuation.RationalFunctionFieldValuation_base(parent)¶ Bases:
sage.rings.function_field.function_field_valuation.FunctionFieldValuation_baseBase class for valuations on rational function fields.