# Singular

#### D.13.4.33 tropicalSubst

Procedure from library `tropical.lib` (see tropical_lib).

Usage:
parameterSubstitute(f,N,L); f poly, N int, L list

Assume:
f is a polynomial in Q(t)[x_1,...,x_k]
and L is a list of the form var(i_1),poly_1,...,v(i_k),poly_k

Return:
list, the list is the tropical polynomial which we get from f by replacing the i-th variable be the i-th polynomial but in the i-th polynomial the parameter t is replaced by t^1/N

Example:
 ```LIB "tropical.lib"; ==> Welcome to polymake version ==> Copyright (c) 1997-2015 ==> Ewgenij Gawrilow, Michael Joswig (TU Darmstadt) ==> http://www.polymake.org ring r=(0,t),(x,y),dp; poly f=t2x+1/t*y-1; tropicalSubst(f,2,x,x+t,y,tx+y+t2); ==> [1]: ==> x-1/2 ==> [2]: ==> y-1 ==> [3]: ==> 5/2 // The procedure can be used to study the effect of a transformation of // the form x -> x+t^b, with b a rational number, on the tropicalisation and // the j-invariant of a cubic over the Puiseux series. f=t7*y3+t3*y2+t*(x3+xy2+y+1)+xy; // - the j-invariant, and hence its valuation, // does not change under the transformation jInvariant(f,"ord"); ==> -5 // - b=3/2, then the cycle length of the tropical cubic equals -val(j-inv) list g32=tropicalSubst(f,2,x,x+t3,y,y); tropicalJInvariant(g32); ==> // ** int division with `/`: use `div` instead in line >> genus=-genus/2\ ; // we have counted each bounded edge twice<< ==> 5 // - b=1, then it is still true, but only just ... list g1=tropicalSubst(f,1,x,x+t,y,y); tropicalJInvariant(g1); ==> // ** int division with `/`: use `div` instead in line >> genus=-genus/2\ ; // we have counted each bounded edge twice<< ==> 5 // - b=2/3, as soon as b<1, the cycle length is strictly less than -val(j-inv) list g23=tropicalSubst(f,3,x,x+t2,y,y); tropicalJInvariant(g23); ==> // ** int division with `/`: use `div` instead in line >> genus=-genus/2\ ; // we have counted each bounded edge twice<< ==> 14/3 ```