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 of TropicalVariety 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:

  1. Pluecker vectors over a tropical semiring: uses a low-level implementation in polymake
  2. Pluecker vectors over a field and a tropical semiring map: computes coordinatewise valuation and uses constructor (1.)
  3. matrices over a tropical semiring: computes tropical minors and uses constructor (1.)
  4. 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] in polymake
    • for general input, computes minors and uses constructor (2.)
tropical_linear_spaceFunction
tropical_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
source
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
source
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
source
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
source
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
source
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
source
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
source

Properties

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

pluecker_indicesMethod
pluecker_indices(TropL::TropicalLinearSpace)

Return the Pluecker indices used to construct TropL.

source
algebraic_pluecker_vectorMethod
algebraic_pluecker_vector(TropL::TropicalLinearSpace)

Return the Pluecker vector over a valued field used to construct TropL.

source
tropical_semiring_mapMethod
tropical_semiring_map(TropL::TropicalLinearSpace)

Return the tropical semiring map used to construct TropL. Raises an error, if it is not cached.

source
tropical_matrixMethod
tropical_matrix(TropL::TropicalLinearSpace)

Return the tropical matrix used to construct TropL. Raises an error, if it is not cached.

source
algebraic_matrixMethod
algebraic_matrix(TropL::TropicalLinearSpace)

Return the matrix over a valued field used to construct TropL.

source
algebraic_idealMethod
algebraic_ideal(TropL::TropicalLinearSpace)

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

source