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 (2016-11-10): initial version
- class sage.rings.valuation.mapped_valuation.FiniteExtensionFromInfiniteValuation(parent, base_valuation)¶
Bases:
sage.rings.valuation.mapped_valuation.MappedValuation_base,sage.rings.valuation.valuation.DiscreteValuationA valuation on a quotient of the form \(L=K[x]/(G)\) with an irreducible \(G\) which is internally backed by a pseudo-valuations 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
xwhen 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
xby an element of valuation strictly greater than the valuation ofx(or strictly greater thanerrorif 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
xwhen 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.FiniteExtensionFromInfiniteValuationAn 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.DiscretePseudoValuationA 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
Ffrom 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
fin 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
xby an element of valuation strictly greater than the valuation ofx(or strictly greater thanerrorif set.)If
forceis 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 recursive 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