  
  [1X1 [33X[0;0YCellular complexes[133X[101X
  
  [33X[0;0YData [22X⟶[122X Cellular Complexes[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  
  RegularCWPolytope(L):: List --> RegCWComplex
  
  RegularCWPolytope(G,v):: PermGroup, List --> RegCWComplex
  
  [33X[0;0YInputs a list [22XL[122X of vectors in [22XR^n[122X and outputs their convex hull as a regular
  CW-complex.[133X
  
  [33X[0;0YInputs  a permutation group G of degree [22Xd[122X and vector [22Xv∈ R^d[122X, and outputs the
  convex hull of the orbit [22X{v^g : g∈ G}[122X as a regular CW-complex.[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  
  CubicalComplex(A):: List --> CubicalComplex
  
  [33X[0;0YInputs  a  binary  array [22XA[122X and returns the cubical complex represented by [22XA[122X.
  The array [22XA[122X must of course be such that it represents a cubical complex.[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  
  PureCubicalComplex(A):: List --> PureCubicalComplex
  
  [33X[0;0YInputs  a binary array [22XA[122X and returns the pure cubical complex represented by
  [22XA[122X.[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  
  PureCubicalKnot(n,k):: Int, Int --> PureCubicalComplex
  
  PureCubicalKnot(L):: List --> PureCubicalComplex
  
  [33X[0;0YInputs  integers  [22Xn,  k[122X  and returns the [22Xk[122X-th prime knot on [22Xn[122X crossings as a
  pure cubical complex (if this prime knot exists).[133X
  
  [33X[0;0YInputs  a  list  [22XL[122X  describing  an  arc  presentation for a knot or link and
  returns the knot or link as a pure cubical complex.[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  
  PurePermutahedralKnot(n,k):: Int, Int --> PurePermutahedralComplex
  
  PurePermutahedralKnot(L):: List --> PurePermutahedralComplex
  
  [33X[0;0YInputs  integers  [22Xn,  k[122X  and returns the [22Xk[122X-th prime knot on [22Xn[122X crossings as a
  pure permutahedral complex (if this prime knot exists).[133X
  
  [33X[0;0YInputs  a  list  [22XL[122X  describing  an  arc  presentation for a knot or link and
  returns the knot or link as a pure permutahedral complex.[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  
  PurePermutahedralComplex(A):: List --> PurePermComplex
  
  [33X[0;0YInputs  a  binary  array  [22XA[122X  and  returns  the  pure  permutahedral  complex
  represented by [22XA[122X.[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  
  CayleyGraphOfGroup(G,L):: Group, List --> Graph
  
  [33X[0;0YInputs  a finite group [22XG[122X and a list [22XL[122X of elements in [22XG[122X.It returns the Cayley
  graph of the group generated by [22XL[122X.[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  
  EquivariantEuclideanSpace(G,v):: MatrixGroup, List --> EquivariantRegCWComplex
  
  [33X[0;0YInputs  a  crystallographic  group [22XG[122X with left action on [22XR^n[122X together with a
  row vector [22Xv ∈ R^n[122X. It returns an equivariant regular CW-space corresponding
  to  the  Dirichlet-Voronoi  tessellation of [22XR^n[122X produced from the orbit of [22Xv[122X
  under the action.[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  
  EquivariantOrbitPolytope(G,v):: PermGroup, List --> EquivariantRegCWComplex
  
  [33X[0;0YInputs a permutation group [22XG[122X of degree [22Xn[122X together with a row vector [22Xv ∈ R^n[122X.
  It returns, as an equivariant regular CW-space, the convex hull of the orbit
  of [22Xv[122X under the canonical left action of [22XG[122X on [22XR^n[122X.[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  
  EquivariantTwoComplex(G):: Group --> EquivariantRegCWComplex
  
  [33X[0;0YInputs  a  suitable group [22XG[122X and returns, as an equivariant regular CW-space,
  the [22X2[122X-complex associated to some presentation of [22XG[122X.[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  
  QuillenComplex(G,p):: Group, Int --> SimplicialComplex
  
  [33X[0;0YInputs  a  finite  group  [22XG[122X  and prime [22Xp[122X, and returns the simplicial complex
  arising  as the order complex of the poset of elementary abelian [22Xp[122X-subgroups
  of [22XG[122X.[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  
  RestrictedEquivariantCWComplex(Y,H):: RegCWComplex, Group --> EquivariantRegCWComplex
  
  [33X[0;0YInputs  a  [22XG[122X-equivariant  regular CW-space Y and a subgroup [22XH le G[122X for which
  GAP  can  find  a transversal. It returns the equivariant regular CW-complex
  obtained by retricting the action to [22XH[122X.[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  
  RandomSimplicialGraph(n,p):: Int, Int --> SimplicialComplex
  
  [33X[0;0YInputs   an   integer   [22Xn  ge  1[122X  and  positive  prime  [22Xp[122X,  and  returns  an
  Erd\"os-R\'enyi  random  graph  as  a  [22X1[122X-dimensional simplicial complex. The
  graph has [22Xn[122X vertices. Each pair of vertices is, with probability [22Xp[122X, directly
  connected by an edge.[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  
  RandomSimplicialTwoComplex(n,p):: Int, Int --> SimplicialComplex
  
  [33X[0;0YInputs an integer [22Xn ge 1[122X and positive prime [22Xp[122X, and returns a Linial-Meshulam
  random  simplicial  [22X2[122X-complex.  The [22X1[122X-skeleton of this simplicial complex is
  the  complete  graph  on  [22Xn[122X  vertices.  Each  triple  of vertices lies, with
  probability [22Xp[122X, in a common [22X2[122X-simplex of the complex.[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  
  ReadCSVfileAsPureCubicalKnot(str):: String --> PureCubicalComplex
  
  ReadCSVfileAsPureCubicalKnot(str,r):: String, Int --> PureCubicalComplex
  
  ReadCSVfileAsPureCubicalKnot(L):: List --> PureCubicalComplex
  
  ReadCSVfileAsPureCubicalKnot(L,R):: List,List --> PureCubicalComplex
  
  [33X[0;0YReads  a  CSV  file  identified  by  a  string  str  such  as  "file.pdb" or
  "path/file.pdb"  and  returns  a  [22X3[122X-dimensional pure cubical complex [22XK[122X. Each
  line  of  the  file should contain the coordinates of a point in [22XR^3[122X and the
  complex  [22XK[122X  should  represent  a  knot determined by the sequence of points,
  though  the latter is not guaranteed. A useful check in this direction is to
  test that [22XK[122X has the homotopy type of a circle.[133X
  
  [33X[0;0YIf the test fails then try the function again with an integer [22Xr ge 2[122X entered
  as  the optional second argument. The integer determines the resolution with
  which the knot is constructed.[133X
  
  [33X[0;0YThe  function can also read in a list [22XL[122X of strings identifying CSV files for
  several  knots.  In  this  case  a list [22XR[122X of integer resolutions can also be
  entered. The lists [22XL[122X and [22XR[122X must be of equal length.[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  
  ReadImageAsPureCubicalComplex(str,t):: String, Int --> PureCubicalComplex
  
  [33X[0;0YReads  an  image  file  identified  by  a  string  str  such  as "file.bmp",
  "file.eps",  "file.jpg",  "path/file.png"  etc.,  together with an integer [22Xt[122X
  between  [22X0[122X  and  [22X765[122X.  It  returns  a  [22X2[122X-dimensional  pure  cubical  complex
  corresponding  to  a  black/white  version  of  the  image determined by the
  threshold  [22Xt[122X.  The  [22X2[122X-cells of the pure cubical complex correspond to pixels
  with RGB value [22XR+G+B le t[122X.[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  
  ReadImageAsFilteredPureCubicalComplex(str,n):: String, Int --> FilteredPureCubicalComplex
  
  [33X[0;0YReads  an  image  file  identified  by  a  string  str  such  as "file.bmp",
  "file.eps",  "file.jpg",  "path/file.png"  etc.,  together  with  a positive
  integer  [22Xn[122X.  It  returns  a  [22X2[122X-dimensional  filtered pure cubical complex of
  filtration  length  [22Xn[122X.  The  [22Xk[122Xth  term  in  the filtration is a pure cubical
  complex  corresponding  to  a black/white version of the image determined by
  the  threshold  [22Xt_k=k  ×  765/n[122X.  The  [22X2[122X-cells of the [22Xk[122Xth term correspond to
  pixels with RGB value [22XR+G+B le t_k[122X.[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  
  ReadImageAsWeightFunction(str,t):: String, Int --> RegCWComplex, Function
  
  [33X[0;0YReads  an  image  file  identified  by  a  string  str  such  as "file.bmp",
  "file.eps", "file.jpg", "path/file.png" etc., together with an integer [22Xt[122X. It
  constructs  a  [22X2[122X-dimensional  regular  CW-complex [22XY[122X from the image, together
  with  a  weight  function  [22Xw:  Y→  Z[122X  corresponding  to a filtration on [22XY[122X of
  filtration length [22Xt[122X. The pair [22X[Y,w][122X is returned.[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  
  ReadPDBfileAsPureCubicalComplex(str):: String --> PureCubicalComplex
  
  ReadPDBfileAsPureCubicalComplex(str,r):: String, Int --> PureCubicalComplex
  
  [33X[0;0YReads  a  PDB  (Protein  Database)  file  identified by a string str such as
  "file.pdb"  or  "path/file.pdb"  and  returns  a  [22X3[122X-dimensional pure cubical
  complex [22XK[122X. The complex [22XK[122X should represent a (protein backbone) knot but this
  is  not  guaranteed.  A useful check in this direction is to test that [22XK[122X has
  the homotopy type of a circle.[133X
  
  [33X[0;0YIf the test fails then try the function again with an integer [22Xr ge 2[122X entered
  as  the optional second argument. The integer determines the resolution with
  which the knot is constructed.[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  
  ReadPDBfileAsPurepermutahedralComplex(str):: String --> PurePermComplex
  
  ReadPDBfileAsPurePermutahedralComplex(str,r):: String, Int --> PurePermComplex
  
  [33X[0;0YReads  a  PDB  (Protein  Database)  file  identified by a string str such as
  "file.pdb" or "path/file.pdb" and returns a [22X3[122X-dimensional pure permutahedral
  complex [22XK[122X. The complex [22XK[122X should represent a (protein backbone) knot but this
  is  not  guaranteed.  A useful check in this direction is to test that [22XK[122X has
  the homotopy type of a circle.[133X
  
  [33X[0;0YIf the test fails then try the function again with an integer [22Xr ge 2[122X entered
  as  the optional second argument. The integer determines the resolution with
  which the knot is constructed.[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  
  RegularCWPolytope(L):: List --> RegCWComplex
  
  RegularCWPolytope(G,v):: PermGroup, List --> RegCWComplex
  
  [33X[0;0YInputs a list [22XL[122X of vectors in [22XR^n[122X and outputs their convex hull as a regular
  CW-complex.[133X
  
  [33X[0;0YInputs  a permutation group G of degree [22Xd[122X and vector [22Xv∈ R^d[122X, and outputs the
  convex hull of the orbit [22X{v^g : g∈ G}[122X as a regular CW-complex.[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  
  SimplicialComplex(L):: List --> SimplicialComplex
  
  [33X[0;0YInputs a list [22XL[122X whose entries are lists of vertices representing the maximal
  simplices  of a simplicial complex, and returns the simplicial complex. Here
  a  "vertex" is a GAP object such as an integer or a subgroup. The list [22XL[122X can
  also contain non-maximal simplices.[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  
  SymmetricMatrixToFilteredGraph(A,m,s):: Mat, Int, Rat --> FilteredGraph
  
  SymmetricMatrixToFilteredGraph(A,m):: Mat, Int --> FilteredGraph
  
  [33X[0;0YInputs  an  [22Xn  ×  n[122X  symmetric matrix [22XA[122X, a positive integer [22Xm[122X and a positive
  rational  [22Xs[122X.  The  function returns a filtered graph of filtration length [22Xm[122X.
  The  [22Xt[122X-th  term  of  the  filtration  is a graph with [22Xn[122X vertices and an edge
  between  the  [22Xi[122X-th and [22Xj[122X-th vertices if the [22X(i,j)[122X entry of [22XA[122X is less than or
  equal to [22Xt × s/m[122X.[133X
  
  [33X[0;0YIf the optional input [22Xs[122X is omitted then it is set equal to the largest entry
  in the matrix [22XA[122X.[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  
  SymmetricMatrixToGraph(A,t):: Mat, Rat --> Graph
  
  [33X[0;0YInputs an [22Xn× n[122X symmetric matrix [22XA[122X over the rationals and a rational number [22Xt
  ge 0[122X, and returns the graph on the vertices [22X1,2, ..., n[122X with an edge between
  distinct vertices [22Xi[122X and [22Xj[122X precisely when the [22X(i,j)[122X entry of [22XA[122X is [22Xle t[122X.[133X
  [33X[0;0YMetric Spaces[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  
  CayleyMetric(g,h):: Permutation, Permutation --> Int
  
  [33X[0;0YInputs two permutations [22Xg,h[122X and optionally the degree [22XN[122X of a symmetric group
  containing  them.  It returns the minimum number of transpositions needed to
  express [22Xg*h^-1[122X as a product of transpositions.[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  
  EuclideanMetric(g,h):: List, List --> Rat
  
  [33X[0;0YInputs two vectors [22Xv,w ∈ R^n[122X and returns a rational number approximating the
  Euclidean distance between them.[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  
  EuclideanSquaredMetric(g,h):: List, List --> Rat
  
  [33X[0;0YInputs  two  vectors  [22Xv,w  ∈  R^n[122X  and  returns  the square of the Euclidean
  distance between them.[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  
  HammingMetric(g,h):: Permutation, Permutation --> Int
  
  [33X[0;0YInputs two permutations [22Xg,h[122X and optionally the degree [22XN[122X of a symmetric group
  containing  them.  It  returns  the  minimum number of integers moved by the
  permutation [22Xg*h^-1[122X.[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  
  KendallMetric(g,h):: Permutation, Permutation --> Int
  
  [33X[0;0YInputs two permutations [22Xg,h[122X and optionally the degree [22XN[122X of a symmetric group
  containing  them.  It  returns the minimum number of adjacent transpositions
  needed  to  express  [22Xg*h^-1[122X as a product of adjacent transpositions. An {\em
  adjacent} transposition is of the form [22X(i,i+1)[122X.[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  
  ManhattanMetric(g,h):: List, List --> Rat
  
  [33X[0;0YInputs  two  vectors  [22Xv,w  ∈  R^n[122X and returns the Manhattan distance between
  them.[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  
  VectorsToSymmetricMatrix(V):: List --> Matrix
  
  VectorsToSymmetricMatrix(V,d):: List, Function --> Matrix
  
  [33X[0;0YInputs  a  list  [22XV  ={  v_1, ..., v_k} ∈ R^n[122X and returns the [22Xk × k[122X symmetric
  matrix  of  Euclidean  distances  [22Xd(v_i,  v_j)[122X.  When  these  distances  are
  irrational they are approximated by a rational number.[133X
  
  [33X[0;0YAs  an  optional  second argument any rational valued function [22Xd(x,y)[122X can be
  entered.[133X
  [33X[0;0YCellular Complexes [22X⟶[122X Cellular Complexes[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  
  BoundaryMap(K):: RegCWComplex --> RegCWMap
  
  [33X[0;0YInputs  a pure regular CW-complex [22XK[122X and returns the regular CW-inclusion map
  [22Xι : ∂ K ↪ K[122X from the boundary [22X∂ K[122X into the complex [22XK[122X.[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  
  CliqueComplex(G,n):: Graph, Int --> SimplicialComplex
  
  CliqueComplex(F,n):: FilteredGraph, Int --> FilteredSimplicialComplex
  
  CliqueComplex(K,n):: SimplicialComplex, Int --> SimplicialComplex
  
  [33X[0;0YInputs  a  graph  [22XG[122X  and  integer  [22Xn  ge  1[122X.  It returns the [22Xn[122X-skeleton of a
  simplicial  complex  [22XK[122X with one [22Xk[122X-simplex for each complete subgraph of [22XG[122X on
  [22Xk+1[122X vertices.[133X
  
  [33X[0;0YInputs  a fitered graph [22XF[122X and integer [22Xn ge 1[122X. It returns the [22Xn[122X-skeleton of a
  filtered  simplicial  complex  [22XK[122X  whose  [22Xt[122X-term  has  one [22Xk[122X-simplex for each
  complete subgraph of the [22Xt[122X-th term of [22XG[122X on [22Xk+1[122X vertices.[133X
  
  [33X[0;0YInputs  a simplicial complex of dimension [22Xd=1[122X or [22Xd=2[122X. If [22Xd=1[122X then the clique
  complex of a graph returned. If [22Xd=2[122X then the clique complex of a $2$-complex
  is returned.[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  
  ConcentricFiltration(K,n):: PureCubicalComplex, Int --> FilteredPureCubicalComplex
  
  [33X[0;0YInputs  a  pure cubical complex [22XK[122X and integer [22Xn ge 1[122X, and returns a filtered
  pure cubical complex of filtration length [22Xn[122X. The [22Xt[122X-th term of the filtration
  is  the  intersection of [22XK[122X with the ball of radius [22Xr_t[122X centred on the centre
  of  gravity  of  [22XK[122X, where [22X0=r_1 le r_2 le r_3 le ⋯ le r_n[122X are equally spaced
  rational  numbers. The complex [22XK[122X is contained in the ball of radius [22Xr_n[122X. (At
  present, this is implemented only for [22X2[122X- and [22X3[122X-dimensional complexes.)[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  
  DirectProduct(M,N):: RegCWComplex, RegCWComplex --> RegCWComplex
  
  DirectProduct(M,N):: PureCubicalComplex, PureCubicalComplex --> PureCubicalComplex
  
  [33X[0;0YInputs  two  or  more  regular  CW-complexes  or  two  or  more pure cubical
  complexes and returns their direct product.[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  
  FiltrationTerm(K,t):: FilteredPureCubicalComplex, Int --> PureCubicalComplex
  
  FiltrationTerm(K,t):: FilteredRegCWComplex, Int --> RegCWComplex
  
  [33X[0;0YInputs  a  filtered  regular CW-complex or a filtered pure cubical complex [22XK[122X
  together  with  an  integer  [22Xt  ge  1[122X.  The  [22Xt[122X-th  term of the filtration is
  returned.[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  
  Graph(K):: RegCWComplex --> Graph
  
  Graph(K):: SimplicialComplex --> Graph
  
  [33X[0;0YInputs  a  regular  CW-complex  or  a  simplicial  complex [22XK[122X and returns its
  $1$-skeleton as a graph.[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  
  HomotopyGraph(Y):: RegCWComplex --> Graph
  
  [33X[0;0YInputs  a  regular  CW-complex  [22XY[122X  and  returns  a  subgraph  [22XM ⊂ Y^1[122X of the
  [22X1[122X-skeleton  for  which the induced homology homomorphisms [22XH_1(M, Z) → H_1(Y,
  Z)[122X and [22XH_1(Y^1, Z) → H_1(Y, Z)[122X have identical images. The construction tries
  to  include  as  few  edges  in  [22XM[122X  as  possible,  though  a  minimum is not
  guaranteed.[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  
  Nerve(M):: PureCubicalComplex --> SimplicialComplex
  
  Nerve(M):: PurePermComplex --> SimplicialComplex
  
  Nerve(M,n):: PureCubicalComplex, Int --> SimplicialComplex
  
  Nerve(M,n):: PurePermComplex, Int --> SimplicialComplex
  
  [33X[0;0YInputs  a  pure  cubical complex or pure permutahedral complex [22XM[122X and returns
  the  simplicial  complex  [22XK[122X obtained by taking the nerve of an open cover of
  [22X|M|[122X,  the  open sets in the cover being sufficiently small neighbourhoods of
  the  top-dimensional  cells  of  [22X|M|[122X.  The  spaces  [22X|M|[122X and [22X|K|[122X are homotopy
  equivalent  by  the  Nerve  Theorem. If an integer [22Xn ge 0[122X is supplied as the
  second argument then only the n-skeleton of [22XK[122X is returned.[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  
  RegularCWComplex(K):: SimplicialComplex --> RegCWComplex
  
  RegularCWComplex(K):: PureCubicalComplex --> RegCWComplex
  
  RegularCWComplex(K):: CubicalComplex --> RegCWComplex
  
  RegularCWComplex(K):: PurePermComplex --> RegCWComplex
  
  RegularCWComplex(L):: List --> RegCWComplex
  
  RegularCWComplex(L,M):: List,List --> RegCWComplex
  
  [33X[0;0YInputs  a  simplicial, pure cubical, cubical or pure permutahedral complex [22XK[122X
  and   returns   the   corresponding   regular   CW-complex.  Inputs  a  list
  [22XL=Y!.boundaries[122X of boundary incidences of a regular CW-complex [22XY[122X and returns
  [22XY[122X.  Inputs  a  list  [22XL=Y!.boundaries[122X  of  boundary  incidences  of a regular
  CW-complex  [22XY[122X together with a list [22XM=Y!.orientation[122X of incidence numbers and
  returns  a  regular  CW-complex [22XY[122X. The availability of precomputed incidence
  numbers saves recalculating them.[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  
  RegularCWMap(M,A):: PureCubicalComplex, PureCubicalComplex --> RegCWMap
  
  [33X[0;0YInputs a pure cubical complex [22XM[122X and a subcomplex [22XA[122X and returns the inclusion
  map [22XA → M[122X as a map of regular CW complexes.[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  
  ThickeningFiltration(K,n):: PureCubicalComplex, Int --> FilteredPureCubicalComplex
  
  ThickeningFiltration(K,n,s):: PureCubicalComplex, Int, Int --> FilteredPureCubicalComplex
  
  [33X[0;0YInputs  a  pure cubical complex [22XK[122X and integer [22Xn ge 1[122X, and returns a filtered
  pure cubical complex of filtration length [22Xn[122X. The [22Xt[122X-th term of the filtration
  is  the  [22Xt[122X-fold  thickening  of  [22XK[122X.  If  an integer [22Xs ge 1[122X is entered as the
  optional  third argument then the [22Xt[122X-th term of the filtration is the [22Xts[122X-fold
  thickening of [22XK[122X.[133X
  [33X[0;0YCellular Complexes [22X⟶[122X Cellular Complexes (Preserving Data Types)[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  
  ContractedComplex(K):: RegularCWComplex --> RegularCWComplex
  
  ContractedComplex(K):: FilteredRegularCWComplex --> FilteredRegularCWComplex
  
  ContractedComplex(K):: CubicalComplex --> CubicalComplex
  
  ContractedComplex(K):: PureCubicalComplex --> PureCubicalComplex
  
  ContractedComplex(K,S):: PureCubicalComplex, PureCubicalComplex --> PureCubicalComplex
  
  ContractedComplex(K):: FilteredPureCubicalComplex --> FilteredPureCubicalComplex
  
  ContractedComplex(K):: PurePermComplex --> PurePermComplex
  
  ContractedComplex(K,S):: PurePermComplex, PurePermComplex --> PurePermComplex
  
  ContractedComplex(K):: SimplicialComplex --> SimplicialComplex
  
  ContractedComplex(G):: Graph --> Graph
  
  [33X[0;0YInputs  a  complex  (regular CW, Filtered regular CW, pure cubical etc.) and
  returns a homotopy equivalent subcomplex.[133X
  
  [33X[0;0YInputs  a  pure  cubical  complex  or  pure  permutahedral  complex  [22XK[122X and a
  subcomplex [22XS[122X. It returns a homotopy equivalent subcomplex of [22XK[122X that contains
  [22XS[122X.[133X
  
  [33X[0;0YInputs  a graph [22XG[122X and returns a subgraph [22XS[122X such that the clique complexes of
  [22XG[122X and [22XS[122X are homotopy equivalent.[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  
  ContractibleSubcomplex(K):: PureCubicalComplex --> PureCubicalComplex
  
  ContractibleSubcomplex(K):: PurePermComplex --> PurePermComplex
  
  ContractibleSubcomplex(K):: SimplicialComplex --> SimplicialComplex
  
  [33X[0;0YInputs  a non-empty pure cubical, pure permutahedral or simplicial complex [22XK[122X
  and returns a contractible subcomplex.[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  
  KnotReflection(K):: PureCubicalComplex --> PureCubicalComplex
  
  [33X[0;0YInputs a pure cubical knot and returns the reflected knot.[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  
  KnotSum(K,L):: PureCubicalComplex, PureCubicalComplex --> PureCubicalComplex
  
  [33X[0;0YInputs two pure cubical knots and returns their sum.[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  
  OrientRegularCWComplex(Y):: RegCWComplex --> Void
  
  [33X[0;0YInputs  a regular CW-complex [22XY[122X and computes and stores incidence numbers for
  [22XY[122X. If [22XY[122X already has incidence numbers then the function does nothing.[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  
  PathComponent(K,n):: SimplicialComplex, Int --> SimplicialComplex
  
  PathComponent(K,n):: PureCubicalComplex, Int --> PureCubicalComplex
  
  PathComponent(K,n):: PurePermComplex, Int --> PurePermComplex
  
  [33X[0;0YInputs  a  simplicial, pure cubical or pure permutahedral complex [22XK[122X together
  with an integer [22X1 le n le β_0(K)[122X. The [22Xn[122X-th path component of [22XK[122X is returned.[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  
  PureComplexBoundary(M):: PureCubicalComplex --> PureCubicalComplex
  
  PureComplexBoundary(M):: PurePermComplex --> PurePermComplex
  
  [33X[0;0YInputs  a  [22Xd[122X-dimensional  pure  cubical  or pure permutahedral complex [22XM[122X and
  returns  a  [22Xd[122X-dimensional complex consisting of the closure of those [22Xd[122X-cells
  whose  boundaries  contains  some cell with coboundary of size less than the
  maximal possible size.[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  
  PureComplexComplement(M):: PureCubicalComplex --> PureCubicalComplex
  
  PureComplexComplement(M):: PurePermComplex --> PurePermComplex
  
  [33X[0;0YInputs  a  pure  cubical complex or a pure permutahedral complex and returns
  its complement.[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  
  PureComplexDifference(M,N):: PureCubicalComplex, PureCubicalComplex --> PureCubicalComplex
  
  PureComplexDifference(M,N):: PurePermComplex, PurePermComplex --> PurePermComplex
  
  [33X[0;0YInputs  two  pure  cubical complexes or two pure permutahedral complexes and
  returns the difference [22XM - N[122X.[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  
  PureComplexInterstection(M,N):: PureCubicalComplex, PureCubicalComplex --> PureCubicalComplex
  
  PureComplexIntersection(M,N):: PurePermComplex, PurePermComplex --> PurePermComplex
  
  [33X[0;0YInputs  two  pure  cubical complexes or two pure permutahedral complexes and
  returns their intersection.[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  
  PureComplexThickened(M):: PureCubicalComplex --> PureCubicalComplex
  
  PureComplexThickened(M):: PurePermComplex --> PurePermComplex
  
  [33X[0;0YInputs  a  pure  cubical complex or a pure permutahedral complex and returns
  the a thickened complex.[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  
  PureComplexUnion(M,N):: PureCubicalComplex, PureCubicalComplex --> PureCubicalComplex
  
  PureComplexUnion(M,N):: PurePermComplex, PurePermComplex --> PurePermComplex
  
  [33X[0;0YInputs  two  pure  cubical complexes or two pure permutahedral complexes and
  returns their union.[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  
  SimplifiedComplex(K):: RegularCWComplex --> RegularCWComplex
  
  SimplifiedComplex(K):: PurePermComplex --> PurePermComplex
  
  SimplifiedComplex(R):: FreeResolution --> FreeResolution
  
  SimplifiedComplex(C):: ChainComplex --> ChainComplex
  
  [33X[0;0YInputs  a regular CW-complex or a pure permutahedral complex [22XK[122X and returns a
  homeomorphic complex with possibly fewer cells and certainly no more cells.[133X
  
  [33X[0;0YInputs  a  free  [22XZG[122X-resolution  [22XR[122X  of  [22XZ[122X  and returns a [22XZG[122X-resolution [22XS[122X with
  potentially fewer free generators.[133X
  
  [33X[0;0YInputs  a  chain  complex  [22XC[122X  of  free  abelian  groups  and returns a chain
  homotopic chain complex [22XD[122X with potentially fewer free generators.[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  
  ZigZagContractedComplex(K):: PureCubicalComplex --> PureCubicalComplex
  
  ZigZagContractedComplex(K):: FilteredPureCubicalComplex --> FilteredPureCubicalComplex
  
  ZigZagContractedComplex(K):: PurePermComplex --> PurePermComplex
  
  [33X[0;0YInputs  a  pure cubical, filtered pure cubical or pure permutahedral complex
  and  returns  a  homotopy equivalent complex. In the filtered case, the [22Xt[122X-th
  term  of the output is homotopy equivalent to the [22Xt[122X-th term of the input for
  all [22Xt[122X.[133X
  [33X[0;0YCellular Complexes [22X⟶[122X Homotopy Invariants[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  
  AlexanderPolynomial(K):: PureCubicalComplex --> Polynomial
  
  AlexanderPolynomial(K):: PurePermComplex --> Polynomial
  
  AlexanderPolynomial(G):: FpGroup --> Polynomial
  
  [33X[0;0YInputs   a  [22X3[122X-dimensional  pure  cubical  or  pure  permutahdral  complex  [22XK[122X
  representing  a knot and returns the Alexander polynomial of the fundamental
  group [22XG = π_1( R^3∖ K)[122X.[133X
  
  [33X[0;0YInputs  a finitely presented group [22XG[122X with infinite cyclic abelianization and
  returns its Alexander polynomial.[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  
  BettiNumber(K,n):: SimplicialComplex, Int --> Int
  
  BettiNumber(K,n):: PureCubicalComplex, Int --> Int
  
  BettiNumber(K,n):: CubicalComplex, Int --> Int
  
  BettiNumber(K,n):: PurePermComplex, Int --> Int
  
  BettiNumber(K,n):: RegCWComplex, Int --> Int
  
  BettiNumber(K,n):: ChainComplex, Int --> Int
  
  BettiNumber(K,n):: SparseChainComplex, Int --> Int
  
  BettiNumber(K,n,p):: SimplicialComplex, Int, Int --> Int
  
  BettiNumber(K,n,p):: PureCubicalComplex, Int, Int --> Int
  
  BettiNumber(K,n,p):: CubicalComplex, Int, Int --> Int
  
  BettiNumber(K,n,p):: PurePermComplex, Int, Int --> Int
  
  BettiNumber(K,n,p):: RegCWComplex, Int, Int --> Int
  
  [33X[0;0YInputs  a simplicial, cubical, pure cubical, pure permutahedral, regular CW,
  chain  or sparse chain complex [22XK[122X together with an integer [22Xn ge 0[122X and returns
  the [22Xn[122Xth Betti number of [22XK[122X.[133X
  
  [33X[0;0YInputs  a  simplicial,  cubical, pure cubical, pure permutahedral or regular
  CW-complex  [22XK[122X  together with an integer [22Xn ge 0[122X and a prime [22Xp ge 0[122X or [22Xp=0[122X. In
  this  case  the  [22Xn[122Xth  Betti  number of [22XK[122X over a field of characteristic [22Xp[122X is
  returned.[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  
  EulerCharacteristic(C):: ChainComplex --> Int
  
  EulerCharacteristic(K):: CubicalComplex --> Int
  
  EulerCharacteristic(K):: PureCubicalComplex --> Int
  
  EulerCharacteristic(K):: PurePermComplex --> Int
  
  EulerCharacteristic(K):: RegCWComplex --> Int
  
  EulerCharacteristic(K):: SimplicialComplex --> Int
  
  [33X[0;0YInputs a chain complex [22XC[122X and returns its Euler characteristic.[133X
  
  [33X[0;0YInputs  a cubical, or pure cubical, or pure permutahedral or regular CW-, or
  simplicial complex [22XK[122X and returns its Euler characteristic.[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  
  EulerIntegral(Y,w):: RegCWComplex, Int --> Int
  
  [33X[0;0YInputs a regular CW-complex [22XY[122X and a weight function [22Xw: Y→ Z[122X, and returns the
  Euler integral [22X∫_Y w dχ[122X.[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  
  FundamentalGroup(K):: RegCWComplex --> FpGroup
  
  FundamentalGroup(K,n):: RegCWComplex, Int --> FpGroup
  
  FundamentalGroup(K):: SimplicialComplex --> FpGroup
  
  FundamentalGroup(K):: PureCubicalComplex --> FpGroup
  
  FundamentalGroup(K):: PurePermComplex --> FpGroup
  
  FundamentalGroup(F):: RegCWMap --> GroupHomomorphism
  
  FundamentalGroup(F,n):: RegCWMap, Int --> GroupHomomorphism
  
  [33X[0;0YInputs  a regular CW, simplicial, pure cubical or pure permutahedral complex
  [22XK[122X and returns the fundamental group.[133X
  
  [33X[0;0YInputs a regular CW complex [22XK[122X and the number [22Xn[122X of some zero cell. It returns
  the fundamental group of [22XK[122X based at the [22Xn[122X-th zero cell.[133X
  
  [33X[0;0YInputs  a  regular  CW  map  [22XF[122X  and  returns  the  induced  homomorphism  of
  fundamental  groups.  If  the number of some zero cell in the domain of [22XF[122X is
  entered  as  an optional second variable then the fundamental group is based
  at this zero cell.[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  
  FundamentalGroupOfQuotient(Y):: EquivariantRegCWComplex --> Group
  
  [33X[0;0YInputs a [22XG[122X-equivariant regular CW complex [22XY[122X and returns the group [22XG[122X.[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  
  IsAspherical(F,R):: FreeGroup, List --> Boolean
  
  [33X[0;0YInputs  a  free group [22XF[122X and a list [22XR[122X of words in [22XF[122X. The function attempts to
  test  if  the  quotient  group  [22XG=F/⟨ R ⟩^F[122X is aspherical. If it succeeds it
  returns [22Xtrue[122X. Otherwise the test is inconclusive and [22Xfail[122X is returned.[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  
  KnotGroup(K):: PureCubicalComplex --> FpGroup
  
  KnotGroup(K):: PureCubicalComplex --> FpGroup
  
  [33X[0;0YInputs  a  pure  cubical  or  pure  permutahedral  complex [22XK[122X and returns the
  fundamental  group  of  its  complement. If the complement is path-connected
  then  this  fundamental group is unique up to isomorphism. Otherwise it will
  depend on the path-component in which the randomly chosen base-point lies.[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  
  PiZero(Y):: RegCWComplex --> List
  
  PiZero(Y):: Graph --> List
  
  PiZero(Y):: SimplicialComplex --> List
  
  [33X[0;0YInputs  a  regular  CW-complex  [22XY[122X,  or  graph [22XY[122X, or simplicial complex [22XY[122X and
  returns  a  pair  [22X[cells,r][122X  where:  [22Xcells[122X  is  a  list  of  vertices of $Y$
  representing  the  distinct  path-components;  [22Xr(v)[122X is a function which, for
  each vertex [22Xv[122X of [22XY[122X returns the representative vertex [22Xr(v) ∈ cells[122X.[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  
  PersistentBettiNumbers(K,n):: FilteredSimplicialComplex, Int --> List
  
  PersistentBettiNumbers(K,n):: FilteredPureCubicalComplex, Int --> List
  
  PersistentBettiNumbers(K,n):: FilteredRegCWComplex, Int --> List
  
  PersistentBettiNumbers(K,n):: FilteredChainComplex, Int --> List
  
  PersistentBettiNumbers(K,n):: FilteredSparseChainComplex, Int --> List
  
  PersistentBettiNumbers(K,n,p):: FilteredSimplicialComplex, Int, Int --> List
  
  PersistentBettiNumbers(K,n,p):: FilteredPureCubicalComplex, Int, Int --> List
  
  PersistentBettiNumbers(K,n,p):: FilteredRegCWComplex, Int, Int --> List
  
  PersistentBettiNumbers(K,n,p):: FilteredChainComplex, Int, Int --> List
  
  PersistentBettiNumbers(K,n,p):: FilteredSparseChainComplex, Int, Int --> List
  
  [33X[0;0YInputs  a  filtered  simplicial, filtered pure cubical, filtered regular CW,
  filtered chain or filtered sparse chain complex [22XK[122X together with an integer [22Xn
  ge  0[122X and returns the [22Xn[122Xth PersistentBetti numbers of [22XK[122X as a list of lists of
  integers.[133X
  
  [33X[0;0YInputs  a  filtered  simplicial, filtered pure cubical, filtered regular CW,
  filtered chain or filtered sparse chain complex [22XK[122X together with an integer [22Xn
  ge 0[122X and a prime [22Xp ge 0[122X or [22Xp=0[122X. In this case the [22Xn[122Xth PersistentBetti numbers
  of [22XK[122X over a field of characteristic [22Xp[122X are returned.[133X
  [33X[0;0YData [22X⟶[122X Homotopy Invariants[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  
  DendrogramMat(A,t,s):: Mat, Rat, Int --> List
  
  [33X[0;0YInputs  an [22Xn× n[122X symmetric matrix [22XA[122X over the rationals, a rational [22Xt ge 0[122X and
  an integer [22Xs ge 1[122X. A list [22X[v_1, ..., v_t+1][122X is returned with each [22Xv_k[122X a list
  of  positive  integers. Let [22Xt_k = (k-1)s[122X. Let [22XG(A,t_k)[122X denote the graph with
  vertices  [22X1,  ..., n[122X and with distinct vertices [22Xi[122X and [22Xj[122X connected by an edge
  when  the [22X(i,j)[122X entry of [22XA[122X is [22Xle t_k[122X. The [22Xi[122X-th path component of [22XG(A,t_k)[122X is
  included  in  the  [22Xv_k[i][122X-th  path component of [22XG(A,t_k+1)[122X. This defines the
  integer  vector  [22Xv_k[122X.  The vector [22Xv_k[122X has length equal to the number of path
  components of [22XG(A,t_k)[122X.[133X
  [33X[0;0YCellular Complexes [22X⟶[122X Non Homotopy Invariants[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  
  ChainComplex(K):: CubicalComplex --> ChainComplex
  
  ChainComplex(K):: PureCubicalComplex --> ChainComplex
  
  ChainComplex(K):: PurePermComplex --> ChainComplex
  
  ChainComplex(Y):: RegCWComplex --> ChainComplex
  
  ChainComplex(K):: SimplicialComplex --> ChainComplex
  
  [33X[0;0YInputs  a  cubical,  or  pure  cubical,  or pure permutahedral or simplicial
  complex  [22XK[122X and returns its chain complex of free abelian groups. In degree [22Xn[122X
  this chain complex has one free generator for each [22Xn[122X-dimensional cell of [22XK[122X.[133X
  
  [33X[0;0YInputs  a  regular CW-complex [22XY[122X and returns a chain complex [22XC[122X which is chain
  homotopy equivalent to the cellular chain complex of [22XY[122X. In degree [22Xn[122X the free
  abelian   chain   group  [22XC_n[122X  has  one  free  generator  for  each  critical
  [22Xn[122X-dimensional cell of [22XY[122X with respect to some discrete vector field on [22XY[122X.[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  
  ChainComplexEquivalence(X):: RegCWComplex --> List
  
  [33X[0;0YInputs  a  regular  CW-complex [22XX[122X and returns a pair [22X[f_∗, g_∗][122X of chain maps
  [22Xf_∗:  C_∗(X)  →  D_∗(X)[122X,  [22Xg_∗:  D_∗(X) → C_∗(X)[122X. Here [22XC_∗(X)[122X is the standard
  cellular  chain complex of [22XX[122X with one free generator for each cell in [22XX[122X. The
  chain  complex  [22XD_∗(X)[122X  is  a typically smaller chain complex arising from a
  discrete  vector  field  on  [22XX[122X.  The  chain maps [22Xf_∗, g_∗[122X are chain homotopy
  equivalences.[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  
  ChainComplexOfQuotient(Y):: EquivariantRegCWComplex --> ChainComplex
  
  [33X[0;0YInputs  a  [22XG[122X-equivariant regular CW-complex [22XY[122X and returns the cellular chain
  complex of the quotient space [22XY/G[122X.[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  
  ChainMap(X,A,Y,B):: PureCubicalComplex, PureCubicalComplex, PureCubicalComplex, PureCubicalComplex --> ChainMap
  
  ChainMap(f):: RegCWMap --> ChainMap
  
  ChainMap(f):: SimplicialMap --> ChainComplex
  
  [33X[0;0YInputs  a  pure cubical complex [22XY[122X and pure cubical sucomplexes [22XX⊂ Y[122X, [22XB⊂ Y[122X,[22XA⊂
  B[122X.  It  returns  the  induced chain map [22Xf_∗: C_∗(X/A) → C_∗(Y/B)[122X of cellular
  chain  complexes  of  pairs.  (Typlically  one  takes [22XA[122X and [22XB[122X to be empty or
  contractible subspaces, in which case [22XC_∗(X/A) ≃ C_∗(X)[122X, [22XC_∗(Y/B) ≃ C_∗(Y)[122X.)[133X
  
  [33X[0;0YInputs  a  map  [22Xf: X → Y[122X between two regular CW-complexes [22XX,Y[122X and returns an
  induced  chain  map  [22Xf_∗:  C_∗(X)  →  C_∗(Y)[122X  where [22XC_∗(X)[122X, [22XC_∗(Y)[122X are chain
  homotopic  to  (but usually smaller than) the cellular chain complexes of [22XX[122X,
  [22XY[122X.[133X
  
  [33X[0;0YInputs  a  map [22Xf: X → Y[122X between two simplicial complexes [22XX,Y[122X and returns the
  induced chain map [22Xf_∗: C_∗(X) → C_∗(Y)[122X of cellular chain complexes.[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  
  CochainComplex(K):: CubicalComplex --> CochainComplex
  
  CochainComplex(K):: PureCubicalComplex --> CochainComplex
  
  CochainComplex(K):: PurePermComplex --> CochainComplex
  
  CochainComplex(Y):: RegCWComplex --> CochainComplex
  
  CochainComplex(K):: SimplicialComplex --> CohainComplex
  
  [33X[0;0YInputs  a  cubical,  or  pure  cubical,  or pure permutahedral or simplicial
  complex  [22XK[122X and returns its cochain complex of free abelian groups. In degree
  [22Xn[122X this cochain complex has one free generator for each [22Xn[122X-dimensional cell of
  [22XK[122X.[133X
  
  [33X[0;0YInputs a regular CW-complex [22XY[122X and returns a cochain complex [22XC[122X which is chain
  homotopy  equivalent  to  the cellular cochain complex of [22XY[122X. In degree [22Xn[122X the
  free  abelian  cochain  group  [22XC_n[122X  has one free generator for each critical
  [22Xn[122X-dimensional cell of [22XY[122X with respect to some discrete vector field on [22XY[122X.[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  
  CriticalCells(K):: RegCWComplex --> List
  
  [33X[0;0YInputs a regular CW-complex [22XK[122X and returns its critical cells with respect to
  some  discrete  vector  field  on  [22XK[122X.  If  no  discrete vector field on [22XK[122X is
  available then one will be computed and stored.[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  
  DiagonalApproximation(X):: RegCWComplex --> RegCWMap, RegCWMap
  
  [33X[0;0YInputs  a  regular  CW-complex  [22XX[122X  and  outputs  a  pair  [22X[p,ι][122X  of  maps of
  CW-complexes.  The map [22Xp: X^∆ → X[122X will often be a homotopy equivalence. This
  is  always  the  case  if  [22XX[122X is the CW-space of any pure cubical complex. In
  general,  one  can  test  to  see  if the induced chain map [22Xp_∗ : C_∗(X^∆) →
  C_∗(X)[122X is an isomorphism on integral homology. The second map [22Xι : X^∆ ↪ X× X[122X
  is  an  inclusion  into the direct product. If [22Xp_∗[122X induces an isomorphism on
  homology then the chain map [22Xι_∗: C_∗(X^∆) → C_∗(X× X)[122X can be used to compute
  the cup product.[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  
  Size(Y):: RegCWComplex --> Int
  
  Size(Y):: SimplicialComplex --> Int
  
  Size(K):: PureCubicalComplex --> Int
  
  Size(K):: PurePermComplex --> Int
  
  [33X[0;0YInputs a regular CW complex or a simplicial complex [22XY[122X and returns the number
  of cells in the complex.[133X
  
  [33X[0;0YInputs  a  [22Xd[122X-dimensional  pure  cubical  or pure permutahedral complex [22XK[122X and
  returns the number of [22Xd[122X-dimensional cells in the complex.[133X
  [33X[0;0Y(Co)chain Complexes [22X⟶[122X (Co)chain Complexes[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  
  FilteredTensorWithIntegers(R):: FreeResolution, Int --> FilteredChainComplex
  
  [33X[0;0YInputs  a  free  [22XZG[122X-resolution  [22XR[122X  for  which  [22X"filteredDimension"[122X  lies  in
  [12XNamesOfComponents(R)[112X.   (Such   a   resolution   can   be   produced   using
  [12XTwisterTensorProduct()[112X,  [12XResolutionNormalSubgroups()[112X  or [12XFreeGResolution()[112X.)
  It returns the filtered chain complex obtained by tensoring with the trivial
  module $\mathbb Z$.[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  
  FilteredTensorWithIntegersModP(R,p):: FreeResolution, Int --> FilteredChainComplex
  
  [33X[0;0YInputs  a  free  [22XZG[122X-resolution  [22XR[122X  for  which  [22X"filteredDimension"[122X  lies  in
  [12XNamesOfComponents(R)[112X,  together  with  a  prime [22Xp[122X. (Such a resolution can be
  produced   using   [12XTwisterTensorProduct()[112X,   [12XResolutionNormalSubgroups()[112X  or
  [12XFreeGResolution()[112X.)  It  returns  the  filtered  chain  complex  obtained by
  tensoring with the trivial module $\mathbb F$, the field of [22Xp[122X elements.[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  
  HomToIntegers(C):: ChainComplex --> CochainComplex
  
  HomToIntegers(R):: FreeResolution --> CochainComplex
  
  HomToIntegers(F):: EquiChainMap --> CochainMap
  
  [33X[0;0YInputs  a  chain  complex  [22XC[122X  of free abelian groups and returns the cochain
  complex [22XHom_ Z(C, Z)[122X.[133X
  
  [33X[0;0YInputs  a  free  [22XZG[122X-resolution [22XR[122X in characteristic [22X0[122X and returns the cochain
  complex [22XHom_ ZG(R, Z)[122X.[133X
  
  [33X[0;0YInputs  an  equivariant  chain  map  [22XF:  R→ S[122X of resolutions and returns the
  induced cochain map [22XHom_ ZG(S, Z) ⟶ Hom_ ZG(R, Z)[122X.[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  
  TensorWithIntegersModP(C,p):: ChainComplex, Int --> ChainComplex
  
  TensorWithIntegersModP(R,p):: FreeResolution, Int --> ChainComplex
  
  TensorWithIntegersModP(F,p):: EquiChainMap, Int --> ChainMap
  
  [33X[0;0YInputs  a  chain  complex  [22XC[122X  of  characteristic [22X0[122X and a prime integer [22Xp[122X. It
  returns the chain complex [22XC ⊗_ Z Z_p[122X of characteristic [22Xp[122X.[133X
  
  [33X[0;0YInputs  a free [22XZG[122X-resolution [22XR[122X of characteristic [22X0[122X and a prime integer [22Xp[122X. It
  returns the chain complex [22XR ⊗_ ZG Z_p[122X of characteristic [22Xp[122X.[133X
  
  [33X[0;0YInputs an equivariant chain map [22XF: R → S[122X in characteristic [22X0[122X a prime integer
  [22Xp[122X. It returns the induced chain map [22XF⊗_ ZG Z_p : R ⊗_ ZG Z_p ⟶ S ⊗_ ZG Z_p[122X.[133X
  [33X[0;0Y(Co)chain Complexes [22X⟶[122X Homotopy Invariants[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  
  Cohomology(C,n):: CochainComplex, Int --> List
  
  Cohomology(F,n):: CochainMap, Int --> GroupHomomorphism
  
  Cohomology(K,n):: CubicalComplex, Int --> List
  
  Cohomology(K,n):: PureCubicalComplex, Int --> List
  
  Cohomology(K,n):: PurePermComplex, Int --> List
  
  Cohomology(K,n):: RegCWComplex, Int --> List
  
  Cohomology(K,n):: SimplicialComplex, Int --> List
  
  [33X[0;0YInputs  a  cochain  complex  [22XC[122X  and  integer  [22Xn  ge  0[122X  and returns the [22Xn[122X-th
  cohomology group of [22XC[122X as a list of its abelian invariants.[133X
  
  [33X[0;0YInputs  a  chain map [22XF[122X and integer [22Xn ge 0[122X. It returns the induced cohomology
  homomorphism [22XH_n(F)[122X as a homomorphism of finitely presented groups.[133X
  
  [33X[0;0YInputs  a  cubical,  or pure cubical, or pure permutahedral or regular CW or
  simplicial  complex  [22XK[122X  together with an integer [22Xn ge 0[122X. It returns the [22Xn[122X-th
  integral cohomology group of [22XK[122X as a list of its abelian invariants.[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  
  CupProduct(Y):: RegCWComplex --> Function
  
  CupProduct(R,p,q,P,Q):: FreeRes, Int, Int, List, List  --> List
  
  [33X[0;0YInputs  a  regular  CW-complex  [22XY[122X  and  returns  a function [22Xf(p,q,P,Q)[122X. This
  function  [22Xf[122X  inputs two integers [22Xp,q ge 0[122X and two integer lists [22XP=[p_1, ...,
  p_m][122X, [22XQ=[q_1, ..., q_n][122X representing elements [22XP∈ H^p(Y, Z)[122X and [22XQ∈ H^q(Y, Z)[122X.
  The  function  [22Xf[122X  returns  a list [22XP ∪ Q[122X representing the cup product [22XP ∪ Q ∈
  H^p+q(Y, Z)[122X.[133X
  
  [33X[0;0YInputs  a free [22XZG[122X resolution [22XR[122X of [22XZ[122X for some group [22XG[122X, together with integers
  [22Xp,q  ge  0[122X  and integer lists [22XP, Q[122X representing cohomology classes [22XP∈ H^p(G,
  Z)[122X,  [22XQ∈  H^q(G,  Z)[122X.  An  integer  list  representing the cup product [22XP∪ Q ∈
  H^p+q(G, Z)[122X is returned.[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  
  Homology(C,n):: ChainComplex, Int --> List
  
  Homology(F,n):: ChainMap, Int --> GroupHomomorphism
  
  Homology(K,n):: CubicalComplex, Int --> List
  
  Homology(K,n):: PureCubicalComplex, Int --> List
  
  Homology(K,n):: PurePermComplex, Int --> List
  
  Homology(K,n):: RegCWComplex, Int --> List
  
  Homology(K,n):: SimplicialComplex, Int --> List
  
  [33X[0;0YInputs  a  chain  complex [22XC[122X and integer [22Xn ge 0[122X and returns the [22Xn[122X-th homology
  group of [22XC[122X as a list of its abelian invariants.[133X
  
  [33X[0;0YInputs  a  chain  map  [22XF[122X and integer [22Xn ge 0[122X. It returns the induced homology
  homomorphism [22XH_n(F)[122X as a homomorphism of finitely presented groups.[133X
  
  [33X[0;0YInputs  a  cubical,  or pure cubical, or pure permutahedral or regular CW or
  simplicial  complex  [22XK[122X  together with an integer [22Xn ge 0[122X. It returns the [22Xn[122X-th
  integral homology group of [22XK[122X as a list of its abelian invariants.[133X
  [33X[0;0YVisualization[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  
  BarCodeDisplay(L) :: List --> void
  
  [33X[0;0YDisplays a barcode [12XL=PersitentBettiNumbers(X,n)[112X.[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  
  BarCodeCompactDisplay(L) :: List --> void
  
  [33X[0;0YDisplays a barcode [12XL=PersitentBettiNumbers(X,n)[112X in compact form.[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  
  CayleyGraphOfGroup(G,L):: Group, List --> Void
  
  [33X[0;0YInputs a finite group [22XG[122X and a list [22XL[122X of elements in [22XG[122X.It displays the Cayley
  graph  of  the  group  generated  by  [22XL[122X  where  edge  colours  correspond to
  generators.[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  
  Display(G) :: Graph --> void
  
  Display(M) :: PureCubicalComplex --> void
  
  Display(M) :: PurePermutahedralComplex --> void
  
  [33X[0;0YDisplays  a  graph  [22XG[122X;  a  $2$- or $3$-dimensional pure cubical complex [22XM[122X; a
  $3$-dimensional pure permutahedral complex [22XM[122X.[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  
  DisplayArcPresentation(K) :: PureCubicalComplex --> void
  
  [33X[0;0YDisplays  a [22X3[122X-dimensional pure cubical knot [12XK=PureCubicalKnot(L)[112X in the form
  of an arc presentation.[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  
  DisplayCSVKnotFile(str) :: String --> void
  
  [33X[0;0YInputs  a  string  [22Xstr[122X that identifies a csv file containing the points on a
  piecewise linear knot in [22XR^3[122X. It displays the knot.[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  
  DisplayDendrogram(L):: List --> Void
  
  [33X[0;0YDisplays the dendrogram [12XL:=DendrogramMat(A,t,s)[112X.[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  
  DisplayDendrogramMat(A,t,s):: Mat, Rat, Int --> Void
  
  [33X[0;0YInputs  an [22Xn× n[122X symmetric matrix [22XA[122X over the rationals, a rational [22Xt ge 0[122X and
  an  integer  [22Xs  ge  1[122X.  The  dendrogram  defined  by [12XDendrogramMat(A,t,s)[112X is
  displayed.[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  
  DisplayPDBfile(str):: String --> Void
  
  [33X[0;0YDisplays  the  protein  backone  described  in a PDB (Protein Database) file
  identified by a string str such as "file.pdb" or "path/file.pdb".[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  
  OrbitPolytope(G,v,L) :: PermGroup, List, List --> void
  
  [33X[0;0YInputs  a  permutation  group  or  finite  matrix  group [22XG[122X of degree [22Xd[122X and a
  rational vector [22Xv∈ R^d[122X. In both cases there is a natural action of [22XG[122X on [22XR^d[122X.
  Let  [22XP(G,v)[122X  be the convex hull of the orbit of [22Xv[122X under the action of [22XG[122X. The
  function  also  inputs  a  sublist  [22XL[122X  of  the  following  list  of strings:
  ["dimension","vertex\_degree", "visual\_graph", "schlegel", "visual"][133X
  
  [33X[0;0YDepending  on  [22XL[122X,  the  function  displays  the following information:\\ the
  dimension  of  the  orbit  polytope  [22XP(G,v)[122X;\\ the degree of a vertex in the
  graph of [22XP(G,v)[122X;\\ a visualization of the graph of [22XP(G,v)[122X;\\ a visualization
  of  the Schlegel diagram of [22XP(G,v)[122X;\\ a visualization of the polytope [22XP(G,v)[122X
  if [22Xd=2,3[122X.[133X
  
  [33X[0;0YThe function requires Polymake software.[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  
  ScatterPlot(L):: List --> Void
  
  [33X[0;0YInputs  a list [22XL=[[x_1,y_1],..., [x_n,y_n]][122X of pairs of rational numbers and
  displays a scatter plot of the points in the [22Xx[122X-[22Xy[122X-plane.[133X
  
