Antonin Guilloux

VOLUME OF REPRESENTATIONS AND BIRATIONALITY OF PERIPHERAL HOLONOMY

We discuss here a generalization of a theorem by Dunfield stating that the peripheral holonomy map, from the character variety of a 3-manifold to the A-polynomial is birational. Dunfield's proof involves the rigidity of maximal volume. The volume is still an important ingredient in this paper. Unfortunately at this point no complete proof is done. Instead, a conjecture is stated about the volume function on the character variety that would imply the generalized birationality result. Some computational experimentations are described, which support the conjecture.

Introduction

Let M be an orientable hyperbolic manifold with one cusp (e.g. a knot complement) and Γ its fundamental group. Choose an embedding Z 2 → Γ of the fundamental group of the peripheral torus. Let X(Γ, PGL(2, C)) be the character variety: X(Γ, PGL(2, C)) = Hom(Γ, PGL(2, C))//PGL(2, C) and X 2 be the component of the hyperbolic monodromy ρ hyp : Γ → PGL(2, C). Moreover, let Hol periph denote, as in [START_REF]Deformation of hyperbolic manifolds in PGL(n, C) and discreteness of the peripheral representations[END_REF][START_REF] Falbel | Character varieties for SL(3, C): the figure eight knot[END_REF], the peripheral holonomy. It is the map X(Γ, PGL(2, C)) → X(Z 2 , PGL(2, C)) naturally induced by the restriction of a representation ρ : Γ → PGL(2, C) to the peripheral Z 2 . Note that the image of X 2 by the map Hol periph is the usually computed A-polynomial when M is a knot complement. In his paper [START_REF] Dunfield | Cyclic surgery, degrees of maps of character curves, and volume rigidity for hyperbolic manifolds[END_REF], Dunfield proves the following theorem: Theorem 1.1. The map Hol periph , from X 2 to its image, is a birational map.

We discuss in this paper a possible generalization of this result to the case of target group PGL(n, C) for n ≥ 2 and multicusped M. The generalization for n = 2 and M multicusped is proven by Klaff-Tillmann [START_REF] Klaff | A birationality result for character varieties[END_REF].

Dunfield's proof uses in a crucial way the properties of the volume of representations. We will review the needed facts about this function. A major obstacle for a generalization is that the proof also uses -as does [START_REF] Klaff | A birationality result for character varieties[END_REF] -the fact that the set of points in X 2 corresponding to the hyperbolic monodromy of a Dehn surgery of M is Zariski-dense in X 2 .

Rigidity of volume maximality for these points then grants the theorem. Our main problem is that this Zariski density does not hold for n > 2.

We present in this paper a possible workaround, still using properties of the volume. Indeed we will state a conjecture, of geometric flavour, that implies the birationality in Dunfield's theorem. Hopefully, the conjecture may be easier to tackle in the general case than the birationality problem.

We will recall in section 2 some facts about the character variety and the map Hol periph following mainly the presentation of [START_REF] Falbel | Character varieties for SL(3, C): the figure eight knot[END_REF]. One important result for the present paper is the local rigidity theorem (see theorem 2.1). We define the geometric representation as the composition ρ geom = r n •ρ hyp , where r n is the unique irreducible representation from PGL(2, C) to PGL(n, C). The component X n of the character variety X(Γ, PGL(n, C)) containing the geometric representation is called the geometric component.

We proceed in section 3 with the definition of the volume of representations using bounded cohomology, following Bucher-Burger-Iozzi [START_REF] Bucher | Rigidity of representations of hyperbolic lattices in PSL(2,C) into PSL[END_REF]. Moreover we recall another approach to this function: the more combinatorial notion of volume defined originally by Thurston for n = 2, then by Bergeron-Falbel-Guilloux [START_REF] Bergeron | Tetrahedra of flags, volume and homology of SL(3)[END_REF] for n = 3 and fully generalized both by Dimofte-Gabella-Goncharov and Garoufalidis-Goerner-Zickert [START_REF] Dimofte | Kdecompositions and 3d gauge theories[END_REF][START_REF] Garoufalidis | Gluing equations for PGL(n, C)-representations of 3-manifolds[END_REF].

Both approaches to the volume function yield valuable informations: first, through bounded cohomology one gets the volume rigidity of the geometric representation. Indeed, as proven in [START_REF] Bucher | Rigidity of representations of hyperbolic lattices in PSL(2,C) into PSL[END_REF], the volume map has a unique maximum on the geometric component X n , which corresponds to ρ geom . An information given by the combinatorial approach to the volume is a formula for its derivative which is only expressed in terms of the peripheral representations (see theorem 3.2). In other words, the volume map on X n -as in the case n = 2 -always factors through Hol periph (see proposition 4.1) on a Zariski-open set.

A problem that seems rather natural is to explicitly study the volume as a function defined on X n and try to retrieve geometrical information from its behaviour. For example, it raises the following question, which will be relevant for this paper: if a representation has almost the maximal volume, is it almost the geometric representation? We state the following conjecture: Conjecture 1.1. Let M be an orientable cusped hyperbolic 3-manifold, X n the geometric component of the character variety with target group PGL(n, C) and Hol periph the peripheral holonomy map. Then, outside of a neighbourhood of [ρ geom ], the volume is bounded away from its maximum on X n . This conjecture raises an interesting and natural question per se. But it also turns out that this conjecture leads to a generalization of Dunfield's theorem. Indeed, we prove the following result (see section 4): Theorem 1.2. Let M be an orientable cusped hyperbolic manifold, X n the geometric component of the character variety with target group PGL(n, C) and Hol periph the peripheral holonomy map. Suppose that outside of a neighborhood of [ρ geom ], the volume is bounded away from its maximum on X n .

Then the map Hol periph is a birational isomorphism between X n and its image. Some experimental evidences for this conjecture have been gathered and are presented in the last section 5.

Character variety and local rigidity

Most of the material of this section is already reviewed, with the same notations, in [START_REF] Falbel | Character varieties for SL(3, C): the figure eight knot[END_REF]. Let n ≥ 2 be an integer. Let N be a compact, oriented 3-manifold, with non-empty boundary ∂N, such that its interior M is an oriented cusped hyperbolic 3-manifold. Denote by Γ the fundamental group of M. We refer to Sikora's paper [START_REF] Sikora | Character varieties[END_REF] for a general exposition of this object. We will restrict to two cases: first when G = Γ = π 1 (M) and second when G = Z 2 . We know in this setting that the character variety is an affine algebraic variety.

There is always a distinguished point in X(Γ, PGL(n, C)): the class [ρ geom ] of the geometric representation. This representation is defined as the composition of the hyperbolic monodromy

ρ hyp : Γ → PGL(2, C) of M with the (unique) irreducible representation 1 r n : PGL(2, C) → PGL(n, C): ρ geom = r n • ρ hyp .
The character variety is not irreducible and we will not study it entirely. The main object of interest in this paper will be the geometric component

X n : it is the unique component of X(Γ, PGL(n, C)) that contains [ρ geom ].

Peripheral holonomy and local rigidity.

Let t be the number of peripheral tori2 of M. Let (T i ) 1≤i≤t be the collection of these tori and, for each i, ∆ i ≃ Z 2 be (a choice of) an injection of π 1 (T i ) inside Γ.

For any representation ρ : Γ → PGL(n, C), one may consider its restrictions ρ ∆ i to the various subgroups ∆ i . This restriction defines a natural algebraic map, called peripheral holonomy:

Hol periph : X(Γ, PGL(n, C)) → t i=1 X(∆ i , PGL(n, C)).
This map is, together with the volume, a main character of this paper. Dunfield's theorem, indeed, states that (in the case n = 2, t = 1) it is a birational isomorphism between X n and its image. This map has already been studied through different points of view [START_REF]Deformation of hyperbolic manifolds in PGL(n, C) and discreteness of the peripheral representations[END_REF][START_REF] Menal | Local coordinates for SL(n, C)-character varieties of finite-volume hyperbolic 3-manifolds[END_REF][START_REF] Bergeron | Local rigidity for PGL(3, C)-representations of 3-manifold groups[END_REF]. For the scope of this paper, we need to recall the result of Menal-Ferrer and Porti [START_REF] Menal | Local coordinates for SL(n, C)-character varieties of finite-volume hyperbolic 3-manifolds[END_REF] (see also [START_REF] Bergeron | Local rigidity for PGL(3, C)-representations of 3-manifold groups[END_REF][START_REF] Guilloux | Representations of 3-manifold groups in PGL(n, C) and their restriction to the boundary[END_REF]):

Theorem 2.1 (Menal-Ferrer -Porti). On a neighborhood of [ρ geom ] in X n , the map Hol periph is a bijection on its image.
The theorem, as proven in the references, is more precise than this statement, giving local parameter for X n around [ρ geom ]. We will not need the enhanced version.

As a corollary, one may note that Hol periph is a ramified covering (it is of finite degree). We would like to prove that its degree is indeed 1.

Volume through bounded cohomology or combinatorics

3.1. Bounded cohomology and rigidity. Recall the important definitions and results from the work of Bucher-Burger-Iozzi [START_REF] Bucher | Rigidity of representations of hyperbolic lattices in PSL(2,C) into PSL[END_REF] about the notion of volume of a representation ρ : Γ → PGL(n, C). In the cited paper, the volume map -there called Borel invariant -is defined for any [ρ] in the character variety. It is the evaluation on the fundamental class of N in H 3 (N, ∂N) of a suitably constructed bounded cocycle on PGL(n, C) pulled back by ρ. We will not review here the precise definition. For the present work, the approach of the cited article gives a crucial theorem, namely the volume rigidity result: the maximal volume is only attained once on the whole character variety, at [ρ geom ]. This rigidity theorem is a key point for the present paper. Recall that Vol hyp is the hyperbolic volume of M.

Theorem 3.1 (Bucher-Burger-Iozzi). The map

Vol : X(Γ, PGL(n, C)) → R is onto [-n(n 2 -1)

6

Vol hyp ; n(n 2 -1) 6

Vol hyp ]. Moreover, for any point [ρ] in X(Γ, PGL(n, C)), we have

• Vol([ρ]) = n(n 2 -1) 6 Vol hyp iff [ρ] = [ρ geom ], • Vol([ρ]) = -n(n 2 -1) 6 Vol hyp iff [ρ] = [ρ geom ].
The stated conjecture 1.1 comes from a question arisen during the work here presented: is it possible to "perturbate" the previous theorem. In other terms, does it holds that a representation has almost the hyperbolic volume if and only if it is almost the geometric one. Some experimentations to check this conjecture in the case n = 2 are presented in the last section 5.

Combinatorics and computation of the derivative.

Another approach for the volume function (and historically the first one for n ≥ 3) was proposed by Thurston first, then in [START_REF] Bergeron | Tetrahedra of flags, volume and homology of SL(3)[END_REF] in the case n = 3 and generalized for any n in [START_REF] Garoufalidis | Gluing equations for PGL(n, C)-representations of 3-manifolds[END_REF][START_REF] Dimofte | Kdecompositions and 3d gauge theories[END_REF]. It is combinatorial and goes through a triangulation of M. The idea is to work with representations decorated by flags. For a decorated representation, each tetrahedron of the triangulation becomes a tetrahedron of flags (a hyperbolic ideal tetrahedron in the case n = 2). For these tetrahedra, a notion of volume is defined by sums of Bloch-Wigner dilogarithms of cross-ratios.

We will not describe more precisely this approach. Still, two valuable informations are:

(1) The combinatorial notion of volume (defined on a Zariski-open subset of the character variety) coincide with the map Vol defined in the previous section, as explained in [3, Section 2]. (2) As a consequence, the map Vol is real analytic on a Zariski open subset of X(Γ, PGL(n, C)) and we know a formula for its first derivative. Indeed, an important achievement of the combinatorial approach is that it yields a formula for the derivative of the volume. And the crucial point for us is that this formula only depends on the peripheral holonomy. Indeed, the following theorem is proven by Neumann-Zagier [START_REF] Walter | Volumes of hyperbolic three-manifolds[END_REF] for n = 2, in [1, Section 11.1] for n = 3 and its generalization to any n is discussed in [6, Section 4.4].

Theorem 3.2.

There is a 1-form wp on t i=1 X(∆ i , PGL(n, C)) such that dVol is the pullback by Hol periph of wp on a Zariski-open subset of X n .

3.3.

A particular case. The conjecture and the generalization of Dunfield's Theorem may be proven for the simplest example: the figure eight knot complement. We sketch the proof here. Proposition 3.1. Let M 8 be the figure eight knot complement. Then the peripheral holonomy map, from X n to its image in X(Z 2 , PGL(n, C)), is a birationnal isomorphism.

Proof. We use Theorem 1.2, which will be proven in the next section. So we have to prove that Conjecture 1.1 holds for M 8 .

The ideas needed to prove that the volume is bounded away from its maximum n(n 2 -1)

6

Vol hyp (M 8 ) outside of a neighborhood of [ρ geom ] essentially go back to Thurston [START_REF] Thurston | Three-dimensional geometry and topology[END_REF]. Indeed, as explained e.g. in [START_REF] Bergeron | Tetrahedra of flags, volume and homology of SL(3)[END_REF][START_REF] Falbel | Character varieties for SL(3, C): the figure eight knot[END_REF][START_REF] Garoufalidis | Gluing equations for PGL(n, C)-representations of 3-manifolds[END_REF], a Zariski open subset of X n is obtained by the monodromy of the gluing of two tetrahedra of flags. The point [ρ geom ] corresponds to the gluing of two regular tetrahedra (as explained in [START_REF] Thurston | Three-dimensional geometry and topology[END_REF] for the case n = 2). The volume of a representation obtained by such a gluing is the sum of the volumes of both the tetrahedra [START_REF] Guilloux | Representations of 3-manifold groups in PGL(n, C) and their restriction to the boundary[END_REF]. The last remark is that the regular tetrahedra are the tetrahedra of maximal volume [START_REF] Bucher | Rigidity of representations of hyperbolic lattices in PSL(2,C) into PSL[END_REF].

Then, choose ε > 0 small enough, and define a neighborhood of [ρ geom ] as the set of points in X n constructed as the gluing of two tetrahedra of volume at least the volume of a regular tetrahedron minus ε. Then, the volume of a point in X n which does not belong to this neighborhood, is at most n(n 2 -1)

6 Vol hyp (M 8 ) -ε.
This proof indeed works for any manifold that can be triangulated by few tetrahedra with respect to its hyperbolic volume, as the sister manifold of M 8 or more generally tetrahedral hyperbolic manifolds as in [START_REF] Fominykh | A Census of Tetrahedral Hyperbolic Manifolds[END_REF].

The birationality result: a conditional proof

We prove in this section theorem 1.2. Let M be, as before, an oriented cusped hyperbolic manifold, t the number of its cusps. Recall that X n is the geometric component of its character variety for PGL(n, C).

Throughout this section, we assume the conjecture 1.1 holds for this particular M: outside a neighborhood of [ρ geom ] in X n , the volume function Vol is bounded away from its maximum on X n .

Under this assumption, we prove theorem 1.2 stating that Hol periph is a birational isomorphism between X n and its image. The first step of the proof is already proven -and crucial -when n = 2 in [START_REF] Dunfield | Cyclic surgery, degrees of maps of character curves, and volume rigidity for hyperbolic manifolds[END_REF] and [START_REF] Klaff | A birationality result for character varieties[END_REF]:

Proposition 4.1. There is a real-analytic map V from a Zariski-open subset of Hol periph (X n ) in t i=1 X(∆ i , PGL(n, C)) to R such that for any [ρ] in a Zariski-open subset of X n , Vol([ρ]) = V (Hol periph ([ρ])).
Proof. The point is to prove that wp is exact on a Zariski-open subset of the image of X n . V is then one primitive.

Consider a loop l in Hol periph (X n ) and assume it avoids the ramification locus of Hol periph . Let l be a lift in X n . The two ends of l have a volume differing by the integral l wp. If l is not a loop, we may continue the lifting of l to construct a sequence of points in X n such that two consecutive points always have volumes differing by this integral. As the volume is bounded on X n , this forces the integral to vanish.

Hence wp is exact on a Zariski-open subset of the image of X n and the function V is its primitive whose value at Hol periph (

[ρ geom ]) is n(n 2 -1) 6 Vol hyp .
Let us proceed with the proof of theorem 2.

Proof. Let U be a neighborhood of [ρ geom ] in X n such that:

• Restricted to U, the map Hol periph is a bijection onto its image (local rigidity, see thm 2.1).

• Vol -1 (Vol(U)) = U.
The fact that U exists is a consequence of the conjecture: Vol(U) is a small neighbourhood of n(n 2 -1)

6

Vol hyp and it has no preimage far from [ρ geom ]. Now, let z be in Hol periph (U) such that V is defined at z. We want to prove that z has a unique preimage by Hol

periph . Let [ρ 0 ] ∈ U be such that z = Hol periph ([ρ 0 ]). By definition V (z) = Vol([ρ 0 ]). Let [ρ] be any point in X n such that Hol periph ([ρ]) = z. As Vol([ρ]) = V (z) by the previous proposition, we get that [ρ] belongs to U. By definition of U, it implies that [ρ] = [ρ 0 ].
Hence there is an open subset in the image Hol periph (X n ) on which the preimages of points are singletons. This means that the degree of Hol periph , from X n to its image, is 1.

Experimental evidences

We have implemented, using Sage 7.1 [START_REF]The Sage Developers, Sagemath, the Sage Mathematics Software System[END_REF] and Snappy [START_REF] Culler | SnapPy, a computer program for studying the topology of 3-manifolds[END_REF], a threefold test to explore the validity of the conjecture in the case n = 2. Snappy contains a census of 61 911 cusped oriented manifold build as the gluing of at most 9 tetrahedra. We focus on the 1263 manifolds with at most 6 tetrahedra.

Here is a description of the test built from three different tests of increasing complexity and power. Let M be an orientable manifold and V M its hyperbolic volume. We assume that M is ideally triangulated by ν tetrahedra. Let v 0 ≃ 1.015 be the volume of the regular ideal hyperbolic tetrahedron. It is the maximal volume for an ideal hyperbolic tetrahedron.

The computation will be done at the natural level for a Snappy object: the deformation variety, defined by the famous gluing equations of Thurston (see for example [START_REF] Tillmann | Degenerations of ideal hyperbolic triangulations[END_REF]). We work with decorated representations, i.e. monodromies of the gluing of hyperbolic realisations for the n tetrahedra. The deformation variety is seen as an affine algebraic subset in C ν (often written in C 3ν to keep tracks of the symmetries of the tetrahedra): each tetrahedron is described by the cross-ratio of its vertices.

A crucial point is that the volume is the sum of Bloch-Wigner dilogarithm of the cross-ratios and hence extend to the compactification of the character variety in (CP 1 ) ν , as the dilogarithm is well-defined and continuous on CP 1 . We can check the conjecture for M by proving that, at ideals points in this compactification, the generalized volume is bounded away from V M . Now define k to be ν -⌈ V M v 0 ⌉ + 1. The meaning of k is: if we know for an (ideal) decorated representation that the volume of k tetrahedra among the ν vanish, then the volume of this (ideal) representation is less than V M : indeed, even putting the remaining ν -k tetrahedra to the maximal volume v 0 , we do not reach V M .

First test

The first test is very crude: if k ≤ 2 then the conjecture holds for M. Indeed, at an ideal point at least a tetrahedron degenerates and has volume 0. But, one may further assume that another tetrahedron is non-positively oriented, which implies it has of volume ≤ 0. This assumption is licit because on the subset of the deformation variety where each tetrahedron is positively oriented, the volume function is convex in suitable coordinates. Hence, at the boundary of the positively oriented part, the volume of ideal points is strictly less than the maximum V M . We need only to check the volume of ideal points outside of this boundary.

This first test grants that the conjecture holds for 1144 among the 1263 manifolds. Moreover, as it is straightforward to compute, one may check that 25986 out of the 61911 pass the test.

Second test

For the 119 manifolds left undecided by the first test, we may use the logarithmic limit set to determine the minimal number l of tetrahedra degenerating at an ideal point. The reader may find in [START_REF] Tillmann | Degenerations of ideal hyperbolic triangulations[END_REF] a presentation of the logarithmic limit set for the deformation variety. Recall that any point in the logarithmic limit set corresponds to ideal points for the deformation variety.

Snappy may be used to recover the gluing equations defining the deformation variety. Then SageMath, through the software Gfan [START_REF] Jensen | Gfan, a software system for Gröbner fans and tropical varieties[END_REF], is able to explicitly compute the points in the logarithmic limit set. Remark that any tetrahedron whose coordinate in the logarithmic limit set does not vanish does indeed degenerate at the corresponding ideal points. Thus, we compute the minimum l of degenerating tetrahedra at an ideal point. If l ≥ k, then the manifold pass the test.

It is a crude test, as each non degenerating tetrahedron is set to the maximal volume. Still further 47 manifolds pass the test. Note that this test, as written, may not be executed for manifolds with more tetrahedra. Indeed for more than 7 tetrahedra, Gfan does not compute the logarithmic limit. The system defining the deformation variety seems too big (≥ 21 variables and equations).

The remaining 72 manifolds all have 6 tetrahedra, and have all a single cusp. We try on them a third test, more involved computationally.

Third test

We now try to compute explicitly the ideal points in (CP 1 ) ν . This problem is hard in general (recall that we have a system with 18 variables, 18 equations and of degree around 10). A partly hand-driven computation is still often possible.

We compute Gröbner basis (with the Giac Gröbner engine [START_REF] Parisse | Giac/Xcas, a free computer algebra system[END_REF] which appears to be the most effective for this problem), for the ideal defining the deformation variety and then the ideal I defining its ideal points in (CP 1 ) ν . This part of the computation is done in a spirit similar to [START_REF] Falbel | Character varieties for SL(3, C): the figure eight knot[END_REF] (trying to project on few variables and then reconstructing the whole ideal).

When I is 0-dimensional, we may then use the rational univariate representation [START_REF] Rouillier | Solving zero-dimensional systems through the rational univariate representation[END_REF], as for example in [START_REF] Falbel | Representations of fundamental groups of 3-manifolds into PGL(3, C): exact computations in low complexity[END_REF] through a call to the relevant Maple function to get a parametrization of ideal points. We are able to compute compute explicitly an approximated volume at ideal points by computing dilogarithms.

This procedure works for 29 from the 72 manifolds. And in each successful case we check that the maximal volume for ideal points is indeed less than the hyperbolic volume V M . In fact, the volumes computed never exceed 10 -13 .

There are two risks of failure for this procedure: it happens that the ideal I is not 0-dimensional. It also happens that the computation is too long. In the first case of failure, some further study has been done on one example, enabling to check the conjecture for this example. But such a study is not at all automatic.

At the end of this threefold test, 1221 out of 1263 pass the test, giving hope for the conjecture. For the remaining 42 ones and manifolds with more than 7 tetrahedra, the computations as presented here are too complicated.

2. 1 .

 1 Character variety and geometric representation. Let G be a finitely generated group. The character variety X(G, PGL(n, C)) is the GIT quotient: X(G, PGL(n, C)) = Hom(G, PGL(n, C))//PGL(n, C).

Recall for example that when n = 3, the representation r n is also known as the adjoint representation.

The reader may as well assume t = 1 and restricts to the case of a knot complement. It will not really interfere, and may simplify notations.


Antonin Guilloux

Pierre Will

Miguel Acosta

Martin Deraux

Neil Hofmann

Craig Hodgson

Bruno Martelli

On SL(3,C)-representations of the Whitehead link group

We describe a family of representations in SL(3,C) of the fundamental group π of the Whitehead link complement. These representations are obtained by considering pairs of regular order three elements in SL(3,C) and can be seen as factorising through a quotient of π defined by a certain exceptional Dehn surgery on the Whitehead link. Our main result is that these representations form an algebraic component of the SL(3,C)-character variety of π.

Introduction

Let M be a manifold. The description of the character variety of π 1 (M ) in a Lie group G is closely related to the study of geometric structures on M modelled on a G-space X. In this setting, representations of π 1 (M ) into G appear as holonomies of (X, G)-structures. In the case of a hyperbolic 3-manifold M , a natural target group is PSL(2,C) (or SL(2,C)), as the holonomy of a hyperbolic structure on M has image contained in PSL(2,C). The study of these character varieties was initiated by Thurston, in the non-compact case, who described a natural way of constructing explicit representations of π 1 (M ) in PSL(2,C) using ideal triangulations of M (see [Thu]). The rough idea is to parametrise hyperbolic ideal tetrahedra using cross-ratios, and to analyse the possible ways of constructing the hyperbolic structure on M by gluing together these ideal tetrahedra. This method gives rise to a familly of polynomial equations expressed in terms of a family of cross-ratios, which are often referred to as Thurston's gluing equations (see Chapter 4 of [Thu]). The output of this method is a subvariety of C n consisting of those tuples of parameters that satisfy Thurston's equations, which is called the deformation variety. Representations can be expressed in terms of the cross-ratios, and one of the main interests of the deformation variety is that it allows explicit computations, which are very precious for experiments.

Thurston's approach has been generalized for the target groups SL(n, C) in [BFG14, GTZ15, DGG13, GGZ15]. This generalisation is geometrically meaningful. Indeed, the subgroups SU(2, 1) and SL(3, R) of SL(3, C) correspond respectively to spherical CR structures (see below) and real projective flag structures (see [START_REF] Falbel | A flag structure on a cusped hyperbolic 3-manifold[END_REF]), whereas SL(4, R) corresponds to projective structures on 3-manifolds, well-studied in the convex case [START_REF] Benoist | A survey on divisible convex sets, Geometry, analysis and topology of discrete groups[END_REF]. In the case of SU(2,1), the first examples following this point of view were produced by Falbel in [START_REF] Falbel | A spherical CR structure on the complement of the figure eight knot with discrete holonomy[END_REF], who constructed and studied examples of representations of the figure 8 knot group to SU(2,1) (see also [START_REF] Deraux | Complex hyperbolic geometry of the figure eight knot[END_REF][START_REF] Falbel | Branched spherical CR structures on the complement of the figure-eight knot[END_REF]). A parallel is also to be drawn with higher Teichmüller theory in case of surfaces. In this note, we focus on the target group SL(3, C).

Though simple in spirit, this method of describing representation varieties becomes very involved when the number of tetrahedra grows. In fact, the only SL(3, C)-character variety of a hyperbolic 3-manifold that has been completely described so far with this approach is the one of the figure 8 knot complement [FGK + 16], which admits an ideal triangulation by two tetrahedra (see Section 3.1 of [Thu]). Different methods have been used to describe examples of character varieties. In [START_REF] Heusener | The SL(3, C)-character variety of the figure eight knot[END_REF], Heusener, Muñoz and Porti gave another description the character variety of the figure 8 group starting directly from the group presentation. In [START_REF] Muñoz | Geometry of the SL(3, C)-character variety of torus knots[END_REF], Munoz and Porti described character varieties for torus knots. We will consider here the example of the Whitehead link complement (which can be triangulated by 4 ideal simplices). Denote by π its fundamental group. A possible presentation for π is:

x, y | [x, y][x, y -1 ][x -1 , y -1 ][x -1 , y] .

Let χ 3 (π) be the corresponding SL(3, C)-character variety, that is the GIT quotient χ 3 (π) = Hom(π, SL(3, C))//SL(3, C).

The full computation of χ 3 (π) is not achieved as for today and seems a difficult task. Our goal here is to describe an algebraic component of χ 3 (π) that contains many examples of geometrically meaningful representations.

Our motivation comes from the study of the so-called spherical CR structures on hyperbolic 3manifolds. These structures are examples of (G, X)-structures where X is S 3 and G is PU(2,1). The holonomy of such a structure is thus a representation of π 1 (M ) in PU(2,1). This motivates the study of representations of π to SU(2, 1) which is a real form of SL(3,C). Recall that PU(2, 1) is the group of holomorphic isometries of the complex hyperbolic plane H 2 C and SU(2, 1) is a triple cover of it. The sphere S 3 is the boundary at infinity of H 2 C . In particular, spherical CR structures arise naturally on the boundary at infinity of quotients of H 2 C with non-empty discontinuity region. Spherical CR structures can also be thought of as examples of projective flag structures on 3-manifolds on M , of which holonomies are representations of π 1 (M ) to PSL(3,C).

Striking examples of spherical CR structures have been produced by R. Schwartz in [Sch01, Sch07] about fifteen years ago. There, Schwartz described what is now called a spherical CR uniformisation of the Whitehead link complement, that is a spherical CR structure with the additional property that the holonomy representation has non-empty discontinuity region with quotient homeomorphic to the Whitehead link complement (see [START_REF]On spherical CR uniformization of 3-manifolds[END_REF] for a precise definition). Since then, Deraux and Falbel [START_REF] Deraux | Complex hyperbolic geometry of the figure eight knot[END_REF] produced a spherical CR uniformisation of the complement of the figure eight knot, Deraux [Der] and Acosta [START_REF] Acosta | Spherical CR Dehn Surgeries[END_REF] deformed this uniformisation, Deraux [START_REF]On spherical CR uniformization of 3-manifolds[END_REF] described a uniformisation of the manifold m 009 , and Parker-Will [START_REF] Parker | A complex hyperbolic Riley slice[END_REF] described another uniformisation of the Whitehead link complement, different from Schwartz's one. All these examples have the common property that the image of their holonomy representation is a subgroup of PU(2, 1) generated by a pair of regular order three elements (see the introdution of [START_REF] Parker | A complex hyperbolic Riley slice[END_REF] for a list).

Our goal here is to provide a common frame for all these examples. We will show that all these representations belong to a common algebraic component of the character variety of π in SL(3,C). This component is formed by representations ρ : π -→ SL(3, C) that factor through the group π = Z 3 * Z 3 . The latter group is a quotient of π, and more precisely is the fundamental group of a compact exceptional Dehn filling of the Whitehead link complement, as we will see later on. Define X 0 as the subset of the character variety of π corresponding to representations generated by two regular order three elements of SL(3, C) (recall that an order three element in SL(3, C) is regular if and only if its trace is 0). Theorem 1. The character variety χ 3 (π) contains X 0 as an algebraic component of dimension 4. All representation classes in this component factor through π .

We observe here a very similar situation to what happens in the case of the 8-knot complement. There, a 2-dimensional component of the character variety is formed by representations factorising through a quotient. This quotient is the fundamental group of a non-hyperbolic Dehn surgery on the 8-knot complement (see [START_REF] Heusener | The SL(3, C)-character variety of the figure eight knot[END_REF]Proposition 10.3] or [FGK + 16, Section 5.3]). Moreover this quotient is isomorphic to the (3, 3, 4)-triangle group, which is a quotient of π . As such (see Proposition 3), the aforementioned 2-dimensional component for the 8-knot complement is a slice of the 4-dimensional component for the Whitehead link complement described in Theorem 1.

The proof of Theorem 1 has two steps.

• First we prove that X 0 is a closed Zariski subset in χ 3 (π) and has dimension at least 4 (see Proposition 6).

• Secondly we consider the particular point of X 0 associated to a representation ρ 0 and show that the dimension of the Zariski tangent space to χ 3 (π) at this point is also 4 (see Proposition 7). As a consequence, the dimension of the complex algebraic variety X 0 is at most 4. The representation ρ 0 has been analysed geometrically in [START_REF] Parker | A complex hyperbolic Riley slice[END_REF] and corresponds to a spherical CR uniformisation of the Whitehead link complement.

The main technical part in our work is the proof of Proposition 7. We choose to prove this proposition using a method that is not specific to the Whitehead link complement, and we believe that it could be used to study further examples. It involves the so-called deformation variety as described in [FGK + 16]. The latter is an affine algebraic set, which is -at least around [ρ 0 ] -a ramified covering of the character variety. The purpose of shifting to the deformation variety is that it allows effective computations via decorated representations and triangulations, as in [FGK + 16].

In the last section, we describe an explicit family of pairwise unconjugate representations of π , of which conjugacy classes form a Zariski open subset of X 0 . This is called, in the works of Culler, Morgan and Shalen [CS83, MS84] a tautological representation of X 0 [START_REF] Culler | Varieties of group representations and splittings of 3-manifolds[END_REF][START_REF] Morgan | Valuations, trees, and degenerations of hyperbolic structures. I[END_REF]. These representations are defined by pairs of regular order three matrices (A, B) with no common eigenvector that are parametrised by the traces of the four products AB, A -1 B, A -1 B -1 and AB -1 . These parameters are natural coordinates on X 0 , in view of Lawton's description of the character variety of the rank 2 free group given in Theorem 5. This paper is organised as follows. In Section 2, we describe the Whitehead link complement and its fundamental group from the perspective of (real) hyperbolic geometry. In particular, we gather together classical information on presentations and parabolic subgroups of π that will be needed further. Section 3 is devoted to the character variety of π. We provide basic definitions and facts on these objects. We prove Proposition 6, state Proposition 7 and derive Theorem 1 from them. In Section 4, we present the deformation variety and prove Proposition 7. Eventually, in Section 5, we describe an explicit parametrisation of the representations in X 0 . The interested reader may also want to use the companion Sage notebook [Gui] which combines the use of SnapPy [CDW] and SageMath [START_REF]The Sage Developers, Sagemath, the Sage Mathematics Software System[END_REF] to illustrate our method.

The ideal octahedron

The hyperbolic structure of W can be explicitely described by considering an ideal regular octahedron (Figure 1) together with identifications of its faces by hyperbolic isometries. We refer the reader to Section 3.3 of [Thu], or to Example 1 in [START_REF] Wielenberg | The structure of certain subgroups of the Picard group[END_REF] for details. We briefly recall here the description of this structure which is given in [START_REF] Wielenberg | The structure of certain subgroups of the Picard group[END_REF]. We will keep the notation used there. We denote by O the ideal octahedron of which vertices are given, in the upper half-space model of H 3 R by ∞, 0, -1, -1 + i, i,

-1 + i 2 .
A flattened version of this octahedron is pictured on Figure 2. We denote by u, w 1 and t 2 the isometries of H 3 R associated to the following elements of SL(2,C); this choice of notation is the same as in [START_REF] Wielenberg | The structure of certain subgroups of the Picard group[END_REF].

u = 1 i 0 1 , t 2 = 1 2 0 1 and w 1 = 1 0 -1 -i 1 . (1)
Note that t 2 belongs to the group u, w 1 , since t 2 = (w -1 1 u) 2 w 1 uw -1 1 u. We equip O with the face identifications described on Figure 2. This particular choice gives a holonomy representation with image a subgroup of the Bianchi group PSL(2,Z[i]) isomorphic to the fundamental group of the Whitehead link complement. This subgroup can be seen to have index 12 in PSL(2,Z[i]) (see [START_REF] Wielenberg | The structure of certain subgroups of the Picard group[END_REF]). The octahedron from Figure 2 is a fundamental domain for the action on H 3 R of the group generated by u and w 1 . Applying Poincaré's polyhedron theorem, one obtains the following presentation for π.

x, y | [x, y][x, y -1 ][x -1 , y -1 ][x -1 , y] .
(2)

The correspondance between (2) and the face identifications on Figure 2 is given by x ↔ u and y ↔ w 1 . Identifying projective transformations and matrices, we denote by Γ the subgroup of PSL(2,C) generated by u and w 1 .

Triangulating the ideal octahedron

Connecting the vertices with coordinates ∞ and -1+i 2 by an edge, one obtains a decomposition of the octahedron O as a union of four ideal tetrahedra, which we label as follows (see Figure 2). 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 00000 00000 00000 00000 00000

A B ′ D ′ A ′ C D C ′ 0 i -1 + i -i B -1+i 2 ∞ ∞ ∞ ∞ α = w 1 u -1 : A -→ A β = w 1 u -1 w -1 1 : B -→ B γ = t -1 2 uw -1 1 : C -→ C δ = u -1 : D -→ D ,
∆ 0 = i, 0, -1 + i 2 , ∞ ∆ 1 = -1 + i, i, -1 + i 2 , ∞ ∆ 2 = -i, -1 + i, -1 + i 2 , ∞ ∆ 3 = 0, -i, -1 + i 2 , ∞ (3)
This gives an ideal triangulation of the manifold W which is the one used by the software SnapPy [CDW] to provide another presentation of π given by

a, b|aba -3 b 2 a -1 b -1 a 3 b -2 . ( 4
)
Since the relator in (4) satisfies

aba -3 b 2 a -1 b -1 a 3 b -2 = a[ba -3 b 2 , a -1 b]a -1 , this second presentation is actually equivalent to a, b|[ba -3 b 2 , a -1 b] . (5)
An isomorphism between (2) and ( 4) is given by the changes of generators

(x, y) = (ab -1 , ab -1 a) and (a, b) = (x -1 y, x -2 y). (6)
Definition 1. The geometric representation of π is the morphism

ρ geom : π -→ PSL(2, C) defined by ρ geom (a) = u -1 w 1 = i -i -1 -i 1 and ρ geom (b) = u -2 w 1 = -1 + 2i -2i -1 -i 1 . (7)
The geometric representation is thus a discrete and faithful representation of π in PSL(2,C) with image Γ. The above matrices for a and b are obtained by identifying respectively x and y to u and w 1 in (6). Note that ρ(b -1 a 3 b -1 a -1 ) = t 2 .

Stabilizers of the vertices and peripheral curves

There are two orbits of vertices modulo the identifications in the octahedron O, the one of ∞ and the one of 0. It is a simple exercise using the face identifications to verify that the stabilisers of these two points are respectively Γ ∞ = u, t 2 , and Γ 0 = w 1 , uw -1 1 u -1 t -1 2 u -1 w -1 1 u . The second generator for Γ 0 is the projective transformation associated to 1 0 2 -2i 1 .

We express now these stabilisers in terms of a and b.

Proposition 2. The stabilizers of 0 and ∞ in Γ are the images by ρ geom of the two subgroups of π respectively given by ab -1 a, s 0 and ab -1 , s ∞ , where

s 0 = [a, b -1 ]a -1 b 2 a -3 [b, a] and s ∞ = b -1 a 3 b -1 a -1 .
Remark 1. SnapPy provides the following generators for the first homology of the boundary tori of the Whitehead link complement using the presentation (5) (m i stands for meridian, and l i for longitude):

m 1 = a -2 b, l 1 = a -2 bab -2 ab, m 2 = b -1 a, l 2 = b -1 ab -1 aba -3 ba. ( 8
)
By a direct computation, on verifies that

ρ geom (am 1 a -1 ) = w 1 ρ geom (al 1 a -1 ) = w -2 1 s 0 ρ geom (am 2 a -1 ) = x ρ geom (al 2 a -1 ) = t -1 2 u 2
We see therefore that m 1 and l 1 correspond to the cusp of W associated to the (orbit of) 0, and that m 2 and l 2 correspond to the one associated to the (orbit of) ∞. We refer the reader to [START_REF] Sikora | Character varieties[END_REF][START_REF] Heusener | C)-representation spaces of knot groups[END_REF] for classical definitions about representation and character varieties and associated objects. A remark is important for our purposes: if G is a quotient of G, then there is a natural map:

Hom(G , SL(3, C)) → Hom(G, SL(3, C)). Indeed, a representation ρ : G → SL(3, C) is naturally promoted to a representation ρ : G G ρ -→ SL(3, C).
As the projection G G is surjective, this map is injective and moreover two representation ρ and ρ in Hom(G , SL(3, C)) are conjugate if and only if their associated ρ and ρ in Hom(G, SL(3, C)) are conjugate.

As a consequence of this discussion, we obtain

Proposition 3. If G is a quotient of G, then χ 3 (G ) ⊂ χ 3 (G).

A quotient of π

We denote by π the quotient of π defined by the extra relations a 3 = b 3 = 1. More precisely, a presentation for π is given by π = a, b|a 3 , b 3 , [ba -3 b 2 , a -1 b] . Clearly, the group π is isomorphic to Z 3 Z 3 : the last relation is a consequence of the first two. Moreover, π is the fundamental group of a double Dehn surgery on the Whitehead link:

Proposition 4. The group π Z 3 Z 3 is isomorphic to the quotient of π defined by the two relations m 3 1 l -1 1 and m 3 2 l -1 2 . The proof of Proposition 4 is a direct verification from the definition of l i and m i given in Remark 1: the two conditions

m 3 1 l -1 1 = m 3 2 l -1 2 = 1 imply that a 3 = b 3 = 1.
In terms of Dehn surgery, π is the fundamental group of the double Dehn surgery of slopes (-3, -3) on the Whitehead link. This double Dehn surgery is not hyperbolic: this may be verified using SnapPy (see Section 1 of the companion Sage notebook to this paper [Gui]). More precisely, it can be seen to be the connected sum of two lens spaces (see [START_REF] Martelli | Dehn filling of the 'magic' 3-manifold[END_REF]Table 2]).

A lower bound for dim(X 0 )

We are now going to describe the SL(3,C)-character variety of π . To this end, we use Lawton's theorem on the SL(3,C)-character variety of the rank two free group F 2 [START_REF] Lawton | Algebraic independence in SL(3, C) character varieties of free groups[END_REF].

Theorem 5 (Lawton [START_REF] Lawton | Algebraic independence in SL(3, C) character varieties of free groups[END_REF]). The map ψ defined by

SL(3, C) × SL(3, C) → C 8 (A, B) → (trA, trB, trAB, trA -1 B, trA -1 , trB -1 , trA -1 B -1 , trAB -1 )
is onto C 8 and descends to a (double) branched cover ψ :

χ 3 (F 2 ) -→ C 8 .
The theorem in Lawton's work is more precise and gives an explicit polynomial in 9 variables defining χ 3 (F 2 ) as a hypersurface in C 9 covering C 8 . Namely, the above double cover corresponds to the fact that the traces of the nine words A, B, AB,

A -1 B, A -1 , B -1 , A -1 B -1 , AB -1 and [A, B] sastify a relation of the form (tr[A, B]) 2 -S • tr[A, B] + P = 0, (9)
where S and P are polynomials in the traces of the first eight above words. In other words, once the traces of A, B, AB, A -1 B, A -1 , B -1 , A -1 B -1 , AB -1 are fixed, the trace of [A, B] is determined up to the choice of a root of (9). We provide the precise values of S and P in Section 7 of the Sage notebook [Gui], they may also be found in Lawton's [START_REF] Lawton | Algebraic independence in SL(3, C) character varieties of free groups[END_REF], or in [START_REF] Will | Two-generator groups acting on the complex hyperbolic plane[END_REF].

We can now give an alternate definition of the set X 0 considered in the introduction:

Definition 3. Let X 0 ⊂ χ 3 (F 2
) be the inverse image by ψ of the subspace

V = {(0, 0, z 1 , z 2 , 0, 0, z 3 , z 4 ), z i ∈ C}.
By Proposition 3, the sequence of quotients F 2 π π gives rise to a sequence of inclusions:

χ 3 (π ) ⊂ χ 3 (π) ⊂ χ 3 (F 2 ).
With these inclusions in mind, we see that X 0 is actually included in χ 3 (π ). We can even be more specific: Proposition 6. The set X 0 is an irreducible Zariski closed subset of χ 3 (π ). Its dimension is at least 4.

Proof. First, X 0 is included in χ 3 (π ). Indeed, the condition ψ(A, B) ∈ V rewrites trA = trA -1 = trB = trB -1 = .0

This implies that both A and B have order three. Indeed, the characteristic polynomial of a matrix

M ∈SL(3,C) is equal to X 3 -trM X 2 + trM -1 X -1 and thus if trM = trM -1 = 0 we have M 3 = Id.
By construction, X 0 is Zariski closed. Its irreducibility is not hard to verify using the explicit form of the branched 2-cover of Theorem 5 given in [START_REF] Lawton | Algebraic independence in SL(3, C) character varieties of free groups[END_REF]. For example, using the parametrisation given in Section 5, it is easily seen that the double cover is indeed a branched one and not the union of two distinct sheets: the discriminant of the quadratic equation defining the double cover is not a square. For a direct and precise proof, see also [Aco16, Section 4.1]. Eventually the dimension follows from the fact it is the pull-back of C 4 by ψ.

Remark 2. In fact X 0 is a component of χ 3 (π ) and the only one of positive dimension. Moreover it contains every irreducible representation of π . The first part of this statement is a consequence of Theorem 1. The character variety χ 3 (π ), with a focus on real points, has been studied in details in [START_REF]Variétés des caractères à valeur dans des formes réelles[END_REF].

An upper bound for dim(X 0 )

We give in this section an upper bound on the dimension of the component of χ 3 (π) containing X 0 by looking at a specific point to determine the Zariski tangent space. To this end, we consider the following elements of SL(3, C):

S =    1 √ 3-i √ 5 2 -1 - √ 3-i √ 5 2 -1 0 -1 0 0    et T =    1 √ 3+i √ 5 2 -1 √ 3-i √ 5 2 -1 0 -1 0 0   
The matrices S and T have order three and satisfy tr(S) = tr(S -1 ) = tr(T ) = tr(T -1 ) = 0. We define a point [ρ 0 ] in the character variety of π by setting:

ρ 0 (a) = S ρ 0 (b) = T. (10)
By construction, [ρ 0 ] belongs to X 0 . The key step in the proof of Theorem 1 is the following Proposition 7. The Zariski tangent space to χ 3 (π) at [ρ 0 ] has dimension 4.

We postpone the proof of Proposition 7 to the next section and proceed with the proof of Theorem 1. Recall that we need to prove that X 0 is an algebraic component of χ 3 (π) containing [ρ 0 ].

Proof of Theorem 1. Let X be an algebraic component of χ 3 (π) containing X 0 . The class [ρ 0 ] belongs to X. By Proposition 7, the dimension of X is at most 4: it is bounded above by the dimension of any Zariski tangent space. But, by Proposition 6, X 0 ⊂ X is a Zariski closed subset of dimension 4. Hence, X = X 0 and the theorem is proved.

Decorated representations and the deformation variety

We are going to compute the dimension of the Zariski tangent space of χ 3 (π) at [ρ 0 ], in order to prove Proposition 7. To this end, we will use a variation of the character variety -called decorated character variety -and a specific set of coordinates on it -the deformation variety. The deformation variety is well-adapted to explicit computation. The equations defining this variety may be reconstructed using SnapPy's command gluing equations pgl [CDW].

The tools hereafter presented are suitable for character varieties with target group the quotient PGL(3, C) rather than SL(3, C). This will not be a problem, as we use these tools for computing local dimension around a point which belongs to both character varieties. Indeed, if ρ is a representation of π in SL(3, C), the local dimensions at [ρ] of the character varieties for SL(3, C) and PGL(3, C) are the same.

Decorated representations

We first recall basic definitions. More details can be found in [BFG + 13]. The precise links between the different versions of representation and character varieties are described in details in the introduction of [FGK + 16]. It should be noted that for a given generic representation ρ : Γ → PGL(3,C), there exists only a finite number of possible decorations. Indeed, if p ∈ P is the fixed point of a parabolic element γ ∈ Γ, it should be mapped by φ to a flag that is invariant for ρ(γ). By equivariance, the map φ is completely determined by its values on a choice of representatives of the orbits of Γ on P. As there is a finite number of cusps, and that each generic element in SL(3,C) preserves a finite number of flags, the number of possible φ for a given ρ is finite.

Definition 4. A flag of P(C 3 ) is a pair ([x], [f ]) in P(C 3 ) × P((C 3 ) ∨ ) such that f (x) = 0.
For our purposes, we chose the point [ρ 0 ] in χ 3 (π) (ρ 0 is described in Section 3.4).

Proposition 8. The representation ρ 0 admits a unique decoration.

Proof. The (hyperbolic) Whitehead link complement has two cusps, which are represented by the stabilisers of 0 and ∞ (see Proposition 2). Therefore, the equivariance property implies that a decoration φ of ρ 0 is completely determined by the images φ(0) and φ(∞). The images by ρ 0 of the stabilisers of 0 and ∞ are respectively the cyclic groups ST -1 S and ST -1 . Indeed, the images of the stabilisers of 0 and ∞ by ρ 0 are respectively ρ 0 (ab -1 a), ρ 0 (s 0 ) and ρ 0 (ab -1 ), ρ 0 (s ∞ ) (this follows directly from Proposition 2). The images by ρ 0 of s 0 and s ∞ are ST -1 S and T S -1 : this is a direct verification using S 3 = T 3 = 1. Now, the two maps ST -1 and ST -1 S are regular unipotent, and thus each of them has only one invariant flag. Therefore ρ 0 can only be decorated in one way : φ must map 0 to the invariant flag of ST -1 S and ∞ to the one of ST -1 .

The invariant flags of ST -1 and ST -1 S (as well as those of various elements in the group) are made explicit in Table 2. A consequence of Proposition 8 is that around [ρ 0 ], the decorated character variety is a finite ramified cover of the character variety (see also [START_REF] Guilloux | Deformation of hyperbolic manifolds in PGL(n, C) and discreteness of the peripheral representations[END_REF]). As a consequence, the local dimension around [ρ 0 ] can be equivalently computed at the level of χ 3 (π) or of the decorated character variety.

Using a triangulation: the deformation variety

A configuration of ordered points in a projective space P(V ) is said to be in general position when they are all distinct and no three points are contained in the same line. This notion applies to configurations of projective lines by duality. A configuration of n flags ((

[x 1 ], [f 1 ], • • • , ([x n ], [f n ]))) is in general position whenever the n points ([x i ]) n
i=1 are in general position and the forms [f j ] satisfy f j (x i ) = 0 when i = j. Definition 7. We call tetrahedon of flags in P(C 3 ) any 4-tuple of flags in general position.

We briefly recall now the definitions of the main projective invariants we are going to use as well as the relations among them. We refer the reader to [START_REF] Bergeron | Tetrahedra of flags, volume and homology of SL(3)[END_REF] for more details. Let T = (F 1 , F 2 , F 3 , F 4 ) be a tetrahedron of flags.

1. Triple ratio. Let ijk be a face of T (oriented accordingly to the orientation of the tetrahedron) of flags in general position. Its triple ratio is the quantity

z ijk = f i (x j )f j (x k )f k (x i ) f i (x k )f j (x i )f k (x j ) . (11)
2. Cross-ratio. For each oriented edge (ij), we define k and l in such a way that the permutation (1, 2, 3, 4) -→ (i, j, k, l) is even. Viewing the set of lines through [x i ] as a projective line, we associate to (ij) the cross-ratio

z ij = ker(f i ), (x i x j ), (x i x k ), (x i x l ) . ( 12
)
These invariants can be thought of as decorating tetrahedra as shown in Figure 3 : to each face is associated a triple ratio, and to each edge are associated a pair of cross-ratios. Namely, the two cross ratios z ij and z ji are associated to the edge (ij).

The above projective invariants are tied by the following internal relations:

z ijk = 1 z ikj , z ijk = -z il z jl z kl z ik = 1 1 -z ij , z ij z ik z il = -1. (IR)
In particular, the triple ratio can be expressed purely in terms of cross ratios. These invariants can be used to parametrise the set of tetrahedra of flags :

Proposition 9 (Proposition 2.10 of [START_REF] Bergeron | Tetrahedra of flags, volume and homology of SL(3)[END_REF]). A tetrahedron of flags is uniquely determined up to the action of PGL(3, C) by the 4-tuple (z 12 , z 21 , z 34 , z 43 ) in Remark that 0 and 1 are forbidden values (as is ∞) because we assume the flags to be in general position: hence every cross-ratio is the cross-ratio of four different points.

(C \ {0, 1}) 4 . i j k l z ij z ji z ki z il z ik z ijk z ilj z ikl
Let now M be an ideally triangulated cusped hyperbolic 3-manifold. Denote by ν the number of tetrahedra and by (∆ µ ) ν µ=1 the family of tetrahedra triangulating M . We construct a decorated representation of Γ = π 1 (M ) by turning each tetrahedron into a tetrahedron of flags and compute the (decorated) monodromy of their gluing. We only need to ensure that we may glue the tetrahedra together in a consistent way :

1. whenever two tetrahedra ∆ and ∆ are glued together along faces T ⊂ ∆ and T ⊂ ∆ , T and T should have the same shape, that is the same triple ratio up to inversion, 2. around each edge of the triangulation, the monodromy should be the identity.

These gluing conditions are described in details in [BFG + 13, Section 2.3]. They give an equation for each face of the triangulation and two for each edge, which are respectively called the face equations and the edge equations.

Definition 8. The deformation variety of M , denoted Defor 3 (M ), is the subset of C 12ν given by the (z ij (∆ µ )) 0 i =j 3, 1 µ ν verifying the internal relation (IR) for each tetrahedron T µ together with the face and edge equations.

In the case of the Whitehead Link Complement, the gluing equations are the 16 monomial equations displayed in Table 1. Hence, the deformation variety of the Whitehead Link Complement is the affine algebraic subset of C 48 defined by the 32 internal relations (IR) and 16 gluing equations of Table 1. The holonomy map, as defined in [START_REF] Bergeron | Tetrahedra of flags, volume and homology of SL(3)[END_REF][START_REF] Garoufalidis | Gluing equations for PGL(n, C)representations of 3-manifolds[END_REF], is a well-defined map from the deformation variety to the character variety χ 3 (π).

Finding [ρ 0 ] in the deformation variety

The specific representation ρ 0 we consider is defined by ρ 0 (a) = S and ρ 0 (b) = T where S and T are the order three elements in SL(3,C) given in Section 3.4. We have seen in Proposition 8 that ρ 0 admits a unique decoration. In Table 2, we provide the flags associated by this decoration to the six vertices , F ∞ ) and the other three tetrahedra are decorated in a similar way (the tetrahedra are listed in Section 2.2). It is a simple calculation to compute the cross-ratios associated to these flags as explained in Section 4.2. Table 3 displays, for each tetrahedron, the values of coordinates z 12 , z 21 , z 34 , z 43 (see also the companion notebook [START_REF] Guilloux | Notebook for the SageMath computations done for this paper[END_REF]Section 5]). The values of the other coordinates can be deduced from them using the internal relations (IR).

Remark 3. Note the high degree of symmetry of the considered decorated representation: the tetrahedra are all the same up to the action of SL(3, C) and a renumbering of the vertices.

Computation of the Zariski tangent space: proof of Proposition 7.

The deformation variety is the (algebraic) set of all tuples of 48 complex numbers satisfying both the internal relations and the gluing equations (compare to [BFG + 13, Section 3]). In other words it is the intersection of the inverse images IR -1 (1, . . . , 1) ∩ GR -1 (1, . . . , 1), where the two maps IR and GR are defined by 32 is the map representing the internal relations (IR): it sends a collection (z ij (∆ ν )) (for every half-edge ij and 1 ν 4) to the collection of 32 complex numbers given by: 16 is the collection of left-hand sides in the gluing equations of table 1.

• IR : (C \ {0, 1}) 48 → (C * )
(-z ij (∆ ν )z ik (∆ ν )z il (∆ ν ), z ik (∆ ν )(1 -z ij (∆ ν ))). • GE : (C \ {0, 1}) 48 → (C * )
We denote by (IR, GE) the map (C \ {0, 1}) 48 → (C * ) 48 given by the previous two maps. The Zariski tangent space to the deformation variety is the kernel of the tangent map to (IR, GE). As those maps are mostly monomial, we choose to write their tangent maps in the following basis of tangent spaces Vertex Generator of its stabilizer in the image of ρ 0 Invariant flag

∞ ST -1 F ∞ : 1 0 0 , [0, 0, 1] 0 ST -1 S F 0 : 1 -3 √ 3+i √ 5 4 -1 , [1, 3 √ 3-i √ 5 4 , -1] i S -1 T -1 F i : 1 - √ 3+i √ 5 4 -1+i √ 15 4 , [ 1+i √ 15 4 , √ 3-i √ 5 4 , -1] -1 + i T -1 ST -1 F -1+i : 1 3 √ 3-i √ 5 4 -1 , [1, -3 √ 3+i √ 5 4 , -1] -i T -1 S -1 F -i : 1 √ 3-i √ 5 4 -1+i √ 15 4 , [ 1-i √ 15 4 , - √ 3+i √ 5 4 , -1] -1+i 2 T S F -1+i 2 : 0 0 1 , [1, 0, 0]
Table 2: The unique decoration of ρ 0 at the source and target. We take, for each coordinate z, the vector field z ∂ ∂z . In these basis, the tangent map to a function φ : (C * ) 48 → C * has entries of the form z φ ∂φ ∂z .

This follows from the following elementary lemma:

Lemma 10. Let f : C * → C * be a differentiable function. In the basis z ∂ ∂z , the tangent map T f at a ∈ C * has coordinate a f (a) ∂f ∂z .
Proof. In usual coordinates, by definition of partial derivative, the tangent map T a f at a point a maps

v ∈ T a C * to w = ∂f ∂z v ∈ T f (a) C * .
The basis change from ∂ ∂z to z ∂ ∂z in both tangent spaces transforms v into u = v a and w into w f (a) . Hence, in new basis, u is sent to

w f (a) = 1 f (a) ∂f ∂z v = a f (a) ∂f ∂z u.
Tetrahedron

z 12 z 21 z 34 z 43 ∆ 0 7+i √ 15 4 -1-i √ 15 8 7-i √ 15 4 -1+i √ 15 8 ∆ 1 -1+i √ 15 8 7-i √ 15 4 -1-i √ 15 8 7+i √ 15 4 ∆ 2 7-i √ 15 4 -1+i √ 15 8 -1-i √ 15 8 7+i √ 15 4 ∆ 3 -1-i √ 15 8 7+i √ 15 4 -1+i √ 15 8 7-i √ 15 4
Table 3: Coordinates for [ρ 0 ] in the deformation variety We will apply this lemma to each coordinate of the map (IR, GE) to obtain a matrix for the tangent map to (IR, GE) at the point [ρ 0 ]. This matrix, denoted J, has size 48 × 48 and is depicted in Table 4 (see Remark 4 below). To construct J, we have to deal with two kinds of functions, depending on the equations that form the the maps IR and GE : monomial maps or maps of the form

z ik (∆ ν )(1 -z ij (∆ ν )).
• If f is a monomial map, its tangent map has integer entries equal to the exponent of the relative variable. As an example, this formula applied to the map -z 12 (∆ 0 )z 13 (∆ 0 )z 14 (∆ 0 ) gives all entries equal to 0 except for those associated to the variables z 12 (∆ 0 ), z 13 (∆ 0 ) and z 14 (∆ 0 ) which give three entries equal to 1. The same phenomenon appears for each of the first sixteen rows of the matrix J. The gluing equations are also monomials (see Table 1), but involve more variables. These correspond to lines 33 to 48 of the matrix J, that have all their coefficients equal to 0 except for 4, 6 or 8 ones that are equal to 1.

• if f has the form1 z ik (1z ij ), its tangent map has every entry 0 except the ones corresponding to z ij and z ik . Those two are respectively -

z ij
1-z ij and 1. Note that, at a point verifying the internal relations, we have the additional relation -

z ij 1-z ij = z il (
see also the computation in [BFG + 13, Section 5], especially Lemma 5.3). Hence the entries for such a map are 0, 1 or z il . Those appear in rows 17 to 32 of the matrix J displayed in Table 4.

We see thus that J has entries either integer or of the form z il (∆ ν ). Note moreover that the last 16 rows, corresponding to the gluing equations, can be accessed directly by SnapPy [CDW] under SageMath [START_REF]The Sage Developers, Sagemath, the Sage Mathematics Software System[END_REF]: it is the Neumann-Zagier datum. This part of J is directly given by the commands: import snappy; Triangulation("5^2_1").gluing_equations_pgl(3,equation_type='non_peripheral').matrix The next step is to compute the kernel of J. As all entries are in the number field Q[i, √ 3, √ 5], a computer algebra system such as Sage computes it exactly. As a result, the dimension of this kernel is 4 (see Section 6 of the Sage notebook [Gui]). We deduce that the dimension of the Zariski tangent space at the decoration of [ρ 0 ] to the deformation variety is 4.

Remark 4. To write the matrix J, we choose the same order on the variables z ij (∆ ν ) as SnapPy does. As the recise order it is not very enlightning, we omit this discussion here. A change of order on the variables amounts to a permutation of the columns of J, which does not affect its kernel.

Note that at [ρ 0 ], the two subgroups generated by the pairs (ρ 0 (l i ), ρ 0 (m i )) for i = 1, 2 are regular unipotent: there is only one invariant flag for each one. As noted before, it implies that, locally the holonomy map between the deformation variety and the actual character variety is a finite ramified covering. This concludes the proof of Proposition 7: the Zariski tangent space to the character variety at [ρ 0 ] also has dimension 4.

Row 1: 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 Row 16: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 Row 17: 1 0 x 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 ȳ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 x 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 y 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 x 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 ȳ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 x 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 y 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 x 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 y 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 x 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 ȳ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 y 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 x 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 0 ȳ 0 0 0 Row 32: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 x Row 33: 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 1 0 0 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 Row 48: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 1 0 0 0 0 0 0 0 1 0 1 0 Table 4: The matrix J, where x = 9+i (13

)
This system is relatively easy to solve using a computer and, for instance, Gröbner bases. However, it is also solvable by hand, and we indicate now how to do it. Before going any further, let us observe that conjugating the pair (A, B) by the matrix   0 0 1 0 1 0 1 0 0   amounts to do following exchanges in Σ:

a ←→ d, b ←→ c, j ←→ j 2 . ( 19
)
More precisely, the left-hand sides of ( 15) and ( 17) are preserved by these changes, whereas the left-hand sides of ( 16) and (18) are exchanged. Next, we compute linear combinations of the above equations, and obtain the following equivalent system: To obtain the value of a annonced in the statement, we proceed ad follows.

Σ           
• The two equations ( 22) and (23) are linear in b and c. We solve them to obtain expressions of b and c in terms of a and d.

• Plugging these expressions of b and c in (21) and taking numerator, we obtain an equation that relates a and d and involves the monomials a 2 d, ad 2 , a 2 , d 2 , ad, a and d. This equation can by simplified by observing that the product ad can be expressed as an affine function of a and d using (20). Doing so, most of the monomials simplify and we obtain a linear relation between a and d. This yields an expression of d as a function of a, which can be inserted back in (20). We obtain this way a quadratic equation in a, which is: 0 =4(jz 1 + z 2 + j 2 z 3 + z 4 + 3)a 2 -2(6jz 1 + 6j 2 z 3 + z 1 z 3z 2 z 4 + 9)a + 9 + 6jz 1 -3z 2 + 6j 2 z 3 -3z 4 + j 2 z 2 1 + z 2 2 + jz 2 3 + z 2 4 jz 1 z 2 + 2z 1 z 3jz 1 z 4j 2 z 2 z 3z 2 z 4j 2 z 3 z 4

(24)

The discriminant of this quadratic equation is ∆, and we obtain in turn two possible values for a, corresponding to the two square roots of ∆. We obtain in turn the value of d given in the statement. Note that d is obtained from a by the exchanges j ←→ j 2 and z 2 ←→ z 4 . This correspond to the symmetry of the system (Σ) given in (19). As observed above, knowing the values of a and d gives us the values of b and c. However, the expressions obtained by solving (22) and ( 23) are not exactly those given in the statement, and simplifying them is quite intricate. The following strategy gives a way to determine b and c more directly. First of all, we know from Lawton's theorem and our determination of a and d that b belongs to k[δ] (recall that k = Q[j](z 1 , z 2 , z 3 , z 4 )). Hence, we may look for it under the form b = aP + Q where P and Q belong to k. We use this form in the equation ( 22)-( 23), and also plug the values of a and d. This leads to an equation, linear in P and Q, between two elements of k[δ]. Isolating the coefficient of δ and the remaining part, we find 2 linear equations in P and Q. Solving those equations leads to the given value for b. The value for c can be obtained using the symmetries of Σ given in (19).

Figure 1 :

 1 Figure 1: The Whitehead link, and a hyperbolic regular ideal octahedron.

Figure 2 :

 2 Figure 2: An octahedron with face identifications

3

  The SL(3,C)-character variety 3.1 Generalities Definition 2. Let G be a finitely generated group. The representation variety of G in SL(3,C) is Hom(G, SL(3, C). Its GIT quotient Hom(G, SL(3, C))//SL(3, C) is called the SL(3,C)-character variety, denoted by χ 3 (G).

  We denote by Fl 3 the set of flags of P(C 3 ).Geometrically a flag is a pair formed by a point in P(C 3 ) and a projective line containing it. Definition 5. Let Γ be the fundamental group of a finite volume, cusped hyperbolic manifold M , let P ⊂ H 3 R be the set of parabolic fixed point of Γ and let ρ be a representation ρ : Γ -→ PGL(3, C). A decoration of ρ is a map φ : P -→ Fl 3 which is (Γ, ρ)-equivariant. A pair (ρ, φ) is called a decorated representation. Definition 6. The decorated representation variety is DecHom(Γ) = {(ρ, φ), ρ ∈ Hom(Γ, PGL(3, C)), φ is a decoration of ρ}. The decorated character variety is the GIT quotient Decχ 3 = DecHom(Γ)//PGL(3, C)

Figure 3 :

 3 Figure 3: The z-coordinates for a tetrahedron.

  of X 0 We describe in this section a parametrisation of a Zariski open subset of X 0 by actual matrices. More precisely, given four generic complex numbers z 1 , z 2 , z 3 and z 4 we are going to provide two pairs (A, B) of regular order three elements in SL(3,C) such that • A and B have no common eigenvector in C 3 ,• A and B satisfy tr(AB) = z 1 , tr(A -1 B) = z 2 , tr(A -1 B -1 ) = z 3 , tr(AB -1 ) = z 4 .

(

  15) + (16) + (17) + (18) : 4ad -6a -6dz 1z 2z 3z 4 + 6 = 0 (15) -(16) + (17) -(18) : 4bc + 2a + 2dz 1 + z 2z 3 + z 4 -6 = 0 (15) -(17) : 2ac + 2bd -4aj + 4dj -2a + 2dz 1 + z 3 = 0 (16) -(18) : 2ac -2bdz 2 + z 4

We drop here the indication of the tetrahedron ∆ν for 0 ν 3 in order to simplify the notations.

Face equations

Edge equations z41(∆0)z31(∆0)z21(∆0)z41(∆1)z31(∆1)z21(∆1) = 1 z43(∆0)z34(∆1)z34(∆2)z34(∆3) = 1 z42(∆0)z32(∆0)z12(∆0)z42(∆2)z32(∆2)z12(∆2) = 1 z34(∆0)z43(∆1)z43(∆2)z43(∆3) = 1 z41(∆2)z31(∆2)z21(∆2)z42(∆3)z32(∆3)z12(∆3) = 1 z21(∆0)z12(∆1)z21(∆2)z21(∆3) = 1 z34(∆2)z24(∆2)z14(∆2)z43(∆3)z23(∆3)z13(∆3) = 1 z12(∆0)z21(∆1)z12(∆2)z12(∆3) = 1

Table 1: Gluing equations for the Whitehead Link Complement of the octahedron described in Section 2.1 (see also the companion notebook [Gui, Section 4]). Note that ρ 0 maps every stabiliser of a vertex of the octahedron to a cyclic group. The flag associated to this vertex is in fact invariant under the image by ρ 0 of the stabiliser. As a result, each tetrahedron (∆ ν ) 1 ν 4 is decorated by four flags. For instance, the tetrahedron

Recall that the traces of A, B and their inverses are zero as they are regular order three element. The genericity condition will be made explicit in Proposition 11. We know from Lawton's theorem that X 0 is a double cover over C 4 . Parameters on C 4 are given by the four trace parameter z 1 , z 2 , z 3 , z 4 . To describe this double cover, define the quantity

which is the discriminant of the trace equation (9) in Theorem 5, in the case where the traces of A, B and their inverses vanish. We denote by δ a square root of ∆. Let j be a non trivial cube root of 1 and

Proposition 11. Let (a, b, c, d) be the following elements in k[δ]:

Then for any 4-tuple of complex numbers (z 1 , z 2 , z 3 , z 4 ) such that a, b c and d are well-defined, any pair (A, B) of order three regular elements of SL(3,C), satisfying (13) and such that the j 2 -eigenline for A is different from the j-eigenline for B, is conjugate in SL(3,C) to one of the two pairs defined by

Proof. A direct computation of the traces of AB, A -1 B, A -1 B -1 and AB -1 with the given values leads to a verification of our parametrization [START_REF] Guilloux | Notebook for the SageMath computations done for this paper[END_REF]Section 7]. We now indicate how to obtain these values.

Recall first that regular order three elements in SL(3,C) have eigenvalue spectrum {1, j, j 2 }. First, one may conjugate the pair (A, B) so that A and B are respectively lower and upper triangle, with eigenvalues organised as in ( 14). This amounts to choosing a basis of C 3 of the form (v B , v, v A ) where v A (resp. v B ) is a j 2 -eigenvector for A (resp. a j-eigenvector for B), and v is a non zero vector in the intersection V A ∩ V B , where V A (resp. V B ) is spanned by v A and a 1-eigenvector of A (resp. v B and a 1 eigenvector for B). Conjugating by a diagonal matrix allows to bring off-diagonal coefficients equal to j 2 in A and to j in B as shown in (14).

We need now to determine a, b, c, and d from (13). These four conditions correspond to the following system of equations.


Frédéric Mangano

Simon Duquennoy

Nikolai Kosmatov

Formal Verification of a Memory Allocation Module of Contiki with Frama-C: a Case Study

Keywords: deductive verification, specification, FRAMA-C, Contiki, memory allocation

Formal verification is still rarely applied to the IoT (Internet of Things) software, whereas IoT applications tend to become increasingly popular and critical. This short paper promotes the usage of formal verification to ensure safety and security of software in this domain. We present a successful case study on deductive verification of a memory allocation module of Contiki, a popular opensource operating system for IoT. We present the target module, describe how the code has been specified and proven using Frama-C, a software analysis platform for C code, and discuss lessons learned.

Introduction

While formal verification is traditionally applied to embedded software in many critical domains (avionics, energy, rail, etc.), its usage for the Internet of Things (IoT) has not yet become common practice, probably because the first IoT applications were not considered as critical. However, with the emergence of the Internet of Things, embedded devices get massively connected to the Internet. In this context, security concerns become of utmost importance as IoT applications today often deal with sensitive data and act on the physical world. The devices are both constrained and network-facing, thus creating new opportunities for attackers and new challenges for verification. One of these challenges is to verify an embedded yet full-fledged low-power IPv6 stack underlying many potentially critical IoT applications. In this paper we focus on the Contiki OS [START_REF] Montenegro | Transmission of IPv6 packets over IEEE[END_REF], and in particular on its memory allocation module memb providing a generic mechanism for allocation of a bounded number of blocks of any given type. Contributions. This experience report paper advocates the use of formal verification for IoT and presents a case study on verification of the memb module performed with FRAMA-C [START_REF] Blanchard | A case study on formal verification of the Anaxagoros hypervisor paging system with Frama-C[END_REF], a rich and powerful toolset for analysis of C code. We formally specify memb operations and prove it using the deductive verification tool FRAMA-C/WP. We emphasize two specific issues: the generic nature of the module (resulting in heavier pointer arithmetics and casts) and the need to specify the number of available blocks (requiring an axiomatic definition of occurrence counting). Finally, we describe the verification results and discuss lessons learned.

Contiki and its Memory Allocation Module

Contiki and Formal Verification. Today's IoT software is highly critical because it runs on hardware that is able to sense or even act on physical things. A compromised IoT device may get access to sensitive or private data. Worse, it might become able to take action on the physical world, potentially with safety consequences. Examples of such include reconfiguring an industrial automation process, interfering with alarms or locks in a building, or in the e-health domain, altering a pacemaker or other vital devices.

Contiki is an Operating System for the Internet of Things. It was among the pioneers in advocating IP in the low-power wireless world. In particular, it features a 6LoWPAN stack [START_REF] Baudin | ACSL: ANSI/ISO C Specification Language[END_REF], that is, a compressed IPv6 stack for IEEE 802.15.4 communication. This enables constrained devices to interoperate and connect directly to the Internet. Sensors, actuators or consumer devices can be brought together and create applications in various areas such as home automation or the smart grid.

Contiki is targeted at constrained devices with a 8, 16 or 32-bit MCU and no MMU. The devices usually feature a low-power radio module, some sensors, a few kB RAM and tens of kB ROM. Contiki has a kernel, written in portable C, that is linked to platform-specific drivers at compile-time. At the time of writing, it supports 36 different hardware platforms.

When Contiki started in 2003, the focus was on enabling communication in the most constrained devices, with no particular attention given to security. As it matured and as commercial applications arose, communication security was added at different layers, via standard protocols such as IPsec or DTLS. The security of the software itself, however, did not receive much attention. Although a continuous integration system is in place, it does not include formal verification. While formal verification has already been applied to microkernels and Cloud hypervisors (see [START_REF] Kirchner | Frama-C: A software analysis perspective[END_REF]Sec. 5] for related work), we are not aware of similar verification projects for IoT software. Contiki's memb Module. In this case study, we turn our attention to Contiki's main memory management module: memb. To avoid fragmentation in long-lasting systems, Contiki does not use dynamic allocation. Memory is pre-allocated in blocks on a perfeature basis, and the memb module helps the management of such blocks. For instance, the routing module provisions for N entries, which are stored in a static memory area N times the size of a routing entry. Entries are managed by allocating and freeing blocks at runtime.

The module memb offers a simple API, enabling to initialize a memb store, allocate a block, free a block, check if a pointer refers to a block inside the store and count the number of allocated blocks. memb consists in about 100 lines of code but is one of the most critical elements of Contiki, as the kernel and many modules rely on it. A flaw in memb could result in attackers reading or writing arbitrary memory regions, crashing the device, or triggering code execution.

The Contiki code base involves a total of 56 instances of memb. Not all are included in a given Contiki firmware, but a subset is included depending on the application and configuration. memb is used for instance for HTTP, CoAP (lightweight HTTP), IPv6 routes, CSMA, the MAC protocol TSCH, packet queues, network neighbors, the file system Coffee or the DBMS Antelope. [START_REF] Blanchard | A case study on formal verification of the Anaxagoros hypervisor paging system with Frama-C[END_REF] is a popular software analysis platform for C programs that offers various static and dynamic analyzers as individual plugins. They include the deductive verification tool WP, abstract interpretation based value analysis, dependency and impact analysis, program slicing, test generation, runtime verification, and many others. FRAMA-C comes with a behavioral specification language ACSL [START_REF] Dunkels | Contiki -A Lightweight and Flexible Operating System for Tiny Networked Sensors[END_REF]. The user specifies the desired properties of their program by adding ACSL annotations (preconditions, postconditions, loop invariants, assertions, etc.). These annotations are written in special comments / * @ <annotation> * / or //@ <annotation>. FRAMA-C/WP can be used then to establish a rigorous mathematical proof that the program satisfies its specification. Technically, it relies on automatic provers (SMT solvers) that try to prove the theorems (verification conditions, or VCs) automatically generated by WP.

Declaration of Memory Allocation Data via a Pseudo-Template

A memb store is represented by the struct memb structure (see Fig. 1a, lines 2-7). Being written in C, it does not allow polymorphism. Instead, it stores as a field of the structure the size of the block type it is meant to store, which enables the implementation to dynamically compute the addresses of the blocks.

The actual blocks are stored in an array (referred to as field mem), statically allocated using a global array definition. This is illustrated in Fig. 1b, lines 10-14, for 2 blocks of type struct point. Since its length varies, the array cannot be declared directly in the structure, that is why the structure contains a pointer that is initialized to point to the global array. The count array is allocated in the same fashion.

All the fields of the memb structure are initialized at compile-time and shall not change when the program executes. That is conveniently realized using the MEMB macro (whose definition is omitted in Fig. 1a), which relies on the preprocessor in order to generate the global array definitions for the count and mem arrays, declare an initialized memb store.

Lines 10-14 of Fig. 1b show the result of line 7 after the preprocessing.

6 assumes ∃ Z i; 0 ≤ i < m→num ∧ m→count[i] == 0; 7 ensures ∃ Z i; 0 ≤ i < m→num ∧ \old(m→count[i]) == 0 ∧ m→count[i] == 1 ∧ 8 \result == (char * ) m→mem + (i * m→size) ∧ 9 ∀ Z j; (0 ≤ j < i ∨ i < j < m→num) =⇒ m→count[j] == \old(m→count[j]);
13 assumes ∀ Z i; 0 ≤ i < m→num =⇒ m→count[i] = 0; 14 ensures ∀ Z i; 0 ≤ i < m→num =⇒ m→count[i] ==

Specifying Operations

First, we specify the functions of memb in ACSL. Let us describe here the contract for the allocation function memb_alloc shown in Fig. 2. Its ACSL contract contains preconditions (requires clauses) that are assumed to be ensured by the caller, and postconditions (ensures clauses) that should be ensured by the function at the end of its execution and thus proved by the verification tool. Lines 2-3 specify that the store respects a global validity property before and after the call. A specific behavior can be expressed in ACSL using a behavior section, which defines additional postconditions whenever the behavior guard given in the assumes clause is satisfied. The contract may stipulate that the given behaviors are disjoint and complete (lines 16-17), the verification tool verifies it as well. The memb_alloc function has two behaviors:

1. If the memb store is full, then it is left intact, and NULL is returned (lines 12-15). 2. If the memb store has at least one free block, then it must be guaranteed that:

the returned block is properly aligned in the block array (line 8), the returned block was marked as free, and is now marked as allocated (line 7), the returned block is valid, i.e. points to a valid memory space of a block size that can be safely read or written to (line 10), the states of the other blocks have not changed (line 9), the number of free blocks is decremented (line 11, see also Sec. 3.4).

Keeping Track of Free Blocks

When allocating, we may need to ensure the memb store is not full, that is, some blocks are available. To this end, we make assumptions on their number that we compute using a logic function named _memb_numfree. For instance, requiring that at least n blocks are free ensures that the n subsequent allocations will succeed. The specification states that the number of free blocks is decremented when allocating, and incremented back when a block is freed. Allocation succeeds if and only if the number of free blocks before the allocation is non-zero. A memb store uses its count array to determine whether its i th block is free (count[i] = 0) or allocated (count[i] = 1). In the logic world of ACSL, counting the number of free blocks, or more precisely counting the number of occurrences of 0 in the count array, requires an inductive definition using sub-arrays: In our specification, we use a more general inductive definition from [START_REF] Kirchner | Frama-C: A software analysis perspective[END_REF], as well as a few auxiliary lemmas proven by induction in the proof assistant Coq (v.8.4pl6).

-If to ≤ f rom,

Deductive Verification Results

The current specifications of the memb modules are fully proven automatically using FRAMA-C/WP Magnesium-20151002, Alt-Ergo 0.99.1, CVC4 1.4 and Z3 4.4.2. The ACSL specification of memb is 115 lines of code long, for a total of 259 lines in the header file. To prove it, 32 additional lines of annotations were required in the implementation file, summing up to 154 lines. 126 verification conditions are generated. Fig. 3 shows an annotated function using memb that can be automatically proven with FRAMA-C/WP, except for line 28 that contains an out-of-bounds pointer. Thus, out-of-bounds accesses are automatically detected thanks to the provided specification.

This verification case study also allowed to detect a potentially harmful situation. The memb_free function used to decrement the count associated to the given block, instead of setting it to 0. An awkward consequence of this is that calling memb_free on a block with an unusual count (e.g. greater than 2) would not actually free it. While this should not happen under normal circumstances, we have decided to replace that decrement operation by a set to 0. This choice makes memb_free both simpler and more robust, easing the verification process, and we recommend to integrate it into the production code.

Conclusion and Future Work

IoT software is becoming more critical and widely used. We argue that formal verification should be more systematically applied in this domain to guarantee that critical software meets the expected level of safety and security.

This paper reports on a case study where deductive verification with FRAMA-C/WP has been applied on the memory allocation module memb, one of the most critical and largely used components of the Contiki OS. We have described the verification methodology and results. In particular, the presented verification formally guarantees the absence of out-of-bounds accesses to the block array in the memb module.

We have emphasized two technical aspects. One is related to pointer arithmetics and casts due to the generic implementation of the module for all possible block types. The second one concerns inductive definitions and proofs necessary to count elements in the block status array and to state some properties on the corresponding counting functions. While these aspects could constitute an obstacle for formal verification of real-life C software a few years ago, they can be successfully treated today by modern verification tools like FRAMA-C/WP. This experience report also shows that automatic theorem provers have made significant progress, and that interactive proof, e.g. with Coq proof assistant, can be used in complement on remaining properties that are too complex to be proven automatically.

One future work direction is the verification of memb with a slightly more precise specification, including for example stronger isolation properties between blocks of the same store. This would require a better support of ACSL allocation primitives in WP (such as the frees clause) in order to better trace validity of individual blocks. Secondly, the results of this case study should facilitate the verification of other components of Contiki relying on memb. For some of them (such as list, defining chained lists), this could require further extensions of FRAMA-C and ACSL. Finally, specification and proof of other IoT software modules is another future work direction.

Fig. 1 :

 1 Fig. 1: (a) Extract of file memb.h defining a template macro MEMB, and (b) its usage (in file demo.c) to prepare allocation of up to 2 blocks of type struct point

10

  ensures \valid((char * ) \result + (0 .. (m→size -1))); 11 ensures _memb_numfree(m) == \old(_memb_numfree(m)) -1; 12 behavior full:

Fig. 2 :

 2 Fig. 2: (Simplified) ACSL contract for allocation function memb_alloc (file memb.h)

Fig. 3 :

 3 Fig. 3: Example of ACSL-annotated function using memb (file demo.c)

  then count[f rom . . . to[ obviously contains no zeros. -If f rom > to and count[to -1] = 0 then count[f rom . . . to[ contains one more zero than count[f rom . . . to -1[. -If f rom > to and count[to -1] = 0 then count[f rom . . . to[ contains as many zeros as count[f rom . . . to -1[.

\old(m→count[i]);

	15	ensures \result == NULL;
	16	complete behaviors;
	17	disjoint behaviors;
	18 * /
	19 void * memb_alloc(struct memb * m);

Acknowledgment. Part of the research work leading to these results has received funding for DEWI project (www.dewi-project.eu) from the ARTEMIS Joint Undertaking under grant agreement No. 621353. The second author has also been partially supported by a grant from CPER Nord-Pas-de-Calais/FEDER DATA and the distributed environment Ecare@Home funded by the Swedish Knowledge Foundation 2015-2019. Special thanks to Allan Blanchard, Franc ¸ois Bobot and Loïc Correnson for advice, and to the anonymous referees for their helpful comments.