Tropical hypersurfaces

Introduction

A tropical hypersurface is a balanced polyhedral complex of codimension one. It is dual to a regular subdivision of a Newton polytope. For more on tropical hypersurfaces, see

Objects of type TropicalHypersurface need to be embedded, abstract tropical hypersurfaces are currently not supported.

Constructors

In addition to converting from TropicalVariety, objects of type TropicalHypersurface can be constructed from:

  • polynomials over a tropical semiring,
  • polynomials over a field and a tropical semiring map,
  • subdivision of points and a choice of min- or max-convention.
tropical_hypersurfaceFunction
tropical_hypersurface(f::MPolyRingElem{<:TropicalSemiringElem}, weighted_polyhedral_complex_only::Bool=false)

Return the tropical hypersurface of the tropical polynomial f. If weighted_polyhedral_complex==true, will not cache any extra information.

Examples

julia> T = tropical_semiring()
Min tropical semiring

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

julia> f = x+y+1
x + y + (1)

julia> tropical_hypersurface(f)
Min tropical hypersurface
source
tropical_hypersurface(f::MPolyRingElem, val::TropicalSemiringMap; weighted_polyhedral_complex_only::Bool=false)

Return the tropical hypersurface of the tropical polynomial that is the image of f under coefficient-wise val. If weighted_polyhedral_complex==true, will not cache any extra information.

Examples

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

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

julia> f = x+y+2
x + y + 2

julia> tropical_hypersurface(f,val)
Min tropical hypersurface
source
tropical_hypersurface(Delta::SubdivisionOfPoints, minOrMax::Union{typeof(min),typeof(max)}=min; weighted_polyhedral_complex_only::Bool=false)

Construct the tropical hypersurface dual to a regular subdivision Delta in convention minOrMax. To be precise, the tropical hypersurface of the tropical polynomial with exponent vectors points(Delta) and coefficients min_weight(Delta) (min-convention) or -min_weight(Delta) (max-convention). If weighted_polyhedral_complex==true, will not cache any extra information.

Warning

There is a known bug when the subdivision is too simple, e.g., tropical_hypersurface(subdivision_of_points(simplex(2),[0,0,1])) see issue 2628.

Examples

julia> Delta = subdivision_of_points([0 0; 1 0; 0 1; 2 0],[0,0,0,1])
Subdivision of points in ambient dimension 2

julia> tropical_hypersurface(Delta)
Min tropical hypersurface
source

Properties

In addition to the properties inherited from TropicalVariety, objects of type TropicalHypersurface have the following exclusive properties:

algebraic_polynomialMethod
algebraic_polynomial(TropH::TropicalHypersurface)

Return the polynomial over a valued field used to construct TropH. Raises an error if it is not cached.

source
tropical_polynomialMethod
tropical_polynomial(TropH::TropicalHypersurface)

Return the tropical polynomial used to construct TropH. Raises an error if it is not cached.

source
dual_subdivisionMethod
dual_subdivision(TropH::TropicalHypersurface)

Return the dual subdivision used to construct TropH. Raises an error if it is not cached.

Examples

julia> Delta = subdivision_of_points([0 0; 1 0; 0 1; 2 0],[0,0,0,1])
Subdivision of points in ambient dimension 2

julia> th = tropical_hypersurface(Delta)
Min tropical hypersurface

julia> sop = dual_subdivision(th)
Subdivision of points in ambient dimension 2

julia> points(sop)
4-element SubObjectIterator{PointVector{QQFieldElem}}:
 [0, 0]
 [1, 0]
 [0, 1]
 [2, 0]

julia> maximal_cells(sop)
2-element SubObjectIterator{Vector{Int64}}:
 [1, 2, 3]
 [2, 3, 4]
source