# 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}$ satisfing

1. finiteness: $\nu(a)=\pm\infty$ if and only if $a=0$,
2. multiplicativity: $\nu(a\cdot b)=\nu(a)+\nu(b)$,
3. 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\RR$. 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_mapFunction
tropical_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.

Example

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

source
tropical_semiring_mapFunction
tropical_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.

Example

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)

source
tropical_semiring_mapFunction
tropical_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.

Example

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)

source