This is an old revision of the document!
TropicalCubics
This is the software companion to the article “The Schäfli fan” by Michael Joswig, Marta Panizzut and Bernd Sturmfels, arXiv:1905.xyz
Smooth tropical cubic surfaces are parameterized by maximal cones in the unimodular secondary fan of the triple tetrahedron. There are 344 843 867 such cones, organized into a database of 14 373 645 symmetry classes. The Schläfli fan gives a further refinement of these cones. It reveals all possible patterns of the 27 or more lines on tropical cubic surfaces, thus serving as a combinatorial base space for the universal Fano variety. This article develops the relevant theory and offers a blueprint for the analysis of big data in tropical algebraic geometry. We conclude with a sparse model for cubic surfaces over a field with valuation.
While the database or rather the relevant collection TropicalCubics can be accessed directly via a web front end or though mongodb's API, using this extension to polymake is recommended for an enhanced experience.
Download
TropicalCubics-0.1.tar.xz [28 May 2019]
Installation
This requires an installation of polymake, version 3.5 (or a developer's version no later than 28 May 2019).
After download you first need to extract the code.
tar Jxpf TropicalCubics-0.1.tar.xz
Suppose this ends up at /your/path/TropicalCubics-0.1
. Then you start up polymake. Within the polymake shell do:
import_extension "/your/path/TropicalCubics-0.1";
Afterwards you are good to run the code. This import needs to be performed only once. The reference to the extension is permanently stored in $HOME/.polymake/prefer.pl
. For more details there is a guide to polymake's extension system.
Examples
This extension makes contributions to the applications fan
and tropical
.
In the application tropical
you can create a dense tropical cubic surface by just specifying the coordinates.
The monomials, which correspond to the 20 lattice points in the triple tetrahedron $3 \Delta_3$, have a fixed ordering.
> $S = new CubicSurface<Min>(COEFFICIENTS=>[5,1,1,5,2,0,2,2,2,5,2,0,2,0,0,1,2,2,1,5]); > print $S->DEGREE; 3
A CubicSurface
is derived fromHypersurface
; so it has all its properties.
The bulk of the functionality sits in the application fan
and the type DualSubdivisionOfCubic
.
> print $S->DUAL_SUBDIVISION->type->full_name; DualSubdivisionOfCubic > $T = new DualSubdivisionOfCubic(MAXIMAL_CELLS=>[[0,1,4,10],[9,13,14,15],[11,12,13,16],[15,16,17,18],[16,17,18,19],[13,15,16,17],[5,8,11,12],[1,4,5,11],[5,7,9,13],[5,6,8,12],[13,14,15,17],[1,5,11,12],[1,2,5,12],[4,5,7,13],[8,9,13,14],[3,5,6,12],[2,3,5,12],[4,11,13,16],[12,13,14,17],[5,8,9,13],[5,8,11,13],[1,4,11,16],[1,4,10,16],[8,11,12,13],[12,13,16,17],[8,12,13,14],[4,5,11,13]]); > print $T->GKZ_VECTOR; 1 6 2 2 7 12 2 2 7 4 2 9 11 15 5 4 8 6 2 1
In the article we consider the running example #5054117. This is how you can get that regular unimodular triangulation of $3 \Delta_3$ from the database. Everything below requires common::polydb.rules
to be correctly configured.
> $X=retrieve_by_id(5054117); > print $X->MAXIMAL_CELLS; {0 1 4 10} {1 2 5 11} {1 4 7 13} ...
This example has one occurrence of the motif 3J.
> print $X->N_MOTIF_TYPES; 6 5 0 24 0 2 4 7 2 1 > $X->MOTIFS3J->[0]->properties(); type: Motif TYPE J POINTS 11 9 15 1 2 EXITS 0 3 1 2 TETRAHEDRA 10 19
Suppose you have a triangulation of $3 \Delta_3$ and you want to find it. This example comes from §6.2 of Hampe & Joswig: Tropical computations in polymake, in: Algorithmic and experimental methods in algebra, geometry, and number theory, Springer 2017. This is again in application tropical
.
> $F = toTropicalPolynomial("min(12+3*x0,-131+2*x0+x1, -67+2*x0+x2,-9+2*x0+x3,-131+x0+2*x1,-129+x0+x1+x2, -131+x0+x1+x3,-116+x0+2*x2,-76+x0+x2+x3,-24+x0+2*x3,-95+3*x1, -108+2*x1+x2,-92+2*x1+x3,-115+x1+2*x2,-117+x1+x2+x3, -83+x1+2*x3,-119+3*x2,-119+2*x2+x3,-82+x2+2*x3,-36+3*x3)"); > $V = new Hypersurface<Min>(POLYNOMIAL=>$F); > $h = canonical_hash($V->DUAL_SUBDIVISION->MAXIMAL_CELLS); > $Y = retrieve_by_canonical_hash($h); > print $Y->name; 5054117
So this corresponds to the triangulation #5054117 constructed above (and stored in the variable $X
).