A simplicial complex is represented as a list of its inclusion maximal faces, encoded as ordered sets of their vertices. The `topaz` standard requires the list of facets to be free of redundancies and the vertices to be numbered consecutively starting with 0. The empty complex is represented as a single empty set.

Therefore nearly all `topaz` clients expect a non-empty property FACETS containing inclusion maximal sets of integers ranging from 0 to n-1.

If you are not sure whether the initial description of your complex conforms to the `topaz` standard, you should store it in the data file as INPUT_FACES. Then `topaz` will automatically remove all redundancies.

### Vertex labeling

Since the vertex numbering is restricted, you are welcome to define VERTEX_LABELS. This section is an array, containing a string of characters (letters, digits, underscore, punctuation characters, etc. but no blanks) for each vertex. You may choose any distinct name for each vertex. As the default `topaz` uses the vertex numbering as labels.

Any operation identifying vertices (e.g. the non-disjoint union of two complexes) relies on these labels. The labels also help you to keep track of special vertices throughout a series of constructions. Clients producing new complexes keep the old labels whenever appropriate, or construct the new labels from the old ones basing on a well-defined scheme.

The automatic conversion from INPUT_FACES into FACETS mentioned above takes care of vertex numbering too. If the input vertices are not numbered consequently, they are renumbered and the original vertex numbers become VERTEX_LABELS.

### Constructing new complexes and subcomplexes

All clients constructing a new simplicial complexes from scratch produce a new file containing a FACETS section according to the `topaz` standard. If a client constructs a new simplicial complex from others, it still produces a new file containing a FACETS section, yet it labels the vertices depending on the original labeling.

Most of the `topaz` clients consider a subcomplex as a complex in its own right and therefore produce a new file containing a FACETS and a VERTEX_LABELS section (e.g. k_skeleton). However sometimes a subcomplex is viewed as a property of the original complex (e.g. boundary_of_pseudo_manifold). In this case, the client produces a new section within the original file and does not adjust the numbering. Therefore the vertices of the subcomplex have the same numbering as in FACETS, rather than being renumbered from 0 to n-1.

If you would like to view the subcomplex as a separate complex, use the extract_subcomplex client.