Computation of the Taut, the Veering and the Teichmüller Polynomials

Abstract Landry, Minsky and Taylor (LMT) introduced two polynomial invariants of veering triangulations—the taut polynomial and the veering polynomial. Here, we consider a pair of taut polynomials associated to one veering triangulation, the upper and the lower one, and analogously the upper and lower veering polynomials. We prove that the upper and lower taut polynomials are equal. In contrast, the upper and lower veering polynomials of the same veering triangulation may differ by more than a unit. We give algorithms to compute all these invariants. LMT related the Teichmüller polynomial of a fibered face of the Thurston norm ball with the taut polynomial of the associated layered veering triangulation. We use this result to give an algorithm to compute the Teichmüller polynomial of any fibered face of the Thurston norm ball.


Introduction
Let M denote a compact, oriented, connected 3-manifold with a finite, but positive, number of toroidal boundary components.By making boundary components into torus cusps we can represent such a manifold by an ideal triangulation -a decomposition into tetrahedra with vertices removed.Here we study a special class of ideal triangulations called (transverse taut) veering.They were introduced by Agol as a way to canonically triangulate pseudo-Anosov mapping tori [1].However, 3-manifolds fibred over the circle are not the only ones that can admit a veering triangulation [13,Section 4].
Even though every 3-manifold which admits a veering triangulation is hyperbolic [13], little is known about the relationship between the combinatorics of a veering triangulation and the hyperbolic geometry of the ambient manifold [10,12].There are also connections between veering triangulations and the suspension flows of pseudo-Anosov homeomorphisms [15,16], or more generally pseudo-Anosov flows without perfect fits [27].
This paper relies heavily on the work of Landry, Minsky and Taylor [18].They defined the taut polynomial, the veering polynomial and the flow graph of a (transverse taut) veering triangulation.Every such triangulation is equipped with a pair of canonical train tracks embedded in its 2-skeleton -the upper and the lower one (Subsection 3.3).The authors of [18] work always with the upper track.In this paper we consider both train tracks.Given a veering triangulation we compare its lower and upper taut polynomials, its lower and upper veering polynomials and its lower and upper flow graphs.In particular, we show Proposition 5.1.Let V be a veering triangulation.The lower taut polynomial Θ L V of V is (up to a unit) equal to the upper taut polynomial Hence there is only one taut polynomial associated to a veering triangulation.However, a similar statement does not hold for the flow graphs and the veering polynomials.We give examples which show the following.Proposition 6.1.There exists a veering triangulation V whose lower and upper flow graphs are not isomorphic.Proposition 6.6.There exists a veering triangulation V for which the lower veering polynomial V L V is not equal to the upper veering polynomial V U V up to a unit.
Thus to a triangulation with a veering structure we can canonically associate a pair of flow graphs and a pair of veering polynomials.
The majority of the results of this paper are computational.We simplify the original presentation for the taut module.As a result the computation of the taut polynomial requires computing only linearly many minors of a matrix, instead of exponentially many (Proposition 5.5).Using this we give algorithm TautPolynomial.We prove Proposition 5.7.Let V be a veering triangulation.Let C be a list of simplicial 1-cycles in the 2-complex dual to V. Denote by ρ C the surjection H ab → H C .Then the output of TautPolynomial applied to (V, C) is equal to the ρ C -reduced taut polynomial Θ ρ C V of V. We also give algorithm LowerVeeringPolynomial and prove Proposition 6.5.The output of LowerVeeringPolynomial applied to a veering triangulation V is equal to the lower veering polynomial V L V of V.The upper veering polynomial of V can be computed as the lower veering polynomial of the veering triangulation obtained from V by reversing the coorientation on its 2-dimensional faces (Remark 3.12).
When a veering triangulation V of M carries a fibration over the circle, we can associate to it a fibred face F of the Thurston norm ball in H 2 (M, ∂M ; R) [22,Proposition 2.7].Face F is fully-punctured.By [18,Theorem 7.1] the taut polynomial Θ V of V is equal to the Teichmüller polynomial Θ F of F.
Thus TautPolynomial also gives an algorithm to compute the Teichmüller polynomials of fully-punctured fibred faces.As observed in [18,Subsection 7.2] this can be generalised to all fibred faces via puncturing.We present the details of this in algorithm TeichmüllerPolynomial and prove Proposition 8.7.Let ψ : S → S be a pseudo-Anosov homeomorphism.
Denote by M its mapping torus.Let F be the fibred face of the Thurston norm ball in H 2 (M, ∂M ; R) such that [S] ∈ R + • F. Then the output of TeichmüllerPolynomial(ψ) is equal to the Teichmüller polynomial Θ F of F.
Different algorithms to compute the Teichmüller polynomial in some special cases have been previously developed.In [19] Lanneau and Valdez present an algorithm to compute the Teichmüller polynomial of punctured disk bundles.The authors of [2] compute the Teichmüller polynomial of oddblock surface bundles.In [4] Billet and Lechti cover the case of alternatingsign Coxeter links.
The algorithm presented in this paper is general and in principle can be applied to any hyperbolic, orientable 3-manifold fibred over the circle.Moreover, it has already been implemented.The source code is available at [11].
1.1.Outline.In Section 2 we review the definition of a transverse taut veering triangulation and prove lemmas about the combinatorics of veering triangulations which are used later in the paper.
In Section 3 we define dual train tracks in the 2-skeleton of a transverse taut triangulation.We describe a pair of canonical dual train tracks, called the lower and the upper track, which are determined by the transverse taut structure on an ideal triangulation.These train tracks are key in the definition of the taut and veering polynomials.
Both polynomials are invariants associated to the maximal free abelian cover M ab of a 3-manifold M endowed with a veering triangulation V.In Section 4 we recall the construction of this space and other free abelian covers M H of M .We carefully explain our conventions for labelling ideal simplices of the veering triangulation V H of M H with Laurent monomials.We define face Laurents which together with V are used to finitely encode the infinite triangulation V H .We also review notions of Fitting ideals and Fitting invariants of R-modules.
In Section 5 we recall the definition of the taut polynomial, introduced in [18].We prove that regardless of whether we use the lower or the upper track we obtain the same polynomial (Proposition 5.1).Then we give a recipe to systematically reduce the number of relations in the taut module (Proposition 5.5).We use it to accelerate the computation of the taut polynomial.
In Section 6 we recall the definitions of the flow graph and the veering polynomial introduced in [18].We present examples of veering triangulations whose lower and upper graphs are not isomorphic (Proposition 6.1) and whose lower and veering polynomials are not equal up to a unit (Proposition 6.6).Additionally we show that it is possible that the lower veering polynomial is zero even if the taut polynomial is not (Example 6.7).
In Section 7 we compute the taut and the lower veering polynomials of the veering triangulation cPcbbbiht 12 of the figure eight knot complement.
In Section 8 we make use of Theorem 7.1 from [18].It states that the taut polynomial of a layered veering triangulation V is equal to the Teichmüller polynomial of the corresponding to V fully-punctured fibred face of the Thurston norm ball.We recall McMullen's observations on the behaviour of the Teichmüller polynomial under removing the singular orbits of the flow corresponding to a fibred face [20,Section 6].We combine these two results to give details of an algorithm to compute the Teichmüller polynomial of any, not necessarily fully-punctured, fibred face.

Pseudocodes. 1. TriangulationCover (Subsection 4.3)
Encodes the triangulation (T H , α H ) of a free abelian cover M H of M which is induced by a transverse taut triangulation (T , α) of M 2. TautPolynomial (Subsection 5.2) Computes the lower veering polynomial V L V of a veering triangulation V 4. BoundaryCycles (Subsection 8.5) Finds simplicial 1-cycles in the dual graph of a transverse taut triangulation which are homologous to the boundary components of a surface carried by the 2-skeleton of this triangulation 5. TeichmüllerPolynomial (Subsection 8.6) Computes the Teichmüller polynomial Θ F of a fibred face F of the Thurston norm ball All pseudocodes have been implemented by the author, Saul Schleimer and Henry Segerman.The source codes are available at [11].

Transverse taut veering triangulations
Ideal triangulations of 3-manifolds.An ideal triangulation of an oriented 3-manifold M with torus cusps is a decomposition of M into ideal tetrahedra.Let n be the number of tetrahedra in this decomposition.Since M has zero Euler characteristic, the number of 2-dimensional faces and the number of edges of the triangulation equals 2n and n, respectively.In this paper the 2-dimensional faces are usually called triangles.Every triangle of a triangulation has two embeddings into two, not necessarily distinct, tetrahedra.The number of (embeddings of) triangles attached to an edge is called the degree of this edge.An edge of degree d has d embeddings into triangles and d embeddings into tetrahedra.
We denote an ideal triangulation by T = (T, F, E), where T, F, E denote the set of tetrahedra, triangles and edges, respectively.Note that by edges of a triangle/tetrahedron or triangles of a tetrahedron we mean embeddings of these ideal simplices into the boundary of a higher dimensional ideal simplex.Similarly, by triangles/tetrahedra attached to an edge we mean triangles/tetrahedra in which the edge is embedded, together with this embedding.When we claim that two lower dimensional simplices of a higher dimensional simplex are different, we mean that at least their embeddings are different.
Compact and cusped models.If we truncate the corners of ideal tetrahedra of T we obtain a compact 3-manifold with toroidal boundary components.The interior of this manifold is homeomorphic to M .For notational simplicity we also denote it by M .We freely alternate between the cusped and the compact models of M .The main advantage of the latter is that we can consider curves in the boundary ∂M .
Transverse taut triangulations.An ideal tetrahedron t is transverse taut if each of its faces is assigned a coorientation so that two faces are pointing inwards and two are pointing outwards the tetrahedron [13,Definition 1.2].We call the pair of faces whose coorientations point outwards the top faces of t and the pair of faces whose coorientations point inwards the bottom faces of t.We also say that t is immediately below its top faces and immediately above its bottom faces.
We draw a transverse taut tetrahedron as a quadrilateral with two diagonals -one on top of the other, see Figure 1.The top diagonal is the common edge of the two top faces of t and the bottom diagonal is the common edge of the two bottom faces of t.The remaining four edges of a transverse taut tetrahedron are called its equatorial edges.This way of presenting a transverse taut tetrahedron t naturally endows it with an abstract assignment of angles from {0, π} to its edges.Angle π is assigned to both diagonal edges of t and angle 0 is assigned to all its equatorial edges.Such an assignment of angles is called a taut structure on t [13, Definition 1.1].
A triangulation T = (T, F, E) is transverse taut if • every ideal triangle f ∈ F is assigned a coorientation so that every ideal tetrahedron t ∈ T is transverse taut, • for every edge e ∈ E the sum of angles of the underlying taut structure of T , over all embeddings of e into tetrahedra, equals 2π [13,Definition 1.2].
This implies that triangles attached to an edge e are grouped into two sides, separated by a pair of π angles at e. See Figure 2. We distinguish a pair of the lowermost and a pair of the uppermost (relative to the coorientation) triangles attached to e.In Figure 2 triangles f 1 , f 1 are the lowermost and triangles f 3 , f 2 are the uppermost.We say that a tetrahedron t ∈ T is immediately below e ∈ E if e is the top diagonal of t, and immediately above e, if e is the bottom diagonal of t.The remaining degree(e)−2 tetrahedra attached to e are called its side tetrahedra.Similarly as with triangles, we distinguish a pair of the lowermost and a pair of the uppermost side tetrahedra of e.
We denote a triangulation with a transverse taut structure by (T , α).Note that if M has a transverse taut triangulation (T , α) then it also has a transverse taut triangulation obtained from (T , α) by reversing coorientations on all faces of T .We denote this triangulation by (T , −α).These two triangulations have the same underlying taut structure, with tops and bottoms of tetrahedra swapped.
Remark.Triangulations as desribed above were introduced by Lackenby in [14].Some authors, including Lackenby, call them taut triangulations.Then triangulations endowed only with a {0, π} angle structure are called angle taut triangulations.
Veering triangulations.A veering tetrahedron is an oriented taut tetrahedron whose equatorial edges are coloured alternatingly red and blue as shown in Figure 1.A taut triangulation is veering if a colour (red/blue) is assigned to each edge of the triangulation so that every tetrahedron is veering.The convention is that red colour indicates a right-veering edge, and blue colour indicates a left-veering edge -see the original definition of veering triangulations due to Agol [1,Definition 4.1].
In this paper we consider only transverse taut veering triangulations, where we can distinguish top faces from bottom faces.We skip the adjective "transverse taut" in the remaining of the paper.Every edge of a veering triangulation is of degree at least 4 and has at least two triangles on each of its sides [1,Definition 4.1].We denote a veering triangulation by V = (T , α, ν), where ν corresponds to the colouring of edges.If M has a veering triangulation (T , α, ν), then it also has a veering triangulation (T , −α, ν), where the coorientations on faces are reversed, (T , α, −ν), where the colours on edges are interchanged and (T , −α, −ν), where both coorientations of faces and colours on edges are interchanged.Note that the operation ν → −ν reverses the orientation of M .The following lemma and the subsequent corollary will be used in the proof of Proposition 6.5, where we prove that algorithm LowerVeeringPolynomial correctly computes the lower veering polynomial.
Lemma 2.1.Let V = ((T, F, E), α, ν) be a veering triangulation.Then for any f ∈ F the bottom diagonal of a tetrahedron immediately above f and the top diagonal of the tetrahedron immediately below f are of the same colour.
Proof.Denote by b the bottom diagonal of the tetrahedron immediately above f and by t the top diagonal of the tetrahedron immediately below f .Then clearly b, t are distinct edges in the boundary of f , otherwise V would not be veering.Since b, t are diagonal edges, there is another edge of f which has the same colour as b and an edge of f which has the same colour as t.Thus b, t cannot be of a different colour.Definition 2.2.We say that a triangle of a veering triangulation is red (respectively blue) if two of its edges are red (respectively blue).
Corollary 2.3.Let V = ((T, F, E), α, ν) be a veering triangulation.Among all triangles attached to an edge e ∈ E there are exactly four which have the same colour as e.They are the two uppermost and the two lowermost triangles attached to e.
Proof.By Lemma 2.1 the lowermost and uppermost triangles attached to e are of the same colour as e.Conversely, suppose f ∈ F is neither a lowermost nor an uppermost triangle around e. Then e is an equatorial edge of both the tetrahedron immediately above f and the tetrahedron immediately below f .Again by Lemma 2.1 the bottom diagonal of the first and the top diagonal of the latter are of the same colour.Since they are different edges of f (otherwise V would not be veering), it follows that f is of a different colour than e.
The veering census.The data on transverse taut veering structures on ideal triangulations of orientable 3-manifolds consisting of up to 16 tetrahedra is available in the veering census [11].A veering triangulation in the census is described by a string of the form (2.4) [isoSig] [taut angle structure].
The first part of this string is the isomorphism signature of the triangulation.It identifies a triangulation uniquely up to combinatorial isomorphism.Isomorphism signatures have been introduced in [5, Section 3].The second part of the string records the transverse taut structure, up to a sign.This means that an entry from the veering census determine (T , ±α, ±ν).The sign of ±ν depends on the sign of ±α and the orientation of the underlying manifold.
We use this description whenever we refer to a concrete example of a veering triangulation.Implementations of all algorithms given in this paper take as an input a string of the form (2.4).

Structures associated to a transverse taut triangulation
In this section we recall the definitions of the horizontal branched surface [27, Subsection 2.12], the boundary track [10, Section 2] and the lower and upper tracks associated to a transverse taut triangulation [27, Definition 4.7].
3.1.Horizontal branched surface.Let (T , α) be a transverse taut triangulation of M .Since T is endowed with a compatible taut structure, we can view the 2-skeleton T (2) of T as a 2-dimensional complex with a well-defined tangent space everywhere, including along its 1-skeleton.Thus T (2) determines a branched surface (without vertices) in M .It is called the horizontal branched surface and denoted by B [27, Subsection 2.12].The branch locus of B is equal to the 1-skeleton T (1) .In particular, we can see B as ideally triangulated by the triangular faces of T .We denote this triangulation of B by (F, E).For a more general definition of a branched surface see [24, p. 532].
Branch equations.Let e ∈ E be an edge of degree d of a transverse taut triangulation T .Let f 1 , f 2 , . . ., f k be triangles attached to e on the right side, ordered from the bottom to the top.Let f 1 , f 2 , . . ., f d−k be triangles attached to e on the left side, also ordered from the bottom to the top.Then e determines the following relation between the triangles attached to it (3.1) We call this equation the branch equation of e.An example is given in Figure 2. A transverse taut triangulation with n tetrahedra determines a system of n branch equations.In Subsection 4.2 we organise them into a matrix B : Z E → Z F .We call this matrix the branch equations matrix for (T , α).For e ∈ E as in (3.1) we have Edge with the branch equation Surfaces carried by a transverse taut triangulation.Given a nonzero, nonnegative, integral solution w = (w 1 , . . ., w 2n ) to the system of branch equations of (T , α) we can build a surface properly embedded in M .We say that a surface S properly embedded in M is carried by a transverse taut triangulation (T , α) if it can be realised as S w for some nonnegative w ∈ Z 2n .This is equivalent to the definition given in [27,Subsection 2.14].
If there exists a strictly positive integral solution w we say that (T , α) is layered.In this case S w is a fibre of a fibration of M over the circle [18,Theorem 5.15].If there exists a nonnegative, nonzero integral solution, but no strictly positive integral solution, then we say that (T , α) is measurable.
3.2.Boundary track.An object which is strictly related to the horizontal branched surface is the boundary track.To define it, it is necessary to view the manifold M with a transverse taut triangulation (T , α) in the compact model.Definition 3.2.Let (T , α) be a transverse taut triangulation of a 3-manifold M .Denote by B the horizontal branched surface for (T , α).The boundary track β of (T , α) is the intersection B ∩ ∂M .
In Figure 3 we present a local picture of a boundary train track around one of its switches.A global picture of the boundary track for the veering triangulation cPcbbbiht 12 of the figure eight knot complement is presented in Figure 13.Each edge of T has two endpoints.Therefore for every e ∈ E the boundary track β has two switches of the same degree that can be labelled with e.Each triangle f ∈ F has three arcs around its corners (see Figure 4).These corner arcs are in a bijective correspondence with the branches of β.Therefore for every f ∈ F the track β has three branches that we label with f .If M has b ≥ 1 boundary components T 1 , . . ., T b , then β is a disjoint union of train tracks β 1 , . . ., β b in boundary tori T 1 , . . ., T b , respectively.
The boundary track β of (T , α) is transversely oriented by α.We orient the branches of β using the right hand rule and the coorientation on f , see Figure 4. Therefore every switch has a collection of incoming branches and a collection of outgoing branches.Moreover, branches within these collections can be ordered from bottom to top.In particular, for every branch of β we can consider • branches outgoing from the initial switch of above , • branches incoming to the terminal switch of above .We use these observations in Subsection 8.5 to give algorithm BoundaryCycles.More information on the boundary track can be found in [10, Section 2].

3.3.
Train tracks in the horizontal branched surface.In the previous subsection we considered the boundary track associated to a transverse taut triangulation (T , α).In this subsection we consider an entirely different kind of train tracks associated to (T , α), called dual train tracks.They are embedded in the horizontal branched surface B and are dual to its triangulation (F, E).A good reference for train tracks in surfaces is [26].We need to modify the standard definition of a train track so that it is applicable to our setting.
Triangular train tracks.We construct train tracks in B dual to the triangulation (F, E) by gluing together "ordinary" train tracks in individual triangles of that triangulation.We restrict the class of train tracks that we allow in those triangles.The train tracks that we allow are called triangular.Definition 3.3.Let f be an ideal triangle.By a triangular train track in f we mean a graph τ f ⊂ f with four vertices and three edges, such that • one vertex v is in the interior of f and the remaining three vertices are at the midpoints of the three edges in the boundary of f , one for each edge, • for each vertex v different than v there is an edge joining v and v , • all edges are C 1 -embedded, • there is a well-defined tangent line to τ f at v. See Figure 5.We call the vertex v in the interior of f a face switch of τ f , and the remaining vertices -its edge switches.The edges of τ f are called halfbranches.We say that a half-branch is dual to an edge e in the boundary of f if its edge switch is the midpoint of e.Every half-branch has one endpoint being a face switch, and the otheran edge switch.A tangent line to τ f at a face switch v distinguishes two sides of v. Two half-branches are on different sides of v if an only if the path contained in τ f which joins their edge switches is smooth.A switch v has one half-branch on one side and two on the other.We call the half-branch which is the unique half-branch on one side of v the large half-branch of τ f .The remaining two half-branches are called small half-branches of τ f .
A face switch of τ f determines a relation of the form between the three half-branches of τ f , where e 0 denotes the large half-branch of τ f .We call this relation a switch equation of τ f .

Dual train tracks in B.
In this subsection we glue triangular train tracks in f ∈ F to obtain train tracks in B.
Definition 3.5.A dual train track in (B, F ) is a finite graph τ ⊂ B whose restriction to any ideal triangle f of the ideal triangulation of B by (F, E) is a triangular train track, which we denote by τ f .A face switch/edge switch/ half-branch of τ is a face switch/edge switch/half-branch of τ f for some f ∈ F , respectively.Every edge of the triangulation is dual to degree(e) half-branches of τ .Two half-branches of triangular train tracks τ f , τ f form a branch of τ if they have a common edge switch, contained in some e ∈ E, and f, f are on different sides of e.We call two half-branches which form a branch the ends of this branch.A branch of τ is large (small ) if both of its ends are large (small) half-branches.Switch equations of triangular train tracks τ f give rise to (face) switch equations of τ via identifying half-branches with the same edge switch.Hence (face) switch equations of τ ⊂ B are relations between edges of the triangulation (T , α).
Remark.Branch equations of V can be interpreted as edge switch equations of any dual train track τ ⊂ B. However, we never use that name.Whenever we mention switch equations we mean face switch equations.The lower track τ L of T is the dual train track in B such that for every f ∈ F the large-half branch of τ L f is dual to this edge of f which is the top diagonal of the tetrahedron of T immediately below f .
The upper track τ U of T is the dual train track in B such that for every f ∈ F the large-half branch of τ U f is dual to this edge of f which is the bottom diagonal of the tetrahedron of T immediately above f .Let t be a tetrahedron of a transverse taut triangulation.From the above definition it follows that the lower track restricted to the two top faces of t looks like in the top row of Figure 7(a).The upper track restricted to the two bottom faces of t looks like in the bottom row of Figure 7(b).
We introduce the following names for the edges of f ∈ F which are dual to large half-branches of τ L f or τ U f .Definition 3.8.Let (T , α) be a transverse taut triangulation.We say that an edge in the boundary of f ∈ F is the lower large (respectively the upper large) edge of f if it is dual to the large half-branch of τ L f (respectively τ U f ).To define the lower and upper tracks we do not need a veering structure on the triangulation.However, the lower and upper tracks of veering triangulations admit a nice property which follows from the following lemma.(This is a reformulation of [18,Lemma 3.2]).Lemma 3.9.Let V = (T , α, ν) be a veering triangulation.Let t be one of its tetrahedra.Through its bottom faces t is adjacent to two tetrahedra t 1 , t 2 of V.The embeddings of the top diagonals of t 1 , t 2 into t are the equatorial edges of t which are of the same colour as the bottom diagonal of t.
Proof.Let (T , α) be transverse taut.Suppose it has a tetrahedron t such that its two consecutive equatorial edges are the top diagonals of the two tetrahedra t 1 , t 2 immediately below t.Such a situation is shown in Figure 6.
There is no consistent choice for the colour of the bottom diagonal of t.
Tetrahedron t 1 endows it with the red colour, while tetrahedron t 2 endows it with the blue colour (see Figure 1 of a veering tetrahedron).Hence (T , α) does not admit a veering structure.
It follows that in a veering triangulation the top diagonals of t 1 , t 2 are opposite equatorial edges of t.The fact that they have the same colour as the bottom diagonal of t follows again from analysing Figure 1.

Analogously we have
Lemma 3.10.Let V = (T , α, ν) be a veering triangulation.Let t be one of its tetrahedra.Through its top faces t is adjacent to two tetrahedra t 1 , t 2 of V.The embeddings of the bottom diagonals of t 1 , t 2 into t are the equatorial edges of t which are of the same colour as the top diagonal of t.
Suppose we want to figure out the lower and upper track restricted to the faces of a given tetrahedron t.Without the veering structure we need to look at the tetrahedra adjacent to t.The above lemmas imply that when a triangulation is veering it is enough to look just at the colouring on the edges of t.We summarise this observation in the following corollary.
Corollary 3.11.Let V = (T , α, ν) be a veering triangulation.Let t be one of its tetrahedra.The lower large edges of the bottom faces of t are the equatorial edges of t which are of the same colour as the bottom diagonal of t.The upper large edges of the top faces of t are the equatorial edges of t which are of the same colour as the top diagonal of t.
The pictures of the lower track and upper track in a veering tetrahedron are presented in Figure 7

Free abelian covers
The aim of this paper is to give algorithms to compute the taut, the veering and the Teichmüller polynomials.All of them are related to the maximal free abelian cover M ab of M .This covering space corresponds to the kernel of the abelianisation map π 1 M → H 1 (M ; Z) composed with the torsion-killing map H 1 (M ; Z) → H 1 (M ; Z) / torsion .The deck transformation group of the covering M ab → M is isomorphic to We will be more general in our considerations and consider free abelian covers M H with the deck transformation group H which is a free abelian quotient of H 1 (M ; Z).Note that M ab → M factorises through M H → M .
The group H will be given to us in the following way.Suppose H 1 (M ; Z) is generated by m elements a 1 , . . ., a m which satisfy p relations r 1 , . . ., r p .We add a finite collection C of additional relations c 1 , . . ., c k .We set G = a 1 , . . ., a m | r 1 , . . ., r p , c 1 , . . ., c k and then define When we want to emphasise that H corresponds to the torsion-free part of the group obtained by adding the relations C = {c 1 , . . ., c k } we write If a basis (b 1 , . . ., b r ) of H is fixed then we choose the isomorphism Ψ to be b i → u i .For u = (u 1 , . . ., u r ) the tuple of variables and v = (v 1 , . . ., v r ) ∈ Z r by u v we denote the monomial u v 1 1 • • • u vr r .Suppose M is equipped with a transverse taut triangulation (T , α).Then a free abelian cover M H admits a triangulation T H induced by T via the covering map M H → M .It is also transverse taut, as coorientations on triangular faces can be lifted from T .If T is additionally veering, then so is T H .We orient ideal simplices of T H in such a way that the restriction of M H → M to each simplex is orientation-preserving.
Ideal tetrahedra, triangles and edges of T H are lifts of elements of T, F, E, respectively.They can be indexed by elements of H, hence we denote their sets by H • T, H • F, H • E. The free abelian groups generated by H • T , H• and H • E all admit a Z[H]-module structure, via the obvious action of H on them.Therefore we identify these groups with the free The lower and upper tracks of T induce the lower and upper tracks of T H .We denote them by τ H,L and τ H,U , respectively.They restrict to triangular train tracks τ In the special case when H = H ab we denote T H by T ab .When the triangulation is veering we also use V H and V ab .4.1.Labelling ideal simplices of T H . Let (T , α) be a transverse taut triangulation of M .By (T H , α H ) we denote the induced triangulation of M H . Let F be a connected fundamental domain for the action of H on M H whose closure F is triangulated by lifts of tetrahedra t ∈ T .We label the tetrahedra in F with 1 ∈ H. Every other tetrahedron in the triangulation T H is a translate of some 1 • t by an element h ∈ H, hence we denote it by h • t.We also say that h • t has H-coefficient h.
For the remaining of the paper, unless stated otherwise, the labelling for the lower dimensional ideal simplices is as follows: In other words, triangles and edges inherit their H-coefficient from the unique tetrahedron immediately below them.Once a basis for H is fixed, we replace the H-coefficients of simplices with their Laurent coefficients.They are the images of H-coefficients under the isomorphism Ψ.
Remark.Throughout the paper we use the multiplicative convention for H.
Every triangle of T H is a top triangle of h 1 • t 1 and a bottom triangle of h 2 • t 2 for some h 1 , h 2 ∈ H, t 1 , t 2 ∈ T .Moreover, for all lifts of a triangle f ∈ F the corresponding product h 2 h −1 1 is the same.This motivates the following definition.Definition 4.1.The H-pairings for (T , H, F) are elements h i ∈ H associated to triangles f i ∈ F such that the tetrahedron immediately above h • f i is in h i h • F. We also say that h i is the H-pairing of f i relative to F.
A transverse taut triangulation T H together with a fixed fundamental domain F determine the H-pairings and, once a basis of H is fixed, the face Laurents -their images under the isomorphism Ψ. We, however, need to reverse this process.Namely, given a triangulation T of M , we compute a tuple η of 2n H-pairings, which determines a consistent labelling of ideal simplices of T H by elements of H.In this way we encode the whole infinite triangulation T H with a pair of finite objects (T , η).This procedure is a subject of the next subsection.

4.2.
Encoding the triangulation T H by (T , η).We want to encode the triangulation T H by T and a finite tuple of H-pairings associated to the triangles of T .The latter depends on the chosen fundamental domain F for the action of H on T H .We fix it using the dual graph of T .
The dual 2-complex and the dual graph.Let T = (T, F, E) be an ideal triangulation.We use T * to denote its dual complex.It is a 2-dimensional CW-complex: it has n vertices, each corresponding to some t ∈ T , 2n edges, each corresponding to a triangular face f ∈ F , and n two-cells, each corresponding to an edge e ∈ E.
By X we denote the 1-skeleton of T * .We call X the dual graph of T .Whenever T is transverse taut, we assume that X is endowed with the "upward" orientation on edges, coming from the coorientation on the triangular faces of T .
Fixing a fundamental domain.Suppose T is transverse taut.We orient the edges of the dual graph X consistently with the transverse taut structure on T .Let Y be a spanning tree of X.Then Y has n vertices t ∈ T and n − 1 edges.
Since T * is a deformation retract of M , it has a free abelian cover (T * ) H with the deck transformation group isomorphic to H. Let X H be the preimage of X under the covering map (T * ) H → T * .Fix a lift Y of Y to (T * ) H .The lift Y determines a fundamental domain F for the action of H on T H built from: • the interiors of all tetrahedra of T H dual to vertices of Y , • top diagonal edges of tetrahedra of T H dual to vertices of Y , • the interiors of triangles of T H dual to the edges of X H which join two vertices of Y , • the interiors of triangles of T H dual to the edges of X H which run from a vertex of Y to a vertex not in Y .
Definition 4.2.We say that F constructed as above is the (upwardly closed) fundamental domain for the action of H on T H determined by the spanning tree Y of X.
The fundamental domain F is well-defined up to a translation by an element of H.The closure F additionally contains the interiors of triangles of T H dual to the edges of X H which run from a vertex not in Y to a vertex of Y , and all edges in the boundaries of these triangles and the triangles of F.
Hence it is ideally triangulated by tetrahedra of T H dual to the vertices of Y .
Fixing a basis for H.A choice of the spanning tree Y of the 1-skeleton of X not only determines the fundamental domain F for the action of H on T H , but also gives an easy way to find a presentation for π 1 (T * ), and hence for H, in terms of elements of F .By F Y we denote the subset of F consisting of triangles dual to the edges of Y .Let B : Z E → Z F be the branch equations matrix for the transverse taut triangulation (T , α) of M .We define the map be the Smith normal form of (B|C) Y .Then there exists a basis of H such that the H-pairing of f ∈ F \ F Y relative to F is given by the vector built from the last r entries of the column U (f ).
Proof.The cokernel of (B|C) Y is isomorphic to the quotient of H 1 (M ; Z) obtained by imposing extra relations c i = 0 for i = 1, . . ., k.Since S is the Smith normal form of (B|C) Y and satisfies the last r rows of both S and U (B|C) Y are zero.They correspond to the basis elements of H. Let us denote the elements of F \ F Y by f 1 , . . ., f n+1 .The matrix U transforms the basis (f 1 , . . ., f n+1 ) of Z F \F Y to another basis (µ 1 , . . ., µ n+1 ).In particular, (µ n−r+2 , . . ., µ n+1 ) is a basis for H.The consecutive entries of the i-th column of U gives us the coefficients of f i as a linear combination of (µ 1 , . . ., µ n+1 ).Since µ 1 , . . ., µ n−r+1 are 0 in H it follows that the last r entries of the i-th column of U define the H-pairing of f i .
Remark.The H-pairings for f ∈ F Y are all trivial.4.3.Algorithm TriangulationCover.Recall that an H-pairing, expressed with respect to some basis of H as a vector v ∈ Z r , gives rise to the face Laurent Ψ(v) = u v ∈ Z[H].We finish this subsection by giving pseudocode for an algorithm which takes as an input a transverse taut triangulation (T , α) and a finite list C of simplicial 1-cycles in its dual 2-complex.The algorithm outputs a tuple of face Laurents for T which encodes the free abelian cover T H of T , where H = H C .The correctness of this algorithm follows from Lemma 4.3.
By SpanningTree we denote an algorithm which takes as an input an ideal triangulation T = (T, F, E) and returns a subset F Y of F consisting of triangles dual to the edges of a spanning tree Y of the dual graph X of T .

Algorithm 1 TriangulationCover
Finding face Laurents for a free abelian cover of (T , α) Input: • A transverse taut triangulation (T , α) of a cusped 3-manifold M with n ideal tetrahedra, T = (T, F, E) Let M be a finitely presented module over Z[H].Then there exist integers k, l ∈ N and an exact sequence In particular Fit i (M) = Z[H] for i ≥ l, as the determinant of the empty matrix equals 1, and Fit i (M) = 0 for i < 0 or i < l − k.The Fitting ideals are independent of the choice of a free presentation for M [23, p. 58].
The ring Z[H] is not a principal ideal domain, but it is a GCD domain [6, p. 117].Therefore for any finitely generated ideal I ⊂ Z[H] there exists a unique minimal principal ideal I ⊂ Z[H] which contains it.The ideal I is generated by the greatest common divisor of the generators of I [6, p. 118].This motivates the following definition.Definition 4.5.Let M be a finitely presented Z[H]-module.We define the i-th Fitting invariant δ i (M) of M to be the greatest common divisor of elements of Fit i (M).When Fit i (M) = (0) we set δ i (M) to be equal to 0.

Note that Fitting invariants are well-defined only up to a unit in Z[H].
Suppose H is a free abelian group for which there exists a surjection ρ : by the extension of scalars through ρ.
We have an equality of Fitting ideals [7, Corollary 20.5] Note, however, that it does not follow that δ i (ρ * (M)) = ρ(δ i (M)).This is because the greatest common divisors are computed in different rings.In general we only get that ρ(δ i (M)) divides δ i (ρ * (M)).
Let M be generated by two elements x, y with relations Notation.For brevity we adopt the following notational convention.If the i-th Fitting invariant of M is denoted by δ i , then the i-th Fitting invariant of ρ * (M) is denoted by δ ρ i .We say that δ ρ i is the ρ-reduced δ i .

The taut polynomial
Let V = ((T, F, E), α, ν) be a veering triangulation of a 3-manifold M .We set H = H ab = H 1 (M ; Z) / torsion .Following [18] we define the lower taut module E L α (V) of V by the presentation Definition 3.6).In other words, face f of V has three edges in its boundary, say e 0 , e 1 , e 2 ∈ E. Suppose that e 0 is the top diagonal of the tetrahedron immediately below f .Then its lift to 1 • f has the Hcoefficient equal to 1.The lifts of the remaining edges e 1 , e 2 of f to 1 • f have H-coefficients h 1 , h 2 ∈ H, respectively.We set The lower taut polynomial of V, denoted by Θ L V , is the zeroth Fitting invariant of E L α (V), that is We can analogously define the upper taut module E U α (V) with the presentation matrix D U which assigns to 1 • f ∈ H • F the switch equation of τ H,U in 1 • f .Then the upper taut polynomial Θ U V is the greatest common divisor of the maximal minors of D U .

Remark. The subscript α in E L
α , E U α reflects the fact that these modules depend only on the transverse taut structure α on V, and not on the colouring ν.The reason why we consider only the taut polynomials of veering triangulations is that by [18,Theorem 5.12] a veering triangulation V of M determines a unique (not necessarily top-dimensional, potentially empty) face of the Thurston norm ball in H 2 (M, ∂M ; R).Hence its taut polynomials can be seen as invariants of this face.(In fact, in Proposition 5.1 we prove that the lower and upper taut polynomials of a veering triangulation are equal, so we get only one invariant.) In contrast, transverse taut triangulations are very common and not canonical in any sense [14, Theorem 1].Moreover, many results about the taut polynomial that we prove here rely on the veering structure.
Proposition 5.1.Let V = (T , α, ν) be a veering triangulation.The lower taut module of V is isomorphic to the upper taut module of V. Hence Then the tetrahedron immediately below 1 • f has a red top diagonal t and the tetrahedron immediately above 1 • f has a red bottom diagonal r, for some t, r ∈ H • E. We have for some l ∈ H • E, so the signs of the two red edges of f are interchanged.A similar statement is true for blue triangles: the images od D L and D U on them differ by swapping the signs of the two blue edges.
If we multiply all columns of D L corresponding to red triangles of V by -1, and all rows corresponding to blue edges by −1, we obtain the matrix D U .Hence the maximal minors of D L and D U differ at most by a sign.
Thus from now on we only write about the taut polynomial Θ V and the taut module E α (V).Throughout this section we use only the lower track.
Proof.This follows from Proposition 5.1 and Remark 3.12.

Reducing the number of relations. The original definition of the taut polynomial requires computing 2n
n > 2 n minors of D L , which is an obstacle for efficient computation.However, the relations satisfied by the generators of the taut module are not linearly independent.In this subsection we give a recipe to systematically eliminate n − 1 relations.
The following lemma follows from [18, Lemma 3.2].We include its proof, because it is important in Proposition 5.5.
Lemma 5.3.Let V = (T , α, ν) be a veering triangulation.Each tetrahedron t ∈ T induces a linear dependence between the columns of D L corresponding to the triangles in the boundary of t.Proof.Let π : V ab → V be the covering map.Suppose that 1 • t has red equatorial edges r 1 , r 2 , blue equatorial edges l 1 , l 2 , bottom diagonal d b and top diagonal d t , where r 1 , r 2 , l 1 , l 2 , d b , d t ∈ H • E. See Figure 8. Let For i = 1, 2 denote by f i the bottom triangle of 1 • t such that f i and f i are adjacent in 1 • t along the lower large edge of f i .By Corollary 3.11 the lower large edges of f i are the equatorial edges of 1 • t which are of the same colour as the bottom diagonal of 1 • t.See also Figure 7. Therefore Remark.Lemma 5.3 does not hold for transverse taut triangulations which do not admit a veering structure.One can check that if the lower large edges of the bottom faces of a tetrahedron t are not the opposite equatorial edges of t (as in the proof of Lemma 3.9), then no nontrivial linear combination of the images of the faces of t under D L gives zero.
The above lemma has an immediate corollary, which will not be used in this paper.However, it motivates a followup paper [25] in which we compare the taut polynomial with the Alexander polynomial.
Corollary 5.4.Let V = (T , α, ν) be a veering triangulation.The free presentation for the taut module E α (V) can be extended into the taut chain complex Let Y be a spanning tree of the dual graph X of V = ((T, F, E), α, ν).Let F Y be the subset of triangles which are dual to the edges of Y .We define a Z[H]-module homomorphism Proof.We say that a dual edge h It is enough to prove that every tree edge is in the span of non-tree edges.
By Lemma 5.3 each tree edge h • f ∈ H • F is a linear combination of three dual edges that share a vertex with h • f .In particular, the terminal edges of Y -there are at least two of them -are in the span of non-tree edges.Now consider a subtree Y obtained from Y by deleting its terminal edges.The terminal edges of Y can be expressed as linear combinations of nontree edges and terminal edges of Y , hence as linear combinations of non-tree edges only.Since Y is finite, we eventually exhaust all its edges.Corollary 5.6.Let Y be a spanning tree of the dual graph X of a veering triangulation V.The taut polynomial Θ V is equal to the greatest common divisor of the maximal minors of the matrix D L Y .Proof.By Proposition 5.5 we obtain another presentation for the taut module Since Fitting invariants of a finitely presented module do not depend on a chosen presentation [23, pp. 58], the greatest common divisor of the maximal minors of D L Y is equal to the taut polynomial.
There are n + 1 such minors.We call them the non-tree minors for Y .

Computing the taut polynomial.
In this subsection we present pseudocode for an algorithm which takes as an input a veering triangulation V of a 3-manifold M and a collection C of simplicial 1-cycles in the dual graph X. Recall that C determines a free abelian quotient Recall the notational remark at the end of Subsection 4.4.
If one is interested in the taut polynomial Θ V of V the list C should be empty.A generalisation to ρ C -reduced polynomials is used in algorithm TeichmüllerPolynomial (Subsection 8.6).
In Section 7 we follow algorithm TautPolynomial applied to the veering triangulation cPcbbbiht 12 of the figure eight knot complement and the empty list of cycles in its dual graph.

Algorithm 2 TautPolynomial
Computation of the (ρ C -reduced) taut polynomial of a veering triangulation Input: • A transverse taut veering triangulation V = ((T, Proof.We set H = H C .The output of TriangulationCover(V, C) encodes the triangulation V H .We prove that the matrix D on line 15 of the algorithm TautPolynomial(V, C) is equal to the matrix obtained from D L by mapping its entries through the surjection ρ C : H ab → H C .This follows from the following observations: Here by the H-pairing of a triangle of V H we mean the H-pairing of its image under the covering map V H → V. Deleting the tree columns of D, for some spanning tree Y of the dual graph X of V, gives a presentation matrix for the module ] by Corollary 5.6.The greatest common divisor of its maximal minors is equal to the zeroth Fitting invariant of ρ * c (E α (V)).This is the ρ C -reduced taut polynomial Θ ρ C V of V.

The veering polynomials
In this section we always have Let V = ((T, F, E), α, ν) be a veering triangulation.In Subsection 6.1 we follow [18,Section 4] to recall the definition of the flow graph associated to V. In Subsection 6.2 we follow [18,Section 6] to recall the definition of the veering polynomial of V.The aim of this section is twofold.First, based on a computer search we show examples of veering triangulations which lack the lower-upper track symmetry.More precisely, the authors of [18] define the veering polynomial and the flow graph as invariants associated to the upper train track of V.In the previous section we have shown that the taut polynomial derived from the upper track and that derived from the lower track are equal (Proposition 5.1).In this section we show that this does not hold for the veering polynomial (Proposition 6.6).Similarly, the flow graphs derived from the lower and upper train tracks of V are not necessarily isomorphic (Proposition 6.1).
Since the entries in the veering census have a coorientation fixed only up to a sign, we cannot assign a unique veering polynomial to a veering triangulation from the veering census.Instead, we get a pair of veering polynomials.Similarly, we get a pair flow graphs.The lower veering polynomial/flow graph of (T , α, ν) is the upper veering polynomial/flow graph of (T , −α, ±ν), and vice versa.
The second aim of this section is to present pseudocode for the computation of the lower veering polynomial (Subsection 6.3).6.1.Flow graphs.Given a veering triangulation V = (T , α, ν) the authors of [18] defined the flow graph Φ U of V [18,Subsection 4.3].The vertices of Φ U are in a bijective correspondence with edges e ∈ E. Corresponding to each t ∈ T there are three edges of Φ U : • from the bottom diagonal d b of t to the top diagonal d t of t, • from the bottom diagonal d b of t to the equatorial edges e, e of t which have a different colour than the top diagonal of t.In this paper we call the obtained graph the upper flow graph of V, hence the superscript U .We analogously define the lower flow graph Φ L .Its vertices also correspond to the edges of the the veering triangulation.Every t ∈ T determines the following three edges of Φ L : • from the top diagonal d t of t to the bottom diagonal d b of t, • from the top diagonal d t of t to the equatorial edges e, e of t which have a different colour than the bottom diagonal of t.Using a computer search allowed us to find that Proposition 6.1.There exists a veering triangulation V whose lower and upper flow graphs are not isomorphic.
Proof.The first entry of the veering census for which the upper and lower flow graphs are not isomorphic is the triangulation (T , ±α, ±ν) = hLMzMkbcdefggghhhqxqkc 1221002 of the manifold v2898.
The graphs are presented in Figure 9.In 9(a) there are two vertices of valency 6 (numbered with 4 and 6) which are joined to a vertex of valency 10 (numbered with 0), while in 9(b) there is only one vertex of valency 6 (numbered with 6) which is joined to a vertex of valency 10 (numbered with 0).Hence the graphs are not isomorphic.6.2.Veering polynomials.Let V = ((T, F, E), α, ν) be a veering triangulation.The matrix D L assigns to a tetrahedron a set of four relations between its edges.By Lemma 5.3, we can group triangles of a tetrahedron in pairs in such a way that D L evaluated on each pair equals (6.2) where d t , d b denote the top end the bottom diagonals of the tetrahedron, respectively, and s 1 , s 2 -its two equatorial edges of a different colour than d b .
Following [18] we use this fact to define a Z[H]-module homomorphism assigning to each tetrahedron of a veering triangulation V ab a linear combination of its edges of the form (6.2).We call the cokernel of N L the lower veering module and denote it by E L α,ν (V).The subscripts α, ν reflect the fact that to define this module one needs both the transverse taut structure α and the colouring ν on V.
Definition 6.3.The lower veering polynomial V L V is the determinant of N L .Thus the lower veering polynomial is the zeroth Fitting invariant of the lower veering module.
Analogously the upper veering polynomial V U V is the determinant of the map N U , which assigns to a tetrahedron with the top diagonal d t , the bottom diagonal d b and equatorial edges w 1 , w 2 of a different colour than d t a linear combination d b − d t − w 1 − w 2 .Remark 6.4.In [18, Section 3] the (upper) veering polynomial is welldefined as an element of Z[H], and not just up to a unit.This is accomplished by identifying a tetrahedron of V ab with its bottom diagonal.Then the map N U has Z[H] E as both the domain and codomain.The upper veering polynomial V U V is then equal to the determinant of N U , where the basis for the domain and codomain is chosen to be the same.
For the lower veering polynomial we identify a tetrahedron of V ab with its top diagonal.By our conventions for labelling ideal simplices of V ab (explained in Subsection 4.1) under this identification the basis 1 • T for Z[H] T and the basis 1 • E for Z[H] E differ at most by a permutation.
Both veering modules have n generators and n relations, hence their zeroth Fitting ideals are principal.This has obvious computational advantages.Moreover, the authors of [18] proved that the upper veering polynomial can be derived from the Perron polynomial of Φ U [18, Theorem 4.8].This allowed them to employ the results of McMullen on the Perron polynomials of graphs [21,Section 3] to compute the growth rate of the closed orbits of the pseudo-Anosov flow associated to V [17].By considering the upper flow graph of (T , −α, −ν), it is easy to see that analogous results hold for the lower flow graph of (T , α, ν).

Computing the veering polynomials.
In this subsection we present pseudocode for an algorithm which takes as an input a veering triangulation and returns its lower veering polynomial.
In Section 7 we follow this algorithm applied to the veering triangulation cPcbbbiht 12 of the figure eight knot complement.

Algorithm 3 LowerVeeringPolynomial Computation of the lower veering polynomial
# Face Laurents encoding V ab 3: N := the zero matrix with rows indexed by E and columns by T 4: for e in E do subtract CurrentCoefficient from the entry (e, T ) of N end for 23: end for 24: return determinant of N Proposition 6.5.The output of LowerVeeringPolynomial applied to a veering triangulation V is equal to the lower veering polynomial of V.
Proof.We claim that the matrix N on line 22 of the algorithm is equal to N L .Hence its determinant is equal to the lower veering polynomial of V.The proof is similar to that of Proposition 5.7.The main difference here is that when we explore edge e ∈ E we do not take into account all tetrahedra attached to it, but only the one immediately below e, immediately above e and the ones on the sides of e which have a bottom diagonal of a different colour than e.However, by Corollary 2.3 we know that the only side tetrahedra of e which do not have a bottom diagonal of a different colour than e are the two lowermost side tetrahedra of e.This explains line 17 of LowerVeeringPolynomial.
Line 1 of the LowerVeeringPolynomial ensures that the polynomial is correctly computed not only up to a sign, see Remark 6.4.
An analogous algorithm can be written for the upper veering polynomial.Alternatively, by Remark 3.12 to compute the upper veering polynomial of (T , α, ν) we can apply LowerVeeringPolynomial to the triangulation (T , −α, −ν).
Remark.Let V = (T , α, ν) and −V = (T , −α, −ν).The outputs of Lower VeeringPolynomial(V) and LowerVeeringPolynomial(−V) are equal to V L V and V U V , respectively, but written with respect to different bases of H ab .The change of basis is given by u i → u −1 i .This follows from Definition 4.1.Using an implementation of LowerVeeringPolynomial we have found that Proposition 6.6.There exists a veering triangulation V for which V L V and V U V are not equal up to a unit in Z[H].Proof.The first entry (T , ±α, ±ν) of the veering census for which (after fixing the signs) we have . This is a veering triangulation of the 3-manifold t10133.Its lower and upper veering polynomials are up to a unit equal to Their greatest common divisor is equal to the taut polynomial Θ V of V.
The flow graphs of the triangulation from the proof of Proposition 6.6 are not isomorphic.In fact, one of them is planar, and the other is not.Interestingly, the veering polynomials of the triangulation from the proof of Proposition 6.1 are both (up to a unit) equal to (1 + u)(1 − 20u + u 2 ), even though its flow graphs are not isomorphic.
There are even veering triangulations for which one veering polynomial vanishes and the other does not.Example 6.7.We consider the triangulation (T , ±α, ±ν) = lLLLAPAMcbcfeggihijkktshhxfpikaqj 20102220020.
With some choice of signs we have ) up to a unit and V U V = 0. Remark 6.8.By the results of Landry, Minsky and Taylor the taut polynomial divides the upper veering polynomial [18, Theorem 6.1 and Remark 6.18] and hence also the lower veering polynomial.The remaining factors of the lower/upper veering polynomial are related to a special family of 1-cycles in the dual graph of the veering triangulation, called the lower/upper AB-cycles [18,Section 4].We refer the reader to [18, Subsection 6.1] to find out the formula for the extra factors.
If for a veering triangulation V we have that Θ V = 0 and V L/U V = 0, then V has a lower/upper AB-cycle of even length whose homology class in H ab is trivial.From Proposition 6.6 it follows that the homology classes of the lower and upper AB-cycles are not always paired so that one is the inverse of the other.We find the branch equations matrix B for V. Figure 10 shows triangles attached to the edges e 0 , e 1 of V. Using this we see that . Cross-sections of the neighbourhoods of the edges e 0 , e 1 of V.The colours of edges and triangles are indicated.
Using Figure 10 we can draw the dual graph X of V.It is presented in Figure 11.As a spanning tree Y of X we choose {f 0 }.The matrix B Y is Since S is of rank 2, the face Laurents of the non-tree edges are determined by the last row of U .All face Laurents for V relative to the fundamental domain determined by Y = {f 0 } are listed in Table 1.
Using Table 1 and Figure 10 we draw the triangles and the tetrahedra attached to the edges 1 • e 0 and 1 • e 1 of V ab in Figure 12.
7.2.The taut polynomial.To find the presentation matrix D L it is enough to know the (inverses of) Laurent coefficients of the triangles attached to 1 • e 0 and 1 • e 1 .They can be read off from Figure 12.Note that 1 • e i is lower large only in its two lowermost triangles.Recall that by Corollary 5.6 the taut polynomial of V is equal to the greatest common divisor of the matrix D L Y , obtained from D L by deleting its first column, corresponding to the tree Y = {f 0 }.We have 7.3.The veering polynomial.To find the presentation matrix N L it is enough to know the (inverses of) Laurent coefficients of the tetrahedra attached to 1 • e i .They can be read off from Figure 12.Recall that among side tetrahedra we only take into account the ones which have the bottom diagonal of a different colour than 1 • e i .By Corollary 2.3 this boils down to skipping the lowermost tetrahedra.We get The minus sign in front is necessary because e 0 is the top diagonal of t 1 and e 1 is the top diagonal of t 0 -see Remark 6.4.Up to a unit we have

The Teichmüller polynomial
Let M be a finite volume, oriented, hyperbolic 3-manifold which admits a fibration S → M → S 1 .
Then M can be expressed as a mapping torus of a pseudo-Anosov homeomorphism ψ : S → S of a surface S [29, Theorems 0. In [28, Section 1] Thurston defined a pseudonorm on H 2 (M, ∂M ; R).In the case when M is hyperbolic it is in fact a norm, currently called the Thurston norm.The unit ball of this norm is a polyhedron which admits a finite number of fibred faces.We say that a top dimensional face F of the Thurston norm ball is fibred if every integral primitive class in the interior of R + • F is represented by a fibre of a fibration of M over the circle.Moreover, for every fibration of M over the circle, the homology class of the fibre is contained in the cone R + • F for some fibred face F [28, Section 3].
Denote by F a fibred face of the Thurston norm ball in H 2 (M, ∂M ; R).Associated to F there is   the lamination associated to F, respectively.We have an isomorphism of It follows that Thus the algorithm TautPolynomial is in fact an algorithm to compute the Teichmüller polynomial of a fully-punctured fibred face.2. Using TautPolynomial to calculate some Teichmüller polynomials previously known in the literature.
Using the Poincaré-Lefschetz duality we carry i * over to

Note that every fibre lying in
Since we removed all the singular orbits, face F is fully-punctured.By Theorem 8.2 we know how to compute Θ F. Now we will be considering the i * -reduction Θ i * F of Θ F (see Subsection 4.4).A crucial result which we use to compute Θ F is the following observation made in [20,Section 6].Lemma 8.3 (McMullen).With the notation as above we have Remark.In fact [18,Proposition 7.2] gives the stronger equality but we do not use this in our algorithm.
Proof of Lemma 8.A strategy to do that is as follows.Fix a monodromy ψ : S → S of a fibration of M over the circle such that the homology class [S] ∈ H 2 (M, ∂M ; R) lies in R + • F. Define S = S ∩ M and let ψ be the restriction of ψ to S. We have In the compact model M has at least k toroidal boundary components.There are k of them, T 1 , . . ., T k , whose inclusions into M are the boundaries of the regular neighbourhoods of the singular orbits 1 , . . ., k .For j ∈ {1, . . ., k} let γ j denote the intersection S ∩ T j .The curve γ j might not be connected, but its connected components are parallel in T j .These curves determine Dehn filling coefficients on T j 's which produce the manifold M and restore the surface S from S. Therefore a presentation for H 1 (M ; Z) can be obtained from a presentation for H 1 ( M ; Z) by adding extra relations which say that the homology classes of curves γ 1 , . . ., γ k are trivial.
Remark.If γ j is not connected, the relation γ j = 1 is a multiple.However, since we eventually use only the torsion free part H of H 1 (M ; Z), we do not have to worry about this.
Recall that our presentation for H uses the 2-complex dual to V (Subsection 4.2).Let X denote the 1-skeleton of this 2-complex, that is the dual graph of V. To find an explicit expression of H as a quotient of H it is enough to find a collection C = {c 1 , . . ., c k } of simplicial 1-cycles in X which are homologous to {γ 1 , . . ., γ k }, respectively.Then we get H = HC .
We refer the reader to Subsection 4.2 for an explanation of this notation.
Since the veering triangulation V can be built by layering ideal tetrahedra on an ideal triangulation of the given fibre S [1, Section 4], we get the following lemma.Note that w is not unique.Replacing the topological data on S by a combinatorial data encoded by w is necessary for our computations.The boundary components γ j of the surface S w are carried by the boundary track (see Subsection 3.2).To find the cycle c j homologous to γ j , we perturb γ j slightly, so that it becomes transverse to the boundary track, and then push it away from the boundary of M into the dual graph X.This process is explained in Subsection 8.5.
The takeaway is that we compute Θ F using the following data • a layered veering triangulation V = (T , α, ν) of M , • a nonnegative, nonzero, integral solution w = (w 1 , . . ., w 2n ) to the system of branch equations of (T , α) such that the surface is embedded in M as a fibre with monodromy ψ : S → S. For 1 ≤ j ≤ k we want to express the curves γ j as simplicial 1-cycles in the dual graph X of V. First we define an auxiliary object, the dual boundary graph X β .Definition 8.5.Let (T , α) be a transverse taut ideal triangulation of a 3-manifold M .The dual boundary graph X β is the graph contained in ∂M which is dual to the boundary track β of (T , α).We endow the edges of X β with the orientation determined by α.
If b ≥ 1 then the dual boundary graph is disconnected, with connected components X β 1 , . . ., X β b such that X β i is dual to the boundary track β i .If an edge of X β is dual to a branch of β lying in f ∈ F , then we label it with f .Hence for every f ∈ F there are three edges of X β labelled with f .The dual boundary graph for the veering triangulation cPcbbbiht 12 of the figure eight knot complement is given in Figure 13.The orientation on the edges of X β is determined by the coorientation on the branches of β.Edges of X β are labelled with indices of triangles that they pass through.The picture of the boundary track is taken from [11].The dual boundary graph has been added by the author.
Lemma 8.6.Let c β be a cycle in X β .Suppose it passes consecutively through the edges of X β labelled with f i 1 , . . ., f i l , where 1 ≤ i j ≤ 2n.We set s i j = +1 if c passes through an edge labelled with f i j upwards −1 if c passes through an edge labelled with f i j downwards.
Let c be the cycle (s i 1 f i 1 , . . ., s i l f i l ) in the dual graph X.If we embed X β and X in M in the natural way, then c β and c are homotopic.
Proof.A homotopy between c β and c can be obtained by pushing each edge of the cycle c β towards the middle of the triangle through which it passes, see Figure 14.
Fix an integer j between 1 and k.The curve γ j = ∂S w ∩ T j is contained in the boundary track β j .Let be a branch of β j .Let s − and s + be the initial and the terminal switches of , respectively.We replace each subarc Let us denote the transverse measure on determined by w = (w 1 , . . ., w 2n ) by w( ).The curve γ j passes through w( ) times.Since chain groups are abelian, the 1-cycle in X β homotopic to γ j is given by where the sum is over all branches of β j .By Lemma 8.6 we can homotope the 1-cycles c β j in X β to 1-cycles c j in X.The procedure explained in this subsection is summed up in algorithm BoundaryCycles below.The algorithm is due to Saul Schleimer and Henry Segerman.We include it here, with permission, for completeness.
A vertex v of an ideal triangle f ∈ F gives a branch v of β.We say that an edge e of f is the downward edge for v in f if its intersection with ∂M is the initial switch of v .An edge e of f is the upward edge for v in f if its intersection with ∂M is the terminal switch of v .The names reflect the fact that when we homotope branch v to a 1-chain in X β we go downwards above the initial switch of v and upwards above the terminal switch of v , see Figure 15.• List of b vectors from Z 2n , each encoding a simplicial 1-cycle c j in X homotopic to ∂S w ∩ T j , for 1 ≤ j ≤ b 1: Boundaries := the list of j zero vectors from Z 2n 2: for f in F do end for 13: end for 14: return Boundaries Remark.In this section we considered only layered triangulations, because the Teichmüller polynomial is defined only for fibred faces of the Thurston norm ball.However, algorithm BoundaryCycles can be applied to a measurable triangulation.Note that by [18,Theorem 5.12] a measurable veering triangulation determines a non-fibred face of the Thurston norm ball.8.6.Computing the Teichmüller polynomial.In this subsection we finally give an algorithm to compute the Teichmüller polynomial of any

Figure 1 .
Figure 1.A veering tetrahedron.The zero angles are assigned to the four sides of the square.The π angles are assigned to the diagonals.

Figure 3 .
Figure 3.The boundary track around one of its switches.This switch corresponds to an endpoint of an edge of degree 7.

Figure 4 .
Figure 4. Coorientation on a triangle of T determines orientation on the branches of β by the right hand rule.Coorientation on the branches of β (not indicated in the picture) agrees with the coorientation on the triangle in which they are embedded.

Definition 3 . 6 .
Let τ be a dual train track in (B, F ) and let f ∈ F .Suppose e 0 , e 1 , e 2 ∈ E are embedded in the boundary of f with e 0 dual to the large half-branch of τ f .We call the following relation between edges of T e 0 = e 1 + e 2 a switch equation of τ in f .Lower and upper track of a transverse taut triangulation.The transverse taut structure on a triangulation endows its horizontal branched surface B with a pair of dual train tracks which we call, following [27, Definition 4.7], the lower and upper tracks of B. Definition 3.7.Let (T , α) be a transverse taut triangulation and B the corresponding horizontal branched surface equipped with the ideal triangulation (F, E) determined by T .

Figure 7 .
Figure 7. Squares in the top row represent top faces of a tetrahedron and squares in the bottom row represent bottom faces of a tetrahedron.(a) The lower track in a veering tetrahedron.(b) The upper track in a veering tetrahedron.
obtained from B by deleting the rows corresponding to the triangles in F Y .The group H 1 (M ; Z) is isomorphic to the cokernel of B Y .This follows from the fact that T * is a deformation retract of T and B Y is the boundary map from the 2-chains to the 1-chains of the 2-complex obtained from T * by contracting Y to a point.Recall that the group H is constructed by adding k ≥ 0 relations to a finite presentation of H 1 (M ; Z) and then quotienting out the torsion subgroup.We can represent each such relation by a simplicial 1-cycle c i in X.Let (B|C) be the matrix B augmented by k columns c i .To emphasise that H corresponds to the torsion-free part of the group obtained by adding the relations C = {c 1 , . . ., c k } we write H = H C .Lemma 4.3.Let H = H C be a free abelian quotient of H 1 (M ; Z) of rank r.Fix a spanning tree Y of X.Let F be the fundamental domain for the action of H on T H determined by Y .Denote by (B|C) Y the matrix obtained from (B|C) by deleting the rows corresponding to the triangles in F Y .Let

4 . 4 .
cycles in the dual graph X Output: A tuple of 2n face Laurents for (T , H C ) 1: B := the branch equations matrix of (T , α) # 2n × n integer matrix 2: B := B.AddColumns(C) 3: Y := SpanningTree(T ) 4: NonTree := F − Y 5: B := B.DeleteRows(Y ) # (n + 1) × n integer matrix 6: S, U, V := SmithNormalForm(B) # S = U BV 7: r := the number of zero rows of S 8: η := the zero matrix with r rows and columns indexed by elements of F 9: for f in NonTree do 10: column η(f ) := the last r entries of the column U (f ) 11: end for 12: Λ := the tuple of zero Laurent polynomials, indexed by F 13: for f in F do 14:Λ(f ) := Ψ(η(f )) 15: end for 16: return Λ Polynomial invariants of finitely presented Z[H]-modules.As we shall see in Sections 5, 6 and 8, the definitions of the taut, the veering and the Teichmüller polynomials all follow the same pattern.Namely, they are derived from Fitting ideals of certain Z[H]-modules associated to a 3manifold M .For this reason in this section we recall definitions of Fitting ideals and their invariants.
homomorphisms called a free presentation of M. The matrix of A, written with respect to any bases of Z[H] k and Z[H] l , is called a presentation matrix for M. Definition 4.4.[23, Section 3.1] Let M be a finitely presented Z[H]-module with a presentation matrix A of dimension l × k.We define the i-th Fitting ideal Fit i (M) of M to be the ideal in Z[H] generated by (l − i) × (l − i) minors of A.

Figure 8 .
Figure 8. Edges of the tetrahedron 1 • t of V ab .
by deleting the columns corresponding to the elements of F Y .Proposition 5.5.Let V = (T , α, ν) be a veering triangulation and Y be a spanning tree of its dual graph X.The image of D L and that of D L Y are equal.

2 : 8 : 9 :Proposition 5 . 7 .
D := the zero matrix with rows indexed by E and columns by F 3: for e in E do list triangles on the left of e, ordered from bottom to top 6: R := list triangles on the right of e, ordered from bottom to top 7: for A in {L, R} do # Counting from 1, not 0 add CurrentCoefficient to the entry (e, A[1]) of D for i from 2 to length(A) do 10: CurrentCoefficient := CurrentCoefficient•(Λ(A[i − 1])) −1 11: subtract CurrentCoefficient from the entry (e, A[i]) of D end for 16: Y := SpanningTree(Y ) 17: D Y := D.DeleteColumns(Y ) # Accelerate the computation 18: minors := D Y .minors(n)19: return gcd(minors) The output of TautPolynomial applied to a veering triangulation V and a list C of simplicial 1-cycles in its dual graph is equal to the

Figure 9 .
Figure 9. Flow graphs of hLMzMkbcdefggghhhqxqkc 1221002.Double arrows join top diagonals to bottom diagonals of tetrahedra, or vice versa.

L
:= triangles on the left of e, ordered from bottom to top 7: R := triangles on the right of e, ordered from bottom to top 8:BT := tetrahedron immediately below L[1]

9 :
add CurrentCoefficient to the entry (e, BT ) of N 10: T T := tetrahedron immediately above L[length(L)] subtract TopCoefficient from the entry (e, T T ) of N 13: for A in {L, R} do 14: for i from 1 to length(A)−1 do # Counting from 1, not 0 15: T := tetrahedron immediately above A[i] 16:

7 .
Example: the veering triangulation of the figure eight knot complement In this section we follow algorithms Taut polynomial and LowerVeering Polynomial on the veering triangulation cPcbbbiht 12 of the figure eight knot complement.7.1.Triangulation of the maximal free abelian cover.Let V denote the veering triangulation cPcbbbiht 12 of the figure eight knot complement.We are interested in the outputs TriangulationCover(V, [ ]) and LowerVeeringPolynomial(V). First we need to follow the algorithm TriangulationCover in order to encode the triangulation V ab of the maximal free abelian cover of the figure eight knot complement.

Figure 12 .
Figure 12.Cross-sections of the neighbourhoods of the edges 1 • e 0 , 1 • e 1 of V ab .The colours of edges and triangles are indicated.
1 and 2.6].This means M ∼ = (S × [0, 1]) {(x, 1) ∼ (ψ(x), 0)} .The homeomorphism ψ is called the monodromy of a fibration.It determines a measured lamination (λ, µ) on S and a real number d > 1 such that the lamination λ is invariant under ψ and the transverse measure µ is multiplied by d under ψ [8, Section 13.2.3].This lamination can be extended to a singular measured foliation (ϕ, µ) on S. The suspension flow of ψ is the unit speed flow on M along the curves {x} × [0, 1].It admits a finite number of singular orbits.They correspond to suspensions of the singular points of the measured foliation (ϕ, µ).

•
a unique up to isotopy 2-dimensional lamination L ⊂ M such that for every fibration in the cone R + • F the fibre S is transverse to L and L ∩ S = λ [20, Corollary 3.2], • a unique (up to isotopy) flow F on M such that the suspension flow of the monodromy of any fibration in the cone R + • F is isotopic to F [9, Theorem 14.11].The lamination L gives rise to a polynomial invariant Θ F of F, called the Teichmüller polynomial.It was introduced by McMullen in [20].Let L ab ⊂ M ab be the preimage of L under the covering map M ab → M .The Teichmüller polynomial is the zeroth Fitting invariant of the module of transversals T (L) to the lamination L ab [20, Section 3].The aim of this section is to use the results of McMullen [20, Section 6] and Landry, Minsky and Taylor [18, Theorem 7.1] to give an algorithm to compute the Teichmüller polynomial of any fibred face F.

Remark 8 . 1 .
In this section we always haveH = H ab = H 1 (M ; Z) / torsion .8.1.Fully-punctured fibred faces.We say that a fibred face F of the

8. 2 .
Classical examples.The majority of the computations of the Teichmüller polynomial previously known in the literature concern only fullypunctured fibred faces.Table2presents the output of our algorithm applied some of these examples.Example 1 Source of the example McMullen [20, Subsection 11.I] Polynomial in the source 1 − u − ut − ut −1 + u 2 Veering triangulation V eLMkbcddddedde 2100 TautPolynomial(V, [ ]) a 2 b − a 2 − ab − b 2 + b Change of basis t → ab −1 , u → a Example 2 Source of the example McMullen [20, Subsection 11.II] Polynomial in the source t

8. 3 .
General fibred faces.In this subsection and Subsections 8.4 and 8.5 we fix the notation and background for an algorithm which computes the Teichmüller polynomial of any fibred face.Suppose that M is fibred over the circle with a fibred face F. The pseudo- Anosov flow on M associated to F has a finite number of singular orbits { 1 , . . . ,k }.If F is fully-punctured, then k = 0. Denote by M the 3- manifold M \ { 1 , . . ., k }.Following Remark 8.1 we define H = Hab = H 1 ( M ; Z) / torsion .inclusion map i : M → M induces homomorphisms i * : H → H and i

Lemma 8 . 4 .
Let M , S and V be as above.There exists a nonzero, nonnegative integral solution w = (w 1 , . . ., w 2n ) to the system of branch equations of V such that for S w = 2n i=1w i f i we have [ S] = [S w ] in H 2 ( M , ∂ M ; R).

8. 5 .
Boundary components as dual cycles.Let V = (T , α, ν) be a veering triangulation of M associated to the fibred face F. Recall that we consider M in the compact model.It has b ≥ k boundary components T 1 , . . ., T b and we order them so that the first k come from the singular orbits { 1 , . . ., k } in M and the last b − k come from ∂M .Let w = (w 1 , . . ., w 2n ) be a nonnegative, nonzero, integral solution to the system of branch equations of (T , α) such that [S w ] = [ S] in H 2 ( M , ∂ M ; R).It exists by Lemma 8.4.Then w endows each boundary track β 1 , . . ., β k , β k+1 , . . ., β b with a nonnegative integral transverse measure which encodes the boundary components γ j = ∂S w ∩ T i for 1 ≤ j ≤ b.

Figure 13 .
Figure13.The boundary track β for the veering triangulation cPcbbbiht 12 of the figure eight knot complement and its dual graph X β (in orange).The orientation on the edges of X β is determined by the coorientation on the branches of β.Edges of X β are labelled with indices of triangles that they pass through.The picture of the boundary track is taken from[11].The dual boundary graph has been added by the author.

Figure 14 .Figure 15 .
Figure 14.The black arrow is an edge of X dual to f .The orange arrow is an edge of X β labelled with f .

Figure 16 .Algorithm 4
Figure 16.Downward and upward edges for an ideal vertex v of a triangle.

3 : 6 : 9 :
for vertex v of f do 4: j := the index of v as an ideal vertex of T 5: e 1 , e 2 : = the downward and upward edges of v in f for f above f at the same side of e 1 do 7: subtract w(f ) from the entry f of Boundaries[j] for f above f at the same side of e 2 do 10:add w(f ) to the entry f of Boundaries[j] its boundary, for some e ∈ E, h ∈ H, if and only if h −1 • f is attached to 1 • e (this explains why we invert face Laurents in line 10) • 1 • e is the lower large edge of 1 • f if and only if 1 • f is one of the two lowermost triangles adjacent to 1 • e (this explains why we add coefficients in line 8 and subtract in line 11), • if h • f is attached to 1 • e, then the product of H-pairings of triangles attached to 1 • e below h • f , on the same side of 1 • e, is equal to h (this explains line 10).
[18]ston norm ball in H 2 (M, ∂M ; R) is fully-punctured if the flow F associated to F does not have any singular orbits[22, Section 2].Landry, Minsky and Taylor observed that the taut polynomial of V is a combinatorial version of the Teichmüller polynomial of F.More precisely, they proved the following, which appears as Theorem 7.1 in[18].Theorem 8.2 (Landry, Minsky, Taylor).Let F be a fully-punctured fibred face in H 2 (M, ∂M ; Z).Denote by V and L the veering triangulation and Let F be a fully-punctured fibred face in H 2 (M, ∂M ; Z).Associated to F there is a unique layered veering triangulation V of M [22, Proposition 2.7].
3. The manifold M is a Dehn filling of M , so the group H is a free abelian quotient of H and the homomorphism i * : H → H is surjective.Thus there exists an intermediate cover M H → M with the deck transformation group H which fits into the following diagram L be the laminations associated to F and F, respectively.We denote by L ab the preimage of L under the covering map M ab → M , and by LH the preimage of L under M H → M .Since the singular orbits { 1 , . . ., k } miss the lamination L, the laminations i H LH , and L ab of M ab are equal.
.4.Epimorphism i * : H → H.The notation in this subsection is the same as in Subsection 8.3.Let V be the veering triangulation of M corresponding to F. Combining Theorem 8.2 and Lemma 8.3 we get that the Teichmüller polynomial of F For algorithm TeichmüllerPolynomial we need to establish a way of computing i is equal to the zeroth Fitting invariant of the moduleE α (V) ⊗ Z[ H] Z[H].* : H → H which endows Z[H] with a Z[ H]-module structure.