RealizationMatroidsNC.lib is a Singular library by Anna Lena Birkmeyer for relative realizability questions in tropical geometry.

It considers two-dimensional matroid fans $ {\rm trop}(Y) $ obtained by tropicalizing a projective plane $Y$ over an algebraically closed field $K$ (of any characteristic). Given a one-dimensional tropical curve $C$ in $ {\rm trop}(Y) $ (as opposed to a one-dimensional balanced fan in the library realizationMatroids.lib), it determines whether $C$ is the tropicalization of an algebraic curve of degree $ \deg(C) $ over the Puiseux field $K\{\!\!\{t\}\!\!\}$ in $Y$. Moreover, if this is the case, and the characteristic of $K$ is 0, it gives a specific example of such a curve.


The library provides two functions: realizable and realizablePoly. The following examples should be general enough to see how these functions can be used. In all of them let $Y$ be the plane in projective 3-space given in homogeneous coordinates by the ideal $ I=(x_1+x_2+x_3+x_4) $. To define this in characteristic 0, we type in Singular:

> LIB "realizationMatroidsNC.lib";
> ring R = (0,t),(x1,x2,x3,x4),dp;
> ideal I = x1+x2+x3+x4;

Note that the definition of the ring contains the variable $t$ needed for the Puiseux series. In fact, the library can only deal with polynomials, so that all vertices of the tropical curve must have integer coordinates.

Let $C$ be a tropical curve in the matroid fan $ {\rm trop}(Y) $ shown on the right: it has two vertices at $ (1,1,0,0) $ and $ (0,0,1,1) $ joined by a straight line, and infinite rays in the directions of the unit vectors. All edges have weight 2. The following code checks that $C$ is relatively realizable. The input consists of a list $V$ of vertices, a list $E$ of edges, and a list $M$ of multiplicities. Each entry of $V$ starts with 1 for a finite vertex and with 0 for an infinite one (i.e. an unbounded direction). The entries of $E$ are pairs of vertices to be joined, and the entries of $M$ are the multiplicities of the edges in $E$. The output is $1$ if the curve is realizable, and $-1$ otherwise.

> list V = list(intvec(1,1,1,0,0),intvec(1,0,0,1,1),intvec(0,1,0,0,0),
> list E = list(intvec(1,2),intvec(1,3),intvec(1,4),intvec(2,5),intvec(2,6));
> list M = list(2,2,2,2,2);
> list C = list(V,E,M);
> realizable(I,C);

In addition, we can also compute an example of a curve tropicalizing to $C$.

> realizablePoly(I,C);
1 x1^2+2*x1*x2+(t^2+1)*x2^2+(t^2)*x3^2