# Simplicial Homology

- [Introduction](introduction.md)

- [Simplicial Complexes](simplicial-complexes.md)

  - [`SimplicialComplex(f): SeqEnum[SetEnum] → SmpCpx`](simplicial-complexes.md#function-simplicialcomplex-seqenum-setenum)

  - [`Example: construct`](simplicial-complexes.md#example-ex-083856)

  - [`SimplicialComplex(G): Grph → SmpCpx`](simplicial-complexes.md#function-simplicialcomplex-grph)

  - [`FlagComplex(G): Grph → SmpCpx`](simplicial-complexes.md#function-flagcomplex-grph)

  - [`CliqueComplex(G): Grph → SmpCpx`](simplicial-complexes.md#function-cliquecomplex-grph)

  - [`Dimension(X): SmpCpx → RngIntElt`](simplicial-complexes.md#function-dimension-smpcpx)

  - [`Example: dimension`](simplicial-complexes.md#example-ex-cb69ff)

  - [`Faces(X, d): SmpCpx, RngIntElt → SeqEnum[SetEnum]`](simplicial-complexes.md#function-faces-smpcpx-rngintelt)

  - [`Example: faces`](simplicial-complexes.md#example-ex-36668a)

  - [`Facets(X): SmpCpx → SeqEnum[SetEnum]`](simplicial-complexes.md#function-facets-smpcpx)

  - [`Example: facets`](simplicial-complexes.md#example-ex-4ea384)

  - [`Normalization(X): SmpCpx → SmpCpx`](simplicial-complexes.md#function-smpcpx-normalization)

  - [`Normalization(~X): SmpCpx`](simplicial-complexes.md#function-normalization-smpcpx-ref)

  - [`Shift(X, n): SmpCpx, RngIntElt → SmpCpx`](simplicial-complexes.md#function-shift-smpcpx-rngintelt)

  - [`Shift(~X, n): SmpCpx, RngIntElt`](simplicial-complexes.md#function-shift-smpcpx-rngintelt-ref)

  - [`Example: Normalize Shift`](simplicial-complexes.md#example-ex-0f49fd)

  - [`Boundary(X): SmpCpx → SmpCpx`](simplicial-complexes.md#function-boundary-smpcpx)

  - [`Example: boundary`](simplicial-complexes.md#example-ex-c50a0b)

  - [`S + T: SmpCpx, SmpCpx → SmpCpx`](simplicial-complexes.md#operation-op-plus-smpcpx-smpcpx)

  - [`Example: sum`](simplicial-complexes.md#example-ex-48ad79)

  - [`S eq T: SmpCpx, SmpCpx → BoolElt`](simplicial-complexes.md#operation-op-eq-smpcpx-smpcpx)

  - [`Example: eq`](simplicial-complexes.md#example-ex-4ee2fb)

  - [`Product(S, T): SmpCpx, SmpCpx → SmpCpx`](simplicial-complexes.md#function-product-smpcpx-smpcpx)

  - [`Example: product`](simplicial-complexes.md#example-ex-80e5c8)

  - [`Join(S, T): SmpCpx, SmpCpx → SmpCpx`](simplicial-complexes.md#function-join-smpcpx-smpcpx)

  - [`S * T: SmpCpx, SmpCpx → SmpCpx`](simplicial-complexes.md#operation-op-times-smpcpx-smpcpx)

  - [`Example: join`](simplicial-complexes.md#example-ex-b9ce13)

  - [`AddSimplex(X, s): SmpCpx, SetEnum → SmpCpx`](simplicial-complexes.md#function-addsimplex-smpcpx-setenum)

  - [`AddSimplex(~X, s): SmpCpx, SetEnum`](simplicial-complexes.md#function-addsimplex-smpcpx-setenum-ref)

  - [`AddSimplex(X, s): SmpCpx, SeqEnum → SmpCpx`](simplicial-complexes.md#function-addsimplex-smpcpx-seqenum)

  - [`AddSimplex(~X, s): SmpCpx, SeqEnum`](simplicial-complexes.md#function-addsimplex-smpcpx-seqenum-ref)

  - [`Prune(X, f): SmpCpx, SetEnum → SmpCpx`](simplicial-complexes.md#function-prune-smpcpx-setenum)

  - [`Prune(~X, f): SmpCpx, SetEnum`](simplicial-complexes.md#function-prune-smpcpx-setenum-ref)

  - [`Glue(X, e): SmpCpx, SeqEnum → SmpCpx`](simplicial-complexes.md#function-glue-smpcpx-seqenum)

  - [`Glue(~X, e): SmpCpx, SeqEnum`](simplicial-complexes.md#function-glue-smpcpx-seqenum-ref)

  - [`Example: Prune Glue`](simplicial-complexes.md#example-ex-ecfc35)

  - [`BarycentricSubdivision(X): SmpCpx → SmpCpx`](simplicial-complexes.md#function-barycentricsubdivision-smpcpx)

  - [`Skeleton(X, q): SmpCpx, RngIntElt → SmpCpx`](simplicial-complexes.md#function-skeleton-smpcpx-rngintelt)

  - [`UnderlyingGraph(X): SmpCpx → GrphUnd, GrphVertSet, GrphEdgeSet`](simplicial-complexes.md#function-underlyinggraph-smpcpx)

  - [`Cone(X): SmpCpx → SmpCpx`](simplicial-complexes.md#function-cone-smpcpx)

  - [`Suspension(X): SmpCpx → SmpCpx`](simplicial-complexes.md#function-suspension-smpcpx)

  - [`Example: Cone Suspension`](simplicial-complexes.md#example-ex-d8fe8c)

  - [Standard Topological Objects](simplicial-complexes.md#standard-topological-objects)

    - [`Simplex(n): RngIntElt → SmpCpx`](simplicial-complexes.md#function-simplex-rngintelt)

    - [`Sphere(n): RngIntElt → SmpCpx`](simplicial-complexes.md#function-sphere-rngintelt)

    - [`KleinBottle() → SmpCpx`](simplicial-complexes.md#function-kleinbottle)

    - [`Torus() → SmpCpx`](simplicial-complexes.md#function-torus)

    - [`Cylinder() → SmpCpx`](simplicial-complexes.md#function-cylinder)

    - [`MoebiusStrip() → SmpCpx`](simplicial-complexes.md#function-moebiusstrip)

    - [`LensSpace(p): RngIntElt → SmpCpx`](simplicial-complexes.md#function-lensspace-rngintelt)

    - [`SimplicialProjectivePlane() → SmpCpx`](simplicial-complexes.md#function-simplicialprojectiveplane)

- [Homology Computation](homology-computation.md)

  - [`Homology(X): SmpCpx → SeqEnum, SeqEnum`](homology-computation.md#function-homology-smpcpx)

  - [`Homology(~X): SmpCpx`](homology-computation.md#function-homology-smpcpx-ref)

  - [`Homology(X, A): SmpCpx, Rng → SeqEnum, SeqEnum`](homology-computation.md#function-homology-smpcpx-rng)

  - [`Homology(~X, A): SmpCpx, Rng`](homology-computation.md#function-homology-smpcpx-rng-ref)

  - [`Example: homology`](homology-computation.md#example-ex-a2198f)

  - [`HomologyGroup(X, q): SmpCpx, RngIntElt → ModRng`](homology-computation.md#function-homologygroup-smpcpx-rngintelt)

  - [`HomologyGroup(X, q, A): SmpCpx, RngIntElt, Rng → ModRng`](homology-computation.md#function-homologygroup-smpcpx-rngintelt-rng)

  - [`BettiNumber(X, q): SmpCpx, RngIntElt → RngIntElt`](homology-computation.md#function-bettinumber-smpcpx-rngintelt)

  - [`BettiNumber(X, q, A): SmpCpx, RngIntElt, Rng → RngIntElt`](homology-computation.md#function-bettinumber-smpcpx-rngintelt-rng)

  - [`TorsionCoefficients(X, q): SmpCpx, RngIntElt → SeqEnum[RngElt]`](homology-computation.md#function-torsioncoefficients-smpcpx-rngintelt)

  - [`TorsionCoefficients(X, q, A): SmpCpx, RngIntElt, Rng → SeqEnum[RngElt]`](homology-computation.md#function-torsioncoefficients-smpcpx-rngintelt-rng)

  - [`EulerCharacteristic(X): SmpCpx → RngIntElt`](homology-computation.md#function-eulercharacteristic-smpcpx)

  - [`BoundaryMatrix(X, q, A): SmpCpx, RngIntElt, Rng → Mtrx`](homology-computation.md#function-boundarymatrix-smpcpx-rngintelt-rng)

  - [`ChainComplex(X, A): SmpCpx, Rng → ModCpx`](homology-computation.md#function-chaincomplex-smpcpx-rng)

  - [`Example: chaincomplex`](homology-computation.md#example-ex-dacb67)

  - [`HomologyGenerators(X): SmpCpx`](homology-computation.md#function-homologygenerators-smpcpx)

  - [`HomologyGenerators(X, A): SmpCpx, Rng`](homology-computation.md#function-homologygenerators-smpcpx-rng)

  - [`HomologyGenerators(H, M, X): SeqEnum, SeqEnum, SmpCpx`](homology-computation.md#function-homologygenerators-seqenum-seqenum-smpcpx)

  - [`Example: homologygenerators`](homology-computation.md#example-ex-1e8d54)
