Exceptional Dehn surgeries

I have written a python code which can be used on SnapPy to classify the exceptional fillings on a cusped hyperbolic 3-manifold, as explained in the paper You can use this code to try to classify the exceptional Dehn fillings on your favourite hyperbolic manifold with an arbitrary number of cusps. Just follow these steps:
  1. Download Snappy, written by Culler, Dunfield, and Weeks, and practice yourself with the python command line by playing with some hyperbolic 3-manifolds;
  2. Install the hikmot module;
  3. Create your manifold with SnapPy and save it as a file manifold.tri;
  4. Download the archive find_exceptional_fillings_2018.zip on your computer. The archive contains two main python codes find_exceptional_fillings.py and search_geometric_solutions.py;
  5. Run find_exceptional_fillings.py under a python interpreter.
The output of the program will consist of two lists:
  1. A list of candidate exceptional fillings, for which SnapPy was unable to find any kind of solution;
  2. A list of candidate hyperbolic fillings, for which SnapPy found some numerical non-geometric solution (with flat or negatively oriented tetrahedra).
For instance, if the manifold is the Whitehead link complement the output is as follows:

Candidate exceptional fillings:
With 1 fillings: [[(0,0),(0,1)],[(0,0),(1,0)],[(0,0),(1,1)],[(0,0),(2,1)],[(0,0),(3,1)],[(0,0),(4,1)],[(0,1),(0,0)],[(1,0),(0,0)],[(1,1),(0,0)],[(2,1),(0,0)],[(3,1),(0,0)],[(4,1),(0,0)]]
Total: 12
With 2 fillings:
[[(-4,1),(-1,1)],[(-3,1),(-1,1)],[(-2,1),(-2,1)], [(-2,1),(-1,1)],[(-1,1),(-4,1)],[(-1,1),(-3,1)], [(-1,1),(-2,1)],[(-1,1),(-1,1)],[(3,2),(5,1)], [(4,3),(5,1)],[(5,1),(3,2)],[(5,1),(4,3)], [(5,2),(7,2)],[(7,2),(5,2)]]
Total: 14
Candidate hyperbolic fillings:
With 1 fillings:
[]
Total: 0
With 2 fillings:
[[(-3,1),(-2,1)],[(-2,1),(-3,1)],[(3,2),(6,1)], [(5,2),(6,1)],[(6,1),(3,2)],[(6,1),(5,2)]]
Total: 6

The output says that the candidate exceptional fillings are:

  1. the single fillings 0, 1, 2, 3, 4 on either component of the link,
  2. the pairs of fillings (-4, -1), (-3, -1), (-2, -2), (-2, -1), (3/2, 5), (4/3, 5), (5/2, 7/2), and their symmetric companions.
These form the first list. The second list consists of candidate hyperbolic fillings, and these are (-3, -2), (3/2, 6), (5/2, 6) and their symmetric companions.

Most likely, the first list is a complete list of exceptional fillings, in the sense that a filling of the Whitehead link exterior is exceptional if and only if it contains one of these fillings. To get a rigorous proof of this fact you need to:

  1. Prove that all the filled manifolds in list 1 are indeed not hyperbolic, and more precisely that they are graph manifolds (if one filling contains some hyperbolic piece in its canonical decomposition along sphere and tori, it should be analysed separately, because some of their fillings might be non-exceptional, i.e. hyperbolic);
  2. Prove that all the filled manifolds in list 2 are indeed hyperbolic: these manifolds are typically closed, but if some were not, its fillings should be further investigated separately. To fulfill this task you may use the separate code search_geometric_solution.py which is more powerful in detecting hyperbolicity.
For more details see our paper quoted above.

Versions

There have been essentially three versions of these codes:

  • One written in 2011, now obsolete
  • Another one written in 2013. The main improvement is the use of the hikmot module to ensure rigorousness of numerical computations. You can find this version in the archive find_exceptional_fillings.zip.
  • The current one written in 2018 linked above. There are few novelties:
    • Some routines now go faster.
    • We have fixed a bug that was discovered here. I thank Matthias Goerner, Kazuhiro Ichihara, and Hidetoshi Masai for pointing it out.
    • It contains the code quotient_by_symmetries.py that may be used to quotient a list of fillings by the action of the isometry group.

I warmly thank Hidetoshi Masai for various helpful conversations.