# Normal Surfaces and Hypersurfaces

In this chapter we deal with normal surfaces within 3-manifold triangulations, and normal hypersurfaces within 4-manifold triangulations. For an overview of normal surface theory in the context of 3-manifolds (where it is much more developed), see bib-hass-knotnp.

A normal surface within a 3-manifold triangulation `T` is a surface that meets each tetrahedron of `T` in a (possibly empty) collection of triangles and/or quadrilaterals, where:

- each triangle “truncates” one vertex of the tetrahedron, separating it from the opposite triangle;

- each quadrilateral separates two opposite edges of the tetrahedron.

See the illustration to the right for examples.

Likewise, a normal hypersurface within a 4-manifold triangulation `T` meets each pentachoron of `T` in a (possibly empty) collection of tetrahedra and/or prisms, where:

- each tetrahedron “truncates” one vertex of the pentachoron, separating it from the opposite 3-face;

- each prism “truncates” one edge of the pentachoron, separating it from the opposite 2-face.

®ina; typically works with properly embedded normal surfaces and hypersurfaces, but it also offers basic support for immersed and singular surfaces. In the context of 3-manifolds, ®ina; can also work with almost normal surfaces (which are like normal surfaces but with an extra “exceptional disc”), and spun-normal surfaces (with infinitely many triangles spinning out towards the vertices).

For almost normal surfaces, ®ina; uses the restricted definition of Thompson bib-thinposition where the exceptional piece is an octagon. ®ina; does not currently support the more general definition of Rubinstein bib-rubin-3sphere1 in which the exceptional piece may be either an octagon or a tube.

## Enumerating Normal Surfaces and Hypersurfaces

Normal (hyper)surfaces are stored in lists, which typically represent all vertex or fundamental normal (hyper)surfaces within a triangulation, defined relative to some normal or almost normal coordinate system.

To create a new normal surface or hypersurface list, select either Packet Tree New Normal Surface List (3-D) or Packet Tree New Normal Hypersurface List (4-D) from the menu (or press the corresponding toolbar button).

You will be offered the usual new packet window, as shown below.

There are several details that you must provide:

Triangulation

This is the triangulation that will contain your normal (hyper)surfaces. For a normal surface list, you may chose either one of ®ina;'s native 3-manifold triangulation packets, or one of its hybrid &snappea; triangulation packets. For a normal hypersurface list, you must choose a 4-manifold triangulation. Either way, the new normal (hyper)surface list will appear within the packet tree as a child of the selected triangulation.

Coordinate system

This is the coordinate system that ®ina; will use to enumerate normal surfaces or hypersurfaces.

Your choice of coordinate system will affect which kinds of surfaces appear in the final solution set. For instance: within a 3-manifold triangulation, spun-normal surfaces can only appear in quadrilateral and quadrilateral-octagon coordinates, and some other types of surfaces (such as vertex links) will only appear in standard normal and standard almost normal coordinates.

For normal surfaces in 3-manifold triangulations, the available coordinate systems are:

Standard normal (tri-quad)

This is the standard 7`n`-dimensional coordinate system that typically appears in papers and textbooks (where `n` is the number of tetrahedra). Each tetrahedron contributes four triangle and three quadrilateral coordinates.

Standard almost normal (tri-quad-oct)

This is a 10`n`-dimensional system that extends standard normal coordinates by also adding three octagon coordinates per tetrahedron.

This system supports almost normal surfaces.

Quad normal

These are the 3`n`-dimensional quadrilateral coordinates, obtained from standard normal coordinates by simply ignoring all triangles. See bib-quadspace or bib-burton-convert for details.

This system supports spun-normal surfaces.

Quad-oct almost normal

These are the 6`n`-dimensional quadrilateral-octagon coordinates, likewise obtained from standard almost normal coordinates by ignoring all triangles. See bib-burton-quadoct for details.

This system supports both almost normal surfaces and spun-normal surfaces.

Closed quad (non-spun)

These are the same 3`n`-dimensional quadrilateral coordinates as before, but the enumeration includes extra constraints to ensure the list includes closed surfaces only. The resulting solution space is the space `Q` 0, as described in bib-quadclosed, and will not contain any spun-normal surfaces.

This coordinate system can only be used with oriented ideal triangulations that have precisely one torus cusp and no other boundary components or internal vertices. ®ina; will tell you if you try to use this coordinate system with a triangulation that is not suitable.

Closed quad-oct (non-spun)

These are the same 6`n`-dimensional quadrilateral-octagon coordinates as before, but the enumeration includes extra constraints to ensure the list includes closed surfaces only. The resulting solution space will not contain any spun-normal surfaces. See bib-quadclosed for further information on the normal (as opposed to almost normal) variant of this coordinate system.

Like closed quad coordinates, this coordinate system can only be used with oriented ideal triangulations that have precisely one torus cusp and no other boundary components or internal vertices. ®ina; will tell you if you try to use this coordinate system with a triangulation that is not suitable.

This system supports almost normal surfaces.

For normal hypersurfaces in 4-manifold triangulations, the available coordinate systems are:

Standard normal (tet-prism)

This is a 15`n`-dimensional coordinate system, where `n` is the number of pentachora in the underlying triangulation. Each pentachoron contributes five tetrahedron and ten prism coordinates, corresponding to the five vertices and ten edges respectively of the pentachoron that these tetrahedra and prisms truncate.

Prism normal

These are the 10`n`-dimensional prism coordinates, obtained from standard normal coordinates by simply ignoring all tetrahedron coordinates.

This is analogous to quad coordinates for normal surfaces. Like quad coordinates, if the underlying manifold is compact then the tetrahedron coordinates can be reconstructed up to the addition and/or removal of vertex links.

Enumerate

Here you indicate whether you wish to enumerate all vertex normal (hyper)surfaces, or all fundamental normal (hyper)surfaces. Fundamental (hyper)surfaces are much slower to enumerate than vertex (hyper)surfaces, but in some settings they can offer significantly more information.

Vertex (hyper)surfaces

These correspond to the extreme rays of the normal (hyper)surface solution cone: in the chosen coordinate system, a vertex normal (hyper)surface cannot be expressed as a non-negative linear combination of normal (hyper)surfaces other than multiples of itself.

®ina; will only compute one (hyper)surface for each extreme ray—specifically, the smallest integer vector along each ray. This means that the coordinates of each vertex (hyper)surface will have greatest common divisor one.

Fundamental (hyper)surfaces

These correspond to the Hilbert basis of the normal (hyper)surface solution cone: in the chosen coordinate system, a fundamental normal (hyper)surface cannot be expressed as a sum of normal (hyper)surfaces other than zero and itself.

Embedded (hyper)surfaces only

If this box is checked (the default), this indicates that you are only interested in properly embedded (hyper)surfaces. This is consistent with most of the normal surface literature.

If unchecked, this indicates that you are interested not only in properly embedded normal (hyper)surfaces, but also immersed and singular (hyper)surfaces. ®ina; currently offers only very basic support for such (hyper)surfaces—it will not even tell you which are immersed and which are singular; moreover, the enumeration process could become much slower.

Once you are ready, click OK and ®ina; will enumerate all normal surfaces or hypersurfaces according to your selection. When this is finished, ®ina; will package the results into a normal surface or hypersurface list and open it for you to view.

If you selected an almost normal coordinate system, ®ina; will enforce at most one octagon type but it will not enforce precisely one octagon disc (this makes it easier for users to work with convex combinations of vertex almost normal surfaces). As a result, you might see surfaces with multiple octagons (but all of the same type), or surfaces with no octagons at all. The coordinate viewer makes it easy to spot which is which.

If you have a data file from ®ina; 4.5.1 or earlier, it will not show almost normal surfaces with more than one octagon. See the discussion on legacy coordinates for details.

## Analysis

Once you have built a list of surfaces or hypersurfaces, you can study them using the various tabs in the normal (hyper)surface list viewer.

Above all of these tabs is a header displaying the total number of (hyper)surfaces, the original enumeration parameters, and a link to the underlying triangulation. The enumeration parameters include:

- whether you asked for vertex or fundamental (hyper)surfaces;

- whether you asked for embedded (hyper)surfaces only, or for immersed and/or singular (hyper)surfaces also;

- the normal or almost normal coordinate system in which you performed the enumeration.

There are some unusual comments that you might see in this header if you are using old data files and/or customised software:

Legacy surfaces

You might see this instead of vertex or fundamental surfaces. This means that the list of surfaces was created using ®ina; 4.93 or earlier (which did not save information on whether the surfaces you enumerated were vertex or fundamental).

Custom (hyper)surfaces

You might see this instead of vertex or fundamental (hyper)surfaces. This means that the list was created using some specialised or user-designed algorithm, and ®ina; cannot give you any more specific information about which surfaces or hypersurfaces these are.

Legacy almost normal coordinates

This indicates that the list was created using ®ina; 4.5.1 or earlier, and that surfaces with more than one octagon were deleted. See the discussion on legacy coordinates for details.

As of version 4.94, ®ina; also remembers details of the specific enumeration algorithm that was used. This information is not shown in the user interface, but can be extracted using &python; scripting.

### Viewing the Triangulation

As of ®ina; 7.0, normal surfaces and hypersurfaces are no longer linked to their source triangulations in the packet tree. You can move a surface list and/or its triangulation around independently in the tree, or you can modify or even delete the original triangulation. All of these operations are now allowed and safe.

Whatever happens, it is always possible to come back and view the original triangulation from which a surface or hypersurface list was created. You do this by following the link in the header:

If the original triangulation still exists in an unmodified form in your packet tree, this link will open it directly. If the original has been modified or deleted, then this link will be marked as private copy, which indicates that the (hyper)surface list took its own copy of the original triangulation for safekeeping. These private copies are saved in ®ina; data files, so you do not need to worry about losing the original triangulation if you close ®ina; and reopen it later.

If you try to open this private copy, ®ina; will instead offer to insert a fresh copy of the original triangulation in your packet tree, for you to view and/or edit as you like.

### Summary of (Hyper)surfaces

The Summary tab breaks down the total number of (hyper)surfaces into sub-counts for different types of (hyper)surfaces, as illustrated below. At a broad level, the total is divided into:

- closed (hyper)surfaces, which do not meet the boundary of the triangulation and contain only finitely many normal pieces;

- bounded (hyper)surfaces, which do meet the boundary of the triangulation and again only have finitely many normal pieces;

- spun-normal surfaces in 3-manifold triangulations, which have infinitely many triangles;

- non-compact hypersurfaces in 4-manifold triangulations, which have infinitely many tetrahedra.

For each category that contains one or more (hyper)surfaces, a table is shown to break this down further according to various simple properties. These include orientability, 1-or-2-sidedness, Euler characteristic (within 3-manifolds only), and homology (within 4-manifolds only).

If your enumeration parameters allowed for immersed and/or singular (hyper)surfaces, then these will be counted separately. For normal surfaces in 3-manifold triangulations, they will appear in a separate column labelled Non-embedded; for normal hypersurfaces in 4-manifold triangulations they will appear in a separate count above the list. In the 3-dimensional case, you should read the notes on what Euler characteristic means for immersed and singular surfaces.

Spun-normal surfaces and non-compact hypersurfaces will only be explicitly mentioned in the Summary tab if your enumeration coordinate system supports them. In particular, for normal hypersurfaces in 4-manifold triangulations, non-compact surfaces should never be mentioned at all, unless you have used a specialised hand-coded enumeration algorithm.

### Details of Individual (Hyper)surfaces

You can view details of the individual surfaces in the Surface Coordinates or Hypersurface Coordinates tab. This brings up a large table in which each row represents a single normal (or almost normal) surface or hypersurface.

Above the table are some drop-down boxes that let you view the list in different coordinate systems, and—for 3-manifolds only—with different filters applied. These options are discussed further in the notes on coordinate systems and filtering surfaces respectively.

In the first column, (hyper)surfaces are numbered 0,1,2,… in no particular order, so that you can make note of them for later on. You can also assign arbitrary names to (hyper)surfaces by typing directly into the second column; these names will be saved with your data file.

#### Properties of (hyper)surfaces

The next few columns describe various properties of each (hyper)surface. Some of these columns might be empty or absent in your viewer (for instance, ®ina; does not compute Euler characteristic for spun-normal surfaces, and it hides several columns if your enumeration allowed for immersed or singular surfaces).

The columns and their meanings are:

Euler (for 3-manifolds only)

Shows the Euler characteristic of the surface.

For properly embedded surfaces, this is of course just the ordinary Euler characteristic of the surface.

For immersed or singular surfaces, the situation is more complex since ®ina; does not know how many branch points there are (if any). Instead it will compute everything locally, assuming that the surface is an immersion. This means that for an immersed surface the result will be correct, but for a singular surface it will report a larger number than it should (essentially each branch point will be counted as multiple vertices).

Homology (for 4-manifolds only)

Shows the first homology group of the hypersurface.

Orient

Contains a tick (✓) if the (hyper)surface is orientable, or the text Non-or. if it is not.

Sides

Shows whether the (hyper)surface is one-sided or two-sided.

Bdry

Indicates what type of boundary the (hyper)surface has. This will be one of:

—

Indicates a closed, compact (hyper)surface; that is, with no boundary at all and finitely many normal pieces.

Real

Indicates a compact (hyper)surface with boundary; that is, with finitely many normal pieces, some of which meet the boundary of the triangulation.

The word Real (as opposed to a precise number) indicates that ®ina; does not know the exact number of boundary components. Currently ®ina; does not count boundary components for normal hypersurfaces in 4-manifolds, or when enumerating immersed/singular normal surfaces in 3-manifolds.

1, 2, 3, …

As with Real, this indicates a compact (hyper)surface with boundary, but moreover it indicates the precise number of boundary components.

Currently ®ina; will only count boundary components if you enumerate embedded normal surfaces in 3-manifold triangulations, and only for those resulting surfaces that are compact.

Spun (3-manifolds only)

Indicates a spun-normal surface; that is, a non-compact surface with infinitely many triangles. These only appear when the enumeration is done in quadrilateral or quadrilateral-octagon coordinates.

®ina; can compute boundary slopes for spun-normal surfaces, but only for quadrilateral coordinates (not quadrilateral-octagon coordinates), only for orientable 3-manifolds, and only for &snappea; triangulation packets (because ®ina;'s native triangulation packets do not provide a meridian and longitude on each cusp).

If you have a native ®ina; triangulation and you wish to view boundary slopes for spun-normal surfaces, you must first convert it to a &snappea; triangulation, which will install a default (shortest, second shortest) basis on each cusp. After this you can enumerate vertex or fundamental surfaces relative to the new &snappea; triangulation, and ®ina; will show you the boundary slopes. If you already began with a &snappea; triangulation (for instance, one that you imported from &snappy;), then ®ina; will work with whatever basis &snappea; was already using for that triangulation.

Each boundary slope is presented as a pair (`p`, `q`) for each cusp, indicating that the boundary curve passes `p` times around the meridian and `q` times around the longitude. If there are multiple cusps, these pairs will be ordered by cusp number.

Non-compact (4-manifolds only)

Indicates a non-compact hypersurface with infinitely many tetrahedra. As noted earlier, you should never see this unless you have used your own specialised enumeration algorithms—this is because ®ina; currently only enumerates hypersurfaces in standard coordinates, which produces compact hypersurfaces only.

Link

Indicates if a (hyper)surface is the link of some face of the underlying triangulation. In general, the link of a face is created by forming the boundary `b` of a small regular neighbourhood of the face. We call this link thin if the (hyper)surface `b` is already normal; otherwise we refer to the normalised link as the result of applying the standard normalisation process to `b` (which could change the topology, and in some extreme scenarios could even reduce `b` to the empty surface).

If this (hyper)surface is the link of a face then the relevant faces will be listed here, using the vertex, edge, triangle and/or tetrahedron numbers that appear in the first column of the skeletal face viewers. Note that it is possible for a (hyper)surface to be the link of several faces at the same time, possibly even of different dimensions, in which case they will all be reported here.

Any thin links will be reported first (indicated by Thin:), followed by any normalised links (indicated by Normal:). Vertices, edges, triangles and tetrahedra will be indicated by the abbreviations vtx, edge, tri and tet. In 3-manifold triangulations, ®ina; will only detect vertex, edge and triangle links; in 4-manifold triangulations, ®ina; will detect vertex, edge, triangle and tetrahedron links.

Some examples of things you might see in this column:

Thin: vtx 3

Indicates a (hyper)surface that is the thin link of vertex 3 (note that vertex links are always thin).

Thin: tri 4; Normal: edge 1

Indicates a (hyper)surface that is simultaneously the thin link of triangle 4, and also the normalised link of edge 1.

Thin: edge 0,2

Indicates a (hyper)surface that is simultaneously the thin link of edges 0 and 2 (note that a surface or hypersurface can never be the thin link of more than two faces).

A one-sided (hyper)surface whose double is the link of a face will also be reported as such in this table (though this can never happen with vertex links).

If the (hyper)surface is not the link of a face as described above, then this cell will be left empty.

Type (3-manifolds only)

Indicates if this is one of a few special types of normal surface that ®ina; identifies. Possible values are:

Central

There is at most one normal or almost normal disc per tetrahedron (which may be a triangle, quadrilateral or octagon). The cell will also list the total number of normal discs (i.e., the total number of tetrahedra that this surface meets).

Splitting

There is precisely one quadrilateral per tetrahedron and no other normal (or almost normal) discs. Although splitting surfaces are also central, only the word Splitting will be displayed.

If the surface is not one of these types, this cell will be left empty.
Octagon (3-manifolds only)

Indicates which coordinate position contains the octagonal discs (if any), and how many octagonal discs there are. (Recall that the enumeration procedure insists that at most one coordinate position can have octagonal discs, but allows any number of octagons of that type.)

This column only appears if you enumerated using an almost normal coordinate system.

If this cell is empty, it means the surface does not contain any octagons at all (i.e., you have a normal surface, not an almost normal surface). Otherwise it will state which coordinate position contains the octagons and how many octagons there are (for example, K2: 03/12 (3 octs)).

#### Coordinates and Coordinate Systems

The remaining columns give the precise normal coordinates of the surface or hypersurface.

You can view (hyper)surfaces in several different coordinate systems, not just the system you used for enumeration. To change the coordinate system, simply select a new system from the drop-down box above the table.

This will not re-enumerate surfaces in the new coordinate system; it will simply re-display the surfaces you already have. For example, if you enumerated normal surfaces in quadrilateral coordinates then your list will not contain any vertex links, and these will not suddenly appear when you view in standard coorinates. If your list contains spun-normal surfaces and you view them in standard coordinates, they will not disappear (instead you will see triangular coordinates of ∞).

For normal surfaces in 3-manifold triangulations, the available coordinate systems are as follows. Some options might not be available for your surface list (for instance, if you enumerated in standard normal coordinates then the almost normal systems will not appear).

Standard normal (tri-quad)

This is the standard 7`n`-dimensional coordinate system that typically appears in papers and textbooks (where `n` is the number of tetrahedra). Each tetrahedron contributes four triangle and three quadrilateral coordinates.

Triangle coordinates are labelled 0:0, 0:1, 0:2, 0:3, 1:0, etc., where coordinate `t`:`v` counts the number of triangles in tetrahedron `t` that separate vertex `v` of that tetrahedron from the others. Here 0 ≤ `t` < `n` and `v` ∈ {0,1,2,3}.

Quadrilateral coordinates are labelled 0:01/23, 0:02/13, 0:03/12, 1:01/23, etc., where coordinate `t`:`ab`/`cd` counts the number of quadrilaterals in tetrahedron `t` that separate vertices `a` and `b` of that tetrahedron from vertices `c` and `d`. Here 0 ≤ `t` < `n`, and `a`,`b`,`c`,`d` are some permutation of 0,1,2,3.

Quad normal

These are the 3`n`-dimensional quadrilateral coordinates, obtained from standard normal (tri-quad) coordinates by ignoring all triangles and considering only the quadrilaterals. See bib-quadspace or bib-burton-convert for details.

Standard almost normal (tri-quad-oct)

This is a 10`n`-dimensional system for almost normal surfaces, obtained from standard normal (tri-quad) coordinates by adding three octagon coordinates per tetrahedron.

Octagon coordinates are again labelled 0:01/23, 0:02/13, 0:03/12, 1:01/23, etc., where coordinate `t`:`ab`/`cd` counts the number of octagons in tetrahedron `t` that separate vertices `a` and `b` from `c` and `d`.

To avoid ambiguity, all triangle, quadrilateral and octagon coordinate labels are prefixed with T, Q and K respectively. The full coordinates are therefore T0:0, T0:1, T0:2, T0:3, Q0:01/23, Q0:02/13, Q0:03/12, K0:01/23, K0:02/13, K0:03/12, T1:0, etc.

Quad-oct almost normal

These are the 6`n`-dimensional quadrilateral-octagon coordinates, obtained from standard almost normal (tri-quad-oct) coordinates by ignoring all triangles and considering only the quadrilaterals and octagons. See bib-burton-quadoct for details.

Legacy almost normal (pruned tri-quad-oct)

Legacy coordinates are to support data files created in ®ina; 4.5.1 or earlier. These are like standard almost normal (tri-quad-oct) coordinates, except that surfaces with more than one octagon are deleted entirely.

If you created your surfaces in ®ina; 4.5.1 or earlier, there is no way to recover those surfaces with multiple octagons—they would have been deleted when you originally enumerated them. Instead you will need to enumerate them again. Your list will always be displayed with the label legacy almost normal coordinates to remind you of this.

From ®ina; 4.6 onwards, the enumeration process now keeps almost surfaces with multiple octagons (though they must be in the same coordinate position). This is important if you wish to generate new almost normal surfaces by taking convex combinations of old surfaces. If you are only interested in surfaces with one octagon, the Octagon column makes them easy to spot.

Edge weight

This system has one coordinate for each edge of the triangulation. The coordinates are labelled 0, 1, 2, etc., where coordinate `e` counts the number of times the surface crosses edge number `e`.

Edge numbers and the tetrahedron edges to which they correspond can be found in the edge viewer, under the triangulation's Skeleton tab.

Edge weight coordinates are offered for viewing only. You cannot enumerate surfaces in edge weight coordinates.

Triangle arc

This system has three coordinates for each triangle (2-face) of the triangulation. The coordinates are labelled 0:0, 0:1, 0:2, 1:0, etc., where coordinate `t`:`v` represents the number of times the surface slices through triangle `t` of the triangulation in an arc that truncates vertex `v` of that triangle. Here `v` ∈ {0,1,2}.

Triangle numbers and the tetrahedron faces to which they correspond can be found in the triangle viewer, under the triangulation's Skeleton tab. The three vertices 0,1,2 of each triangle correspond to the ordering of tetrahedron vertices that you see in the rightmost column of the triangle viewer.

Triangle arc coordinates are likewise offered for viewing only. You cannot enumerate surfaces in triangle arc coordinates.

For normal hypersurfaces in 4-manifold triangulations, the available coordinate systems are:

Standard normal (tet-prism)

This is the 15`n`-dimensional coordinate system that counts all tetrahedra and prisms of all types (where `n` is the number of pentachora in the underlying triangulation). Each pentachoron contributes five triangle and ten prism coordinates.

Tetrahedron coordinates are labelled 0:0, 0:1, 0:2, 0:3, 0:4, 1:0, etc., where coordinate `p`:`v` counts the number of tetrahedra in pentachoron `p` that truncate vertex `v` of that pentachoron. Here 0 ≤ `p` < `n` and `v` ∈ {0,1,2,3,4}.

Prism coordinates are labelled 0:01, 0:02, 0:03, 0:04, 0:12, …, 0:34, 1:01, etc., where coordinate `p`:`ab` counts the number of prisms in pentachoron `t` that truncate the edge joining vertices `a` and `b` of that pentachoron. Here 0 ≤ `p` < `n`, and `a`,`b` ∈ {0,1,2,3,4} with `a` < `b`.

Prism normal

These are the 10`n`-dimensional prism coordinates, obtained from standard normal (tet-prism) coordinates by ignoring all tetrahedra and considering only the prisms.

Edge weight

This system has one coordinate for each edge of the triangulation. The coordinates are labelled 0, 1, 2, etc., where coordinate `e` counts the number of times the hypersurface crosses edge number `e`.

Edge numbers and the pentachoron edges to which they correspond can be found in the edge viewer, under the triangulation's Skeleton tab.

Edge weight coordinates are offered for viewing only. You cannot enumerate hypersurfaces in edge weight coordinates.

If you grab and resize one of the coordinate columns, all of the coordinate columns will be resized at once. This is useful if you wish to fit as many columns on the screen as possible.

### Original Matching Equations

The Matching Equations tab shows a table with the individual matching equations that were used when you enumerated this list.

The matching equations will always use the same coordinate system that you used during enumeration. Remember that this coordinate system is always displayed above all of the tabs.

Each row of this table represents an individual matching equation. Each equation is a homogeneous linear equation, and the coefficients for each coordinate position are shown in the individual table cells. See the coordinate viewer for details on how the coordinate columms are labelled.

Like the coordinate viewer, if you grab and resize one of the columns then all columns will be resized at once. This is useful if you wish to fit as much of the matrix on screen as possible.

### Compatibility Between (Hyper)surfaces

The Compatibility tab shows which pairs of (hyper)surfaces are locally and globally compatible with each other. This means:

Locally compatible

Two (hyper)surfaces are locally compatible if they are able to avoid intersection in any given top-dimensional simplex of the triangulation (though not necessarily in all such simplices simultaneously).

For 3-manifolds, this means that two compatible normal surfaces can avoid intersecting in any given tetrahedron of the triangulation. That is, in each tetrahedron, they together use at most one quadrilateral or octagonal disc type.

For 4-manifolds, this means that two compatible normal hypersurfaces can avoid intersecting in any given pentachoron of the triangulation. That is, in each pentachoron, they together do not use two conflicting prism types.

Globally compatible (shown for 3-manifolds only)

Two normal surfaces are globally compatible if they are able to avoid intersection in all tetrahedra of the 3-manifold triangulation simultaneously.

In other words, two surfaces are globally compatible if they can be made disjoint within the underlying triangulation.

The Compatibility tab shows this information visually using coloured matrices. It only displays one matrix at a time (either the local compatibility matrix or, for 3-manifolds only, the global compatibility matrix). You can switch between them using the drop-down box indicated below.

Each matrix has dimensions `S` × `S`, where `S` is the total number of (hyper)surfaces in the list. Rows and columns are both numbered 0,...,`S`-1. The cell at position (`x`,`y`) is filled if and only if the (hyper)surfaces numbered `x` and `y` are compatible. Recall that (hyper)surfaces are numbered in the leftmost column of the coordinate viewer.

For some normal surfaces in 3-manifolds, ®ina; cannot test global compatibility. These include surfaces that are empty, disconnected, or spun-normal. In such cases the corresponding rows and columns will be hashed out, as illustrated below.

If you have too many surfaces or hypersurfaces in your list, ®ina; will not generate the compatibility matrices automatically. You can still compute them by pressing the Calculate button (indicated below).

### Cutting Along and Crushing Surfaces (3-D)

Within a 3-manifold triangulation, you can cut along a normal surface, or crush it to a point.

- Cutting along a surface involves carefully slicing along the surface and retriangulating the resulting polyhedra. The resulting triangulation will have new real boundary component(s) corresponding to the original surface.

  This operation has the advantages that it will never change the topology of the 3-manifold beyond the simple act of slicing along the surface, and it will never introduce ideal vertices or invalid edges.

  The main drawback is that it can vastly increase the total number of tetrahedra. This has severe implications if you need to do anything computationally intensive with the resulting triangulation.

- Crushing a surface is a potentially destructive operation, but when used carefully can be extremely powerful. The crushing operation was originally described by Jaco and Rubinstein bib-0-efficiency; see bib-crushing-dcg for a simplified treatment. In essence, the surface is first collapsed to a point, and then any non-tetrahedron pieces that remain are “flattened away”.

  One key advantage of crushing is that it always reduces the number of tetrahedra (unless you crush vertex links, in which case the triangulation stays the same).

  The main disadvantage is that it can change the topology of your triangulation, sometimes dramatically. For example, it can create ideal vertices, undo connected sums, change the genus of boundary components, and delete entire summands. In some cases it can even make your triangulation invalid (for instance, edges might become identified with themselves in reverse).

  You should only crush a surface when you have theoretical arguments that tell you exactly what might change and how to detect it. Examples of such arguments appear in bib-0-efficiency, where crushing is used to great effect.

At present, ®ina; can cut along any compact embedded normal or almost normal surface (so octagonal discs are fine, but spun-normal surfaces are not). ®ina; can only crush a compact embedded normal surface (i.e., octagonal discs are excluded).

To cut along or crush a normal surface: open the list of normal surfaces, select your surface in the list, and then choose either Normal Surfaces Cut Along Surface or Normal Surfaces Crush Surface . from the menu.

®ina; will create a new triangulation where the surface has been cut along or crushed accordingly. This new trianguation will appear beneath the normal surfaces in the packet tree. Your original triangulation will not be changed.

If your original triangulation is oriented, then crushing a surface will preserve this orientation. However, cutting along a surface will not: the cut-open triangulation might have the same or opposite orientation, or might not be oriented at all.

If your original triangulation has any simplex and/or facet locks, then these will simply be ignored (since the original triangulation will be left unchanged). The resulting crushed or cut-open triangulation will not have any locks at all.

Note that both cutting and crushing could result in a disconnected triangulation. If this happens, you can extract connected components to work with one at a time.

### Triangulating Hypersurfaces (4-D)

Within a 4-manifold triangulation, if you wish to study a normal hypersurface in more detail, you can triangulate it. This will create a new 3-manifold triangulation describing the topology of the hypersurface, which you can then attack with all of the 3-manifold machinery that ®ina; offers.

To triangulate a normal hypersurface, select your hypersurface in the list and then choose Normal Hypersurfaces Triangulate Hypersurface from the menu.

®ina; will create a new 3-manifold triangulation, which will appear beneath the normal hypersurface list in the packet tree.

## Filtering Surfaces (3-D)

Large triangulations often contain a great many “junk surfaces”, and it is sometimes desirable to restrict a long normal surface list to just those surfaces that satisfy some simple constraints. For surfaces within 3-manifold triangulations, ®ina; allows you to do this using surface filters.

You can create filters based on simple tests (such as orientability, boundary or Euler characteristic), and you can combine filters into complex boolean expressions. Each filter is stored as a separate packet in the packet tree.

To apply a filter to a normal surface list, simply choose the filter from the drop-down box above the coordinate viewer. The table of surfaces will immediately shrink to include only those surfaces that pass the selected filter. To remove the filter, select None from the drop-down box.

Filtering a surface list only affects how you view it: the underlying list is not changed. Moreover, only the coordinate viewer will be filtered—other tabs (such as the summary tab or compatility matrices) will be unaffected.

### Creating Filters

To create a new filter, select Packet Tree New Filter from the menu (or press the corresponding toolbar button).

The new packet window will ask what type of filter to create. The different types of filter are described in their own sections below.

### Filtering by Surface Properties

To filter by simple properties (such as orientability, boundary and/or Euler characteristic), create a new filter and select Filter by properties.

Now you can open your new filter and select your constraints. To pass through the filter, a surface must satisfy all of the constraints that you set. In the example below, a surface will only pass if it is closed (i.e., compact with no boundary) and has Euler characteristic 2, 1 or 0. In other words, this filter selects spheres, projective planes, tori and Klein bottles (as well as other disconnected surfaces, but vertex or fundamental normal surfaces will never be disconnected).

The constraints you can set are:

Orientability

- Check this to allow only orientable surfaces, or only non-orientable surfaces.

Compactness

- Check this to allow only compact surfaces (i.e., surfaces with finitely many discs), or only spun-normal surfaces (i.e., non-compact surfaces with infinitely many discs).

Boundary

- Check this to allow only surfaces with real boundary, or only surfaces with no real boundary. Here real boundary means that some discs in the surface touch the boundary of the triangulation.

  This constraint is independent of whether the surface is spun (non-compact). Typical spun-normal surfaces do not have real boundary, since they live in ideal triangulations with no boundary triangles. However, if your triangulation has both ideal vertices and boundary triangles, then it is possible for a spun-normal surface to have real boundary also.

Euler Characteristic

- Check this to allow only surfaces with particular Euler characteristics. You can allow more than one Euler characteristic; simply type them all into the box provided.

  For immersed or singular surfaces, the number(s) you type here will be matched against the reported Euler characteristic, which for singular surfaces may be larger than it should be. See the notes on Euler characteristic for details.

### Combining Several Filters

To combine several other filters into a boolean expression, create a new filter and select Combination (AND/OR) filter.

A combination filter is a high-level filter that combines all of the filters immediately beneath it in the packet tree. If you open the combination filter, you can select whether a packet must pass all of the packets beneath it (AND), or any of the packets beneath it (OR). You will also see a box listing which “child filters” are being combined.

The child filters will often be property-based filters, although they may be other combination filters if you need to build up more complex boolean expressions. A combination filter will only combine its immediate children—not its children's children and so on. In the example below, the combination filter `C` will only combine the children `P` and `Q`. In turn, `Q` will combine `X` and `Y`; the result (depending on how the filters are set) might look something like “`P` and (`X` or `Y`)”.