Tropical varieties
Introduction
Tropial varieties (in OSCAR) are weighted polyhedral complexes. They may arise as tropicalizations of polynomial ideals or from operations on the more specialized types of tropical varieties, such as the stable intersection of tropical hypersurfaces. For more on the first, see
Note:
- Objects of type
TropicalVarietyneed to be embedded, abstract tropical varieties are currently not supported. - The type
TropicalVarietycan be thought of as supertype ofTropicalHypersurface,TropicalCurve, andTropicalLinearSpacein the sense that the latter three should have all properties and features of the former. - Embedded tropical varieties are polyhedral complexes with multiplicities and should have all properties of polyhedral complexes
Constructor
Objects of type TropicalVariety can be constructed as follows:
tropical_variety — Function
tropical_variety(Sigma::PolyhedralComplex, mult::Vector{ZZRingElem}, minOrMax::Union{typeof(min),typeof(max)}=min)Return the TropicalVariety whose polyhedral complex is Sigma with multiplicities mult and convention minOrMax. Here, mult is optional can be specified as a Vector{ZZRingElem} which represents a list of multiplicities on the maximal polyhedra in the order of maximal_polyhedra(Sigma). If mult is unspecified, then all multiplicities are set to one.
Examples
julia> Sigma = polyhedral_complex(incidence_matrix([[1],[2]]), [[0],[1]])
Polyhedral complex in ambient dimension 1
julia> tropical_variety(Sigma)
Min tropical variety
julia> mult = ones(ZZRingElem, n_maximal_polyhedra(Sigma))
2-element Vector{ZZRingElem}:
1
1
julia> tropical_variety(Sigma,mult,min)
Min tropical variety
julia> mult = ZZ.([1,2])
2-element Vector{ZZRingElem}:
1
2
julia> tropical_variety(Sigma,mult,max)
Max tropical variety
sourceProperties
Objects of type TropicalVariety (and TropicalHypersurface, TropicalCurve, TropicalLinearSpace) have the following properties:
polyhedral_complex — Method
polyhedral_complex(TropV::TropicalVariety)Return the polyhedral complex of a tropical variety.
sourceambient_dim — Method
codim — Method
dim — Method
f_vector — Method
lineality_dim — Method
lineality_space — Method
maximal_polyhedra — Method
maximal_polyhedra_and_multiplicities — Method
maximal_polyhedra_and_multiplicities(TropV::TropicalVariety)Return the maximal polyhedra and multiplicities of TropV.
Examples
julia> R,(x1,x2) = polynomial_ring(QQ,4);
julia> nu = tropical_semiring_map(QQ,2);
julia> f = 2*x1^2+x1*x2+x2^2+1
2*x1^2 + x1*x2 + x2^2 + 1
julia> TropH = tropical_hypersurface(f,nu)
Min tropical hypersurface
julia> maximal_polyhedra_and_multiplicities(TropH)
5-element Vector{Tuple{Polyhedron{QQFieldElem}, ZZRingElem}}:
(Polyhedron in ambient dimension 4, 1)
(Polyhedron in ambient dimension 4, 1)
(Polyhedron in ambient dimension 4, 2)
(Polyhedron in ambient dimension 4, 1)
(Polyhedron in ambient dimension 4, 2)
sourceminimal_faces — Method
multiplicities — Method
multiplicities(TropV::TropicalVariety)Return the multiplicities of TropV. Order is the same as maximal_polyhedra.
Examples
julia> R,(x1,x2) = polynomial_ring(QQ,4);
julia> nu = tropical_semiring_map(QQ,2);
julia> f = 2*x1^2+x1*x2+x2^2+1
2*x1^2 + x1*x2 + x2^2 + 1
julia> TropH = tropical_hypersurface(f,nu)
Min tropical hypersurface
julia> multiplicities(TropH)
5-element Vector{ZZRingElem}:
1
1
2
1
2
sourcen_maximal_polyhedra — Method
n_polyhedra — Method
n_vertices — Method
is_pure — Method
is_simplicial — Method
rays — Method
rays_modulo_lineality — Method
stable_intersection — Method
stable_intersection(TropV1::TropicalVariety, TropV2::TropicalVariety)Return the stable intersection of TropV1 and TropV2.
tropical_prevariety — Function
tropical_prevariety(F::Vector{MPolyRingElem},nu::TropicalSemiringMap)Return the tropical prevariety generated by intersecting tropical hypersurfaces corresponding to elements of F.
If F is a finite collection of polynomials with coefficients from a given field, return the tropical prevariety obtained by tropicalizing elements of F with respect to a given tropicalization map nu.
If no nu is given, default to trivial valuation with min convention.
If F is a collection of tropical polynomials, the function computes and intersects the associated hypersurfaces.
Example
We compute the Dressian $\text{Dr}(2,5)$ below.
julia> Gr25 = grassmann_pluecker_ideal(2,5)
Ideal generated by
x[[1, 2]]*x[[3, 4]] - x[[1, 3]]*x[[2, 4]] + x[[1, 4]]*x[[2, 3]]
x[[1, 2]]*x[[3, 5]] - x[[1, 3]]*x[[2, 5]] + x[[1, 5]]*x[[2, 3]]
x[[1, 2]]*x[[4, 5]] - x[[1, 4]]*x[[2, 5]] + x[[1, 5]]*x[[2, 4]]
x[[1, 3]]*x[[4, 5]] - x[[1, 4]]*x[[3, 5]] + x[[1, 5]]*x[[3, 4]]
x[[2, 3]]*x[[4, 5]] - x[[2, 4]]*x[[3, 5]] + x[[2, 5]]*x[[3, 4]]
julia> Dr25 = tropical_prevariety(gens(Gr25)) #Compute Dressian without specified tropicalization map.
Polyhedral complex in ambient dimension 10
julia> rays_modulo_lineality(Dr25)[1]
10-element SubObjectIterator{RayVector{QQFieldElem}}:
[1, -1//3, -1//3, -1//3, -1//3, -1//3, -1//3, 1//3, 1//3, 1//3]
[1, 1, -1, -1, 1, -1, -1, -1, -1, 3]
[1, -1, 1, -1, -1, 1, -1, -1, 3, -1]
[1, -1, -1, 1, -1, -1, 1, 3, -1, -1]
[-1, 1, 1, -1, -1, -1, 3, 1, -1, -1]
[-1, -1, -1, 3, 1, 1, -1, 1, -1, -1]
[-1, 1, -1, 1, -1, 3, -1, -1, 1, -1]
[-1, 3, -1, -1, -1, 1, 1, -1, -1, 1]
[-1, -1, 3, -1, 1, -1, 1, -1, 1, -1]
[-1, -1, 1, 1, 3, -1, -1, -1, -1, 1]
julia> nu = tropical_semiring_map(QQ,max) #Compute with respect to max convention
Map into Max tropical semiring encoding the trivial valuation on Rational field
julia> Dr25max = tropical_prevariety(gens(Gr25),nu)
Polyhedral complex in ambient dimension 10
julia> Dr25 = tropical_prevariety(tropical_polynomial.([f for f in gens(Gr25)])) #Give input as tropical polynomials
Polyhedral complex in ambient dimension 10source