# An example use of TopCom -- interface to selected functions from topcom package

Topcom is software written by Jorg Rambau which has very good support for computing the triangulations of a point set (or, regular triangulations, fine triangulations, and triangulations which are connected to regular triangulations via bistellar flips).

Given a matrix $A$ (say of size $d \times n$), the columns represent points in $d$-space, and each point is labelled by its column index ($0, 1, \ldots, n-1$). Topcom appears to assume that the points are not contained in a hyperplane. In this case, their convex hull is full dimensional ($d$-dimensional), and a set of $d$-simplices with vertices in the set of points is a triangulation if (1) their union is the convex hull of the columns of $A$, and (2) the simplices either do not intersect, or intersect only along lower dimensional sets. We represent a triangulation by the the list of lists of indices for each of these $d$-dimensional simplices.

For example, consider a simple example: the square.

 i1 : sq = transpose matrix {{-1,-1},{-1,1},{1,-1},{1,1},{0,0},{1,0},{-1,0},{0,1},{0,-1}} o1 = | -1 -1 1 1 0 1 -1 0 0 | | -1 1 -1 1 0 0 0 1 -1 | 2 9 o1 : Matrix ZZ <--- ZZ i2 : tri = topcomRegularFineTriangulation sq o2 = {{2, 4, 5}, {3, 4, 5}, {0, 4, 6}, {1, 4, 6}, {3, 4, 7}, {1, 4, 7}, {2, ------------------------------------------------------------------------ 4, 8}, {0, 4, 8}} o2 : List i3 : topcomIsTriangulation(sq, tri) o3 = true i4 : topcomIsRegularTriangulation(sq, tri) o4 = true i5 : topcomRegularTriangulationWeights(sq, tri) o5 = {1, 1, 1, 1, -3, 0, 0, 0, 0} o5 : List i6 : topcomNumTriangulations sq o6 = 387 i7 : topcomNumTriangulations(sq, Fine => true) o7 = 64 i8 : Ts = topcomAllTriangulations(sq, Fine => true); i9 : netList Ts +---------+---------+---------+---------+---------+---------+---------+---------+ o9 = |{0, 4, 6}|{0, 4, 8}|{1, 4, 6}|{1, 4, 7}|{2, 4, 5}|{2, 4, 8}|{3, 4, 5}|{3, 4, 7}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 4, 6}|{0, 4, 8}|{1, 6, 7}|{2, 4, 5}|{2, 4, 8}|{3, 4, 5}|{3, 4, 7}|{4, 6, 7}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 4, 6}|{0, 4, 8}|{1, 4, 6}|{1, 4, 7}|{2, 5, 8}|{3, 4, 5}|{3, 4, 7}|{4, 5, 8}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 6, 8}|{1, 4, 6}|{1, 4, 7}|{2, 4, 5}|{2, 4, 8}|{3, 4, 5}|{3, 4, 7}|{4, 6, 8}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 4, 6}|{0, 4, 8}|{1, 4, 6}|{1, 4, 7}|{2, 4, 5}|{2, 4, 8}|{3, 5, 7}|{4, 5, 7}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 4, 6}|{0, 4, 8}|{1, 6, 7}|{2, 4, 5}|{2, 4, 8}|{3, 5, 7}|{4, 5, 7}|{4, 6, 7}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 4, 6}|{0, 4, 8}|{1, 4, 5}|{1, 4, 6}|{1, 5, 7}|{2, 4, 5}|{2, 4, 8}|{3, 5, 7}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 4, 6}|{0, 4, 8}|{1, 4, 6}|{1, 4, 7}|{2, 5, 8}|{3, 5, 7}|{4, 5, 7}|{4, 5, 8}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 4, 6}|{0, 4, 8}|{1, 4, 6}|{1, 4, 7}|{2, 4, 7}|{2, 4, 8}|{2, 5, 7}|{3, 5, 7}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 6, 8}|{1, 4, 6}|{1, 4, 7}|{2, 4, 5}|{2, 4, 8}|{3, 5, 7}|{4, 5, 7}|{4, 6, 8}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 4, 6}|{0, 4, 8}|{1, 4, 6}|{1, 4, 7}|{2, 5, 8}|{3, 4, 7}|{3, 4, 8}|{3, 5, 8}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 4, 6}|{0, 4, 8}|{1, 6, 7}|{2, 5, 8}|{3, 4, 5}|{3, 4, 7}|{4, 5, 8}|{4, 6, 7}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 4, 5}|{0, 4, 6}|{0, 5, 8}|{1, 4, 6}|{1, 4, 7}|{2, 5, 8}|{3, 4, 5}|{3, 4, 7}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 6, 8}|{1, 4, 6}|{1, 4, 7}|{2, 5, 8}|{3, 4, 5}|{3, 4, 7}|{4, 5, 8}|{4, 6, 8}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 4, 7}|{0, 4, 8}|{0, 6, 7}|{1, 6, 7}|{2, 4, 5}|{2, 4, 8}|{3, 4, 5}|{3, 4, 7}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 4, 6}|{0, 4, 8}|{1, 6, 7}|{2, 4, 5}|{2, 4, 8}|{3, 4, 5}|{3, 4, 6}|{3, 6, 7}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 6, 8}|{1, 6, 7}|{2, 4, 5}|{2, 4, 8}|{3, 4, 5}|{3, 4, 7}|{4, 6, 7}|{4, 6, 8}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 6, 8}|{1, 4, 7}|{1, 4, 8}|{1, 6, 8}|{2, 4, 5}|{2, 4, 8}|{3, 4, 5}|{3, 4, 7}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 6, 8}|{1, 4, 6}|{1, 4, 7}|{2, 4, 5}|{2, 4, 6}|{2, 6, 8}|{3, 4, 5}|{3, 4, 7}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 6, 8}|{1, 4, 7}|{1, 4, 8}|{1, 6, 8}|{2, 4, 5}|{2, 4, 8}|{3, 5, 7}|{4, 5, 7}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 6, 8}|{1, 4, 7}|{1, 4, 8}|{1, 6, 8}|{2, 5, 8}|{3, 4, 5}|{3, 4, 7}|{4, 5, 8}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 4, 6}|{0, 4, 8}|{1, 6, 7}|{2, 5, 8}|{3, 4, 7}|{3, 4, 8}|{3, 5, 8}|{4, 6, 7}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 4, 7}|{0, 4, 8}|{0, 6, 7}|{1, 6, 7}|{2, 5, 8}|{3, 4, 5}|{3, 4, 7}|{4, 5, 8}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 4, 6}|{0, 4, 8}|{1, 6, 7}|{2, 5, 8}|{3, 5, 7}|{4, 5, 7}|{4, 5, 8}|{4, 6, 7}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 4, 5}|{0, 4, 6}|{0, 5, 8}|{1, 6, 7}|{2, 5, 8}|{3, 4, 5}|{3, 4, 7}|{4, 6, 7}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 4, 6}|{0, 4, 8}|{1, 6, 7}|{2, 5, 8}|{3, 4, 5}|{3, 4, 6}|{3, 6, 7}|{4, 5, 8}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 6, 8}|{1, 6, 7}|{2, 5, 8}|{3, 4, 5}|{3, 4, 7}|{4, 5, 8}|{4, 6, 7}|{4, 6, 8}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 6, 8}|{1, 4, 6}|{1, 4, 7}|{2, 4, 5}|{2, 4, 6}|{2, 6, 8}|{3, 5, 7}|{4, 5, 7}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 6, 8}|{1, 6, 7}|{2, 4, 5}|{2, 4, 8}|{3, 5, 7}|{4, 5, 7}|{4, 6, 7}|{4, 6, 8}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 6, 8}|{1, 4, 6}|{1, 4, 7}|{2, 5, 8}|{3, 5, 7}|{4, 5, 7}|{4, 5, 8}|{4, 6, 8}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 6, 8}|{1, 4, 5}|{1, 4, 6}|{1, 5, 7}|{2, 4, 5}|{2, 4, 8}|{3, 5, 7}|{4, 6, 8}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 6, 8}|{1, 4, 6}|{1, 4, 7}|{2, 4, 7}|{2, 4, 8}|{2, 5, 7}|{3, 5, 7}|{4, 6, 8}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 6, 8}|{1, 6, 7}|{2, 4, 5}|{2, 4, 6}|{2, 6, 8}|{3, 4, 5}|{3, 4, 7}|{4, 6, 7}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 6, 8}|{1, 6, 7}|{2, 4, 5}|{2, 4, 8}|{3, 4, 5}|{3, 4, 6}|{3, 6, 7}|{4, 6, 8}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 4, 5}|{0, 4, 6}|{0, 5, 8}|{1, 4, 6}|{1, 4, 7}|{2, 5, 8}|{3, 5, 7}|{4, 5, 7}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 4, 6}|{0, 4, 8}|{1, 4, 5}|{1, 4, 6}|{1, 5, 7}|{2, 5, 8}|{3, 5, 7}|{4, 5, 8}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 6, 8}|{1, 4, 6}|{1, 4, 7}|{2, 5, 8}|{3, 4, 7}|{3, 4, 8}|{3, 5, 8}|{4, 6, 8}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 4, 7}|{0, 4, 8}|{0, 6, 7}|{1, 6, 7}|{2, 4, 5}|{2, 4, 8}|{3, 5, 7}|{4, 5, 7}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 4, 6}|{0, 4, 8}|{1, 6, 7}|{2, 4, 7}|{2, 4, 8}|{2, 5, 7}|{3, 5, 7}|{4, 6, 7}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 6, 8}|{1, 6, 7}|{2, 4, 7}|{2, 4, 8}|{2, 5, 7}|{3, 5, 7}|{4, 6, 7}|{4, 6, 8}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 4, 7}|{0, 4, 8}|{0, 6, 7}|{1, 6, 7}|{2, 4, 7}|{2, 4, 8}|{2, 5, 7}|{3, 5, 7}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 6, 8}|{1, 6, 7}|{2, 5, 8}|{3, 4, 7}|{3, 4, 8}|{3, 5, 8}|{4, 6, 7}|{4, 6, 8}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 6, 8}|{1, 4, 7}|{1, 4, 8}|{1, 6, 8}|{2, 5, 8}|{3, 4, 7}|{3, 4, 8}|{3, 5, 8}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 6, 8}|{1, 4, 7}|{1, 4, 8}|{1, 6, 8}|{2, 5, 8}|{3, 5, 7}|{4, 5, 7}|{4, 5, 8}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 6, 8}|{1, 6, 7}|{2, 5, 8}|{3, 5, 7}|{4, 5, 7}|{4, 5, 8}|{4, 6, 7}|{4, 6, 8}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 6, 8}|{1, 4, 5}|{1, 4, 6}|{1, 5, 7}|{2, 5, 8}|{3, 5, 7}|{4, 5, 8}|{4, 6, 8}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 6, 8}|{1, 6, 7}|{2, 5, 8}|{3, 4, 5}|{3, 4, 6}|{3, 6, 7}|{4, 5, 8}|{4, 6, 8}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 4, 5}|{0, 4, 6}|{0, 5, 8}|{1, 6, 7}|{2, 5, 8}|{3, 5, 7}|{4, 5, 7}|{4, 6, 7}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 4, 5}|{0, 4, 6}|{0, 5, 8}|{1, 4, 5}|{1, 4, 6}|{1, 5, 7}|{2, 5, 8}|{3, 5, 7}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 4, 5}|{0, 4, 6}|{0, 5, 8}|{1, 6, 7}|{2, 5, 8}|{3, 4, 5}|{3, 4, 6}|{3, 6, 7}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 4, 5}|{0, 4, 7}|{0, 5, 8}|{0, 6, 7}|{1, 6, 7}|{2, 5, 8}|{3, 4, 5}|{3, 4, 7}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 4, 6}|{0, 4, 8}|{1, 6, 7}|{2, 5, 8}|{3, 4, 6}|{3, 4, 8}|{3, 5, 8}|{3, 6, 7}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 4, 7}|{0, 4, 8}|{0, 6, 7}|{1, 6, 7}|{2, 5, 8}|{3, 4, 7}|{3, 4, 8}|{3, 5, 8}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 6, 8}|{1, 4, 5}|{1, 4, 8}|{1, 5, 7}|{1, 6, 8}|{2, 4, 5}|{2, 4, 8}|{3, 5, 7}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 6, 8}|{1, 4, 7}|{1, 4, 8}|{1, 6, 8}|{2, 4, 7}|{2, 4, 8}|{2, 5, 7}|{3, 5, 7}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 4, 7}|{0, 4, 8}|{0, 6, 7}|{1, 6, 7}|{2, 5, 8}|{3, 5, 7}|{4, 5, 7}|{4, 5, 8}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 6, 8}|{1, 6, 7}|{2, 4, 5}|{2, 4, 6}|{2, 6, 8}|{3, 5, 7}|{4, 5, 7}|{4, 6, 7}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 6, 8}|{1, 4, 6}|{1, 4, 7}|{2, 4, 6}|{2, 4, 7}|{2, 5, 7}|{2, 6, 8}|{3, 5, 7}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 6, 8}|{1, 6, 7}|{2, 4, 5}|{2, 4, 6}|{2, 6, 8}|{3, 4, 5}|{3, 4, 6}|{3, 6, 7}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 6, 8}|{1, 4, 5}|{1, 4, 6}|{1, 5, 7}|{2, 4, 5}|{2, 4, 6}|{2, 6, 8}|{3, 5, 7}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 6, 8}|{1, 4, 5}|{1, 4, 8}|{1, 5, 7}|{1, 6, 8}|{2, 5, 8}|{3, 5, 7}|{4, 5, 8}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 6, 8}|{1, 6, 7}|{2, 4, 6}|{2, 4, 7}|{2, 5, 7}|{2, 6, 8}|{3, 5, 7}|{4, 6, 7}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 4, 5}|{0, 4, 7}|{0, 5, 8}|{0, 6, 7}|{1, 6, 7}|{2, 5, 8}|{3, 5, 7}|{4, 5, 7}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 6, 8}|{1, 6, 7}|{2, 5, 8}|{3, 4, 6}|{3, 4, 8}|{3, 5, 8}|{3, 6, 7}|{4, 6, 8}| +---------+---------+---------+---------+---------+---------+---------+---------+

Topcom assumes that the points do not lie on a hyperplane. If they do, and the hyperplane is not through the origin (and they span that entire affine hyperplane), then give Homogenize => false as an option. This is essentially equivalent to considering the point configuration as a vector comfiguration.

For example, the following three points lie on the hyperplane $x_0 + x_1 + x_2 = 2$.

 i10 : A1 = transpose matrix{{1,1,0},{1,0,1},{0,1,1}} o10 = | 1 1 0 | | 1 0 1 | | 0 1 1 | 3 3 o10 : Matrix ZZ <--- ZZ i11 : topcomRegularFineTriangulation(A1, Homogenize => false) o11 = {{0, 1, 2}} o11 : List i12 : topcomRegularFineTriangulation(A1, Homogenize => true)

Topcom generates triangulations by starting with a triangulation, and generating more by bistellar flips. There is a beautiful story about the collection of all (regular, or connected to regular) triangulations of a point or vector configuration. See the book De Loera, Rambau, Santos, Triangulations for details about this.

 i13 : sqh = transpose matrix {{-1,-1,1},{-1,1,1},{1,-1,1},{1,1,1},{0,0,1},{1,0,1},{-1,0,1},{0,1,1},{0,-1,1}} o13 = | -1 -1 1 1 0 1 -1 0 0 | | -1 1 -1 1 0 0 0 1 -1 | | 1 1 1 1 1 1 1 1 1 | 3 9 o13 : Matrix ZZ <--- ZZ i14 : tri = topcomRegularFineTriangulation sqh -- none found! i15 : tri = topcomRegularFineTriangulation(sqh, Homogenize => false) o15 = {{2, 4, 5}, {3, 4, 5}, {0, 4, 6}, {1, 4, 6}, {3, 4, 7}, {1, 4, 7}, {2, ----------------------------------------------------------------------- 4, 8}, {0, 4, 8}} o15 : List i16 : topcomNumTriangulations(sqh, Homogenize => false) o16 = 387 i17 : # topcomAllTriangulations(sqh, Homogenize => false) o17 = 387 i18 : topcomIsTriangulation(sq, tri) o18 = true i19 : topcomIsRegularTriangulation(sq, tri) o19 = true i20 : topcomRegularTriangulationWeights(sq, tri) o20 = {1, 1, 1, 1, -3, 0, 0, 0, 0} o20 : List i21 : topcomNumTriangulations sq o21 = 387 i22 : topcomNumTriangulations(sq, Fine => true) o22 = 64 i23 : Ts = topcomAllTriangulations(sq, Fine => true); i24 : netList Ts +---------+---------+---------+---------+---------+---------+---------+---------+ o24 = |{0, 4, 6}|{0, 4, 8}|{1, 4, 6}|{1, 4, 7}|{2, 4, 5}|{2, 4, 8}|{3, 4, 5}|{3, 4, 7}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 4, 6}|{0, 4, 8}|{1, 6, 7}|{2, 4, 5}|{2, 4, 8}|{3, 4, 5}|{3, 4, 7}|{4, 6, 7}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 4, 6}|{0, 4, 8}|{1, 4, 6}|{1, 4, 7}|{2, 5, 8}|{3, 4, 5}|{3, 4, 7}|{4, 5, 8}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 6, 8}|{1, 4, 6}|{1, 4, 7}|{2, 4, 5}|{2, 4, 8}|{3, 4, 5}|{3, 4, 7}|{4, 6, 8}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 4, 6}|{0, 4, 8}|{1, 4, 6}|{1, 4, 7}|{2, 4, 5}|{2, 4, 8}|{3, 5, 7}|{4, 5, 7}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 4, 6}|{0, 4, 8}|{1, 6, 7}|{2, 4, 5}|{2, 4, 8}|{3, 5, 7}|{4, 5, 7}|{4, 6, 7}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 4, 6}|{0, 4, 8}|{1, 4, 5}|{1, 4, 6}|{1, 5, 7}|{2, 4, 5}|{2, 4, 8}|{3, 5, 7}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 4, 6}|{0, 4, 8}|{1, 4, 6}|{1, 4, 7}|{2, 5, 8}|{3, 5, 7}|{4, 5, 7}|{4, 5, 8}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 4, 6}|{0, 4, 8}|{1, 4, 6}|{1, 4, 7}|{2, 4, 7}|{2, 4, 8}|{2, 5, 7}|{3, 5, 7}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 6, 8}|{1, 4, 6}|{1, 4, 7}|{2, 4, 5}|{2, 4, 8}|{3, 5, 7}|{4, 5, 7}|{4, 6, 8}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 4, 6}|{0, 4, 8}|{1, 4, 6}|{1, 4, 7}|{2, 5, 8}|{3, 4, 7}|{3, 4, 8}|{3, 5, 8}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 4, 6}|{0, 4, 8}|{1, 6, 7}|{2, 5, 8}|{3, 4, 5}|{3, 4, 7}|{4, 5, 8}|{4, 6, 7}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 4, 5}|{0, 4, 6}|{0, 5, 8}|{1, 4, 6}|{1, 4, 7}|{2, 5, 8}|{3, 4, 5}|{3, 4, 7}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 6, 8}|{1, 4, 6}|{1, 4, 7}|{2, 5, 8}|{3, 4, 5}|{3, 4, 7}|{4, 5, 8}|{4, 6, 8}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 4, 7}|{0, 4, 8}|{0, 6, 7}|{1, 6, 7}|{2, 4, 5}|{2, 4, 8}|{3, 4, 5}|{3, 4, 7}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 4, 6}|{0, 4, 8}|{1, 6, 7}|{2, 4, 5}|{2, 4, 8}|{3, 4, 5}|{3, 4, 6}|{3, 6, 7}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 6, 8}|{1, 6, 7}|{2, 4, 5}|{2, 4, 8}|{3, 4, 5}|{3, 4, 7}|{4, 6, 7}|{4, 6, 8}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 6, 8}|{1, 4, 7}|{1, 4, 8}|{1, 6, 8}|{2, 4, 5}|{2, 4, 8}|{3, 4, 5}|{3, 4, 7}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 6, 8}|{1, 4, 6}|{1, 4, 7}|{2, 4, 5}|{2, 4, 6}|{2, 6, 8}|{3, 4, 5}|{3, 4, 7}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 6, 8}|{1, 4, 7}|{1, 4, 8}|{1, 6, 8}|{2, 4, 5}|{2, 4, 8}|{3, 5, 7}|{4, 5, 7}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 6, 8}|{1, 4, 7}|{1, 4, 8}|{1, 6, 8}|{2, 5, 8}|{3, 4, 5}|{3, 4, 7}|{4, 5, 8}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 4, 6}|{0, 4, 8}|{1, 6, 7}|{2, 5, 8}|{3, 4, 7}|{3, 4, 8}|{3, 5, 8}|{4, 6, 7}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 4, 7}|{0, 4, 8}|{0, 6, 7}|{1, 6, 7}|{2, 5, 8}|{3, 4, 5}|{3, 4, 7}|{4, 5, 8}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 4, 6}|{0, 4, 8}|{1, 6, 7}|{2, 5, 8}|{3, 5, 7}|{4, 5, 7}|{4, 5, 8}|{4, 6, 7}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 4, 5}|{0, 4, 6}|{0, 5, 8}|{1, 6, 7}|{2, 5, 8}|{3, 4, 5}|{3, 4, 7}|{4, 6, 7}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 4, 6}|{0, 4, 8}|{1, 6, 7}|{2, 5, 8}|{3, 4, 5}|{3, 4, 6}|{3, 6, 7}|{4, 5, 8}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 6, 8}|{1, 6, 7}|{2, 5, 8}|{3, 4, 5}|{3, 4, 7}|{4, 5, 8}|{4, 6, 7}|{4, 6, 8}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 6, 8}|{1, 4, 6}|{1, 4, 7}|{2, 4, 5}|{2, 4, 6}|{2, 6, 8}|{3, 5, 7}|{4, 5, 7}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 6, 8}|{1, 6, 7}|{2, 4, 5}|{2, 4, 8}|{3, 5, 7}|{4, 5, 7}|{4, 6, 7}|{4, 6, 8}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 6, 8}|{1, 4, 6}|{1, 4, 7}|{2, 5, 8}|{3, 5, 7}|{4, 5, 7}|{4, 5, 8}|{4, 6, 8}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 6, 8}|{1, 4, 5}|{1, 4, 6}|{1, 5, 7}|{2, 4, 5}|{2, 4, 8}|{3, 5, 7}|{4, 6, 8}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 6, 8}|{1, 4, 6}|{1, 4, 7}|{2, 4, 7}|{2, 4, 8}|{2, 5, 7}|{3, 5, 7}|{4, 6, 8}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 6, 8}|{1, 6, 7}|{2, 4, 5}|{2, 4, 6}|{2, 6, 8}|{3, 4, 5}|{3, 4, 7}|{4, 6, 7}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 6, 8}|{1, 6, 7}|{2, 4, 5}|{2, 4, 8}|{3, 4, 5}|{3, 4, 6}|{3, 6, 7}|{4, 6, 8}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 4, 5}|{0, 4, 6}|{0, 5, 8}|{1, 4, 6}|{1, 4, 7}|{2, 5, 8}|{3, 5, 7}|{4, 5, 7}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 4, 6}|{0, 4, 8}|{1, 4, 5}|{1, 4, 6}|{1, 5, 7}|{2, 5, 8}|{3, 5, 7}|{4, 5, 8}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 6, 8}|{1, 4, 6}|{1, 4, 7}|{2, 5, 8}|{3, 4, 7}|{3, 4, 8}|{3, 5, 8}|{4, 6, 8}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 4, 7}|{0, 4, 8}|{0, 6, 7}|{1, 6, 7}|{2, 4, 5}|{2, 4, 8}|{3, 5, 7}|{4, 5, 7}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 4, 6}|{0, 4, 8}|{1, 6, 7}|{2, 4, 7}|{2, 4, 8}|{2, 5, 7}|{3, 5, 7}|{4, 6, 7}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 6, 8}|{1, 6, 7}|{2, 4, 7}|{2, 4, 8}|{2, 5, 7}|{3, 5, 7}|{4, 6, 7}|{4, 6, 8}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 4, 7}|{0, 4, 8}|{0, 6, 7}|{1, 6, 7}|{2, 4, 7}|{2, 4, 8}|{2, 5, 7}|{3, 5, 7}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 6, 8}|{1, 6, 7}|{2, 5, 8}|{3, 4, 7}|{3, 4, 8}|{3, 5, 8}|{4, 6, 7}|{4, 6, 8}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 6, 8}|{1, 4, 7}|{1, 4, 8}|{1, 6, 8}|{2, 5, 8}|{3, 4, 7}|{3, 4, 8}|{3, 5, 8}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 6, 8}|{1, 4, 7}|{1, 4, 8}|{1, 6, 8}|{2, 5, 8}|{3, 5, 7}|{4, 5, 7}|{4, 5, 8}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 6, 8}|{1, 6, 7}|{2, 5, 8}|{3, 5, 7}|{4, 5, 7}|{4, 5, 8}|{4, 6, 7}|{4, 6, 8}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 6, 8}|{1, 4, 5}|{1, 4, 6}|{1, 5, 7}|{2, 5, 8}|{3, 5, 7}|{4, 5, 8}|{4, 6, 8}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 6, 8}|{1, 6, 7}|{2, 5, 8}|{3, 4, 5}|{3, 4, 6}|{3, 6, 7}|{4, 5, 8}|{4, 6, 8}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 4, 5}|{0, 4, 6}|{0, 5, 8}|{1, 6, 7}|{2, 5, 8}|{3, 5, 7}|{4, 5, 7}|{4, 6, 7}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 4, 5}|{0, 4, 6}|{0, 5, 8}|{1, 4, 5}|{1, 4, 6}|{1, 5, 7}|{2, 5, 8}|{3, 5, 7}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 4, 5}|{0, 4, 6}|{0, 5, 8}|{1, 6, 7}|{2, 5, 8}|{3, 4, 5}|{3, 4, 6}|{3, 6, 7}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 4, 5}|{0, 4, 7}|{0, 5, 8}|{0, 6, 7}|{1, 6, 7}|{2, 5, 8}|{3, 4, 5}|{3, 4, 7}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 4, 6}|{0, 4, 8}|{1, 6, 7}|{2, 5, 8}|{3, 4, 6}|{3, 4, 8}|{3, 5, 8}|{3, 6, 7}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 4, 7}|{0, 4, 8}|{0, 6, 7}|{1, 6, 7}|{2, 5, 8}|{3, 4, 7}|{3, 4, 8}|{3, 5, 8}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 6, 8}|{1, 4, 5}|{1, 4, 8}|{1, 5, 7}|{1, 6, 8}|{2, 4, 5}|{2, 4, 8}|{3, 5, 7}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 6, 8}|{1, 4, 7}|{1, 4, 8}|{1, 6, 8}|{2, 4, 7}|{2, 4, 8}|{2, 5, 7}|{3, 5, 7}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 4, 7}|{0, 4, 8}|{0, 6, 7}|{1, 6, 7}|{2, 5, 8}|{3, 5, 7}|{4, 5, 7}|{4, 5, 8}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 6, 8}|{1, 6, 7}|{2, 4, 5}|{2, 4, 6}|{2, 6, 8}|{3, 5, 7}|{4, 5, 7}|{4, 6, 7}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 6, 8}|{1, 4, 6}|{1, 4, 7}|{2, 4, 6}|{2, 4, 7}|{2, 5, 7}|{2, 6, 8}|{3, 5, 7}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 6, 8}|{1, 6, 7}|{2, 4, 5}|{2, 4, 6}|{2, 6, 8}|{3, 4, 5}|{3, 4, 6}|{3, 6, 7}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 6, 8}|{1, 4, 5}|{1, 4, 6}|{1, 5, 7}|{2, 4, 5}|{2, 4, 6}|{2, 6, 8}|{3, 5, 7}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 6, 8}|{1, 4, 5}|{1, 4, 8}|{1, 5, 7}|{1, 6, 8}|{2, 5, 8}|{3, 5, 7}|{4, 5, 8}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 6, 8}|{1, 6, 7}|{2, 4, 6}|{2, 4, 7}|{2, 5, 7}|{2, 6, 8}|{3, 5, 7}|{4, 6, 7}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 4, 5}|{0, 4, 7}|{0, 5, 8}|{0, 6, 7}|{1, 6, 7}|{2, 5, 8}|{3, 5, 7}|{4, 5, 7}| +---------+---------+---------+---------+---------+---------+---------+---------+ |{0, 6, 8}|{1, 6, 7}|{2, 5, 8}|{3, 4, 6}|{3, 4, 8}|{3, 5, 8}|{3, 6, 7}|{4, 6, 8}| +---------+---------+---------+---------+---------+---------+---------+---------+