Tropicalization of polynomial ideals
Introduction
Tropical varieties can arise as tropicalizations of polynomial ideals. For a general introduction, see
- Chapter 3 in [MS15]
For algorithmic details, see
Main function
tropical_variety
— Methodtropical_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
.
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]