The Regina 7.3 Handbook

Benjamin Burton

Revision 7.3 (2023-03-18)

Both Regina and this handbook are licensed under the terms of the GNU General Public License.

Regina is a software package for 3-manifold and 4-manifold topologists, with a focus on triangulations, knots and links, normal surfaces, and angle structures. For 3-manifolds, it includes high-level tasks such as 3-sphere and unknot recognition, connected sum decomposition and Hakenness testing, comes with a rich database of census manifolds, and incorporates the SnapPea kernel for working with hyperbolic manifolds. For 4-manifolds, it offers a range of combinatorial and algebraic tools, plus support for normal hypersurfaces. For knots and links, Regina can perform combinatorial manipulation, compute knot polynomials, and work with several import/export formats. Regina comes with a full graphical user interface, as well as Python bindings and a low-level C++ programming interface.

Tip: You can also browse the alphabetical index of tasks.

Table of Contents

1. Introduction
Getting Started
What does Regina do?
3-Manifold Triangulations
4-Manifold Triangulations
Higher Dimensions
Knots and Links
Census Creation and Lookup
Normal Surfaces and Hypersurfaces
Angle Structures
Splitting Surfaces
Data Files
Important Changes in Regina 7.0
A new, more flexible file format
Dimensions 9–15 removed by default
Python is a first-class citizen
C++ embraces modern standards and value semantics
TONS removed temporarily
Citing Regina
Who is Regina?
2. Working with Packets
The Packet Tree
Different Packet Types
Container Packets
2-Manifold Triangulations
3-Manifold Triangulations
SnapPea Triangulations
4-Manifold Triangulations
Higher-Dimensional Triangulations
Knots and Links
Normal Surface Lists
Normal Hypersurface Lists
Angle Structure Lists
Surface Filters
Text Packets
Script Packets
General Operations on Packets
Creating New Packets
Cloning Packets
Renaming Packets
Deleting Packets and Subtrees
Moving Around the Tree
3. Triangulations
New Triangulations
Importing Triangulations
Creating a Census
Identifying the Manifold (2-D and 3-D)
Validity, Orientability and Other Basic Properties (All Dimensions)
Viewing Facet Gluings (All Dimensions)
Skeletal Information (All Dimensions)
Algebraic Invariants (3-D and 4-D)
Combinatorial Composition (3-D and 4-D)
High-Level Recognition Routines (3-D)
SnapPea Calculations (3-D)
Decomposition (All Dimensions)
Triangulating Vertex Links (3-D and 4-D)
Triangulating Boundary Components (3-D and 4-D)
Editing Gluings (All Dimensions)
Automatic Simplification (3-D and 4-D)
Manual Simplification: Elementary Moves (3-D and 4-D)
0-Efficiency (3-D)
Switching Between Real and Ideal (3-D and 4-D)
Subdivision (All Dimensions)
Orienting Triangulations and Double Covers (All Dimensions)
Puncturing and Drilling (3-D)
Building Connected Sums (3-D)
Cutting Along and Crushing Normal Surfaces (3-D)
4. SnapPea Triangulations
Converting from a Regina Triangulation
Converting from a Knot or Link
New SnapPea Triangulations
Importing Triangulations
Analysis and Modification
Volume, Solution Type and Other Basic Properties
Cusps, Fillings and Tetrahedron Shapes
Homology and Fundamental Group
Exporting to Other Formats
5. Normal Surfaces and Hypersurfaces
Enumerating Normal Surfaces and Hypersurfaces
Viewing the Triangulation
Summary of (Hyper)surfaces
Details of Individual (Hyper)surfaces
Original Matching Equations
Compatibility Between (Hyper)surfaces
Crushing and Cutting
Triangulating Hypersurfaces
Filtering Surfaces (3-D)
Creating Filters
Filtering by Surface Properties
Combining Several Filters
6. Angle Structures
Strict Angle Structures
Enumerating Angle Structures
Viewing the Triangulation
Details of Individual Angle Structures
7. Knots and Links
Text Codes
Torus Links
Example Knots and Links
Crossings and Components
Polynomial Invariants
Algebraic Invariants
Text Codes
Associated Graphs
Link Complements
Editing Crossings
Automatic Simplification
Reidemeister Moves
Reflection, Rotation and Reversal
Parallel Cables
Self Framing
Building Composite Links
8. Importing and Exporting Data
Regina Data Files
SnapPea Triangulations
Orb / Casson Triangulations
Isomorphism / Knot Signature Lists
Dehydrated Triangulation Lists
Python Scripts
Regina Data Files
SnapPea Triangulations
3-Manifold Recogniser Triangulations
Spreadsheet-Readable (CSV) Surface Lists
Python Scripts
9. Python Scripting
Starting a Python Session
Graphical Python Consoles
Command-Line Sessions
Script Packets
Accessing Regina from Python
Automatic Imports
API Documentation
Inline Documentation
Talking with SnapPy
Sample Python Sessions
Working with a triangulation
Working with a packet tree
Reporting progress of long operations
10. Configuration
General Options
Python Options
Tools Options
11. Compiling Regina Into a C++ Project
Installing the Development Files
Compiler and Linker Flags
API Documentation
12. Contributing to Regina
13. Troubleshooting and FAQ
14. Bug Tracking and Feature Requests
A. Command Line: Main Applications
regina-gui - Regina's graphical user interface
regina-python - Regina's command-line Python interface
B. Command Line: Specialised Utilities
censuslookup - Search for triangulations in Regina's census databases
dgt - Triangulate a 3-manifold or 4-manifold from a framed link
regconcat - Combine several Regina data files
regconvert - Convert between different Regina file formats
regfiledump - Dump the contents of a Regina data file
regfiletype - Identify the formats of Regina data files
retriangulate - Exhaustively search through triangulations or knot diagrams using local moves
sigcensus - Form a census of splitting surface signatures
tricensus - Form a census of triangulations
trisetcmp - Compare triangulations between two Regina data files
C. Version History
D. Authors and License
License Details
Copying and Modification
External Software