Tropical linear spaces
Introduction
A tropical linear space is a balanced polyhedral complex supported on a finite intersection of linear tropical hypersurfaces with all multiplicities one. It is dual to a matroid subdivision of a hypersimplex, and may arise as tropicalizations of linear ideals. For more on tropical linear spaces, see
Note:
- Objects of type
TropicalLinearSpace
need to be embedded, abstract tropical linear spaces are currently not supported. - The type
TropicalLinearSpace
can be thought of as subtype ofTropicalVariety
in the sense that it should have all properties and features of the latter.
Constructors
In addition to converting from TropicalVariety
, objects of type TropicalLinearSpace
can be constructed from:
- Pluecker vectors over a tropical semiring: uses a low-level implementation in
polymake
- Pluecker vectors over a field and a tropical semiring map: computes coordinatewise valuation and uses constructor (1.)
- matrices over a tropical semiring: computes tropical minors and uses constructor (1.)
- matrices over a field and a tropical semiring map.
- if matrix over
QQ
and tropical semiring map is trivial, uses an implementation of Rincon's algorithm [Rin13] inpolymake
- for general input, computes minors and uses constructor (2.)
- if matrix over
tropical_linear_space
— Functiontropical_linear_space(Lambda::Vector{Vector{Int}}, p::Vector{<:TropicalSemiringElem}; weighted_polyhedral_complex_only::Bool=false)
Return a tropical linear space from a tropical Pluecker vector with indices Lambda
and values p
. If weighted_polyhedral_complex==true
, will not cache any extra information.
Examples
julia> T = tropical_semiring();
julia> plueckerIndices = [[1,2],[1,3],[1,4],[2,3],[2,4],[3,4]];
julia> plueckerVector = T.([0,0,0,0,0,0]);
julia> tropical_linear_space(plueckerIndices,plueckerVector)
Min tropical linear space
tropical_linear_space(k::Int, n::Int, p::Vector{<:TropicalSemiringElem}; weighted_polyhedral_complex_only::Bool=false)
Return a tropical linear space from a tropical Pluecker vector with indices AbstractAlgebra.combinations(1:n,k)
and values p
. If weighted_polyhedral_complex==true
, will not cache any extra information.
Examples
julia> T = tropical_semiring();
julia> plueckerVector = T.([0,0,0,0,0,0]);
julia> tropical_linear_space(2,4,plueckerVector)
Min tropical linear space
tropical_linear_space(Lambda::Vector{Vector{Int}}, p::Vector, nu::TropicalSemiringMap; weighted_polyhedral_complex_only::Bool=false)
Return a tropical linear space from a tropical Pluecker vector with indices Lambda
and values nu(p)
. If weighted_polyhedral_complex==true
, will not cache any extra information.
Examples
julia> nu = tropical_semiring_map(QQ,2)
Map into Min tropical semiring encoding the 2-adic valuation on Rational field
julia> plueckerIndices = [[1,2],[1,3],[1,4],[2,3],[2,4],[3,4]];
julia> plueckerVector = QQ.([1,3,5,5,3,1]);
julia> tropical_linear_space(plueckerIndices,plueckerVector,nu)
Min tropical linear space
tropical_linear_space(k::Int, n::Int, p::Vector, nu::TropicalSemiringMap; weighted_polyhedral_complex_only::Bool=false)
Return a tropical linear space from a tropical Pluecker vector with indices AbstractAlgebra.combinations(1:n,k)
and values nu(p)
. If weighted_polyhedral_complex==true
, will not cache any extra information.
Examples
julia> nu = tropical_semiring_map(QQ);
julia> plueckerVector = QQ.([1,3,5,5,3,1]);
julia> tropical_linear_space(2,4,plueckerVector,nu)
Min tropical linear space
tropical_linear_space(A::MatElem{<:TropicalSemiringElem}; weighted_polyhedral_complex_only::Bool=false)
Return a tropical linear space whose Pluecker vector are the tropical minors of A
. Assumes that ncols(A)>=nrows(A)
. If weighted_polyhedral_complex==true
, will not cache any extra information.
Examples
julia> A = matrix(tropical_semiring(),[[1,2,4,8],[8,4,2,1]])
[(1) (2) (4) (8)]
[(8) (4) (2) (1)]
julia> tropical_linear_space(A)
Min tropical linear space
tropical_linear_space(A::MatElem,nu::TropicalSemiringMap; weighted_polyhedral_complex_only::Bool=false)
Return a tropical linear space whose Pluecker vector is nu
applied to the minors of A
. If weighted_polyhedral_complex==true
, will not cache any extra information.
Examples
julia> nu = tropical_semiring_map(QQ,2)
Map into Min tropical semiring encoding the 2-adic valuation on Rational field
julia> A = matrix(QQ,[[1,2,4,8],[8,4,2,1]])
[1 2 4 8]
[8 4 2 1]
julia> tropical_linear_space(A, nu)
Min tropical linear space
tropical_linear_space(I::MPolyIdeal, nu::TropicalSemiringMap; weighted_polyhedral_complex_only::Bool=false)
Return the tropicalization of the vanishing set of I
with respect to the tropical semiring map nu
. Requires the generators of I
to be linear and homogeneous. If weighted_polyhedral_complex==true
, will not cache any extra information.
Examples
julia> R,(x1,x2,x3,x4) = polynomial_ring(QQ,4);
julia> I = ideal(R,[-x1+x3,-x2+x4])
Ideal generated by
-x1 + x3
-x2 + x4
julia> nu = tropical_semiring_map(QQ)
Map into Min tropical semiring encoding the trivial valuation on Rational field
julia> tropical_linear_space(I, nu)
Min tropical linear space
Properties
In addition to the properties inherited from TropicalVariety
, objects of type TropicalLinearSpace
have the following exclusive properties:
pluecker_indices
— Methodpluecker_indices(TropL::TropicalLinearSpace)
Return the Pluecker indices used to construct TropL
.
tropical_pluecker_vector
— Methodtropical_pluecker_vector(TropL::TropicalLinearSpace)
Return the tropical Pluecker vector of TropL
.
algebraic_pluecker_vector
— Methodalgebraic_pluecker_vector(TropL::TropicalLinearSpace)
Return the Pluecker vector over a valued field used to construct TropL
.
tropical_semiring_map
— Methodtropical_semiring_map(TropL::TropicalLinearSpace)
Return the tropical semiring map used to construct TropL
. Raises an error, if it is not cached.
tropical_matrix
— Methodtropical_matrix(TropL::TropicalLinearSpace)
Return the tropical matrix used to construct TropL
. Raises an error, if it is not cached.
algebraic_matrix
— Methodalgebraic_matrix(TropL::TropicalLinearSpace)
Return the matrix over a valued field used to construct TropL
.
algebraic_ideal
— Methodalgebraic_ideal(TropL::TropicalLinearSpace)
Return the polynomial ideal over a valued field used to construct TropL
. Raises an error, if it is not cached.