# 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
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