Tropical semiring maps
Introduction
In OSCAR, a TropicalSemiringMap is a map $\nu: K\to\mathbb{T}$ from a field $K$ to a tropical semiring $\mathbb{T}$ satisfying
- finiteness: $\nu(a)=\pm\infty$ if and only if $a=0$,
- multiplicativity: $\nu(a\cdot b)=\nu(a)+\nu(b)$,
- superadditivity: $\nu(a\cdot b)\geq\min(\nu(a),\nu(b))$ (in the order defined in Section 2.7 of [Jos21]).
Most commonly, $\nu(a)=-\mathrm{val}(a)$ if $\mathbb{T}$ is the min-plus semiring, and $\nu(a)=+\mathrm{val}(a)$ if $\mathbb{T}$ is the max-plus semiring, for some valuation $\mathrm{val}:K^\ast\rightarrow\mathbb{R}$. Essentially, $\nu$ captures a valuation on $K$ as well as a choice of min- or max-convention. They are an optional input for most tropical functions over valued fields (the default being the trivial valuation and the min-convention).
Constructor
Tropical semiring maps can be constructed as follows:
tropical_semiring_map — Functiontropical_semiring_map(K::Field, minOrMax::Union{typeof(min),typeof(max)}=min)Return a map nu from K to the min (default) or max tropical semiring T such that nu(0)=zero(T) and nu(c)=one(T) for c non-zero. In other words, nu extends the trivial valuation on K.
Examples
julia> nu = tropical_semiring_map(QQ) # arbitrary rings possible
Map into Min tropical semiring encoding the trivial valuation on Rational field
julia> nu(1)
(0)
julia> nu(0)
infty
julia> nu = tropical_semiring_map(QQ,max) # arbitrary rings possible
Map into Max tropical semiring encoding the trivial valuation on Rational field
julia> nu(1)
(0)
julia> nu(0)
-infty
tropical_semiring_map — Functiontropical_semiring_map(QQ::QQField, p::QQFieldElem, minOrMax::Union{typeof(min),typeof(max)}=min)Return a map nu from QQ to the min (default) or max tropical semiring T such that nu(0)=zero(T) and nu(c)=+/-val(c) for c non-zero, where val denotes the p-adic valuation. Requires p to be a prime.
Examples
julia> nu_2 = tropical_semiring_map(QQ,2)
Map into Min tropical semiring encoding the 2-adic valuation on Rational field
julia> nu_2(4)
(2)
julia> nu_2(1//4)
(-2)
julia> nu_2 = tropical_semiring_map(QQ,2,max);
julia> nu_2(4)
(-2)
julia> nu_2(1//4)
(2)
tropical_semiring_map — Functiontropical_semiring_map(Kt::Generic.RationalFunctionField, t::Generic.RationalFunctionFieldElem, minOrMax::Union{typeof(min),typeof(max)}=min)Return a map nu from rational function field Kt to the min (default) or max tropical semiring T such that nu(0)=zero(T) and nu(c)=+/-val(c) for c non-zero, where val denotes the t-adic valuation with uniformizer t. Requires t to be non-constant and have denominator 1.
Examples
julia> Kt,t = rational_function_field(QQ,"t");
julia> nu_t = tropical_semiring_map(Kt,t)
Map into Min tropical semiring encoding the t-adic valuation on Rational function field over QQ
julia> nu_t(t^2)
(2)
julia> nu_t(1//t^2)
(-2)
julia> nu_t = tropical_semiring_map(Kt,t,max)
Map into Max tropical semiring encoding the t-adic valuation on Rational function field over QQ
julia> nu_t(t^2)
(-2)
julia> nu_t(1//t^2)
(2)