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
TropicalVariety
need to be embedded, abstract tropical varieties are currently not supported. - The type
TropicalVariety
can be thought of as supertype ofTropicalHypersurface
,TropicalCurve
, andTropicalLinearSpace
in 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
— Functiontropical_variety(Sigma::PolyhedralComplex, mult, 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
Properties
Objects of type TropicalVariety
(and TropicalHypersurface
, TropicalCurve
, TropicalLinearSpace
) have the following properties:
polyhedral_complex
— Methodpolyhedral_complex(TropV::TropicalVariety)
Return the polyhedral complex of a tropical variety.
ambient_dim
— Methodambient_dim(TropV::TropicalVariety)
codim
— Methodcodim(TropV::TropicalVariety)
dim
— Methoddim(TropV::TropicalVariety)
f_vector
— Methodf_vector(TropV::TropicalVariety)
lineality_dim
— Methodlineality_dim(TropV::TropicalVariety)
lineality_space
— Methodlineality_space(TropV::TropicalVariety)
maximal_polyhedra
— Methodmaximal_polyhedra(TropV::TropicalVariety)
maximal_polyhedra_and_multiplicities
— Methodmaximal_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)
minimal_faces
— Methodminimal_faces(TropV::TropicalVariety)
multiplicities
— Methodmultiplicities(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
n_maximal_polyhedra
— Methodn_maximal_polyhedra(TropV::TropicalVariety)
n_polyhedra
— Methodn_polyhedra(TropV::TropicalVariety)
n_vertices
— Methodn_vertices(TropV::TropicalVariety)
is_pure
— Methodis_pure(TropV::TropicalVariety)
is_simplicial
— Methodis_simplicial(TropV::TropicalVariety)
rays
— Methodrays(TropV::TropicalVariety)
rays_modulo_lineality
— Methodrays_modulo_lineality(TropV::TropicalVariety)
vertices_and_rays
— Methodvertices_and_rays(TropV::TropicalVariety)
vertices
— Methodvertices(TropV::TropicalVariety)
visualize
— Methodvisualize(TropV::TropicalVariety)