documentation:latest:topaz:simplicialcomplex

Available versions of this document: latest release, release 4.11, release 4.10, release 4.9, release 4.8, release 4.7, release 4.6, release 4.5, release 4.4, release 4.3, release 4.2, release 4.1, release 4.0, release 3.6, release 3.5, nightly master

Reference documentation for older polymake versions: release 3.4, release 3.3, release 3.2

# BigObject SimplicialComplex

from application topaz

An abstract simplicial complex represented by its facets.

Permutations:
FacetPerm:

permuting the FACETS

VertexPerm:

permuting the vertices

These properties are for input only. They allow redundant information.

INPUT_FACES

Any description of the faces of a simplicial complex with vertices v_0 < v_1 < v_2 < … arbitrary. Redundant faces allowed.

Type:
Array<Set<Int>>

These properties capture combinatorial information of the object. Combinatorial properties only depend on combinatorial data of the object like, e.g., the face lattice.

BOUNDARY
Type:
SimplicialComplex
Properties of BOUNDARY:
VERTEX_MAP

Maps vertices of the boundary complex to the corresponding ones in the supercomplex

Type:
Array<Int>

COLORING

A coloring of the vertices.

Type:
Array<Int>

DIM

Maximal dimension of the FACETS, where the dimension of a facet is defined as the number of its vertices minus one.

Type:
Int

DUAL_GRAPH
Type:
Graph<Undirected>
Properties of DUAL_GRAPH:
COLORING

UNDOCUMENTED

Type:
NodeMap<Undirected,Int>

F2_VECTOR

fik is the number of incident pairs of i-faces and k-faces; the main diagonal contains the F_VECTOR.

Type:
Matrix<Int,NonSymmetric>

FACETS

Faces which are maximal with respect to inclusion, encoded as their ordered set of vertices. The vertices must be numbered 0, …, n-1.

Type:
Array<Set<Int>>

FOLDABLE

True if GRAPH is (DIM + 1)-colorable.

Type:
Bool

F_VECTOR

fk is the number of k-faces, for k = 0,… , d, where d is the dimension.

Type:
Array<Int>

GRAPH

The subcomplex consisting of all 1-faces.

Type:
Graph<Undirected>

HASSE_DIAGRAM
Type:
Lattice<BasicDecoration,Nonsequential>
Methods of HASSE_DIAGRAM:
dim

UNDOCUMENTED

nodes_of_dim

UNDOCUMENTED

nodes_of_dim_range

UNDOCUMENTED

H_VECTOR

The h-vector of the simplicial complex.

Type:
Array<Int>

MINIMAL_NON_FACES

Inclusion minimal non-faces (vertex subsets which are not faces of the simplicial complex).

Type:
IncidenceMatrix<NonSymmetric>

N_FACETS

Number of FACETS.

Type:
Int

N_MINIMAL_NON_FACES

Number of MINIMAL_NON_FACES.

Type:
Int

N_VERTICES

Number of vertices.

Type:
Int

ODD_SUBCOMPLEX

Subcomplex generated by faces of codimension 2 that are contained in an odd number of faces of codimension 1.

Type:
SimplicialComplex

PROJ_DICTIONARY

For each vertex the corresponding vertex of facet 0 with respect to the action of the group of projectivities.

Type:
Array<Int>

PROJ_ORBITS

Orbit decomposition of the group of projectivities acting on the set of vertices of facet 0.

Type:
Set<Set<Int>>

PURE

A simplicial complex is pure if all its facets have the same dimension.

Type:
Bool

SHELLABLE

True if this is shellable.

Type:
Bool

SHELLING

An ordered list of facets constituting a shelling.

Type:
Array<Set<Int>>

VERTEX_INDICES

Indices of the vertices from INPUT_FACES. That is, the map i \mapsto v_i. Used for embeddings of subcomplexes.

Type:
Array<Int>

These properties capture geometric information of the object. Geometric properties depend on geometric information of the object, like, e.g., vertices or facets.

GRASS_PLUCKER_CERTIFICATE

A Grassmann-Plücker certificate for non-realizability, as described in J. Pfeifle, Positive Plücker tree certificates for non-realizability, Experimental Math. 2022 https://doi.org/10.1080/10586458.2021.1994487 and J. Pfeifle, A polymake implementation of Positive Plücker tree certificates for non-realizability, MEGA 2022

Type:
GrassPluckerCertificate
Example:

 > $s = new SimplicialComplex(FACETS=>[[0,1,2,3],[0,1,2,4],[0,1,3,5],[0,1,4,6],[0,1,5,7],[0,1,6,7],[0,2,3,4],[0,3,4,5],[0,4,5,6],[0,5,6,7],[1,2,3,7],[1,2,4,6],[1,2,6,7],[1,3,5,7],[2,3,4,7],[2,4,5,6],[2,4,5,7],[2,5,6,7],[3,4,5,7]]); > print$s->NON_REALIZABLE;
true

> $s→GRASS_PLUCKER_CERTIFICATE→properties(); NON_REALIZABLE True if a certificate for convex non-realizability has been found False means that no such certificate has been found Type: Bool Example: For some simplicial complexes, polymake can certify that they are not realizable in a convex way. Currently, the only available proofs of non-realizability are Grassmann-Plücker certificates.  >$s = new SimplicialComplex(FACETS=>[[0,1,2,3],[0,1,2,4],[0,1,3,5],[0,1,4,6],[0,1,5,7],[0,1,6,7],[0,2,3,4],[0,3,4,5],[0,4,5,6],[0,5,6,7],[1,2,3,7],[1,2,4,6],[1,2,6,7],[1,3,5,7],[2,3,4,7],[2,4,5,6],[2,4,5,7],[2,5,6,7],[3,4,5,7]]);
> print $s->NON_REALIZABLE; true Example:  > print jockusch_3_sphere(4)->NON_REALIZABLE false Example:  > print jockusch_3_sphere(5)->NON_REALIZABLE true These properties capture information of the object that is concerned with the action of permutation groups. GROUP Type: Group The following properties are topological invariants. BALL Determines if this is homeomorphic to a ball. In general, this is undecidable; therefore, the implementation depends on heuristics. May be true or false or undef (if heuristic does not succeed). Type: Bool Example: Simplicial Complex is a ball.  >$b= new SimplicialComplex(INPUT_FACES=>[[0,1,2,3],[1,2,3,4]]);
> print \$b->BALL;
true

CLOSED_PSEUDO_MANIFOLD

True if this is a PURE simplicial complex with the property that each ridge is contained in exactly two facets.

Type:
Bool

COCYCLES

Representatives of cocycle groups, listed in increasing codimension order. See CycleGroup for explanation of encoding of each group.

Type:
Array<CycleGroup<Integer>>

COHOMOLOGY

Reduced cohomology groups, listed in increasing codimension order. See HomologyGroup for explanation of encoding of each group.

Type:
Array<HomologyGroup<Integer>>

CYCLES

Representatives of cycle groups, listed in increasing dimension order. See CycleGroup for explanation of encoding of each group.

Type:
Array<CycleGroup<Integer>>

EULER_CHARACTERISTIC

Reduced Euler characteristic. Alternating sum of the F_VECTOR minus 1.

Type:
Int

FUNDAMENTAL_GROUP

A finite representation of the fundamental group. The fundamental group is represented as a pair of an integer, the number of generators, and a list of relations. The generators are numbered consecutively starting with zero. A relation is encoded as a list of pairs, each pair consisting of a generator and its exponent. You may use the fundamental2gap method to produce a GAP file.

Type:
Pair<Int,List<List<Pair<Int,Int>>>>

FUNDAMENTAL_GROUP_GEN_LABELS

Labels of the generators of the FUNDAMENTAL_GROUP. The labels can be chosen freely. If the FUNDAMENTAL_GROUP is computed by polymake, the generators correspond to the edges of the complex. Hence they are labeled g followed by the vertices of the edge, e.g. g3_6 corresponds to the edge {3 6}.

Type:
Array<String>

GENUS

The genus of a surface.

Type:
Int

HOMOLOGY

Reduced simplicial homology groups H0, …, Hd (integer coefficients), listed in increasing dimension order. See HomologyGroup for explanation of encoding of each group.

Type:
Array<HomologyGroup<Integer>>

INTERSECTION_FORM

The integral quadratic form obtained from restricting the multiplication of the cohomology of a closed 4k-manifold to H^{2k} x H^{2k} → H^{4k} = Z. As a quadratic form over the reals it is characterized by its dimension and its index of inertia (or, equivalenty, by the number of positive and negative ones in its canonical form). An integral quadratic form is even if it takes values in 2Z.

Type:
IntersectionForm

KNOT

One-dimensional subcomplex which forms a knot or link, i.e., a collection of pairwise disjoint cycles. Usually that complex is a 3-sphere or a 3-ball.

Type:
SimplicialComplex

LABELED_FACETS

A representation of the facets that prints them using the VERTEX_LABELS

Type:
Array<String>

LABELED_ORIENTATION

A representation of the orientation that prints each facet using the VERTEX_LABELS, followed by its sign

Type:
Array<String>

LOCALLY_STRONGLY_CONNECTED

True if the vertex star of each vertex is DUAL_CONNECTED.

Type:
Bool

MANIFOLD

Determines if this is a compact simplicial manifold with boundary. Depends on heuristic SPHERE recognition. May be true or false or undef (if heuristic does not succeed).

Type:
Bool

MORSE_MATCHING
Type:
MorseMatching
Properties of MORSE_MATCHING:
MATCHING

The matching in the HasseDiagram of the SimplicialComplex

Type:
EdgeMap<Directed,Int>

ORIENTATION

An orientation of the facets of an ORIENTED_PSEUDO_MANIFOLD, such that the induced orientations of a common ridge of two neighboring facets cancel each other out. Each facet is marked with 1 if the orientation agrees with the (chosen) orientation of the first facet, and is marked with -1 otherwise.

Type:
Array<Int>

ORIENTED_PSEUDO_MANIFOLD

True if this is a PSEUDO_MANIFOLD with top level homology isomorphic to Z.

Type:
Bool

PSEUDO_MANIFOLD

True if this is a PURE simplicial complex with the property that each ridge is contained in either one or two facets.

Type:
Bool

SPHERE

Determines if this is homeomorphic to a sphere. In general, this is undecidable; therefore, the implementation depends on heuristics. May be true or false or undef (if heuristic does not succeed).

Type:
Bool

STIEFEL_WHITNEY

Mod 2 Stiefel-Whitney homology classes per dimension. Each cycle is represented as a set of simplices.

Type:
Array<Set<Set<Int>>>

SURFACE

True if this is a CONNECTED MANIFOLD of dimension 2.

Type:
Bool

These properties are for visualization.

MIXED_GRAPH
Type:
Graph<Undirected>
Properties of MIXED_GRAPH:
EDGE_WEIGHTS

Associated edge weights.

Type:
EdgeMap<Undirected,Float>

VERTEX_LABELS

Labels of the vertices.

Type:
Array<String>

These methods capture combinatorial information of the object. Combinatorial properties only depend on combinatorial data of the object like, e.g., the face lattice.

BIPARTITE()

True if GRAPH is a bipartite.

Returns:
Bool

CONNECTED_COMPONENTS()

The connected components of the GRAPH, encoded as node sets.

Returns:
Set<Set<Int>>

CONNECTIVITY()

Node connectivity of the GRAPH, that is, the minimal number of nodes to be removed from the graph such that the result is disconnected.

Returns:
Int

DUAL_BIPARTITE()

True if DUAL_GRAPH is a bipartite.

Returns:
Bool

DUAL_CONNECTED_COMPONENTS()

The connected components of the DUAL_GRAPH, encoded as node sets.

Returns:
Set<Set<Int>>

DUAL_CONNECTIVITY()

Node connectivity of the DUAL_GRAPH. Dual to CONNECTIVITY.

Returns:
Set<Set<Int>>

DUAL_GRAPH_SIGNATURE()

Difference of the black and white nodes if the DUAL_GRAPH is BIPARTITE. Otherwise -1.

Returns:
Int

DUAL_MAX_CLIQUES()

The maximal cliques of the DUAL_GRAPH, encoded as node sets.

Returns:
Set<Set<Int>>

GRAPH_SIGNATURE()

Difference of the black and white nodes if the GRAPH is BIPARTITE. Otherwise -1.

Returns:
Int

MAX_CLIQUES()

The maximal cliques of the GRAPH, encoded as node sets.

Returns:
Set<Set<Int>>

VERTEX_DEGREES()

Degrees of the vertices in the GRAPH.

Returns:
Array<Int>

boundary_matrix(Int d)

Output the boundary matrix of dimension d. Indexing is according to the face indices in the HASSE_DIAGRAM of the complex. The matrix is a map via multiplying it to a vector from the left. Beware, this computes the whole face lattice of your complex, which is expensive.

Parameters:

Int d: Dimension of the boundary matrix.

Returns:
SparseMatrix<Integer>
Example:

This prints the boundary matrix of the 3-simplex:

 > print simplex(3)->boundary_matrix(1);
-1 1 0 0
-1 0 1 0
0 -1 1 0
-1 0 0 1
0 -1 0 1
0 0 -1 1

The output can be interpreted like this: the zeroth column of the matrix corresponds to the facet with index 0, which contains the edges with indices 0,1 and 3.

labeled_vertices(String label …)

Find the vertices by given labels.

Parameters:

String label …: vertex labels

Returns:
Set<Int>

The following methods compute topological invariants.

CONNECTED()

True if the GRAPH is a connected graph.

Returns:
Bool

DUAL_CONNECTED()

True if the DUAL_GRAPH is a connected graph.

Returns:
Bool

N_CONNECTED_COMPONENTS()

Number of connected components of the GRAPH.

Returns:
Int

fundamental2gap(String filename)

Writes the FUNDAMENTAL_GROUP using FUNDAMENTAL_GROUP_GEN_LABELS to the given file in GAP input format.

Parameters:

String filename

Returns:
String

These methods are for visualization.

VISUAL()

Visualizes the complex. If G_DIM < 4, the GRAPH and the facets are visualized using the COORDINATES. Otherwise, the spring embedder and the GRAPH are used to produce coordinates for the visualization. If JavaView is used to visualize the complex, all faces of one facet build a geometry in the jvx-file, so you may use Method → Effect → Explode Group of Geometries in the JavaView menu.

Options:

Bool mixed_graph: use the MIXED_GRAPH for the spring embedder

Int seed: random seed value for the string embedder

option list Visual::Polygon::decorations
option list Visual::Graph::decorations
Returns:
Visual::SimplicialComplex

VISUAL_DUAL_GRAPH()

Uses the spring embedder to visualize the DUAL_GRAPH.

Options:

Int seed: random seed value for the string embedder

option list Visual::Graph::decorations
Returns:
Visual::SimplicialComplex

VISUAL_FACE_LATTICE()

Visualize the HASSE_DIAGRAM of a simplicial complex as a multi-layer graph.

Options:

Int seed: random seed value for the node placement

option list Visual::Lattice::decorations
Returns:
Visual::SimplicialComplexLattice

VISUAL_GRAPH()

Uses the spring embedder to visualize the GRAPH.

Options:

Int seed: random seed value for the string embedder

option list Visual::Graph::decorations
Returns:
Visual::SimplicialComplex

VISUAL_MIXED_GRAPH()

Uses the spring embedder to visualize the MIXED_GRAPH.

Options:

Int seed: random seed value for the string embedder

option list Visual::Graph::decorations
Returns:
Visual::Container

• documentation/latest/topaz/simplicialcomplex.txt