Valuations which are implemented through a map to another valuation¶
EXAMPLES:
Extensions of valuations over finite field extensions \(L=K[x]/(G)\) are realized through an infinite valuation on \(K[x]\) which maps \(G\) to infinity:
sage: K.<x> = FunctionField(QQ)
sage: R.<y> = K[]
sage: L.<y> = K.extension(y^2  x)
sage: v = K.valuation(0)
sage: w = v.extension(L); w
(x)adic valuation
sage: w._base_valuation
[ Gauss valuation induced by (x)adic valuation, v(y) = 1/2 , … ]
AUTHORS:
 Julian Rüth (20161110): initial version

class
sage.rings.valuation.mapped_valuation.
FiniteExtensionFromInfiniteValuation
(parent, base_valuation)¶ Bases:
sage.rings.valuation.mapped_valuation.MappedValuation_base
,sage.rings.valuation.valuation.DiscreteValuation
A valuation on a quotient of the form \(L=K[x]/(G)\) with an irreducible \(G\) which is internally backed by a pseudovaluations on \(K[x]\) which sends \(G\) to infinity.
INPUT:
parent
– the containing valuation space (usually the space of discrete valuations on \(L\))base_valuation
– an infinite valuation on \(K[x]\) which takes \(G\) to infinity
EXAMPLES:
sage: K.<x> = FunctionField(QQ) sage: R.<y> = K[] sage: L.<y> = K.extension(y^2  x) sage: v = K.valuation(0) sage: w = v.extension(L); w (x)adic valuation

lower_bound
(x)¶ Return an lower bound of this valuation at
x
.Use this method to get an approximation of the valuation of
x
when speed is more important than accuracy.EXAMPLES:
sage: K = QQ sage: R.<t> = K[] sage: L.<t> = K.extension(t^2 + 1) sage: v = valuations.pAdicValuation(QQ, 5) sage: u,uu = v.extensions(L) sage: u.lower_bound(t + 2) 0 sage: u(t + 2) 1

restriction
(ring)¶ Return the restriction of this valuation to
ring
.EXAMPLES:
sage: K = QQ sage: R.<t> = K[] sage: L.<t> = K.extension(t^2 + 1) sage: v = valuations.pAdicValuation(QQ, 2) sage: w = v.extension(L) sage: w.restriction(K) is v True

simplify
(x, error=None, force=False)¶ Return a simplified version of
x
.Produce an element which differs from
x
by an element of valuation strictly greater than the valuation ofx
(or strictly greater thanerror
if set.)EXAMPLES:
sage: K = QQ sage: R.<t> = K[] sage: L.<t> = K.extension(t^2 + 1) sage: v = valuations.pAdicValuation(QQ, 5) sage: u,uu = v.extensions(L) sage: f = 125*t + 1 sage: u.simplify(f, error=u(f), force=True) 1

upper_bound
(x)¶ Return an upper bound of this valuation at
x
.Use this method to get an approximation of the valuation of
x
when speed is more important than accuracy.EXAMPLES:
sage: K = QQ sage: R.<t> = K[] sage: L.<t> = K.extension(t^2 + 1) sage: v = valuations.pAdicValuation(QQ, 5) sage: u,uu = v.extensions(L) sage: u.upper_bound(t + 2) >= 1 True sage: u(t + 2) 1

class
sage.rings.valuation.mapped_valuation.
FiniteExtensionFromLimitValuation
(parent, approximant, G, approximants)¶ Bases:
sage.rings.valuation.mapped_valuation.FiniteExtensionFromInfiniteValuation
An extension of a valuation on a finite field extensions \(L=K[x]/(G)\) which is induced by an infinite limit valuation on \(K[x]\).
EXAMPLES:
sage: K.<x> = FunctionField(QQ) sage: R.<y> = K[] sage: L.<y> = K.extension(y^2  x) sage: v = K.valuation(1) 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]

class
sage.rings.valuation.mapped_valuation.
MappedValuation_base
(parent, base_valuation)¶ Bases:
sage.rings.valuation.valuation.DiscretePseudoValuation
A valuation which is implemented through another proxy “base” valuation.
EXAMPLES:
sage: K.<x> = FunctionField(QQ) sage: R.<y> = K[] sage: L.<y> = K.extension(y^2  x) sage: v = K.valuation(0) sage: w = v.extension(L); w (x)adic valuation

element_with_valuation
(s)¶ Return an element with valuation
s
.EXAMPLES:
sage: K = QQ sage: R.<t> = K[] sage: L.<t> = K.extension(t^2 + 1) sage: v = valuations.pAdicValuation(QQ, 5) sage: u,uu = v.extensions(L) sage: u.element_with_valuation(1) 5

lift
(F)¶ Lift
F
from theresidue_field()
of this valuation into its domain.EXAMPLES:
sage: K.<x> = FunctionField(QQ) sage: R.<y> = K[] sage: L.<y> = K.extension(y^2  x) sage: v = K.valuation(2) sage: w = v.extension(L) sage: w.lift(w.residue_field().gen()) y

reduce
(f)¶ Return the reduction of
f
in theresidue_field()
of this valuation.EXAMPLES:
sage: K.<x> = FunctionField(QQ) sage: R.<y> = K[] sage: L.<y> = K.extension(y^2  (x  2)) sage: v = K.valuation(0) sage: w = v.extension(L) sage: w.reduce(y) u1

residue_ring
()¶ Return the residue ring of this valuation.
EXAMPLES:
sage: K = QQ sage: R.<t> = K[] sage: L.<t> = K.extension(t^2 + 1) sage: v = valuations.pAdicValuation(QQ, 2) sage: v.extension(L).residue_ring() Finite Field of size 2

simplify
(x, error=None, force=False)¶ Return a simplified version of
x
.Produce an element which differs from
x
by an element of valuation strictly greater than the valuation ofx
(or strictly greater thanerror
if set.)If
force
is not set, then expensive simplifications may be avoided.EXAMPLES:
sage: K.<x> = FunctionField(QQ) sage: R.<y> = K[] sage: L.<y> = K.extension(y^2  x) sage: v = K.valuation(0) sage: w = v.extensions(L)[0]
As
_relative_size()
misses the bloated termx^32
, the following term does not get simplified:sage: w.simplify(y + x^32) y + x^32
In this case the simplification can be forced but this should not happen as a default as the recersive simplification can be quite costly:
sage: w.simplify(y + x^32, force=True) y

uniformizer
()¶ Return a uniformizing element of this valuation.
EXAMPLES:
sage: K = QQ sage: R.<t> = K[] sage: L.<t> = K.extension(t^2 + 1) sage: v = valuations.pAdicValuation(QQ, 2) sage: v.extension(L).uniformizer() t + 1
