{'fraction_non_alphanumeric': 0.024596266913142827, 'fraction_numerical': 0.007907776836375774, 'mean_word_length': 4.1324285149558575, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Rigorous computations with an approximate Dirichlet domain

In this paper we address some problems concerning an approximate Dirichlet domain. We show that under some assumptions the approximate Dirichlet domain can work equally well as an exact Dirichlet domain. In particular, we consider a problem of tiling a hyperbolic ball with copies of the Dirichlet domain. This problem arises in the construction of the length spectrum algorithm which is im- plemented by the computer program SnapPea. Our result explains the empirical fact that the program works surprisingly well despite it does not use exact data. Also we demonstrate an improvement in the algorithm for rigorous construction of the length spectrum of a hyperbolic 3-manifold.


Introduction
Every hyperbolic 3-manifold M of finite volume can be viewed as a convex finite sided polyhedron in H 3 with pairs of faces identified. This polyhedron is called a Dirichlet domain and there are many reasons why it is important. It is used in the constructions of the length and ortholength spectra. It is also necessary for an isometry test by using the drilling of the geodesics. The length spectrum is then also used to study the symmetry group of M and Dehn parental test. In practice it is very hard to construct an exact Dirichlet domain but we show that for some problems it is enough to know only an approximate Dirichlet domain.
Poincare's Fundamental Polyhedron theorem verifies the discreteness of a group of isometries in a hyperbolic space by its action on a polyhedron which satisfies special conditions [1], [2], [3]. The works of [4], [5] and [6] describe a rigorous algorithm for the discreteness of a subgroup of hyperbolic isometries of P SL(2, C) by verifying the conditions of the Poincare Theorem. Given a subgroup G as a collection of generating matrices as elements of P SL(2, C) they constructed a provably correct Dirichlet domain and showed that under special restrictions on the subgroup G this domain satisfies the conditions of the Poincare's theorem. This implies that the subgroup G is discrete and therefore, the corresponding manifold H 3 /G is hyperbolic.
In many cases it is known that a subgroup Γ ⊂ P SL(2, C) is discrete, ie. Γ is a fundamental group π 1 (M ) of a hyperbolic manifold. For example, this can be proved rigorously using verified computations HIKMOT [7]. However, the Dirichlet domain is not known but under some assumption we can still get some important knowledge about it.
Everywhere in this paper if not mentioned explicitly we assume that M is a finite volume hyperbolic 3-manifold with a fundamental group presentation Γ and a Dirichlet domain D centered at a point x which corresponds to Γ. Let D be a finite sided polyhedron obtained by constructing a Dirichlet domain centered at x for Γ but in a finite number of steps such that all generators and their inverses in Γ correspond to some of its face-pairing relations. We will call D an approximate Dirichlet domain. Notation D x will be used to specify a Dirichlet domain centered at the basepoint x. Otherwise we use D. 2 Our ultimate goal is to show that if a subgroup of hyperbolic isometries Γ ⊂ P SL(2, C) is discrete then an associated exact Dirichlet domain D can be replaced by an approximate Dirichlet domain D . Some properties of D and D are closely related if a difference of their volumes is small enough and a spine radius of D is close to a minimal. For example, it applies to the case of tiling a ball in a hyperbolic space an computation of an injectivity radius. A main theorem of this paper tells that D can be replaced by D and it will not affect the rest of the construction of the length spectrum algorithm.
Theorem 1. If a difference ∆V of volumes D and D is less than some small positive and the basepoint x minimizes a spine radius r of D then every translation of D inside a ball B(x, R) ⊂ H 3 can be obtained by translations of D without leaving the ball B by using an algorithm of adding neighbors to its faces starting from the domain D x .
D has a finite volume and is a superset of D, not necessarily a proper superset. Therefore it is a Siegel set [8]. We use a word covering instead of tiling for D because its covering will have overlaps in H 3 which are not allowed for tiling. Cayley graphs C and C are associated with domains D and D . Their vertices are elements of Γ. Their generating sets are elements of Γ which correspond to face-pairings of D and D respectively. Such a Cayley graph is a lift of a one-skeleton dual to a domain. The Theorem 1 can be formulated in terms of Cayley graphs.
Corollary: Cayley graph C is connected inside a ball B(x, R) under conditions of Theorem 1.
The paper is organized as follow: Some required background is presented in Section 2. Section 3 starts with the motivation on the study of the length spetrum. Then it describes algorithms of the construction of the Dirichlet domain, tiling a ball by its copies and a general idea of a length spectrum algorithm. For a fixed basepoint and a given presentation of a fundamental group there is a natural way how to build a Dirichlet domain by taking an intersection of all half spaces. The open question here is how to get all necessary half spaces.
A proof of the main theorem uses Lemmas 1 and 2 and it is described in Section 4. First, we show that the Cayley graph C is connected in the universal cover and it has the same set of vertices as C. Then we show that under some restrictions on ∆V and the spine radius r , D cannot contain too many extra faces which do not appear in D and it allows to cover the ball B(x, R) by the same tiling algorithm as for the exact Dirichlet domain. Section 5 describes how to compare rigorously if two elements of a fundamental group are the same or not. This can be applied for further implementations of a rigorous algorithm for length spectra. 3

Background
We start this section with reviewing some basic definitions and facts from hyperbolic geometry and topology of 3-manifolds that will be used later.
Definition: A hyperbolic 3-manifold M is a quotient H 3 /Γ of a three-dimensional hyperbolic space H 3 by a subgroup Γ of hyperbolic isometries P SL(2, C) acting freely and properly discontinuously.
The subgroup Γ is isomorphic to the fundamental group π 1 (M ).
The meaning of this theorem is very important. It tells that geometric invariants of manifolds (e.g. volumes, geodesic lengths) are topological invariants. Every element γ ∈ Γ of the fundamental group corresponds to a closed geodesic g ⊂ M of a manifold. On the other hand every pre-image of a geodesic g ⊂ M in the universal cover H 3 is preserved by some element of the fundamental group γ or its conjugates q −1 γ q, where q is any element of the fundamental group Γ. We often identify a geodesic with its conjugacy class in the fundamental group. This relation allows to naturally define a length of a closed geodesic and we use the notation l(γ) equivalently to l(g).
Definition: Complex length l(γ) of a closed geodesic g in a hyperbolic 3-manifold is a number λ + iθ, where λ is a minimal distance of the transformation γ, and θ is the angle of rotation incurred by traveling once around the axis of γ, modulo 2π.
Definition: Length spectrum L(M ) of a hyperbolic 3-manifold M is a set of all complex lengths of closed geodesics in M taken with multiplicities: This is an infinite discrete and ordered set.
Another way of thinking about a manifold is via a Dirichlet domain.
Definition: Dirichlet domain of Γ with a basepoint x ∈ H 3 is the subset For finite volume manifolds this is a finite sided polyhedron with pairs of faces identified [11], [12].

Length spectrum
This section highlights the importance of length spectra of hyperbolic 3-manifolds and their relation to an approximate Dirichlet domain construction. We review some relevant definitions and the algorithm for the construction of the length spectrum. This algorithm was implemented in the computer programs SnapPea, Snap, SnapPy [26] and Mathematica package Ortholength.nb.
The length spectrum is a topological but not a complete invariant for hyperbolic 3-manifolds. The first examples were introduced by M.-F. Vigneras [13] who showed how to construct iso-spectral but non-isometric, commensurable hyperbolic 3-manifolds. There is still an open question if there are iso-spectral manifolds which are not commensurable, see [14], [15]. R. Meyerhoff [16] proved that finite subsets of length, ortholength and basin spectra define a closed hyperbolic 3-manifold uniquely up to an isometry.
Constructions of the ortholength and the basin spectra depend on a length spectrum. Note also that the basin spectrum is a structured subset of the ortholength spectrum. The length spectrum can be used to compute a subgroup of the group of isometries of a closed hyperbolic 3-manifold M [17]. It requires to drill out a complete simple geodesic link in M . This drilling results in a complete hyperbolic manifold of finite volume [18] and it can be used for testing if two closed manifolds are isometric [19].
Dehn Parental Test asks if N is a Dehn filling of M where M , N are orientable 3-manifolds which admit complete hyperbolic metrics of finite volume on their interiors. The first practical method for determining Dehn filling heritage was described by C.D.Hodgson, S.P.Kerckhoff [20], and more recently implemented by R.Haraway [21]. Dehn parental test for hyperbolic 3-manifolds reduces to rigorous calculations of length spectra and also volumes of manifolds, cusp area, slope length and an isometry test.
Computer program SnapPea [22] written in the C language calculates some topological and numerical invariants of a hyperbolic 3-manifold M including the length spectrum. A manifold M can be given by its ideal triangulation, as a knot or a link complement in S 3 or a Dehn filling of a cusped manifold. It finds a fundamental group of a manifold first, constructs a Dirichlet domain using the fundamental group and then tiles a ball in H 3 by copies of the Dirichlet domain. The details of this construction can be found in [19], SnapPea's source code. The algorithm is theoretically rigorous but in practice it works with real numbers and cannot avoid round-off errors.
Information about length and ortholength spectra played a crucial role in a proof of the Exceptional manifolds conjecture [23]. For that purpose authors have implemented the algorithm for a computation of the length spectrum of an oriented hyperbolic 3-manifold in Mathematica called Ortholength.nb [24]. The package takes data from Snap [25] -a computer program that studies arithmetic and numeric invariants of hyperbolic 3-manifolds and is based on a computer program SnapPea and a number theory package Pari. Ortholength.nb computes the length and ortholength spectra with round-off errors and therefore, it gives a rigorous answer if an input is correct and is given with a big enough precision. In practice, the given precision is over 60 digits. The authors compared results obtained from SnapPea and Ortholength.nb for tens of manifolds with real length cutoff-up to 7 with perfect agreement. The first difference in the spectra appeared when a precision was reduced to less than 10 digits.
We give a sketch of the algorithm for the Dirichlet domain construction as in SnapPea. A point x ∈ H 3 is chosen as a basepoint. D is obtained as an intersection of half-spaces H g for all words g ∈ Γ of length n ∈ N. If no new face was built for all words of length n + 1 then it stops and checks vertices, volume, faces, Euler characteristic of D . It does not compute a round-off error but it makes all computations with a predefined error . It can miss some very narrow faces far from x. The SnapPea's construction of a Dirichlet domain is very neat but there is no guarantee that an exact Dirichlet domain was obtained because of the predefined error . Therefore, it may finish with a construction of an approximate domain. After an approximate Dirichlet domain was constructed it computes a spine radius 5 of D -a maximum of all minimal distances from x to an edge of D over all edges of D . Then the algorithm minimizes the spine radius by slightly moving the basepoint x in its neighborhood. This process is repeated until a minimal spine radius is obtained up to an error . A result is a more symmetric Dirichlet domain.
The length spectrum algorithm is best described in [19]. Each transformation g ∈ Γ corresponds to a translation along a fixed geodesic. A translation of D is a gD, where g is an isometry of covering transformation Γ. All geodesics of real length λ correspond to group elements g ∈ Γ which can be constructed from products of face pairing relations of Dirichlet domain. All of them move x by a distance less than R which depends on a cut-off real length Λ and a spine radius r: Tiling of a ball B(x, R) will produce a big list of geodesics which might contain geodesics of real length zero or bigger than Λ, not intersecting a spine, duplicates (powers or conjugates). A small list of geodesics with correct multiplicities will be obtained after removing all duplicates and geodesics which fail to satisfy some of the constraints.

Rigorous tiling by an approximate Dirichlet domain
In this section we show that even if a construction of a Dirichlet domain is not an exact one we can still get an exact tiling of a ball in the universal cover with overlappings. It means the big list of geodesics from Section 3 will not miss any element g ∈ Γ of real length less than λ.
Fix some point x in the universal cover to be a basepoint of a Dirichlet domain. Then a presentation of a fundamental group Γ defines a unique Dirichlet domain D. For the construction of the algorithm we need to tile a ball B(x, R) of some radius R centered at x by copies of D. In practice it is very hard to construct an exact Dirichlet domain [5], [6]. One needs to define all vertices with round-off error or with interval arithmetic.
We start to construct a Dirichlet domain D for a fundamental group Γ as an intersection of half-planes H g for finitely many g ∈ Γ including generators and their inverses. We do not know in advance how many steps are involved and if we obtained all vertices, edges and faces of the Dirichlet domain D. Thus the domain D is a superset of the domain D. Faces of D will contain some faces of D but D may have more faces which lie inside D . If some generator of Γ does not correspond to a face of D then we can change a presentation of Γ by replacing a removed generator with a new generator. The new generator maybe the one which removed the old one. Thus we can always construct D in such a way that it always contains faces corresponding to generators and their inverses of Γ.
Lemma 1: The injectivity radius ρ of D is rigorous if a difference ∆V between volumes D and D is small enough.
Proof: By construction an injectivity radius ρ of an approximate Dirichlet domain D is always greater or equal to the injectivity radius of the Dirichlet domain D. Assume that a face of D at distance ρ to the basepoint x is removed and there is a new edge of D which is closer to the basepoint x than ρ . Then two images g(x) and f (x) of the basepoint x corresponding to these two faces: the old and the new one, should belong to different translations of D and a distance between 6 and Ortholength.nb for tens of manifolds with real length cuto↵-up to 7 and they always agreed. The first di↵erence in the spectra has happen when a precision was reduced to less than 10 digits. There are some disadvantages of Ortholength.nb compared to SnapPea, Snap or SnapPy (SnapPy is a modified version of SnapPea written in Python and is constantly updating [16]). The first is the speed: for small volume manifolds the cuto↵ length 7 can take SnapPea up to 5 minutes to compute the length spectrum while computations in Ortholength.nb can take several hours. The other is public availability: while Ortholength.nb needs Mathematica to run, SnapPea is freely publicly available.
Computer program SnapPea [15] written in the C language constructs the length spectrum of a hyperbolic 3-manifold experimentally using its triangulation, knot or link complements in S 3 . It finds a fundamental group of a manifold first and then constructs a Dirichlet domain using the fundamental group. The details of this construction can be found in [12], [17], SnapPea's source code and Section 3 of this paper. Although the algorithm is theoretically rigorous in practice it works with real numbers and cannot avoid round-o↵ errors.
SnapPea's construction of a Dirichlet domain is very neat but there is no guarantee that an exact Dirichlet domain D was obtained. It may finish with a construction of an approximate domain D 0 . A main theorem of this paper tells that if a di↵erence between volumes of Dirichlet domains D and D 0 is small enough and a spine radius r 0 of D 0 is close to the minimal one then D can be replaced by D 0 and it will not a↵ect the rest of the construction of the length spectrum algorithm.
Everywhere in this paper if not mentioned explicitly we assume that M is a finite volume hyperbolic 3-manifold with a fundamental group presentation and a Dirichlet domain D centered at a point x which corresponds to . Let D 0 be a finite sided polyhedron obtained by constructing a Dirichlet domain centered at x for in a finite number of steps such that all generators and their inverses in correspond to some of its face-pairing relations. Notation Dx will be used to specify a Dirichlet domain centered at the basepoint x. Otherwise we use D. D 0 has a finite volume and is a superset of D, not necessarily a proper superset. Therefore it is a Siegel set [18]. We use a word covering instead of tiling for D 0 because its covering will have overlaps in H 3 which are not allowed for tiling. Cayley graphs C and C 0 are associated with domains D and D 0 . Their vertices are elements of . Their generating sets are elements of which correspond to face-pairings of edges joining vertices of C 0 or few extra edges because D 0 has less exact faces then D and can few extra faces if D is a proper subset of D 0 . ⇤ The lemma above tells that the Cayley graph C 0 is connected in H 3 and the union of gD 0 for all g 2 covers the whole hyperbolic space H 3 although we replaced the exact Dirichlet domain D with an approximate Dirichlet domain D 0 . The Theorem 1 answers a question if the Cayley graph C 0 remains connected inside the ball B(x, R).
Proof of Theorem 1: By construction D and D 0 share some common faces. Their intersections we call exact walls and their complements we call hidden walls in D and extra walls in D 0 . We want to show that the existence of extra walls does not a↵ect a tiling of the ball B(x, R) by D 0 if V is small enough and the spine radius r 0 is close to minimal. It means that the whole ball B can be tiled by translations of D 0 if we add neighbors along the existing faces of D 0 without leaving the ball B. An obstacle we want to avoid here is when a union of domains with basepoints inside B will be disconnected from the D 0 x inside the ball B by extra walls of translations of D 0 although they will remain connected in the universal cover.
...add picture of disconnected domains... First, we show that an upper bound on the volume di↵erence and an upper bound on the hidden walls area are related. We call it extra area. If the V is small enough then the the extra area cannot be very big and cover most of the area of D. Assume that V is small enough but extra area is very big and close to the area of D. Then it requires most of faces of D to be almost parallel and very close to the faces of D 0 . This will contradict the fact that images f(x) and f 0 i (x) of a basepoint x for faces fi of D and f 0 i of D 0 will belong to di↵erent translations of D and will be at distances more than 2⇢, where ⇢ is an injectivity radius of D. The same argument was used in the proof of Lemma 1.
The first particular case to consider is when there is a single domain D 0 y disconnected from other domains in B which intersects the boundary @B but the basepoint lies inside B. This D 0 y intersects with B along extra walls only. The lower bound on the extra area of D 0 can be obtained from an area of the inscribed 4 allows to naturally define a length of a closed geodesic and we use the notation l( ) equivalently to l(g).
Definition: Complex length l( ) of a closed geodesic g in a hyperbolic 3-manifold is a number + i✓, where is a minimal distance of the transformation , and ✓ is the angle of rotation incurred by traveling once around the axis of , modulo 2⇡.
Definition: Length spectrum L(M ) of a hyperbolic 3-manifold M is a set of all complex lengths of closed geodesics in M taken with multiplicities: This is an infinite discrete and ordered set.
Another way of thinking about a manifold is via a Dirichlet domain.
Definition: Dirichlet domain of with a basepoint x 2 H 3 is the subset For finite volume manifolds this is a finite sided polyhedron with pairs of faces identified [20], [21].

SnapPea's construction of length spectrum
We review some relevant definitions, theorems and algorithms from "Symmetries, Isometries, Length Spectra" and SnapPea's code [12], [15], [17]. SnapPea is a computer program which calculates some topological and numerical invariants of a hyperbolic 3-manifold M . A manifold M can be given by its ideal triangulation, as a knot or a link complement in S 3 or a Dehn filling of a cusped manifold. The first step is to construct a fundamental group of M .
We give a sketch of an algorithm for Dirichlet domain construction in Minkowski space model. A point x = (0, 0, 0, 1) is chosen as a basepoint. SnapPea constructs D 0 as an intersection of half-spaces Hg for words g 2 of length n 2 N. If no new face was built for all words of length n then it stops and checks vertices, volume, faces, Euler characteristic of D 0 . It doesn't compute a round-o↵ error but it makes all computations with a predefined error ✏. It can miss some very narrow faces far from x faces. After an approximate Dirichlet domain was constructed SnapPea computes its spine radius -a maximal distance among minimal distances from x to an edge of D 0 over all edges of D 0 . Then the algorithm minimizes the spine radius by slightly moving the basepoint x in its neighborhood. This process is repeated until a minimal spine radius is obtained up to an error ✏. A result is a more symmetric Dirichlet domain.
Length spectrum algorithm is best described in [17]. Each transformation g 2 corresponds to a translation along a fixed geodesic. A translation of D is a gD, where g is an isometry of covering transformation . All geodesics of real length correspond to group elements g 2 which can be constructed from products of face pairing relations of Dirichlet domain. All of them move x by a distance less then R which depends on cut-o↵ real length ⇤ and a spine radius r: Tiling of a ball B(x, R) will produce a big list of geodesics which might contain geodesics of real length zero or bigger than ⇤, not intersecting a spine, duplicates: them should be more or equal to 2ρ where ρ is a new injectivity radius obtained from constructing the new face. See Figure 1. Then it will give a volume difference between D and D more than ∆V , where ∆V can be small enough.
If needed one can show in a similar way that a spine radius of D is bigger or equal to a spine radius of D if difference of volumes D and D is small enough.
We know that D is a Dirichlet domain of a hyperbolic 3-manifold and tiles the whole universal cover without gaps and overlappings. We replace D by D and start tiling H 3 by adding neighborhoods of D along its faces. It will not be a tiling but a covering of H 3 because we get all translations of D without gaps but with overlappings if D is a proper subset of D . This tiling by neighbors can be considered as moving on a Cayley graph along edges. Remind that all generators and their inverses of Γ correspond to some faces of D . Proof: Every translation of D ⊂ H 3 is obtained by some word g consisting from generators and their inverses of Γ. So, considering all possible words of Γ will map D onto all images of gD for all g ∈ Γ. This proves that Cayley graph C has exactly the same set of vertices as the Cayley graph of D and is connected. It does not need to be connected in exactly the same way as C and can have less edges joining vertices of C or few extra edges because D has less exact faces then D and can few extra faces if D is a proper subset of D .
A schematic picture is given on the Figure 2 for the 2-dimensional case. The exact Dirichlet domain D is shown in thick solid lines and represents a tiling of a real plane by hexagons, D is a parallelogram which contains the hexagon D and in addition to D has two shaded triangle. C is marked with dotted lines.
The lemma above tells that the Cayley graph C is connected in H 3 and the union of gD for all g ∈ Γ covers the whole hyperbolic space H 3 although we replaced the exact Dirichlet domain D with an approximate Dirichlet domain D . The Theorem 1 answers a question if the Cayley graph C remains connected inside the ball B(x, R).
Proof of Theorem 1: By construction D and D share some common faces. Their intersections we call exact walls and their complements we call hidden walls in D and extra walls in D . We want to show that the existence of extra walls does not affect a tiling of the ball B(x, R) by D if ∆V is small enough and the spine radius r is close to minimal. It means that the whole ball B can be tiled by translations of D if we add neighbors along the existing faces of D without leaving the ball B. An obstacle we want to avoid here is when a union of domains with basepoints inside B will be disconnected from the D x inside the ball B by extra walls of translations of D although they will remain connected in the universal cover.
First, we show that an upper bound on the volume difference and an upper bound on the hidden walls area are related. We call it extra area. If the ∆V is small enough then the the extra area cannot be very big and cover most of the area of D. Assume that ∆V is small enough but extra area is very big and close to the area of D. Then it requires most of faces of D to be almost parallel and very close to the faces of D . This will contradict the fact that images f i (x) and f i (x) of a basepoint x for faces f i of D and f i of D will belong to different translations of D and will be at distances more than 2ρ, where ρ is an injectivity radius of D. The same argument was used in the proof of Lemma 1.
The first particular case to consider is when there is a single domain D y disconnected from other domains in B which intersects the boundary ∂B but the basepoint lies inside B (Figure 3). This  allows to naturally define a length of a closed geodesic and we use the notation l( ) equivalently to l(g).
Definition: Complex length l( ) of a closed geodesic g in a hyperbolic 3-manifold is a number + i✓, where is a minimal distance of the transformation , and ✓ is the angle of rotation incurred by traveling once around the axis of , modulo 2⇡.
Definition: Length spectrum L(M ) of a hyperbolic 3-manifold M is a set of all complex lengths of closed geodesics in M taken with multiplicities: This is an infinite discrete and ordered set.

Another way of thinking about a manifold is via a Dirichlet domain.
Definition: Dirichlet domain of with a basepoint x 2 H 3 is the subset For finite volume manifolds this is a finite sided polyhedron with pairs of faces identified [20], [21].

SnapPea's construction of length spectrum
We review some relevant definitions, theorems and algorithms from "Symmetries, Isometries, Length Spectra" and SnapPea's code [12], [15], [17]. SnapPea is a computer program which calculates some topological and numerical invariants of a hyperbolic 3-manifold M . A manifold M can be given by its ideal triangulation, as a knot or a link complement in S 3 or a Dehn filling of a cusped manifold. The first step is to construct a fundamental group of M .
We give a sketch of an algorithm for Dirichlet domain construction in Minkowski space model. A point x = (0, 0, 0, 1) is chosen as a basepoint. SnapPea constructs D 0 as an intersection of half-spaces Hg for words g 2 of length n 2 N. If no new face was built for all words of length n then it stops and checks vertices, volume, faces, Euler characteristic of D 0 . It doesn't compute a round-o↵ error but it makes all computations with a predefined error ✏. It can miss some very narrow faces far from x faces. After an approximate Dirichlet domain was constructed SnapPea computes its spine radius -a maximal distance among minimal distances from x to an edge of D 0 over all edges of D 0 . Then the algorithm minimizes the spine radius by slightly moving the basepoint x in its neighborhood. This process is repeated until a minimal spine radius is obtained up to an error ✏. A result is a more symmetric Dirichlet domain.
Length spectrum algorithm is best described in [17]. Each transformation g 2 corresponds to a translation along a fixed geodesic. A translation of D is a gD, where g is an isometry of covering transformation . All geodesics of real length correspond to group elements g 2 which can be constructed from products of face pairing relations of Dirichlet domain. All of them move x by a distance less then R which depends on cut-o↵ real length ⇤ and a spine radius r: Tiling of a ball B(x, R) will produce a big list of geodesics which might contain geodesics of real length zero or bigger than ⇤, not intersecting a spine, duplicates: 5 powers, conjugates. A small list of geodesics with correct multiplicities will be obtained after removing all duplicates and geodesics which fail to satisfy some constraints.
This algorithm is performed in the Minkowski space and it uses O(3, 1) matrices. Their multiplications accumulate round-o↵ errors very quickly.

Rigorous tiling by an approximate Dirichlet domain
In this section we show that even if a construction of a Dirichlet domain is not an exact one we can still get an exact tiling of a ball in the universal cover with overlappings. It means the big list of geodesics from Section 3 will not miss any element g 2 of real length less than .
Fix some point x in the universal cover to be a basepoint of a Dirichlet domain. Then a presentation of a fundamental group defines a unique Dirichlet domain D. For the construction of the algorithm we need to tile a ball B(x, R) of some radius R centered at x by copies of D. In practice it is very hard to construct an exact Dirichlet domain [5], [6]. One needs to define all vertices with round-o↵ error or with interval arithmetic.
We start to construct a Dirichlet domain D 0 for a fundamental group as an intersection of half-planes H g for finitely many g 2 including generators and their inverses. We do not know in advance how many steps are involved and if we obtained all vertices, edges and faces of the Dirichlet domain D. Thus the domain D 0 is a superset of the domain D. Faces of D 0 will contain some faces of D but D may have more faces which lie inside D 0 . If some generator of does not correspond to a face of D 0 then we can change a presentation of by replacing a removed generator with a new generator. The new generator maybe the one which removed the old one. Thus we can always construct D 0 in such a way that it always contains faces corresponding to generators and their inverses of .

Lemma 1:
The injectivity radius ⇢ 0 of D 0 is rigorous if a di↵erence V between volumes D and D 0 is small enough.
Proof: ...add a picture... By construction an injectivity radius ⇢ 0 of an approximate Dirichlet domain D 0 is always greater or equal to the injectivity radius of the Dirichlet domain D. Assume that a face of D 0 at distance ⇢ 0 to the basepoint x is removed and there is a new edge of D which is closer to the basepoint x than ⇢ 0 . Then two images of the basepoint x corresponding to these two faces: the old and the new one, should belong to di↵erent translations of D and a distance between them should be more or equal to 2⇢ where ⇢ is a new injectivity radius obtained from constructing the new face. Then it will give a volume di↵erence between D and D 0 more than V , where V can be small enough. ⇤ If needed one can show in a similar way that a spine radius of D is bigger or equal to a spine radius of D 0 if di↵erence of volumes D and D 0 is small enough.
We know that D is a Dirichlet domain of a hyperbolic 3-manifold and tiles the whole universal cover without gaps and overlappings. We replace D by D 0 and start tiling H 3 by adding neighborhoods of D 0 along its faces. It will not be a tiling but a covering of H 3 because we get all translations of D 0 without gaps but with overlappings if D is a proper subset of D 0 . This tiling by neighbors can be the angle of rotation incurred by traveling once around the axis of , modulo 2⇡.
Definition: Length spectrum L(M ) of a hyperbolic 3-manifold M is a set of all complex lengths of closed geodesics in M taken with multiplicities: This is an infinite discrete and ordered set.
Another way of thinking about a manifold is via a Dirichlet domain.
Definition: Dirichlet domain of with a basepoint x 2 H 3 is the subset For finite volume manifolds this is a finite sided polyhedron with pairs of faces identified [20], [21].

SnapPea's construction of length spectrum
We review some relevant definitions, theorems and algorithms from "Symmetries, Isometries, Length Spectra" and SnapPea's code [12], [15], [17]. SnapPea is a computer program which calculates some topological and numerical invariants of a hyperbolic 3-manifold M . A manifold M can be given by its ideal triangulation, as a knot or a link complement in S 3 or a Dehn filling of a cusped manifold. The first step is to construct a fundamental group of M .
We give a sketch of an algorithm for Dirichlet domain construction in Minkowski space model. A point x = (0, 0, 0, 1) is chosen as a basepoint. SnapPea constructs D 0 as an intersection of half-spaces H g for words g 2 of length n 2 N. If no new face was built for all words of length n then it stops and checks vertices, volume, faces, Euler characteristic of D 0 . It doesn't compute a round-o↵ error but it makes all computations with a predefined error ✏. It can miss some very narrow faces far from x faces. After an approximate Dirichlet domain was constructed SnapPea computes its spine radius -a maximal distance among minimal distances from x to an edge of D 0 over all edges of D 0 . Then the algorithm minimizes the spine radius by slightly moving the basepoint x in its neighborhood. This process is repeated until a minimal spine radius is obtained up to an error ✏. A result is a more symmetric Dirichlet domain.
Length spectrum algorithm is best described in [17]. Each transformation g 2 corresponds to a translation along a fixed geodesic. A translation of D is a gD, where g is an isometry of covering transformation . All geodesics of real length correspond to group elements g 2 which can be constructed from products of face pairing relations of Dirichlet domain. All of them move x by a distance less then R which depends on cut-o↵ real length ⇤ and a spine radius r: Tiling of a ball B(x, R) will produce a big list of geodesics which might contain geodesics of real length zero or bigger than ⇤, not intersecting a spine, duplicates: The area of a union of these hidden walls AHW is bounded below by the area of the inscribed ball in D y intersecting B. This area is increasing if a radius of B is increasing.
It is more difficult to get an upper bound on N DD. The essential argument here is the use of a small spine radius. If a Dirichlet domain D has a very long and thin part then an undesired situation can happen when a huge number of translations of D will intersect the hidden walls. In this case a spine radius r is very big. A rough upper bound on the N DD can be obtained by counting a number of inscribed balls in the ball of radius R + r + ρ, where R is the radius of the tiling ball B(x, R), r is the spine radius and ρ is the injectivity radius of D. The exact value of r cannot be computed from D but one can get an upper bound of it. It is bounded above by the maximal distance from the basepoint x to the vertices of D x . A more general case to consider is when there is a union of several Dirichlet domains which are disconnected from D x but they all can be reduced to the above case.
SnapPea's algorithm minimizes the spine radius. It may not construct exactly the minimal spine radius but a one very close to minimal. Therefore, in practice its extra area is much bigger then the one we describe here. An alternative way to explain why in practice an upper bound on NDD cannot be arbitrary large would be by using a maximal injectivity radius r , when an inscribed ball takes most of the volume of D .
End of proof Theorem 1.

Computational problem in geometric group theory
In many situations one needs to compare if two words of a fundamental group Γ ∼ = π 1 (M ) are the same or not. In other words, if two matrices are the same and correspond to the same geodesic in M . For example, in the construction of the length spectrum one needs to operate with a big set of matrices which grows exponentially fast. Therefore, all possible duplicates should be removed as earlier as they appear. We present a way how to solve this word problem rigorously by using approximate data of a Dirichlet domain, namely its injectivity radius.
Lemma 3: Two elements g, g ∈ Γ represent the same element of Γ if real parts of their traces are the same and a distance between images g(x), g (x) of the basepoint x is less than twice an injectivity radius of the Dirichlet domain D x (Γ).
Proof: Every element g ∈ Γ has a word in terms of generators and their inverses and a matrix that corresponds multiplications of these elements. There are two other numbers which we assign to every g: real length of a geodesic and a distance between basepoints x and g(x).
All elements g, g ∈ Γ are different if lengths of their geodesics are different. It is the same as saying that their traces are different. Then we check the difference between the basepoint distances, namely the distance(x, g(x)) and the distance(x, g (x)). If this difference is more than twice the injectivity radius of D then g(x) and g (x) can belong to different copies of D and elements g, g can be different. If the difference between the basepoint distances is less than the double of the injectivity radius then we have to check another distance: the distance between basepoints g(x) and g (x). If this distance is less than the double injectivity radius then g(x) and g (x) belong to the same Dirichlet domain and g and g are the same elements of Γ.