<Chapter><Heading> Simplicial Complexes</Heading>

<Section><Heading> &nbsp;</Heading>

<ManSection>

<Func Name="Homology" Arg="T,n"/>

<Func Name="Homology" Arg="T"/>
<Description>

<P/>
Inputs a pure cubical complex, or cubical complex, or simplicial complex <M>T</M>
and a non-negative integer <M>n</M>. It returns the n-th integral homology of <M>T</M> as a list of torsion integers.
 If no value of <M>n</M> is input then the list of all homologies of <M>T</M>
in dimensions 0 to Dimension(T)  is returned .
<P/><B>Examples:</B> <URL><Link>tutorial/chap1.html</Link><LinkText>1</LinkText></URL>&nbsp;,
<URL><Link>tutorial/chap2.html</Link><LinkText>2</LinkText></URL>&nbsp;,
<URL><Link>tutorial/chap3.html</Link><LinkText>3</LinkText></URL>&nbsp;,
<URL><Link>tutorial/chap6.html</Link><LinkText>4</LinkText></URL>&nbsp;,
<URL><Link>tutorial/chap8.html</Link><LinkText>5</LinkText></URL>&nbsp;,
<URL><Link>tutorial/chap9.html</Link><LinkText>6</LinkText></URL>&nbsp;,
<URL><Link>tutorial/chap10.html</Link><LinkText>7</LinkText></URL>&nbsp;,
<URL><Link>../www/SideLinks/About/aboutLinks.html</Link><LinkText>8</LinkText></URL>&nbsp;,
<URL><Link>../www/SideLinks/About/aboutArithmetic.html</Link><LinkText>9</LinkText></URL>&nbsp;,
<URL><Link>../www/SideLinks/About/aboutMetrics.html</Link><LinkText>10</LinkText></URL>&nbsp;,
<URL><Link>../www/SideLinks/About/aboutArtinGroups.html</Link><LinkText>11</LinkText></URL>&nbsp;,
<URL><Link>../www/SideLinks/About/aboutAspherical.html</Link><LinkText>12</LinkText></URL>&nbsp;,
<URL><Link>../www/SideLinks/About/aboutParallel.html</Link><LinkText>13</LinkText></URL>&nbsp;,
<URL><Link>../www/SideLinks/About/aboutBredon.html</Link><LinkText>14</LinkText></URL>&nbsp;,
<URL><Link>../www/SideLinks/About/aboutPerformance.html</Link><LinkText>15</LinkText></URL>&nbsp;,
<URL><Link>../www/SideLinks/About/aboutCocycles.html</Link><LinkText>16</LinkText></URL>&nbsp;,
<URL><Link>../www/SideLinks/About/aboutPersistent.html</Link><LinkText>17</LinkText></URL>&nbsp;,
<URL><Link>../www/SideLinks/About/aboutPoincareSeries.html</Link><LinkText>18</LinkText></URL>&nbsp;,
<URL><Link>../www/SideLinks/About/aboutCoveringSpaces.html</Link><LinkText>19</LinkText></URL>&nbsp;,
<URL><Link>../www/SideLinks/About/aboutCoverinSpaces.html</Link><LinkText>20</LinkText></URL>&nbsp;,
<URL><Link>../www/SideLinks/About/aboutPolytopes.html</Link><LinkText>21</LinkText></URL>&nbsp;,
<URL><Link>../www/SideLinks/About/aboutCoxeter.html</Link><LinkText>22</LinkText></URL>&nbsp;,
<URL><Link>../www/SideLinks/About/aboutquasi.html</Link><LinkText>23</LinkText></URL>&nbsp;,
<URL><Link>../www/SideLinks/About/aboutCubical.html</Link><LinkText>24</LinkText></URL>&nbsp;,
<URL><Link>../www/SideLinks/About/aboutRandomComplexes.html</Link><LinkText>25</LinkText></URL>&nbsp;,
<URL><Link>../www/SideLinks/About/aboutRosenbergerMonster.html</Link><LinkText>26</LinkText></URL>&nbsp;,
<URL><Link>../www/SideLinks/About/aboutDavisComplex.html</Link><LinkText>27</LinkText></URL>&nbsp;,
<URL><Link>../www/SideLinks/About/aboutDefinitions.html</Link><LinkText>28</LinkText></URL>&nbsp;,
<URL><Link>../www/SideLinks/About/aboutSimplicialGroups.html</Link><LinkText>29</LinkText></URL>&nbsp;,
<URL><Link>../www/SideLinks/About/aboutExtensions.html</Link><LinkText>30</LinkText></URL>&nbsp;,
<URL><Link>../www/SideLinks/About/aboutSpaceGroup.html</Link><LinkText>31</LinkText></URL>&nbsp;,
<URL><Link>../www/SideLinks/About/aboutFunctorial.html</Link><LinkText>32</LinkText></URL>&nbsp;,
<URL><Link>../www/SideLinks/About/aboutGraphsOfGroups.html</Link><LinkText>33</LinkText></URL>&nbsp;,
<URL><Link>../www/SideLinks/About/aboutIntro.html</Link><LinkText>34</LinkText></URL>&nbsp;,
<URL><Link>../www/SideLinks/About/aboutTensorSquare.html</Link><LinkText>35</LinkText></URL>&nbsp;,
<URL><Link>../www/SideLinks/About/aboutLieCovers.html</Link><LinkText>36</LinkText></URL>&nbsp;,
<URL><Link>../www/SideLinks/About/aboutTorAndExt.html</Link><LinkText>37</LinkText></URL>&nbsp;,
<URL><Link>../www/SideLinks/About/aboutLie.html</Link><LinkText>38</LinkText></URL>&nbsp;,
<URL><Link>../www/SideLinks/About/aboutTwistedCoefficients.html</Link><LinkText>39</LinkText></URL>&nbsp; 

</Description>





















































































</ManSection>

<ManSection>

<Func Name="RipsHomology" Arg="G,n"/>

<Func Name="RipsHomology" Arg="G,n,p"/>
<Description>

<P/>
Inputs a graph <M>G</M>, a non-negative integer <M>n</M> (and optionally a prime number <M>p</M>). It returns the integral  homology (or mod p homology) in degree <M>n</M> of the Rips complex of <M>G</M>. 
<P/><B>Examples:</B> 
</Description>





















































































</ManSection>

<ManSection>

<Func Name="Bettinumbers" Arg="T,n"/>

<Func Name="Bettinumbers" Arg="T"/>
<Description>

<P/>
Inputs a pure cubical complex, or cubical complex,  simplicial complex or chain complex <M>T</M> and a non-negative integer <M>n</M>.
 The   rank of the  n-th rational homology group  <M>H_n(T,\mathbb Q)</M> is returned. If no value for n is input then the list of Betti numbers
in dimensions 0 to Dimension(T)  is returned .
<P/><B>Examples:</B> <URL><Link>../www/SideLinks/About/aboutMetrics.html</Link><LinkText>1</LinkText></URL>&nbsp;,
<URL><Link>../www/SideLinks/About/aboutTDA.html</Link><LinkText>2</LinkText></URL>&nbsp; 

</Description>





















































































</ManSection>

<ManSection>

<Func Name="ChainComplex" Arg="T"/>
<Description>

<P/>
Inputs a  pure cubical complex, or cubical complex, or simplicial complex
 <M>T</M>
and returns the (often very large) cellular chain complex of <M>T</M>. 
<P/><B>Examples:</B> <URL><Link>tutorial/chap1.html</Link><LinkText>1</LinkText></URL>&nbsp;,
<URL><Link>tutorial/chap3.html</Link><LinkText>2</LinkText></URL>&nbsp;,
<URL><Link>tutorial/chap9.html</Link><LinkText>3</LinkText></URL>&nbsp;,
<URL><Link>../www/SideLinks/About/aboutMetrics.html</Link><LinkText>4</LinkText></URL>&nbsp;,
<URL><Link>../www/SideLinks/About/aboutBredon.html</Link><LinkText>5</LinkText></URL>&nbsp;,
<URL><Link>../www/SideLinks/About/aboutPersistent.html</Link><LinkText>6</LinkText></URL>&nbsp;,
<URL><Link>../www/SideLinks/About/aboutCoveringSpaces.html</Link><LinkText>7</LinkText></URL>&nbsp;,
<URL><Link>../www/SideLinks/About/aboutCoverinSpaces.html</Link><LinkText>8</LinkText></URL>&nbsp;,
<URL><Link>../www/SideLinks/About/aboutCubical.html</Link><LinkText>9</LinkText></URL>&nbsp;,
<URL><Link>../www/SideLinks/About/aboutSimplicialGroups.html</Link><LinkText>10</LinkText></URL>&nbsp;,
<URL><Link>../www/SideLinks/About/aboutIntro.html</Link><LinkText>11</LinkText></URL>&nbsp; 

</Description>





















































































</ManSection>

<ManSection>

<Func Name="CechComplexOfPureCubicalComplex" Arg="T"/>
<Description>

<P/>
Inputs a d-dimensional pure cubical complex 
 <M>T</M>
and returns  a simplicial complex <M>S</M>. The simplicial complex <M>S</M> has one vertex for each d-cube in <M>T</M>, and an n-simplex for each collection of n+1 d-cubes with non-trivial common intersection.
 The homotopy types of <M>T</M> and <M>S</M> are equal.
<P/><B>Examples:</B> <URL><Link>../www/SideLinks/About/aboutCubical.html</Link><LinkText>1</LinkText></URL>&nbsp; 

</Description>





















































































</ManSection>

<ManSection>

<Func Name="PureComplexToSimplicialComplex" Arg="T,k"/>
<Description>

<P/>
Inputs either a d-dimensional pure cubical complex
 <M>T</M> or a d-dimensional pure permutahedral complex <M>T</M> together with
a non-negative integer <M>k</M>. It 
returns the first <M>k</M> dimensions of
  a simplicial complex <M>S</M>. The simplicial complex <M>S</M> has one vertex for each d-cell in <M>T</M>, and an n-simplex for each collection of n+1 d-cells with non-trivial common intersection.
 The homotopy types of <M>T</M> and <M>S</M> are equal.

<P/> For a pure cubical complex <M>T</M> this uses a slightly different algorithm to the function CechComplexOfPureCubicalComplex(T) but constructs the same simplicial complex.
<P/><B>Examples:</B> <URL><Link>../www/SideLinks/About/aboutCubical.html</Link><LinkText>1</LinkText></URL>&nbsp; 

</Description>





















































































</ManSection>

<ManSection>

<Func Name="RipsChainComplex" Arg="G,n"/>
<Description>
<P/>
Inputs a graph <M>G</M>  and a non-negative integer <M>n</M>. It returns  
 <M>n+1</M> terms of a chain complex whose homology is that of the nerve (or Rips complex) of
the graph in degrees up to <M>n</M>.
<P/><B>Examples:</B> <URL><Link>../www/SideLinks/About/aboutMetrics.html</Link><LinkText>1</LinkText></URL>&nbsp; 

</Description>





















































































</ManSection>

<ManSection>

<Func Name="VectorsToSymmetricMatrix" Arg="M"/>

<Func Name="VectorsToSymmetricMatrix" Arg="M,distance"/>
<Description>

<P/>
Inputs a  matrix <M>M</M> of rational numbers and returns a symmetric matrix <M>S</M> whose <M>(i,j)</M> entry is the distance between the <M>i</M>-th row and <M>j</M>-th rows of <M>M</M> where distance is given by the sum of the absolute values of the coordinate differences.

<P/>
Optionally, a function distance(v,w) can be entered as a second argument. This function has to return a rational number for each pair of rational 
vectors <M>v,w</M> of length Length(M[1]). 
<P/><B>Examples:</B> <URL><Link>../www/SideLinks/About/aboutMetrics.html</Link><LinkText>1</LinkText></URL>&nbsp; 

</Description>





















































































</ManSection>

<ManSection>

<Func Name="EulerCharacteristic" Arg="T"/>
<Description>

<P/>
Inputs a  pure cubical complex, or cubical complex, or simplicial complex
 <M>T</M>
and returns its Euler characteristic.
<P/><B>Examples:</B> 
</Description>





















































































</ManSection>

<ManSection>

<Func Name="MaximalSimplicesToSimplicialComplex" Arg="L"/>
<Description>

<P/>
Inputs a list L whose entries are lists of vertices representing the maximal simplices of a simplicial complex.
The simplicial complex is returned. Here a "vertex" is a GAP object such as an integer or a subgroup. 
<P/><B>Examples:</B> <URL><Link>tutorial/chap3.html</Link><LinkText>1</LinkText></URL>&nbsp;,
<URL><Link>../www/SideLinks/About/aboutCoveringSpaces.html</Link><LinkText>2</LinkText></URL>&nbsp;,
<URL><Link>../www/SideLinks/About/aboutCoverinSpaces.html</Link><LinkText>3</LinkText></URL>&nbsp;,
<URL><Link>../www/SideLinks/About/aboutCubical.html</Link><LinkText>4</LinkText></URL>&nbsp; 

</Description>





















































































</ManSection>

<ManSection>

<Func Name="SkeletonOfSimplicialComplex" Arg="S,k"/>
<Description>

<P/>
Inputs a simplicial complex <M>S</M> and a positive integer <M>k</M> less than or equal to the dimension of <M>S</M>. It returns the truncated <M>k</M>-dimensional simplicial complex <M>S^k</M> (and leaves <M>S</M> unchanged).
<P/><B>Examples:</B> 
</Description>





















































































</ManSection>

<ManSection>

<Func Name="GraphOfSimplicialComplex" Arg="S"/>
<Description>

<P/>
Inputs a simplicial complex <M>S</M> and returns the graph
of <M>S</M>.
<P/><B>Examples:</B> <URL><Link>tutorial/chap2.html</Link><LinkText>1</LinkText></URL>&nbsp;,
<URL><Link>tutorial/chap4.html</Link><LinkText>2</LinkText></URL>&nbsp;,
<URL><Link>../www/SideLinks/About/aboutRandomComplexes.html</Link><LinkText>3</LinkText></URL>&nbsp; 

</Description>





















































































</ManSection>

<ManSection>

<Func Name="ContractibleSubcomplexOfSimplicialComplex" Arg="S"/>
<Description>

<P/>
Inputs a simplicial complex <M>S</M> and returns a (probably maximal)
contractible subcomplex 
of <M>S</M>.
<P/><B>Examples:</B> 
</Description>





















































































</ManSection>

<ManSection>

<Func Name="PathComponentsOfSimplicialComplex" Arg="S,n"/>
<Description>

<P/>
Inputs a simplicial complex <M>S</M> and a nonnegative integer <M>n</M>. If <M>n=0</M> the number of path components of <M>S</M> is returned. Otherwise the n-th path component is returned (as a simplicial complex).
<P/><B>Examples:</B> 
</Description>





















































































</ManSection>

<ManSection>

<Func Name="QuillenComplex" Arg="G"/>
<Description>

<P/>
Inputs a finite group  
 <M>G</M>
and returns, as a simplicial complex, the order complex of the poset of non-trivial elementary abelian subgroups of <M>G</M>. 
<P/><B>Examples:</B> <URL><Link>tutorial/chap1.html</Link><LinkText>1</LinkText></URL>&nbsp;,
<URL><Link>../www/SideLinks/About/aboutBredon.html</Link><LinkText>2</LinkText></URL>&nbsp;,
<URL><Link>../www/SideLinks/About/aboutCubical.html</Link><LinkText>3</LinkText></URL>&nbsp; 

</Description>





















































































</ManSection>

<ManSection>

<Func Name="SymmetricMatrixToIncidenceMatrix" Arg="S,t"/>

<Func Name="SymmetricMatrixToIncidenceMatrix" Arg="S,t,d"/>
<Description>

<P/>
Inputs a symmetric integer matrix S and an integer t. It
 returns the matrix  <M>M</M> with <M>M_{ij}=1</M> if <M>I_{ij}</M> is less than <M> t</M>
and <M>I_{ij}=1</M> otherwise. 

<P/> 
An optional integer <M>d</M> can be given as a third argument. In this case 
the incidence matrix should have roughly at most <M>d</M> entries in each row (corresponding to the <M>d</M> smallest entries in each row of <M>S</M>). 
<P/><B>Examples:</B> 
</Description>





















































































</ManSection>

<ManSection>

<Func Name="IncidenceMatrixToGraph" Arg="M"/>
<Description>

<P/>
Inputs a symmetric 0/1 matrix M. It
 returns the 
graph with one vertex for each row of <M>M</M> and an edges between vertices <M>i</M> and <M>j</M> if the <M>(i,j)</M> entry in <M>M</M> equals 1.
<P/><B>Examples:</B> 
</Description>





















































































</ManSection>

<ManSection>

<Func Name="CayleyGraphOfGroup" Arg="G,A"/>
<Description>

<P/>
Inputs a group <M>G</M> and a set <M>A</M> of generators. It returns the Cayley graph.
<P/><B>Examples:</B> 
</Description>





















































































</ManSection>

<ManSection>

<Func Name="PathComponentsOfGraph" Arg="G,n"/>
<Description>

<P/>
Inputs a graph <M>G</M> and a nonnegative integer <M>n</M>. If <M>n=0</M> the number of path components is returned. Otherwise the n-th path component is returned (as a graph).
<P/><B>Examples:</B> 
</Description>





















































































</ManSection>

<ManSection>

<Func Name="ContractGraph" Arg="G"/>
<Description>

<P/>
Inputs a graph <M>G</M> and tries to remove vertices and edges to produce a smaller graph <M>G'</M>
such that the indlusion <M>G' \rightarrow G</M> induces a homotopy equivalence
 <M>RG \rightarrow RG'</M> of Rips complexes. If the graph <M>G</M> is modified the function returns true, and otherwise returns false. 
<P/><B>Examples:</B> <URL><Link>../www/SideLinks/About/aboutMetrics.html</Link><LinkText>1</LinkText></URL>&nbsp; 

</Description>





















































































</ManSection>

<ManSection>

<Func Name="GraphDisplay" Arg="G"/>
<Description>

<P/>
This function uses GraphViz software to display a graph <M>G</M>.
<P/><B>Examples:</B> <URL><Link>../www/SideLinks/About/aboutMetrics.html</Link><LinkText>1</LinkText></URL>&nbsp;,
<URL><Link>../www/SideLinks/About/aboutTopology.html</Link><LinkText>2</LinkText></URL>&nbsp; 

</Description>





















































































</ManSection>

<ManSection>

<Func Name="SimplicialMap" Arg="K,L,f"/>

<Func Name="SimplicialMapNC" Arg="K,L,f"/>
<Description>

<P/>
Inputs simplicial complexes <M>K</M> , <M>L</M> and a 
function <M>f\colon K!.vertices \rightarrow L!.vertices</M> 
representing a simplicial map. It returns a simplicial 
map <M>K \rightarrow L</M>. If <M>f</M> does not happen to represent a 
simplicial map then SimplicialMap(K,L,f) will return fail; SimplicialMapNC(K,L,f)
will not do any check and always return something of the data type "simplicial map".
<P/><B>Examples:</B> 
</Description>





















































































</ManSection>

<ManSection>

<Func Name="ChainMapOfSimplicialMap" Arg="f"/>
<Description>

<P/>
Inputs a simplicial map  <M>f\colon K \rightarrow L</M> and returns the 
corresponding chain map  <M>C_\ast(f) \colon C_\ast(K) \rightarrow C_\ast(L)</M> of the simplicial chain complexes..
<P/><B>Examples:</B> 
</Description>





















































































</ManSection>

<ManSection>

<Func Name="SimplicialNerveOfGraph" Arg="G,d"/>
<Description>

<P/>
Inputs a graph <M>G</M> and returns a <M>d</M>-dimensional
simplicial complex <M>K</M> whose 1-skeleton is equal to <M>G</M>. There is a simplicial inclusion <M>K \rightarrow RG</M> where: (i) the inclusion induces isomorphisms on homotopy groups in dimensions less than <M>d</M>; (ii) the complex <M>RG</M> is the Rips complex (with  one <M>n</M>-simplex for each complete subgraph of <M>G</M> on  <M>n+1</M> vertices).
<P/><B>Examples:</B> <URL><Link>../www/SideLinks/About/aboutMetrics.html</Link><LinkText>1</LinkText></URL>&nbsp;,
<URL><Link>../www/SideLinks/About/aboutRandomComplexes.html</Link><LinkText>2</LinkText></URL>&nbsp; 

</Description>





















































































</ManSection>

</Section>
</Chapter>

