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)