# Triangulations

Manifolds in ®ina; are typically represented by triangulations. A &dmanifold; triangulation consists of a set of &dsimplices; along with instructions on how some or all of their (`d`-1)-dimensional facets should be glued together in pairs.

Most triangulations in ®ina; represent 2-, 3- and 4-manifolds. We refer to their &dsimplices; as triangles, tetrahedra and pentachora respectively.

®ina; works with generalised triangulations, which are less strict than simplicial complexes. This means that you may glue two facets of the same &dsimplex; together, or you may glue facets so that different vertices of the same &dsimplex; become identified (and likewise for edges and so on). Indeed, the best triangulations for computation are often one-vertex triangulations, where all vertices of all simplices become identified together.

The downside of this flexibility is that, if you are not careful, your triangulation might not represent a &dmanifold; at all. This is only a problem for dimensions `d` ≥ 3, and if it happens in dimensions `d` = 3 or 4 then ®ina; will tell you about it when you view the triangulation.

®ina; offers rich support for triangulations of dimensions 2, 3 and 4. It also offers more basic support for triangulations of dimensions 5 ≤ `d` ≤ 8, and if you make your own custom build, dimensions 9 ≤ `d` ≤ 15. These higher dimensions (≥ 5) are not supported in the &gui;; instead you will need to use either &python; scripting or &cpp; programming.

If you have data files that contain triangulations of dimensions 9–15, do not open and save them again using one of Regina's ready-made packages. These packages do not understand dimensions 9–15 at all, and so any triangulations in dimensions 9—15 will be lost.

The decision to drop dimensions 9–15 from the default builds was for performance—they were causing significant overhead for Python in particular. If you need these higher dimensions, you can build Regina yourself with the `HIGHDIM` flag; also please drop Ben an email so he knows that there is some demand for these features.

The remainder of this chapter talks through triangulations of dimensions 2, 3 and 4 only.

If you are more familiar with &snappeapylink;, you should be aware that ®ina; and &snappy; are different programs with different aims, and (importantly) with different underlying data structures. &snappy; stores information with 3-manifold triangulations that ®ina; does not (such as fillings and peripiheral curves on cusps, which often do not make sense in ®ina;'s more general setting).

If you wish to work with a file from &snappea; or &snappy; and you need to preserve &snappy;'s extra information (such as fillings and peripheral curves), you should work with a &snappea; triangulation instead. The trade-off is that, while you will still have access to much of ®ina;'s functionality, you will lose some of ®ina;'s fine-grained control over the triangulation (in particular, the ability to modify it). See the chapter on &snappea; triangulations for details.

## Creation

The simplest way to create a new triangulation is through the various Packet Tree New Triangulation menu items (or the corresponding toolbar buttons), which will create a new triangulation of the given dimension from scratch.

You will be asked what type of triangulation to create (see the drop-down box below). Here we walk through the various options.

### Empty Triangulations

Selecting Empty will create a new triangulation with no simplices at all. This is best if you wish to enter a triangulation by hand: first create an empty triangulation, and then manually add simplices and edit the facet gluings.

### Example Triangulations

®ina; offers a selection of ready-made sample triangulations, which you can play with to discover how ®ina; works. These include examples of knot complements and 2-knot complements, well-known spaces such as the &poincare; homology sphere and the Weber-Seifert dodecahedral space, and many others. Simply select an example from the list provided and ®ina; will build the corresponding triangulation for you.

You can see many more examples by looking through the various censuses that are shipped with ®ina;'s example data files. Look inside the File Open Example menu and explore.

### Isomorphism Signatures

®ina; can reconstruct a triangulation from an isomorphism signature. An isomorphism signature is a compact sequence of letters, digits and/or punctuation that identifies a triangulation uniquely up to combinatorial isomorphism (i.e., relabelling simplices and their vertices). An example for 3-manifolds is `cPcbbbiht` (which describes the figure eight knot complement).

Stated precisely: every triangulation has a unique isomorphism signature, and two triangulations have the same signature if and only if they are isomorphic. Isomorphism signatures are introduced in the paper bib-burton-simps3. They are available in all of the dimensions that ®ina; supports, and for 3-manifolds the format is explicitly described in bib-burton-pachner-orprime.

If you already have a triangulation and you wish to view its isomorphism signature: for 3-manifolds you can view it through the triangulation composition tab, and in other dimensions you can access it through &python; scripting or &cpp; programming.

Isomorphism signatures are case sensitive! Be sure that you are entering upper-case and lower-case correctly (or better, copy and paste the signature using the clipboard if you can).

### Dehydration Strings (3-manifolds only)

®ina; can also rehydrate a 3-manifold triangulation from a dehydration string. A dehydration string is a sequence of letters that contains enough information to reconstruct a triangulation (though tetrahedra and their vertices might be relabelled). An example is `dadbcccaqhx` (which describes the &snappea; census triangulation `m025`). Dehydration strings appear in census papers such as the hyperbolic cusped census of Callahan, Hildebrand and Weeks bib-cuspedcensus, in which the dehydration format is explicitly described.

Only some 3-manifold triangulations have dehydration strings. The dehydration string (if it exists) for an existing triangulation can be accessed through &python; scripting by calling `Triangulation3.dehydrate()`.

### Splitting Surface Signatures (3-manifolds only)

®ina; can reconstruct a 3-manifold triangulation from a splitting surface signature. A splitting surface is a compact normal surface consisting of precisely one quadrilateral per tetrahedron and no other normal discs. A splitting surface signature is a string of letters arranged into cycles that describe how these quadrilaterals are joined together. From this signature, both the normal surface and the enclosing triangulation can be reconstructed.

When entering a splitting surface signature, you may use any block of punctuation to separate cycles of letters. All whitespace will be ignored. Examples of valid signatures are `(ab)(bC)(Ca)` and `AAb-bc-C`.

The precise format of splitting surface signatures is described in bib-burton-phd.

### Orientable and Non-Orientable Surfaces (2-manifolds only)

For 2-manifolds, ®ina; can triangulate a connected surface of any topological type. Select either Orientable surface or Non-orientable surface as the type of triangulation, and then enter the genus and the number of punctures that you would like in the surface.

For orientable surfaces the genus represents the number of handles (e.g., the torus has orientable genus 1), and for non-orientable surfaces the genus represents the number of crosscaps (e.g., the Klein bottle has non-orientable genus 2).

### Layered Lens Spaces (3-manifolds only)

This will create a layered lens space with the given parameters. This involves building two layered solid tori and gluing them together along their torus boundaries. Layered lens spaces were introduced by Jaco and Rubinstein bib-0-efficiency, bib-layeredlensspaces and others.

The parameters (`p`, `q`) must be non-negative and coprime, and must satisfy `p`>`q` (although the exceptional case (0, 1) is also allowed). The resulting 3-manifold will be the lens space L(`p`,`q`).

You do not need to separate the lens space parameters with commas: any punctuation, or even just spaces, will suffice.

### &SFSLong;s (3-manifolds only)

This will create an orientable &sfslong; over the 2-sphere with any number of exceptional fibres. ®ina; will choose the simplest construction that it can based upon the given parameters.

The parameters for the &sfslong; must be given as a sequence of pairs of integers (&a1;,&b1;) (&a2;,&b2;) ... (&an;,&bn;), where each pair (&ai;,&bi;) describes a single exceptional fibre. An example is (2,-1) (3,4) (5,-4), which represents the &poincare; homology sphere. The two integers in each pair must be relatively prime, and none of &a1;, &a2;, ..., &an; may be zero.

Each pair (&ai;,&bi;) does not need to be normalised; that is, the parameters may be positive or negative, and &bi; may lie outside the range [0,&ai;). There is no separate twisting parameter; each additional twist can be incorporated into the existing parameters by replacing some pair (&ai;,&bi;) with (&ai;,&ai;+&bi;). Pairs of the form (1,`k`) and even (1,0) are acceptable.

You do not need to separate the &sfslong; parameters with brackets and commas: any punctuation, or even just spaces, will suffice.

### Layered Solid Tori (3-manifolds only)

This will create a layered solid torus with the given parameters. This is a solid torus built from a two-triangle &mobius; band by repeatedly adding new layers of tetrahedra onto the boundary. Layered solid tori were introduced by Jaco and Rubinstein bib-0-efficiency, bib-layeredlensspaces and others.

The three parameters (`a`, `b`, `c`) must be non-negative and coprime, and one must be the sum of the other two. These parameters describe how many times the meridional disc of the solid torus intersects the three edges on the boundary of the triangulation.

You do not need to separate the layered solid torus parameters with commas: any punctuation, or even just spaces, will suffice.

### Orientable Handlebodies (3-manifolds only)

This will create an orientable handlebody of the given genus. This is built by layering tetrahedra onto an appropriate one-vertex once-punctured non-orientable surface (thus generalisating the layered solid torus construction, which essentially layers tetrahedra onto a one-vertex &mobius; band).

The genus may be any non-negative integer.

### I-Bundles, &s1;-Bundles, and Cones (4-manifolds only)

This allows you to build a 4-manifold from an existing 3-manifold triangulation, by making either an I-bundle, an &s1;-bundle, or a cone.

Choose one of I-bundle over…, &s1;-bundle over… or Cone over… as the triangulation type, and then select your 3-manifold triangulation in the Source 3-manifold drop-down box. If your triangulation represents the 3-manifold `M`, then ®ina; will build either the 4-manifold `M` × I, `M` × &s1;, or the cone over `M` respectively.

®ina; is also able to build non-trivial bundles by gluing the two boundaries of `M` × I according to a given monodromy. However, this construction is only accessible through &python; scripting or &cpp; programming.

### Doubling Constructions (All Dimensions)

You can also build new triangulations from old, using various doubling constructions. To do this, you need to have the source triangulation open for viewing. The doubling constructions will then be available through the Triangulation menu.

- If your source triangulation is non-orientable, you can create the orientable double cover by selecting Triangulation Build Double Cover from the menu. If your source triangulation has any orientable components, they will simply be duplicated.

- If your source triangulation has boundary facets, you can create the double over the boundary by selecting Triangulation Build Double Over Boundary from the menu. The new triangulation will consist of two copies of the source triangulation, joined along their boundary facets using the identity map. Any ideal vertices will be left alone (i.e., the ideal boundary components of the two copies will not be joined together). If your source triangulation has any components without boundary facets, they will simply be duplicated.

These doubling constructions will not change the source triangulation. Instead the result will appear as a new triangulation beneath the original in the packet tree.

In general, these doubling constructions do not give oriented triangulations.

Any simplex and/or facet locks in the source triangulation will not prevent you from making doubling constructions; instead any locks will be copied across to the appropriate locations in the new triangulation. So, for example, in the orientable double cover each lock will be duplicated in both sheets, and if you double over the boundary then any locked boundary facets will become locked internal facets of the new triangulation.

### Importing Triangulations

You can import triangulations into ®ina; from other programs, such as &snappeapylink; or &orburl;. This is done through the File Import menu. For details, see the chapter on importing and exporting data.

### Creating a Census

®ina; can build a census of all triangulations satisfying a variety of different constraints. The best way to do this is through the command-line tool `tricensus`.

## Analysis

®ina; offers a wealth of information about triangulations, spread across the many different tabs in the triangulation viewer. Here we walk through the different properties and invariants that ®ina; can compute.

### Identifying the Manifold (2-D and 3-D)

An important feature of 2-manifolds, as opposed to other dimensions, is that the underlying manifold is easy to recognise from its triangulation. For connected 2-manifold triangulations, ®ina; will display the exact 2-manifold at the top of the triangulation viewer, as illustrated below.

For orientable 2-manifolds, the genus refers to the number of handles (e.g., the torus has orientable genus 1). For non-orientable 2-manifolds, the genus refers to the number of crosscaps (e.g., the Klein bottle has non-orientable genus 2).

®ina; will also display the Euler characteristic at the top of the triangulation viewer, marked with the symbol χ. It will show this even for disconnected surfaces also.

For 3-manifold triangulations, ®ina; will try to identify the manifold automatically using a range of relatively fast techniques, though a result is no longer guaranteed. If ®ina; does identify the underlying 3-manifold, this will be shown on the recognition tab. If you do not see a result immediatey, you can of course use all of the machinery that ®ina; offers to probe harder and seek an answer.

For triangulations in dimension ≥ 4, ®ina; does not currently have any automated recognition routines—you will need to manually work with ®ina;'s various combinatorial and algebraic tools to seek an answer.

### Validity, Orientability and Other Basic Properties (All Dimensions)

At the top of each triangulation viewer is a header listing some basic properties of the triangulation (circled in red below).

In this header, the following words might appear:

Closed

Signifies that the link of every vertex is a sphere.

This means that the triangulation has no boundary facets (e.g., no boundary triangles in dimension 3, or no boundary tetrahedra in dimension 4), and that the triangulation also has no ideal vertices.

Ideal bdry

Signifies that at least one vertex of the triangulation is ideal. An ideal vertex is one whose link is a closed manifold but not a sphere.

You can locate any ideal vertices using the skeleton viewers.

Real bdry

Signifies that the triangulation contains one or more boundary facets (i.e., boundary edges, triangles or tetrahedra for a 2-, 3- or 4-manifold respectively).

For 2-manifolds, this is just written as with boundary, since ideal boundary components do not appear until dimension ≥ 3.

Orientable / non-orientable / oriented / not oriented

The words orientable or non-orientable indicate whether or not the triangulation represents an orientable manifold.

If the triangulation is orientable, ®ina; will also tell you whether or not it is oriented; that is, whether the vertex labels on each top-dimensional simplex (e.g., the labels 0,1,2,3 on each tetrahedron in a 3-manifold) induce a consistent orientation for all top-dimensional simplices in the entire triangulation.

If you need a consistent orientation for all top-dimensional simplices but you see orientable but not oriented instead, you can fix this by orienting your triangulation.

Connected / disconnected

The words connected or disconnected indicate whether or not the triangulation forms a single connected component.

Invalid triangulation

Signifies that the triangulation is “broken” to the point where ®ina; cannot do any serious work with it. This never happens in dimension 2, but it can happen with 3- and 4-manifold triangulations, and this can be for one of two reasons:

- some vertex link is neither a closed manifold nor a topological ball;

- as a result of the gluings between top-dimensional simplices, some edge is identified with itself in reverse, or (in 4-D only) some triangle is identified with itself under a non-identity reflection or rotation.

You can locate the offending vertex, edge and/or triangle using the skeleton viewers. If the triangulation is invalid, no other information will appear in the banner.

Empty

Signifies that the triangulation contains no simplices at all. In this case, no other information will appear in the banner.

### Viewing Facet Gluings (All Dimensions)

The Gluings tab shows how the facets of the top-dimensional simplices (i.e., edges of triangles, faces of tetrahedra or facets of pentachora for 2-, 3- and 4-manifolds respectively) are glued to each other in pairs.

The facet gluings are presented in a table. For a `d`-manifold triangulation, each row represents a `d`-simplex, and the (`d`+1) columns on the right represent the (`d`+1) facets of each `d`-simplex. The `d`-simplices are numbered 0,1,2,…, and the (`d`+1) vertices of each `d`-simplex are numbered 0,1,…,`d`.

Each cell of this table represents a single facet of a single `d`-simplex. For instance, in the 3-manifold example illustrated above, the cell circled in orange represents face 123 of tetrahedron 2 (that is, the triangular face formed from vertices 1,2,3 of tetrahedron 2).

The contents of the cell show how the facet is glued. In the example above, the circled cell contains `7 (213)`, indicating that face 123 of tetrahedron 2 is glued to face 213 of tetrahedron 7 using the affine map that matches vertices 1,2,3 of tetrahedron 2 with vertices 2,1,3 of tetrahedron 7 respectively. The same gluing can be seen from the opposite direction in the row for tetrahedron 7.

An empty cell indicates that a facet is not glued to anything at all; that is, the facet forms part of the boundary of the manifold. In the table above there are two boundary triangles: face 012 of tetrahedron 3, and face 123 of tetrahedron 8. In our example these join together to form the torus boundary of the figure eight knot complement.

You can modify the triangulation by typing new facet gluings directly into this table. See the section on modifying triangulations for details.

Any locked simplices and/or facets will appear as yellow cells in the table. See the section on simplex and facet locks for details.

### Skeletal Information (All Dimensions)

The Skeleton tab holds two smaller tabs offering combinatorial information about the skeleton and dual skeleton of the triangulation.

#### Skeletal Components

On the left of the Skeleton→Skeletal Components tab, you will see the total number of faces of each dimension in the triangulation. This includes vertices, edges, triangles, tetrahedra (for 3- and 4-manifolds), and pentachora (for 4-manifolds). On the right of the tab, you will see the total number of components and boundary components in the triangulation, as well as the Euler characteristic.

Next to each total count is a View button. By pressing this, you can see more detailed information about each of the faces, components or boundary components. A full explanation of this detailed information appears below. (The exception is the top-dimensional faces, i.e., the `d`-simplices in a `d`-manifold triangulation—they have no view button because you can examine them in detail on the gluings tab instead.)

##### Euler Characteristic

For 2-manifolds, the Euler characteristic is simply marked χ, and has its usual meaning (vertices − edges + triangles). For 3- and 4-manifolds, ®ina; computes two Euler characteristics:

- χ (Triangulation) measures Euler characteristic in the purely combinatorial sense: that is, the alternating sum of the number of faces of each dimension in the triangulation.

- χ (Manifold) measures Euler characteristic in a more topological sense: this assumes that we have made the manifold compact by truncating all ideal vertices and replacing them with real boundary components. For 3-manifolds, if the triangulation is invalid then we likewise assume that invalid vertices and the midpoints of invalid edges are truncated. For 4-manifolds, if the triangulation is invalid then ®ina; will not compute χ (Manifold) at all.

For a compact 3-manifold or 4-manifold triangulation, both these Euler characteristics should be the same.

##### Viewing Faces

For each facial dimension `k`, if you click on the View button next to the total count of `k`-faces, you will see a table that lists details of each individual `k`-face of the triangulation.

This table contains four columns:

Face #

Identifies each `k`-face with an individual face number.

For each facial dimension `k`, the `k`-faces are numbered consecutively 0,1,2,…. That is, each triangulation has vertices numbered 0,1,2,…, as well as edges numbered 0,1,2,…, as well as triangles numbered 0,1,2,…, and so on.
Type

Gives some basic information about the `k`-face. Text you might see here includes:

Bdry

Indicates that the `k`-face lies entirely within a real boundary component of the triangulation.

Ideal

Indicates an ideal vertex in a 3- or 4-manifold triangulation, i.e., a vertex whose link is a closed manifold but not a sphere.

For an ideal vertex in a 3-manifold triangulation, this column will also identify the precise surface of the vertex link (e.g., torus, Klein bottle, etc.). For an ideal vertex in a 4-manifold triangulation, you can always triangulate the vertex link and study it using all of ®ina;'s 3-manifold machinery.

Invalid

Indicates that this is an invalid face. This can only occur in a 3- or 4-manifold triangulation (not in dimension 2).

An invalid vertex is one whose link is neither a ball nor a closed manifold. An invalid edge is one that is identified with itself in reverse, or (for 4-manifolds) has a link that is neither a sphere nor a ball. An invalid triangle (for 4-manifolds only) is one that is identified with itself under a non-identity reflection or rotation.

If any face is invalid, then the entire triangulation will also be marked as invalid.

Loop

Indicates that this face is an edge whose two endpoints are identified.

If the `k`-face does not have any of the properties listed above, then the second column of the table will be left empty.

There is one exception to this: for triangular faces in 3-manifolds, ®ina; will always use the second column of the table to describe the combinatorial shape of the triangle. Possible shapes include:

Triangle

No vertices or edges of the triangle are identified.

Scarf

Two vertices of the triangle are identified; all edges are distinct.

Parachute

All three vertices of the triangle are identified; all edges are distinct.

&mobius; band

Two edges of the triangle are identified to form a &mobius; band (causing all three vertices to be identified); the third edge remains distinct.

Cone

Two edges of the triangle are identified to form a cone (causing two vertices to be identified); the third edge and third vertex remain distinct.

Horn

Two edges of the triangle are identified to form a cone and all the third vertex is identified with the others; the third edge remains distinct.

Dunce hat

All three edges of the triangle are identified, some with orientable and some with non-orientable gluings.

L(3,1)

All three edges of the triangle are identified using non-orientable gluings; note that this forms a spine for the lens space L(3,1).

Degree

The third column of the `k`-face table lists the degree of each face. This is the number of individual `k`-faces of individual tetrahedra or pentachora (for 3-manifolds or 4-manifolds respectively) that are identified together to make this `k`-face of the triangulation.

Triangles / Tetrahedra / Pentachora (vertices)

The fourth and final column of the `k`-face table indicates precisely which `k`-faces of which tetrahedra or pentachora come together to form each overall `k`-face of the triangulation. An example for edges in a 3-manifold triangulation might be `0 (31), 1 (01), 0 (02)`, which indicates a degree 3 edge obtained by identifying edges 31 and 02 of tetrahedron 0, and edge 01 of tetrahedron 1. Here “edge 31” means the edge running from vertex 3 to vertex 1 of the tetrahedron, and so on.

The order of vertices in this list is important: the previous example also shows that vertex 3 of tetrahedron 0, vertex 0 of tetrahedron 1, and vertex 0 of tetrahedron 0 all represent the same end of the edge.

For edges of 3-manifolds and triangles in 4-manifolds, the order of tetrahedra or pentachora respectively is also important: tetrahedra or pentachora are written in the order in which one sees them when walking around the edge link or triangle link respectively.

##### Viewing Components

If you click on the View button beside the component count, you will see a table listing details of the individual connected components of the triangulation.

The columns in this table are:

Cmpt #

Identifies each connected component with an individual component number, starting from 0 and counting upwards.

Type

Gives some additional information about the individual component, similar to the basic properties that you can view for each triangulation. Text you might see here includes:

Invalid

Indicates that this component is invalid. A component is considered invalid if it contains any invalid vertices, edges or triangles.

Real / Ideal

For valid components of 3-manifold and 4-manifold triangulations, the text Real indicates that the the component contains no ideal vertices, and the text Ideal indicates that the component contains at least one ideal vertex. Recall that an ideal vertex is a vertex whose link is a closed manifold but not a sphere.

Orbl / Non-orbl

Indicates whether the component is orientable or non-orientable.

Size

Gives the number of top-dimensional simplices (i.e., triangles, tetrahedra or pentachora for a 2-, 3- or 4-manifold triangulation respectively) that belong to each connected component.

Triangles / Tetrahedra / Pentachora

Lists the individual top-dimensional simplices that belong to each connected component.

##### Viewing Boundary Components

If you click on the View button beside the total count of boundary components, you will see a table listing the individual boundary components of the triangulation. This includes:

- real boundary components, which in a 2-, 3- or 4-manifold triangulation are formed from one or more boundary edges, triangles or tetrahedra respectively;

- ideal boundary components, which consist of a single vertex whose link is a closed manifold but not a sphere;

- invalid vertices, which only appear in 4-manifold triangulations—these consist of a single invalid vertex that does not already belong to some other boundary component (e.g., a vertex whose link is an ideal 3-manifold triangulation).

The columns in this table are:

Cmpt #

Identifies each boundary component with an individual boundary component number, starting from 0 and counting upwards.

Type

Either Real, Ideal, or Invalid vertex, as outlined above.

This column is not shown for 2-manifold triangulations, which can never have ideal or invalid vertices.

Size

For a real boundary component in a 2-, 3- or 4-manifold triangulation, this gives the number of edges, triangles or tetrahedra respectively that make up the component. For an ideal boundary component or an invalid vertex, this shows the degree of the corresponding vertex.

Edges / Triangles / Tetrahedra / Vertex

For a real boundary component in a 2-, 3- or 4-manifold triangulation, this lists the individual boundary edges, triangles or tetrahedra respectively that it contains. For an ideal boundary component or an invalid vertex, this lists which individual tetrahedron or pentachoron vertices are identified to form the overall ideal or invalid vertex of the triangulation.

Edges, triangles, tetrahedra and vertices are described in the same manner as in the individual face viewers.

#### Graphs (All Dimensions)

The Skeleton→Graphs tab is used to visualise the large-scale structure of the triangulation.

®ina; can display a variety of graphs about the triangulation. Simply select which graph you want to see in the drop-dox box, as indicated below.

The graphs that ®ina; displays include:

Dual graph

The dual graph (which is illustrated above) gives a visual representation of how the top-dimensional simplices of the triangulation are glued together. This is sometimes known as the edge pairing, face pairing or facet pairing graph (for 2-, 3- and 4-manifolds respectively).

Every node of this graph represents a top-dimensional simplex; that is, a triangle, tetrahedron or pentachoron in a 2-, 3- or 4-manifold triangulation respectively. Every arc of this graph represents a gluing between two such simplices along a pair of facets; that is, a pair of edges, triangles or tetrahedra for 2-, 3- and 4-manifolds respectively.

Nodes will be labelled by the corresponding simplex numbers (though these labels can be turned off). The dual graph of a closed `d`-manifold triangulation is always (`d`+1)-valent; for bounded triangulation some nodes may have smaller degree (but never larger).

Any locked simplices will appear as yellow nodes in the dual graph, and any locked internal facets will appear as yellow arcs; see the screenshot below. Boundary facets (locked or unlocked) do not appear in the dual graph at all. See the section on simplex and facet locks for further details on working with locks.

Tree decomposition

A tree decomposition (illustrated below) models the dual graph using a rooted tree. ®ina; uses these tree decompositions in some of its fixed-parameter tractable algorithms bib-turaevviro-fpt.

Each node of the tree decomposition is called a bag, and contains a set of nodes of the dual graph. The width of the tree decomposition is one less than the size of the largest bag; for fast algorithms, this width should be as small as possible. ®ina; will display both the width and the number of bags above the graph itself.

®ina; does not guarantee to find a tree decomposition of the smallest possible width (i.e., it does not compute the precise treewidth of the dual graph, which is an NP-hard problem). Instead it uses fast heuristics that are found to produce relatively low-width tree decompositions in practice.

Nice tree decomposition

This is a variant of the tree decomposition that is less concise, but more useful in practice for algorithms.

In a nice tree decomposition, the root bag is empty, and the leaf bags each contain just one node of the dual graph. Moreover, every non-leaf bag either (i) has exactly one child bag, which it clones and then either adds or removes exactly one node of the dual graph; or (ii) has exactly two identical child bags, which it clones precisely.

As with tree decompositions, ®ina; will display both the width of the nice tree decomposition and the number of bags that it contains. Typically the width will be the same as for the (plain) tree decomposition above, but the number of bags may be significantly larger (though still linear in the overall size of the triangulation).

### Algebraic Invariants (3-D and 4-D)

The Algebra tab holds several smaller tabs that describe different algebraic invariants of the triangulation.

If the triangulation contains ideal vertices, these invariants will be computed assuming the ideal vertices have been truncated, leaving a small boundary component where each ideal vertex used to be.

For 3-manifold triangulations, there is no guarantee that invalid edges (edges glued to themselves in reverse) will be handled correctly. In particular, the projective plane cusps they produce may be ignored.

For 4-manifold triangulations, if the triangulation is invalid for any reason—in particular, if it has invalid edges or triangles—then ®ina; will not attempt to compute any algebraic invariants at all.

#### Homology and Intersection Form

The Algebra→Homology & Fund. Group tab presents several homology groups of the triangulation on the left side of the panel. For 4-manifolds, it also presents invariants of the intersection form.

The homology groups on the left include the first homology group H1(M), and the second homology group H2(M). For 3-manifolds (but not 4-manifolds), several additional groups will be shown: H1(M, ∂M), the relative first homology group with respect to the boundary; H1(∂M), the first homology group of the boundary; and H2(M ; Z2), the second homology group with coefficients in Z2. For 4-manifolds, the third homology group H3(M) will be shown also.

The intersection form will only be presented for closed orientable 4-manifold triangulations. It will be described using the following invariants of a symmetric bilinear integral form:

Type

A bilinear form `Q` has even type if `Q`(`x`,`x`) is even for all `x`, or has odd type otherwise.

Rank

This is the rank of the underlying symmetric square matrix.

Signature

This is the number of positive eigenvalues minus the number of negative eigenvalues of the underlying symmetric square matrix.

For simply connected closed manifolds, these invariants are enough to completely identify the 4-manifold up to homeomorphism. If you wish to see the full underlying symmetric square matrix, you can access this through &python; as `tri.intersectionForm().matrix()` (where `tri` is your 4-manifold triangulation).

#### Fundamental Group

On the right hand side of the Algebra→Homology & Fund. Group tab, you will see the fundamental group presented as a set of generators and relations. ®ina; will also try to recognise the common name of this group (though the recognition code is fairly naïve); if it can then the common name (such as “Z2”) will be displayed above the generators and relations.

®ina; attempts to simplify the presentation as far as it can automatically (using small cancellation theory and Nielsen moves). However, if this is not satisfactory then you can try harder by pressing the Simplify button. By default this will run ®ina;'s algorithms again; however, you can configure this button to use other tools instead (such as ⪆) via the General options panel.

Some further notes regarding simplification:

- If you are using ⪆, it sometimes helps to try simplifying a presentation more than once—sometimes ⪆ finds a better presentation when run a second or third time.

- Past versions of ®ina; used to offer a Relator explosion button to help escape local wells. This is no longer available through the &gui;, but you can still access this functionality through &python;.

If you cannot read the superscript digits in the fundamental group presentation, or if you cannot read the blackboard-bold Z symbols in the homology groups, try disabling unicode symbols in ®ina;'s settings.

If you are using ⪆ for simplification and you wish to see a full transcript of the conversation between ®ina; and ⪆, start ®ina; from the command-line by running `regina-gui`. The entire conversation will be shown in the text console where you ran `regina-gui` command.

#### Turaev-Viro Invariants (3-D)

For 3-manifold triangulations, the Algebra→Turaev-Viro tab allows you to compute Turaev-Viro state sum invariants with arbitrary parameters. These invariants are computed using exact arithmetic in an appropriate cyclotomic field (so there is no need to worry about floating-point inaccuracies).

Each Turaev-Viro invariant is defined by a set of initial data: an integer `r` ≥ 3 and a root of unity &q0; of degree 2`r` (see Section 7 of bib-turaevviro for details).

- For even values of `r`, &q0; must be a primitive (2`r`)th root of unity, and ®ina; computes only one invariant (since all such roots yield essentially the same information).

- For odd values of `r`, &q0; may either be a primitive (2`r`)th root of unity or a primitive `r`th root of unity. ®ina; computes both invariants, and marks them as “odd” and “even” respectively.

To compute a Turaev-Viro invariant, simply enter the integer `r` into the box provided and press Calculate.

The time required to calculate the invariant grows exponentially with `r`, and so it is highly recommended that you start with small values of `r` and work upwards from there.

®ina; will compute the corresponding invariant(s) as requested, and display them in the table below as elements of the corresponding cyclotomic field. These field elements are expressed as polynomials in ζ, where ζ denotes the primitive root of unity &q0; from the initial data.

®ina; will show the (estimated) percentage progress of each calculation as it runs, and will offer a Cancel button that you can press if a calculation appears to be running too slowly.

#### Cellular Information (3-D)

For 3-manifold triangulations, the Algebra→Cellular Info tab contains further information on the standard and dual CW-decompositions, a variety of homology groups and mappings, the Kawauchi-Kojima invariants of the torsion linking form, and comments on where the triangulation might be embeddable.

All invariants of the torsion linking form, plus the final comments on embeddability, use floating-point arithmetic in their computation. While there are good reasons to expect that they will not suffer from round-off errors, you should not treat these invariants as rigorous.

As with the other algebraic invariants described above, all information here refers to the compact manifold obtained by truncating any ideal vertices and leaving real boundary surfaces intact.

The information here includes:

Cells

Lists the number of cells of each dimension for a standard CW-decomposition of the manifold. This is a list of four numbers, counting the 0-cells, 1-cells, 2-cells and 3-cells respectively.

For a closed triangulation (no ideal vertices), this is simply the number of vertices, edges, triangles and tetrahedra. For an ideal triangulation this takes into account the truncation of ideal vertices, and is therefore a little more complex.

Dual cells

Lists the number of cells of each dimension in the dual CW-decomposition. As before, this is a list of four numbers that count the 0-cells, 1-cells, 2-cells and 3-cells in order.

Euler characteristic

Gives the Euler characteristic of the manifold, as computed from the CW-decompositions.

Homology groups

Lists the homology groups of the manifold with coefficients in the integers. The four groups H0, H1, H2 and H3 are listed in order.

Boundary homology groups

Lists the homology groups of the boundary of the manifold, again with coefficients in the integers. The three groups H0, H1 and H2 are listed in order.

H1(∂M → M)

Since the boundary is a submanifold of the original manifold, there is an induced map on the first homology group. This item on the Cellular Info tab describes some properties of this induced map.

Torsion form rank vector

Given an oriented 3-manifold &varM;, there is a symmetric bilinear function t&hom1;(&varM;) x t&hom1;(&varM;) —> Q/Z where t&hom1;(&varM;) is the torsion subgroup of &hom1;(&varM;). It is computed in this way: let &varx; and &vary; be 1-dimensional torsion homology classes. Then &varn;&varx; is the boundary of some 2-cycle &varz; (transverse to &vary;) for some integer &varn;. The torsion linking form of &varx; and &vary; is the oriented intersection number of &varz; and &vary;, divided by &varn;.

Kawauchi and Kojima gave a complete classification of such torsion linking forms bib-kktorsionlinkingform. ®ina; computes the torsion linking form, and implements the Kawauchi-Kojima classification.

This item on the Cellular Info tab is the first of the three Kawauchi-Kojima invariants of the torsion linking form on the torsion subgroup of &hom1;: the torsion form rank vector, which lists the prime power decomposition of the torsion subgroup of &hom1;(&varM;). For example, if &hom1;(&varM;) is a direct sum of &varn; copies of Z20 and &varm; copies of Z18, then the torsion form rank vector would be: 2(&varm; &varn;) 3(0 &varm;) 5(&varn;) since the group is isomorphic to &varm;Z2 + &varn;Z2^2 + 0Z3 + &varm;Z3^2 + &varn;Z5.

Note that the Kawauchi-Kojima invariants are only computed for connected orientable manifolds.

Sigma vector

This item is the second of the three Kawauchi-Kojima invariants described above: the 2-torsion sigma vector, which is relevant for manifolds in which H1 has 2-torsion. It is an orientation-sensitive invariant, where the orientation is chosen so that the first tetrahedron in the triangulation is positively-oriented with its standard parametrisation.

As above, the Kawauchi-Kojima invariants are only computed for connected orientable manifolds.

Legendre symbol vector

This is the third of the three Kawauchi-Kojima invariants of the torsion linking form: the odd p-torsion Legendre symbol vector, originally constructed by Seifert, which is relevant for manifolds in which H1 has odd torsion.

Again, the Kawauchi-Kojima invariants are only computed for connected orientable manifolds.

Comments

This final item on the Cellular Info tab comments upon where the manifold might embed. In particular, it attempts to make deductions about whether the manifold might embed in R3, S3, S4, or a homology sphere. If the manifold is orientable it tests for the hyperbolicity of the torsion linking form. It also performs the Kawauchi-Kojima 2-torsion test, useful for determining if a manifold with boundary does not embed in any homology 4-sphere.

The information in this field might change in future releases of ®ina; (i.e., it might become more detailed as more tests become available). Currently it examines the homology, the Kawauchi-Kojima invariants and some other elementary properties, and uses C. T. C. Wall's theorem that 3-manifolds embed in S5.

These comments are provided for both orientable and non-orientable manifolds. In the non-orientable case they may provide additional information about the embeddability of the orientable double cover.

The paper bib-budney-emb11 illustrates how the information on this tab can be used in studying embedding problems.

### Combinatorial Composition (3-D and 4-D)

For 3-manifold triangulations, the Composition tab offers more detailed information about the combinatorial structure of the triangulation.

Here ®ina; will search for well-structured features within the triangulation, and deduce from them what it can. Sometimes it can recognise the construction and completely identify both the triangulation and the underlying 3-manifold; other times it yields little or no useful information.

For 4-manifold triangulations, there is also a Composition tab but this is much more basic—currently it just offers the isomorphism signature and isomorphism testing.

If your aim is just to determine the underlying 3-manifold by any means possible, see the 3-manifold recognition tab instead. The recognition tab combines the results of this combinatorial recognition with slower but stronger routines, including 3-sphere, 3-ball, solid torus and &txi; recognition, census lookup, and more.

#### Recognising Families of Triangulations

At the very top of the composition tab is a line labelled Triangulation. This is where ®ina; attempts to recognise the entire triangulation from its combinatorial structure.

Specifically: ®ina; knows about many infinite families of triangulations, and if your triangulation belongs to one of these families then ®ina; will detect this and report the results here. ®ina; is particularly good at recognising well-structured triangulations of &sfslong;s and graph manifolds.

If it does recognise your triangulation, ®ina; will display a name for the triangulation that identifies its combinatorial structure precisely. See bib-burton-phd and bib-burton-nor7 for details on the various families of triangulations and what their names and parameters mean.

In most cases, if ®ina; recognises the triangulation then it will (as a result) be able to identify the underlying 3-manifold. This 3-manifold will be reported separately on the recognition tab.

#### Isomorphism Signature

Immediately below the name of the triangulation, ®ina; displays the triangulation's isomorphism signature. An isomorphism signature is a compact sequence of letters, digits and/or punctuation that identifies a triangulation uniquely up to combinatorial isomorphism.

Every triangulation has an isomorphism signature (even disconnected triangulations or triangulations with boundary). The main features of isomorphism signatures are that they are fast to compute, and that two triangulations have the same signature if and only if they are combinatorially isomorphic. See bib-burton-simps3 and bib-burton-pachner-orprime for details.

To convert an isomorphism signature back into a triangulation, you can either create a new triangulation from a signature, or import a list of isomorphism signatures. Be aware that the resulting triangulation might not use the same tetrahedron and vertex labels as the original.

If you have simplex and/or facet locks then these will be incorporated into the isomorphism signature. Specifically, two triangulations will have the same signature if and only if there is a combinatorial isomorphism between them that preserves all simplex and facet locks. If you want an isomorphism signature without locks (e.g., for compatibility with ®ina; 7.3.1 or earlier), then simply use the part of the signature that appears before the period. So, for example, instead of `cPcbbbiht.aq` (the figure eight knot complement with a locked tetrahedron), you would just use `cPcbbbiht` (which represents the figure eight knot complement with no locks at all).

Isomorphism signatures are case-sensitive (i.e., upper-case and lower-case matters). To copy the isomorphism signature to the clipboard, right-click on the signature and a copy action will appear.

#### Combinatorial Building Blocks

In the centre of the composition tab is a large box that describes combinatorial building blocks within the triangulation. ®ina; knows about several families of building blocks (such as layered solid tori), and it will search for these within the triangulation. If it finds any building blocks that it recognises then it will give the details here, including any parameters for the blocks and where they occur within the triangulation.

See bib-burton-phd and bib-burton-nor7 for details on the various families of building blocks that ®ina; understands.

#### Isomorphism / Subcomplex Testing

At the bottom of the composition tab, there is a section for testing combinatorial isomorphism, or testing whether one triangulation is a subcomplex of another. Simply select some other triangulation `T` from the drop-down box (indicated by the arrow in the diagram below).

Each time you select a different triangulation `T` in the drop-down box, ®ina; will immediately test for any of the following relationships:

- whether this triangulation and `T` are isomorphic (i.e., identical up to a relabelling of tetrahedra and their vertices);

- whether this triangulation is isomorphic to a subcomplex of `T` (i.e., `T` can be obtained from this triangulation by adding more tetrahedra and/or gluing more faces together, again with a possible relabelling);

- whether `T` is isomorphic to a subcomplex of this triangulation.

The relationship, if any, will be reported immediately beneath the drop-down box (as in the illustration above, which shows the result of comparing a layered solid torus with a triangulated Seifert fibred space). If a relationship is found, you can click on the Details button for the precise relabelling (i.e., the mapping between tetrahedron labels and between vertices in each tetrahedron).

The isomorphism and subcomplex tests here will ignore any simplex and/or facet locks. If you want to test whether there is an isomorphism that preserves locks, you can always compare the isomorphism signatures (which do incorporate and respect locks).

### High-Level Recognition Routines (3-D)

For 3-manifold triangulations, the Recognition tab attempts to identify the underlying manifold through a variety of techniques, and also computes other high-level properties of the triangulation. It offers a combination of slow but exact procedures (such as 3-sphere, 3-ball, solid torus and &txi; recognition), and fast "opportunistic" procedures such as combinatorial recognition and census lookup.

For large triangulations, many of these properties are not automatically calculated (since some algorithms require worst-case exponential time). If a property is listed as `Unknown`, press the corresponding Calculate button (and be prepared to wait):

The result will appear as soon as the calculation is done:

You might see different properties appear on the Recognition tab, according to whether your triangulation is closed and/or orientable. The different properties that you might see include:

3-sphere

Determines whether this is a triangulation of the 3-sphere. This uses a complete, exact 3-sphere recognition algorithm, i.e., it guarantees to terminate with the correct result. The algorithm is highly optimised, and incorporates techniques from bib-rubin-3sphere1, bib-rubin-3sphere2, bib-thinposition, bib-0-efficiency, bib-burton-quadoct, and bib-bo-branching.

This property is only shown for closed 3-manifolds.

Handlebody

Determines whether this is a triangulation of an orientable handlebody. This test includes 3-ball recognition (genus 0) as well as solid torus / unknot recognition (genus 1).

If this triangulation is an orientable handlebody, then the precise genus will be shown here.

Again this uses a complete, exact algorithm that guarantees to terminate with the correct result (a generalisation of the algorithm described in bib-bo-branching).

This property is only shown for orientable triangulations with boundary. Both real and ideal boundaries are understood here: any ideal vertices will be treated as though they were truncated.

&txi;

Determines whether this is a triangulation of the product of the torus with an interval. Once again this uses a complete, exact algorithm that guarantees to terminate with the correct result; this is a modification of an algorithm due to Haraway bib-txi.

This property is only shown for orientable triangulations with boundary. Both real and ideal boundaries are understood here, and the boundary may even be a mix of both. Any ideal vertices will be treated as though they were truncated.

Zero-efficient

Indicates whether the triangulation is 0-efficient. A triangulation is 0-efficient if its only normal spheres and discs are vertex linking, and if it has no 2-sphere boundary components. If a closed orientable triangulation is not 0-efficient (and has more than two tetrahedra), this indicates that either the triangulation is non-minimal or the underlying 3-manifold is non-prime. See bib-0-efficiency for details on 0-efficiency.

This property is only shown for ®ina;'s native triangulation packets, not its hybrid &snappea; triangulation packets.

Splitting surface

Determines whether the triangulation has a splitting surface. A splitting surface is a compact normal surface consisting of precisely one quad per tetrahedron and no other normal (or almost normal) discs. See bib-burton-phd for details.

This property is only shown for ®ina;'s native triangulation packets, not its hybrid &snappea; triangulation packets.

Irreducible

Determines whether the triangulation represents an irreducible manifold. A closed 3-manifold is irreducible if every embedded sphere bounds a ball.

This property is only shown for valid triangulations of closed, orientable and connected 3-manifolds.

Haken

Determines whether the triangulation represents an Haken manifold. A closed orientable irreducible 3-manifold is Haken if it contains an embedded closed two-sided incompressible surface.

This property is only shown for valid triangulations of closed, orientable, connected and irreducible 3-manifolds.

Strict angle structure

Determines whether the triangulation supports a strict angle structure. This is an angle structure in which all angles are strictly positive; see the chapter on angle structures for details.

This property is only shown for ideal triangulations with no real boundary triangles.

Hyperbolic

Attempts to certify that the underlying 3-manifold is hyperbolic or non-hyperbolic. Any result that is shown here will be rigorous (i.e., based on exact arithmetic, and not subject to floating point error).

For example, ®ina; might certify that a 3-manifold is hyperbolic because it finds a strict angle stucture bib-futer-angled, or ®ina; might certify that a 3-manifold is non-hyperbolic because it passes handlebody recognition as described above.

This property is only shown for ideal triangulations with no real boundary triangles.

Manifold

This field, which is always shown at the bottom of the panel, combines the exact algorithms above with the combinatorial recognition routines from the composition tab, in a multi-pronged attempt to conclusively identify the underlying 3-manifold. If the 3-manifold can be determined by any of these methods, it will be listed here.

Census

®ina; ships with several large census databases, containing hundreds of thousands of 3-manifold triangulations. This field, also shown at the bottom of the panel, will search for your triangulation across all of these databases. ®ina; will search for any isomorphic copy (i.e., it does not matter if your tetrahedra and/or vertices have been relabelled).

Currently these databases include: closed prime &ppirr; 3-manifold triangulations (≤ 11 tetrahedra, both orientable and non-orientable) bib-burton-genus; cusped hyperbolic 3-manifold triangulations (≤ 9 tetrahedra, both orientable and non-orientable) bib-burton-complete; closed hyperbolic 3-manifold triangulations (the Hodgson-Weeks census) bib-closedhypcensus; plus hyperbolic knot and link complements (as tabulated by Joe Christy).

None of the tests on this tab will attempt a connected sum decomposition, so if the 3-manifold is non-prime then it will probably not be recognised. Try running a connected sum decomposition first, and then recognising each of the prime summands.

Unlike the exact algorithms such as 3-sphere recognition and handlebody recognition (which may be slow but will work in all settings), the "opportunistic" combinatorial recognition and census lookup will benefit from a well-structured triangulation. If ®ina; does not recognise the 3-manifold, try simplifying the triangulation, or performing elementary moves.

### &snappea; Calculations (3-D)

&snappea; is an excellent piece of software with a strong focus on hyperbolic 3-manifolds, originally by Jeffrey Weeks and now further developed by Marc Culler and Nathan Dunfield as the &python;-based &snappylink;. Portions of the &snappea; kernel are built into ®ina;, which allows ®ina; to compute information related to hyperbolic structures.

Be aware that much of the information gained through the &snappea; kernel is inexact. In particular, it may be subject to numerical instability or floating point error. If you wish to rigorously certify that a manifold is hyperbolic, see the recognition tab instead (which performs exact calculations using angle structures).

There are two ways in which you can use &snappea; within ®ina;:

- If you are working with one of ®ina;'s native 3-manifold triangulation packets, you can view some basic information (the solution type and the hyperbolic volume) through the triangulation &snappea; tab, as described below.

- If you are working with one of ®ina;'s hybrid &snappea; triangulation packets, you can view richer information on hyperbolic structures (including tetrahedron shapes), and you can perform Dehn fillings on the cusps. See the chapter on &snappea; triangulations for details.

For ®ina;'s native 3-manifold triangulations, the &snappea; tab will ask &snappea; to solve for a complete hyperbolic structure, and will then display the following basic summary information:

Solution Type

This describes the type of solution that &snappea; found to the hyperbolic gluing equations. For explanations of the possible solution types, see the chapter on &snappea; triangulations.

Volume

This gives the volume of the underlying 3-manifold, along with the estimated number of decimal places of accuracy. This accuracy measure is an estimate only (based on the differences between terms in Newton's method).

If you would like a richer interface with the &snappea; kernel, you can press the button marked Convert to a &snappea; triangulation. This will build a new hybrid &snappea; triangulation packet, which will appear beneath the original (native ®ina;) triangulation in the packet tree. See the &snappea; triangulations chapter for further information about this conversion process, or about what you can do with &snappea; triangulations in general.

### Decomposition (All Dimensions)

®ina; implements some high-level algorithms for decomposing manifolds into “atomic pieces”. These include the following:

#### Connected Components

If your triangulation is disconnected, you may wish to break it into its connected components. To do this, select Triangulation Extract Components . You must open the triangulation for viewing before you can do this.

®ina; will create several new triangulations, one for each connected component. These will be added beneath the original in the packet tree. Your original (disconnected) triangulation will remain unchanged.

Any simplex and/or facet locks will be copied across to the relevant component triangulations.

#### Connected Sum Decomposition (3-D)

For 3-manifolds, if your triangulation is closed and connected, ®ina; can decompose it into a connected sum of prime, non-sphere 3-manifolds. To do this, select 3-D Triangulation Connected Sum Decomposition from the menu. You must open the triangulation for viewing before you can do this.

Again, ®ina; will create several new triangulations, one for each prime summand. These will be added beneath the original in the packet tree, and your original triangulation will remain unchanged. If your original triangulation is a 3-sphere then no prime summands will be produced at all.

With a few exceptions (RP3 and the twisted and non-twisted products S2×S1), each of the new triangulations is guaranteed to be 0-efficient (i.e., they will have no non-vertex-linking normal spheres). The underlying algorithm is based on Jaco-Rubinstein crushing bib-crushing-dcg bib-0-efficiency, and uses 3-sphere recognition to ensure that none of the summands are trivial.

If your triangulation is non-orientable and contains an embedded two-sided projective plane, then the connected sum decomposition algorithm might fail (but it might still succeed) bib-crushing-dcg. If it does fail then ®ina; will detect this and inform you.

Be aware that, even if your triangulation is oriented, the summands might not inherit this orientation. In particular, given the way that the crushing algorithm works, it is not clear how to maintain the orientations of any `L(3,1)` summands.

If you have any simplex and/or facet locks, these will simply be ignored (since the original triangulation will be left unchanged). The individual summands might have very different combinatorial structures from the original triangulation, and so the summand triangulations will not have any locks at all.

Connected sum decomposition can be very slow for larger triangulations, since the underlying normal surface algorithms have worst-case exponential running time.

### Triangulating Vertex Links (3-D and 4-D)

In a 3-manifold or 4-manifold triangulation, if you wish to examine a vertex link in more detail then you can explicitly construct it by selecting Triangulation Vertex Links from the menu. This will build the link of the selected vertex as a new 2-manifold or 3-manifold triangulation respectively.

You will be asked which vertex link you wish to construct, as illustrated below. For each available vertex, the drop-down list will show the vertex number (as seen in the skeleton viewer), along with details of the individual tetrahedron or pentachoron vertices that combine to form that particular vertex of the triangulation.

Once the vertex link is constructed, the resulting 2-manifold or 3-manifold trianguation will appear beneath the original 3-manifold or 4-manifold triangulation in the packet tree.

### Triangulating Boundary Components (3-D and 4-D)

Likewise, if you wish to study a boundary component of a 3-manifold or 4-manifold in detail, you can explicitly construct it by selecting Triangulation Boundary Components . from the menu. This will build the selected boundary component as a new 2-manifold or 3-manifold triangulation respectively.

You will be asked which boundary component you wish to construct, as illustrated below. You can triangulate both real boundary components (formed from boundary triangles or tetrahedra) and ideal boundary components (represented by vertices whose links are closed 2-manifolds or 3-manifolds other than spheres).

In the drop-down list, boundary components will be listed using their boundary component numbers, as seen in the skeleton viewer. In addition, each real boundary component will include details of its constituent boundary triangles or tetrahedra, and each ideal boundary component will include details of the ideal vertex whose link it represents.

Once the boundary component is constructed, the resulting 2-manifold or 3-manifold trianguation will appear beneath the original 3-manifold or 4-manifold triangulation in the packet tree.

## Modification

There are many ways of modifying a 3-manifold triangulation. Many of these can be found in the various Triangulation menus, which appear when you open a triangulation for viewing.

If you open one triangulation for viewing but then select another in the packet tree, all modifications will apply to the triangulation that you have open for viewing.

### Editing Gluings (All Dimensions)

The simplest way to modify a triangulation is to open the Gluings tab and edit the facet gluings table directly. This allows you to change the gluings between triangles, tetrahedra or pentachora for 2-, 3- and 4-manifolds respectively. See the notes on viewing facet gluings for details on how to read the table.

You can add and remove triangles, tetrahedra or pentachora using the + and − buttons below the table. To change the gluings between existing triangles, tetrahedra or pentachora, just type the new gluings directly into the table. If you want to remove a gluing (i.e., make a facet part of the triangulation boundary), simply delete the contents of the cell.

If you like, you can also name triangles, tetrahedra or pentachora to help keep track of their roles within the triangulation. Click on the cell in the leftmost column (containing the number that identifies that triangle, tetrahedron or pentachoron), and type a new name directly into the cell.

If you are using simplex and/or facet locks, you can add or remove locks by right-clicking on the corresponding table cells. If your triangulation does include locks, there will also be a button beneath the table that can remove all locks at once. See the section on simplex and facet locks for more information.

### Automatic Simplification (3-D and 4-D)

®ina; has a rich set of local moves for simplifying a triangulation without changing the underlying manifold. If you select Triangulation Simplify from the menu or press the corresponding toolbar button, then ®ina; will use a combination of these moves to reduce the triangulation to as few tetrahedra (in 3-D) or pentachora (in 4-D) as it can bib-burton-hyamfest. Whilst this procedure is fast and often very effective, there is no guarantee that this will produce the smallest possible triangulation: ®ina; might get stuck at a local minimum from which it cannot see how to escape.

If your triangulation has boundary, this process will also try to make the number of boundary triangles (in 3-D) or boundary tetrahedra (in 4-D) as small as it can, though again there is no guarantee of reaching a global minimum.

If your triangulation is oriented, then this fast simplification process will always preserve the orientation of your triangulation. This is not true of the exhautive process described below (when you press the Try Harder button)—that exhaustive process can have the side-effect of flipping the orientations of one or more top-dimensional simplices.

Simplification in ®ina; will always respect simplex and facet locks.

In dimension 4, simplification is significantly more difficult than it is in lower dimensions (indeed, finding a minimal triangulation is algorithmically undecidable). ®ina; therefore works harder in dimension 4 to climb out of local minima, and for larger triangulations this can take some time. Because of this, in dimension 4 ®ina; will show the current state of progress, and you can cancel at any time. If you do cancel then ®ina; will use whatever improvements it has already found so far.

#### Exhaustive Simplification

If ®ina; cannot simplify the triangulation using the fast process described above, then it will offer to perform a slower, more exhaustive search. Press the Try harder button, as shown below:

At this point, ®ina; will begin an exhaustive search through the Pachner graph (i.e., the graph that relates all triangulations of the underlying manifold through Pachner moves):

You can stop this search at any time by pressing the Cancel button.

For 3-manifolds, ®ina; will only try 2-3 and 3-2 Pachner moves in this exhaustive search. For 4-manifolds, ®ina; will try all possible Pachner moves (1-5, 2-4, 3-3, 4-2, and 5-1).

Since the Pachner graph is infinite, ®ina; will only search through intermediate triangulations of a certain maximum size. If this still fails, it will offer to search further, and you can press Keep trying to continue the search using larger intermediate triangulations than before. This cycle of ever-expanding searches will continue for as long as you like: ®ina; will only stop if you decline to keep searching, or you cancel a search while it is running, or it finds a smaller triangulation.

Be warned: unlike the fast simplification that happens when you first press the Simplify button or menu item, this exhaustive search through the Pachner graph does not preserve orientation. If your triangulation is oriented, this exhaustive search can flip the orientations of one or more top-dimensional simplices, and indeed the resulting triangulation might not be oriented at all.

This exhaustive simplification will however always respect simplex and facet locks (like the fast simplification process before it).

When searching the Pachner graph, both the time and memory consumption grow at a super-exponential rate relative to the number of tetrahedra. If you continue to press Keep trying over and over, you may well run out of time or memory (or both).

### Manual Simplification: Elementary Moves (All Dimensions)

Instead of using automatic simplification, you might wish to modify your triangulation manually one step at a time. You can do this using elementary moves, which are small local modifications to the triangulation that preserve the underlying manifold. To perform elementary moves, select Triangulation Elementary Moves… from the menu or press the corresponding toolbar button.

This will bring up a box containing all the elementary moves that can be performed upon your triangulation. There are many different types of moves available, and this list may continue to grow with future releases of ®ina;.

For each type of move, you will be offered a drop-down list of locations at which the move can be performed. If a move is disabled (greyed out), this means there are no suitable locations in your triangulation for that move type.

Select a move, and then press Apply to perform it. You may continue to apply one move after another. When you are done, press Close to close the elementary move box.

If your triangulation is oriented, these moves will always preserve the orientation of your triangulation.

These moves will also respect simplex and facet locks—any move that would violate a lock will not be offered in the relevant drop-down list.

Below we give a brief summary of the various types of move that are available in each dimension. The full details are in the &api; documentation, and for 3-manifolds you can also read about them in plain English bib-burton-hyamfest.

#### Dimension 2

For 2-manifold triangulations, ®ina; offers the following selection of moves:

3-1 Move

Replaces three triangles surrounding a degree 3 vertex with a single triangle.

2-2 Move

Replaces two triangles joined along a common edge with two different triangles joined along a new edge that crosses through the original edge.

1-3 Move

Replaces one triangle with three triangles that meet at a new internal degree 3 vertex.

2-0 Move (Vertex)

Takes two triangles that meet at a degree 2 vertex and squashes them flat.

Shell Boundary

Removes an “unnecessary triangle” that sits along the boundary of the triangulation.

#### Dimension 3

For 3-manifold triangulations, ®ina; offers the following selection of moves:

4-1 Move

Replaces four tetrahedra meeting at a degree 4 vertex with a single tetrahedron.

3-2 Move

Replaces three tetrahedra joined along a degree 3 edge with two tetrahedra joined along a triangle.

2-3 Move

Replaces two tetrahedra joined along a triangle with three tetrahedra joined along a degree 3 edge.

1-4 Move

Replaces one tetrahedron with four tetrahedra that meet at a new internal degree 4 vertex.

4-4 Move

Replaces four tetrahedra joined along a degree 4 edge with four tetrahedra joined along a new degree 4 edge that points in a different direction.

2-0 Move (Edge)

Takes two tetrahedra joined along a degree 2 edge and squashes them flat.

2-0 Move (Vertex)

Takes two tetrahedra that meet at a degree 2 vertex and squashes them flat.

2-1 Move

Merges the tetrahedron containing a degree 1 edge with an adjacent tetrahedron.

Open Book

Takes an internal triangle with two boundary edges and “unglues” that triangle, creating two new boundary triangles and exposing the tetrahedra inside to the boundary.

Close Book

Folds together two adjacent boundary triangles around a common boundary edge, with the result of simplifying the boundary.

Shell Boundary

Removes an “unnecessary tetrahedron” that sits along the boundary of the triangulation.

Collapse Edge

Takes an edge between two distinct vertices and collapses it to a point. Any tetrahedra that contained the edge will be “flattened away”.

#### Dimension 4

For 4-manifold triangulations, ®ina; offers the following selection of moves:

5-1 Move

Replaces five pentachora meeting at a degree 5 vertex with a single pentachoron.

4-2 Move

Replaces four pentachora joined along a degree 4 edge with two pentachora glued together along a tetrahedron.

3-3 Move

Replaces three pentachora joined along a degree 3 triangle with three pentachora joined along a new degree 3 triangle that is aligned in a different direction.

2-4 Move

Replaces two pentachora glued together along a tetrahedron with four pentachora joined along a new degree 4 edge.

1-5 Move

Replaces one pentachoron with five pentachora that meet at a new internal degree 5 vertex.

4-4 Move

Replaces four pentachora joined along a degree 4 edge with four pentachora joined along a new degree 4 edge that is aligned in a different direction.

2-0 Move (Triangle)

Takes two pentachora joined along a degree 2 triangle and squashes them flat.

2-0 Move (Edge)

Takes two pentachora joined along a degree 2 edge and squashes them flat.

2-0 Move (Vertex)

Takes two pentachora that meet at a degree 2 vertex and squashes them flat.

Open Book

Takes an internal tetrahedron with one, two or three boundary triangles and “unglues” that tetrahedron, creating two new boundary tetrahedra and exposing the pentachora inside to the boundary.

Shell Boundary

Removes an “unnecessary pentachoron” that sits along the boundary of the triangulation.

Collapse Edge

Takes an edge between two distinct vertices and collapses it to a point. Any pentachora that contained the edge will be “flattened away”.

Snap Edge

Takes an edge between two distinct vertices and snaps its endpoints together. This involves taking a triangle that meets this edge and folding the other two edges of this triangle together.

### Improving Treewidth (3-D)

Instead of trying to reduce the number of top-dimensional simplices, you can also ask ®ina; to try to reduce the treewidth of the triangulation. Treewidth is a measure of how tree-like the dual 4-valent graph is, and reducing the treewidth is important because it can significantly speed up difficult computations such as Turaev-Viro invariants.

To reduce the treewidth, select 3-D Triangulation Improve Treewidth from the menu or press the corresponding toolbar button.

®ina; will begin to explore the Pachner graph in search of a smaller treewidth diagram, in a similar manner to the exhaustive simplification process described above. Like exhaustive simplification, ®ina; will occasionally stop and offer to expand its search; also, like exhaustive simplification, you can cancel the search at any time.

It is important to understand that ®ina; does not compute the precise treewidth of a triangulation (i.e., the minimum width of a tree decomposition), since this is an NP-hard problem. Instead it uses fast heuristics to find a low-width tree decomposition for a given triangulation, and it is this “heuristic width” that will be reduced.

As with exhaustive simplification, this operation does not preserve the orientation of an oriented triangulation: it could flip the orientations of one or more top-dimensional simplices, and the resulting triangulation might not be oriented at all.

This operation does respect simplex and facet locks.

As with exhaustive simplification, both time and memory consumption grow at a super-exponential rate as the search expands.

### 0-Efficiency (3-D)

A 3-manifold triangulation is 0-efficient if its only normal spheres and discs are vertex linking, and if it has no 2-sphere boundary components bib-0-efficiency. 0-efficient triangulations have significant theoretical and practical advantages, and often use relatively few tetrahedra.

If your triangulation is closed, orientable and connected, you can convert it into a 0-efficient triangulation of the same 3-manifold by selecting 3-D Triangulation Make 0-Efficient .

If your triangulation represents a composite 3-manifold then it cannot be made 0-efficient—in this case a full connected sum decomposition will be inserted beneath your triangulation in the packet tree, and your original triangulation will be left unchanged.

There are also two exceptional prime orientable manifolds that cannot be made 0-efficient: RP3 and S2×S1. ®ina; will notify you if your triangulation represents one of these manifolds.

Be aware that this operation might not preserve orientation. In particular, given the way that the 0-efficiency algorithm works, it is not clear how to maintain the orientation of the lens space `L(3,1)` (or any `L(3,1)` summands of a composite manifold).

This operation also does not work well with simplex and facet locks, since it might require large-scale changes to the triangulation (or even possibly a wholesale replacement of the triangulation), as opposed to simpler combinatorial moves or operations. Therefore, if there are any locks in your triangulation:

- these locks will not prevent the operation from taking place;

- if the triangulation does change directly, then all locks will be removed entirely;

- if the triangulation represents a composite manifold, then the summands that are inserted into the packet tree will likewise have no locks at all;

- in all cases where the original triangulation is not changed, its locks will be kept unchanged also.

The algorithm to make a triangulation 0-efficient runs in worst-case exponential time, though it is often still extremely fast in practice. If your triangulation is large, you should consider whether automatic simplification will suffice: this is much faster at reducing the number of tetrahedra, and often produces a 0-efficient result. You can test the result for 0-efficiency via the recognition tab.

### Truncating Vertices (3-D and 4-D)

®ina; can convert ideal boundary components (formed from individual vertices with closed non-spherical vertex links) into real boundary components (formed from boundary triangles in 3-D, or boundary tetrahedra in 4-D). To do this, select Triangulation Truncate Ideal Vertices from the menu or press the corresponding toolbar button. ®ina; will subdivide the triangulation and delete a small neighbourhood of each ideal vertex. Any invalid vertices will be truncated also.

Be aware that, after truncating ideal vertices, the triangulation will not be oriented (even if it was before).

If your triangulation has any simplex and/or facet locks, then ®ina; will refuse to truncate ideal vertices (since every top-dimensional simplex and every facet could potentially be subdivided).

In dimension 3 you can also truncate individual vertices, regardless of whether they are ideal or not. To do this, select Triangulation Truncate Single Vertex… from the menu. You will be asked which vertex you wish to truncate.

As before, the resulting triangulation will not be oriented; moreover, if you have any simplex and/or facet locks then ®ina; will refuse to truncate individual vertices at all.

Truncating vertices can greatly increase the size of the triangulation (this is a side-effect of the subdivision). After you truncate vertices, you will probably want to simplify your triangulation.

### Converting Real to Ideal Boundaries (3-D and 4-D)

As a converse to truncation, you can also convert real boundary components (formed from boundary triangles in 3-D, or boundary tetrahedra in 4-D) into ideal boundary components (formed from vertices with closed non-spherical vertex links). To do this, select Triangulation Make Ideal from the menu or press the corresponding toolbar button.

Each real boundary component will be “coned” to a new ideal vertex: in 3-D this means adding one new tetrahedron for each boundary triangle, or in 4-D one new pentachoron for each boundary tetrahedron.

Your boundary components will all become ideal, but there are some caveats:

- Your triangulation will contain new ideal vertices as described above, but also internal vertices whose links are spheres. To get rid of these internal vertices, try simplifying your triangulation.

- Any spherical boundary components will disappear entirely; that is, they will be filled in with balls.

Be aware that, if your triangulation is oriented, it might not be oriented after this operation is complete.

This operation will however respect any simplex and/or facet locks. Specifically, if any boundary facets are locked then ®ina; will refuse to convert real to ideal boundary.

### Subdivision (All Dimensions)

You can perform a barycentric subdivision on your triangulation by selecting Triangulation Barycentric Subdivide from the menu or pressing the corresponding toolbar button. In 2-D this involves splitting each original triangle into 6 = 3! smaller triangles, with new vertices added at the centroid of each original triangle and the centre of each original edge. In 3-D this involves splitting each original tetrahedron into 24 = 4! smaller tetrahedra, with new vertices at the centroid of each original tetrahedron, triangle and edge. In 4-D, each original pentachoron splits into 120 = 5! smaller pentachora, with new vertices added in a similar fashion.

If your triangulation is oriented, then barycentric subdivision will preserve the orientation of your triangulation.

If your triangulation has any simplex and/or facet locks, then ®ina; will refuse to subdivide (since every top-dimensional simplex and every facet would be affected).

### Orienting and Reflecting Triangulations (All Dimensions)

If your triangulation is orientable but not oriented, you may wish to reorder the vertices of each top-dimensional simplex (e.g., vertices 0,1,2,3 of each tetrahedron in a 3-manifold) so that adjacent simplices have consistent orientations. To do this, select Triangulation Orient from the menu or press the corresponding toolbar button.

You can reorder the vertices of each top-dimensional simplex to have the opposite orientation by selecting Triangulation Reflect from the menu or pressing the corresponding toolbar button. Regardless of whether the triangulation is orientable and/or oriented, every top-dimensional simplex will have its orientation reversed. This will change the vertex numbers within each top-dimensional simplex, but not the simplex numbers themselves.

If your triangulation has any simplex and/or facet locks, then both of these operations (orienting and reflecting) will maintain these locks (i.e., the locks will be transformed correctly according to whatever relabelling takes place).

As a note, you can also create the orientable double cover of a non-orientable triangulation. Since ®ina; 7.4, this operation no longer changes the triangulation directly; instead it creates a new triangulation beneath the original in the packet tree.

### Puncturing (3-D)

You can puncture a 3-manifold triangulation; that is, remove a small ball from its interior and retriangulate. To do this, select 3-D Triangulation Puncture from the menu.

This will work correctly regardless of whether the triangulation is closed, ideal, and/or has real boundary triangles. There will be a new 2-sphere boundary, formed from two new boundary triangles.

If your triangulation is oriented, then puncturing will always preserve the orientation of your triangulation.

If you have any simplex and/or facet locks on your triangulation, these will not prevent you from puncturing the triangulation. This is because the puncturing algorithm works in a safe way that preserves all pre-existing top-dimensional simplices, facets and/or boundary facets, which means that locks will never be violated.

### Drilling Edges (3-D)

You can also drill out a small regular neighbourhood of an edge of your triangulation. To do this, select 3-D Triangulation Drill Edge… from the menu.

You will be asked which edge to drill out, as illustrated below. For each available edge, the drop-down list shows the edge number (as seen in the skeleton viewer), along with details of the individual tetrahedron edges that combine to form that edge of the triangulation. Boundary edges will not appear in this list, since drilling a boundary edge has no topological effect.

How ®ina; drills the edge will depend on the type of edge that you select:

- Where possible, ®ina; will produce an ideal triangulation (so the new boundary component produced by the drilling becomes an ideal vertex in the resulting triangulation).

- If necessary, ®ina; will create real boundary components (formed from unglued triangular faces of tetrahedra). This happens, for instance, when the edge runs between two distinct internal vertices (so the drilling produces a sphere boundary).

- If drilling would have no topological effect at all, then ®ina; will do nothing, and instead show a message explaining why. This happens, for example, if the chosen edge connects an internal vertex to a boundary component (either real or ideal).

- If the edge runs between two boundary components where at least one is real, then ®ina; will refuse to drill (since this could produce an enormous number of tetrahedra). You could try converting your triangulation to an ideal triangulation instead, since ®ina; will happily drill an edge between two ideal vertices.

Unlike most operations on triangulations, drilling an edge will not modify the original triangulation; instead the resulting triangulation will be inserted beneath the original in the packet tree. This is to keep things easy to manage if (for example) you wish to try drilling out several different edges from the same triangulation.

If your triangulation is oriented, then drilling an edge will always preserve the orientation of your triangulation.

If you have any simplex and/or facet locks on your triangulation, these will not prevent you from drilling edges. This is because, like puncturing, the drilling algorithm works in a safe way that preserves all pre-existing top-dimensional simplices, facets and/or boundary facets, which means that locks will never be violated.

### Building Connected Sums (3-D)

You can combine two 3-manifold triangulations by forming their connected sum. This will convert some triangulation `X` into the connected sum `X` # `Y` for some other triangulation `Y` (note that `Y` is allowed to be the same as `X`). If both `X` and `Y` are oriented triangulations then the connected sum will respect these orientations, and will be oriented also.

The triangulation `X` must be one of ®ina;'s native triangulation packets, since `X` will be modified directly. The triangulation `Y` may be either a native triangulation packet or a hybrid &snappea; triangulation, since `Y` will not be modified.

To form this connected sum, first open the the triangulation `X` for editing, and then select 3-D Triangulation Connected Sum With… from the menu.

®ina; will ask you which other triangulation to sum with; in other words, ®ina; will ask you for the triangulation `Y`.

The triangulation `X` will be changed directly into the connected sum. The result will most likely contain multiple vertices, and you may wish to simplify the resulting triangulation before proceeding further.

If both of the triangulations that you are summing are oriented, then the result will preserve the original orientations.

If either of the triangulations that you are summing have simplex and/or facet locks, these will not prevent you from forming a connected sum. This is because the summation algorithm works in a safe way that preserves all pre-existing top-dimensional simplices, facets and/or boundary facets, which means that locks will never be violated.

### Building Disjoint Unions (All Dimensions)

You can also combine two 3-manifold triangulations by forming their disjoint union. This will convert some triangulation `X` into the union `X` U `Y` for some other triangulation `Y` (note that `Y` is allowed to be the same as `X`). Essentially, this just inserts a copy of `Y` into `X`. If both `X` and `Y` are oriented triangulations then the union will respect these orientations, and will be oriented also.

Again, the triangulation `X` must be one of ®ina;'s native triangulation packets, since `X` will be modified directly. The triangulation `Y` may be either a native triangulation packet or a hybrid &snappea; triangulation, since `Y` will not be modified.

To form this disjoint union, first open the the triangulation `X` for editing, and then select 3-D Triangulation Insert Triangulation… from the menu.

®ina; will ask you which other triangulation to insert; in other words, ®ina; will ask you for the triangulation `Y`.

The triangulation `X` will be changed directly into the disjoint union `X` U `Y`.

If both of the original triangulations are oriented, then (trivially) the result will preserve the original orientations.

Any simplex and/or facet locks in the original triangulations will be included in the resulting triangulation also.

## Simplex and Facet Locks

As of ®ina; 7.4, you now have the ability to lock parts of the combinatorial structure of a triangulation. For example, you might have a 3-manifold built from two different geometric pieces separated by a two-triangle torus, and you might want to lock that torus so that any operations on your triangulation work with the two pieces independently, without losing the clear combinatorial separation between them.

In general, a lock will prevent ®ina; from modifying some part(s) of your triangulation when making modifications. In particular, these locks are enforced when editing gluings, making elementary moves, simplifying the triangulation, or improving its treewidth.

®ina; supports two kinds of locks: simplex locks and facet locks.

- A simplex lock applies to a top-dimensional simplex in your triangulation (e.g., a tetrahedron in a 3-manifold triangulation, or a pentachoron in a 4-manifold triangulation).

  A locked simplex cannot be removed completely (e.g., by manually removing it from the gluings table, or via moves such as edge collapses or 2-0 moves). It cannot be subdivided (e.g., by a 1-4 Pachner move in a 3-manifold triangulation, or via barycentric subdivision). It also cannot be merged into other top-dimensional simplices (e.g., by a 2-3 or 3-2 Pachner move in a 3-manifold triangulation).

- A facet lock applies to a (`d`-1)-simplex in a `d`-dimensional triangulation (e.g., a triangle in a 3-manifold triangulation, or a tetrahedron in a 4-manifold triangulation). The example above of locking a two-triangle torus in a 3-manifold triangulation would require two facet locks (one for each triangle).

  The rules for locked facets are a little more complex:

  - A locked facet cannot be changed between boundary versus internal due to gluing or ungluing. That is, you cannot glue a locked boundary facet to some other top-dimensional simplex (making it internal), and you cannot unglue the top-dimensional simplices that meet on either side of a locked internal facet (converting it into two new boundary facets). However, see the notes below on flattening—an operation that is allowed, and which might convert a locked internal facet into a boundary facet.

  - A locked facet cannot be removed completely (e.g., because it is internal to the region where a Pachner move takes place, or internal to the region that is removed completely by a 2-0 move or edge collapse, or because it is a boundary facet whose top-dimensional simplex is being removed by a boundary shelling operation).

  - Finally, a locked facet cannot be subdivided (e.g., via barycentric subdivision).

  However, there are some important cases where operations are explicitly allowed around locked facets:

  - We do allow moves on the triangulation that topologically “flatten” a region beside a locked facet `F`, as long as `F` survives topologically. For example, we allow 2-0 moves or edge collapses that merge a locked facet `F` with a parallel facet `G`, even if this changes `F` from internal to boundary (because `F` was was originally internal but `G` was originally boundary). Likewise, we allow boundary shellings that expose an internal locked facet to the boundary (because this is considered a “topological flattening”, not just an arbitrary ungluing). In all such cases, the lock will “move” with `F` to its new (possibly merged, possibly boundary) location.

  - We also allow moves that “pry open” a locked facet `F` to become a pair of parallel facets `F1` and `F2` between which we insert new material. This operation is used (for example) when building connected sums, or when drilling edges. In such a scenario, the lock will simply move across to one of `F1` or `F2`. In particular, if `F` was originally a boundary facet then the lock will move to whichever of `F1` or `F2` is still boundary after the operation is complete.

As noted above, locks are enforced in all operations that use local moves (e.g., automated simplification or treewidth improvement). However, some operations are less easy to decompose into simple combinatorial “pieces”, and so these might handle locks differently. For example: truncation of vertices will not be allowed if a triangulation has any locks at all; puncturing a triangulation uses a safe algorithm that will never violate a lock; and making a triangulation 0-efficient cannot work with locks at all so it ignores them entirely. As a general rule, if you want to know if/how some operation handles locks, find the operation here in this handbook and it should be explained for you.

### Adding and Removing Individual Locks

You can edit locks directly through the gluings table. Open the triangulation viewer, and switch to the Gluings tab.

To lock or unlock a top-dimensional simplex, right-click on the simplex in the first column of the table. When a simplex is locked, the corresponding cell in the first column will be coloured yellow.

To lock or unlock a facet, right-click on the corresponding cell in the remaining columns of the table (specifically, the cell that contains the gluing information for that facet). For a boundary facet, this will be an empty cell. For an internal facet, you can use either of the two cells that describe the gluing across that facet. As before, when a facet is locked, the corresponding cell (for a boundary facet) or pair of cells (for an internal facet) will be coloured yellow.

If your computer does not support right-click (e.g., you have a one-button mouse), then you should use the normal secondary-click mechanism for bringing up a pop-up context menu.

Finally: if your triangulation has any simplex or facet locks, you will see an extra padlock button beneath the gluings table. Pressing this button is a fast way to remove all simplex and facet locks from the triangulation at once.

### Viewing Locks

You can see your locks visually in the dual graph of your triangulation, by visiting the Skeleton→Graphs tab in the triangulation viewer.

Locked simplices will appear as yellow nodes in the dual graph, and locked internal facets will appear as yellow arcs. You will not see locked boundary facets, since these do not appear in the dual graph at all.

### Saving Locks

Locks will be saved alongside triangulations in ®ina; data files from ®ina; 7.4 onwards.

You can still open these files in ®ina; 7.3.1 or earlier, though these older versions of ®ina; do not understand locks (which means that if you save your file in an older version of ®ina;, your locks will be lost completely).

Locks are also encoded in a triangulation's isomorphism signature. Specifically:

- If a triangulation does not have any simplex or facet locks, its isomorphism signature will be the same as in ®ina; 7.3.1 or earlier. For example, `cPcbbbiht` is the isomorphism signature of the two-tetrahedron figure eight knot complement with no locks.

- If a triangulation does have locks, then its isomorphism signature will be the unlocked signature followed by a period and some additional symbols encoding the locks. For example, `cPcbbbiht.aq` encodes the two-tetrahedron figure eight knot complement with one locked tetrahedron.

- To remove locks from an isomorphism signature without opening ®ina;, you can just delete all symbols from the period onwards.

Recall that in ®ina; 7.3.1 and earlier, two triangulations have the same isomorphism signature if and only if they are combinatorially isomorphic. Now that ®ina; 7.4 and later supports locks, this property is upgraded: two triangulations have the same isomorphism signature if and only if there is a combinatorial isomorphism between them that preserves all simplex and facet locks.