Tropicalization of polynomial ideals

Introduction

Tropical varieties can arise as tropicalizations of polynomial ideals. For a general introduction, see

For algorithmic details, see

Main function

tropical_varietyMethod
tropical_variety(I::MPolyIdeal[, nu::TropicalSemiringMap]; weighted_polyhedral_complex_only::Bool=false, skip_saturation::Bool=false, skip_decomposition::Bool=false)

Return the tropicalization of I with respect to nu. If nu==nothing, will compute with respect to the trivial valuation and min convention. If weighted_polyhedral_complex_only==false, will cache any additional information. If skip_saturation==false, will saturate I at the product of all variables before computing tropicalizations. If $skip_decomposition==false$, will return a vector of tropical varieties, one for each primary factor of I.

Warning

Experimental feature, only special cases supported:

  • any coefficient field and any valuation: I principal, binomial, or affine linear
  • QQ and trivial / p-adic valuation only: I primary

Default choices for skip_saturation and skip_decomposition will change in the future to ensure consistency with other OSCAR functions and tropicalization functions in other software.

Examples

julia> K,t = rational_function_field(GF(101),:t);

julia> nu = tropical_semiring_map(K,t);

julia> R,(x,y,z) = K["x","y","z"];

julia> I = intersect(ideal([x+y+z+1,2*x+11*y+23*z+31]),ideal([t^3*x*y*z-1]));

julia> TropVs = tropical_variety(I,nu)
2-element Vector{TropicalVariety{typeof(min), true}}:
 Min tropical variety
 Min tropical variety

julia> K,t = rational_function_field(GF(101),:t);

julia> nu = tropical_semiring_map(K,t);

julia> R,(x,y,z) = K["x","y","z"];

julia> I = intersect(ideal([x+y+z+1,2*x+11*y+23*z+31]),ideal([t^3*x*y*z-1]));

julia> TropVs = tropical_variety(I,nu)
2-element Vector{TropicalVariety{typeof(min), true}}:
 Min tropical variety
 Min tropical variety

julia> nu_2 = tropical_semiring_map(QQ,2)
Map into Min tropical semiring encoding the 2-adic valuation on Rational field

julia> nu_3 = tropical_semiring_map(QQ,3)
Map into Min tropical semiring encoding the 3-adic valuation on Rational field

julia> f1 = 8*x^2 + x*y + x*z + x + 8*y^2 + y*z + y + 8*z^2 + z + 8;

julia> f2 = x + 2;

julia> I = ideal([f1,f2]);

julia> TropI_2 = tropical_variety(I,nu_2; skip_saturation=true, skip_decomposition=true)
Min tropical variety

julia> vertices(TropI_2)
2-element SubObjectIterator{PointVector{QQFieldElem}}:
 [-4, -4, -4]
 [-4, 0, 0]

julia> TropI_3 = tropical_variety(I,nu_3; skip_saturation=true, skip_decomposition=true)
Min tropical variety

julia> vertices(TropI_3)
1-element SubObjectIterator{PointVector{QQFieldElem}}:
 [0, -2, -2]
source