# Examples of simplicial sets.¶

These are accessible via simplicial_sets.Sphere(3), simplicial_sets.Torus(), etc. Type simplicial_sets.[TAB] to see a complete list.

AUTHORS:

• John H. Palmieri (2016-07)
sage.homology.simplicial_set_examples.ClassifyingSpace(group)

Return the classifying space of group, as a simplicial set.

INPUT:

• group – a finite group or finite monoid

See sage.categories.finite_monoids.FiniteMonoids.ParentMethods.nerve() for more details and more examples.

EXAMPLES:

sage: C2 = groups.misc.MultiplicativeAbelian()
sage: BC2 = simplicial_sets.ClassifyingSpace(C2)
sage: H = BC2.homology(range(9), base_ring=GF(2))
sage: [H[i].dimension() for i in range(9)]
[0, 1, 1, 1, 1, 1, 1, 1, 1]

sage: Klein4 = groups.misc.MultiplicativeAbelian([2, 2])
sage: BK = simplicial_sets.ClassifyingSpace(Klein4)
sage: BK
Classifying space of Multiplicative Abelian group isomorphic to C2 x C2
sage: BK.homology(range(5), base_ring=GF(2))  # long time (1 second)
{0: Vector space of dimension 0 over Finite Field of size 2,
1: Vector space of dimension 2 over Finite Field of size 2,
2: Vector space of dimension 3 over Finite Field of size 2,
3: Vector space of dimension 4 over Finite Field of size 2,
4: Vector space of dimension 5 over Finite Field of size 2}

sage.homology.simplicial_set_examples.ComplexProjectiveSpace(n)

Return complex $$n$$-dimensional projective space, as a simplicial set.

This is only defined when $$n$$ is at most 4. It is constructed using the simplicial set decomposition provided by Kenzo, as described by Sergeraert [Ser2010]

EXAMPLES:

sage: simplicial_sets.ComplexProjectiveSpace(2).homology(reduced=False)
{0: Z, 1: 0, 2: Z, 3: 0, 4: Z}
sage: CP3 = simplicial_sets.ComplexProjectiveSpace(3)
sage: CP3
CP^3
sage: latex(CP3)
CP^{3}
sage: CP3.f_vector()
[1, 0, 3, 10, 25, 30, 15]

sage: K = CP3.suspension() # long time (1 second)
sage: R = K.cohomology_ring(GF(2)) # long time
sage: R.gens()        # long time
(h^{0,0}, h^{3,0}, h^{5,0}, h^{7,0})
sage: x = R.gens() # long time
sage: x.Sq(2)         # long time
h^{5,0}

sage: simplicial_sets.ComplexProjectiveSpace(4).f_vector()
[1, 0, 4, 22, 97, 255, 390, 315, 105]

sage: simplicial_sets.ComplexProjectiveSpace(5)
Traceback (most recent call last):
...
ValueError: complex projective spaces are only available in dimensions between 0 and 4

sage.homology.simplicial_set_examples.Empty()

Return the empty simplicial set.

This should return the same simplicial set each time it is called.

EXAMPLES:

sage: from sage.homology.simplicial_set_examples import Empty
sage: E = Empty()
sage: E
Empty simplicial set
sage: E.nondegenerate_simplices()
[]
sage: E is Empty()
True

sage.homology.simplicial_set_examples.HopfMap()

Return a simplicial model of the Hopf map $$S^3 \to S^2$$

This is taken from Exemple II.1.19 in the thesis of Clemens Berger [Ber1991].

The Hopf map is a fibration $$S^3 \to S^2$$. If it is viewed as attaching a 4-cell to the 2-sphere, the resulting adjunction space is 2-dimensional complex projective space. The resulting model is a bit larger than the one obtained from simplicial_sets.ComplexProjectiveSpace(2).

EXAMPLES:

sage: g = simplicial_sets.HopfMap()
sage: g.domain()
Simplicial set with 20 non-degenerate simplices
sage: g.codomain()
S^2


Using the Hopf map to attach a cell:

sage: X = g.mapping_cone()
sage: CP2 = simplicial_sets.ComplexProjectiveSpace(2)
sage: X.homology() == CP2.homology()
True

sage: X.f_vector()
[1, 0, 5, 9, 6]
sage: CP2.f_vector()
[1, 0, 2, 3, 3]

sage.homology.simplicial_set_examples.Horn(n, k)

Return the horn $$\Lambda^n_k$$.

This is the subsimplicial set of the $$n$$-simplex obtained by removing its $$k$$-th face.

EXAMPLES:

sage: L = simplicial_sets.Horn(3, 0)
sage: L
(3, 0)-Horn
sage: L.n_cells(3)
[]
sage: L.n_cells(2)
[(0, 1, 2), (0, 1, 3), (0, 2, 3)]

sage: L20 = simplicial_sets.Horn(2, 0)
sage: latex(L20)
\Lambda^{2}_{0}
sage: L20.inclusion_map()
Simplicial set morphism:
From: (2, 0)-Horn
To:   2-simplex
Defn: [(0,), (1,), (2,), (0, 1), (0, 2)] --> [(0,), (1,), (2,), (0, 1), (0, 2)]

sage.homology.simplicial_set_examples.KleinBottle()

Return the Klein bottle as a simplicial set.

This converts the $$\Delta$$-complex version to a simplicial set. It has one 0-simplex, three 1-simplices, and two 2-simplices.

EXAMPLES:

sage: K = simplicial_sets.KleinBottle()
sage: K.f_vector()
[1, 3, 2]
sage: K.homology(reduced=False)
{0: Z, 1: Z x C2, 2: 0}
sage: K
Klein bottle

class sage.homology.simplicial_set_examples.Nerve(monoid)

The nerve of a multiplicative monoid.

INPUT:

• monoid – a multiplicative monoid

See sage.categories.finite_monoids.FiniteMonoids.ParentMethods.nerve() for full documentation.

EXAMPLES:

sage: M = FiniteMonoids().example()
sage: M
An example of a finite multiplicative monoid: the integers modulo 12
sage: X = M.nerve()
sage: list(M)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
sage: X.n_cells(0)

sage: X.n_cells(1)
[0, 10, 11, 2, 3, 4, 5, 6, 7, 8, 9]

n_skeleton(n)

Return the $$n$$-skeleton of this simplicial set.

That is, the simplicial set generated by all nondegenerate simplices of dimension at most $$n$$.

INPUT:

• n – the dimension

EXAMPLES:

sage: K4 = groups.misc.MultiplicativeAbelian([2,2])
sage: BK4 = simplicial_sets.ClassifyingSpace(K4)
sage: BK4.n_skeleton(3)
Simplicial set with 40 non-degenerate simplices
sage: BK4.n_cells(1) == BK4.n_skeleton(3).n_cells(1)
True
sage: BK4.n_cells(3) == BK4.n_skeleton(1).n_cells(3)
False

sage.homology.simplicial_set_examples.Point()

Return a single point called “*” as a simplicial set.

This should return the same simplicial set each time it is called.

EXAMPLES:

sage: P = simplicial_sets.Point()
sage: P.is_pointed()
True
sage: P.nondegenerate_simplices()
[*]

sage: Q = simplicial_sets.Point()
sage: P is Q
True
sage: P == Q
True

sage.homology.simplicial_set_examples.RealProjectiveSpace(n)

Return real $$n$$-dimensional projective space, as a simplicial set.

This is constructed as the $$n$$-skeleton of the nerve of the group of order 2, and therefore has a single non-degenerate simplex in each dimension up to $$n$$.

EXAMPLES:

sage: simplicial_sets.RealProjectiveSpace(7)
RP^7
sage: RP5 = simplicial_sets.RealProjectiveSpace(5)
sage: RP5.homology()
{0: 0, 1: C2, 2: 0, 3: C2, 4: 0, 5: Z}
sage: RP5
RP^5
sage: latex(RP5)
RP^{5}

sage: BC2 = simplicial_sets.RealProjectiveSpace(Infinity)
sage: latex(BC2)
RP^{\infty}

sage.homology.simplicial_set_examples.Simplex(n)

Return the $$n$$-simplex as a simplicial set.

EXAMPLES:

sage: K = simplicial_sets.Simplex(2)
sage: K
2-simplex
sage: latex(K)
\Delta^{2}
sage: K.n_cells(0)
[(0,), (1,), (2,)]
sage: K.n_cells(1)
[(0, 1), (0, 2), (1, 2)]
sage: K.n_cells(2)
[(0, 1, 2)]

sage.homology.simplicial_set_examples.Sphere(n)

Return the $$n$$-sphere as a simplicial set.

It is constructed with two non-degenerate simplices: a vertex $$v_0$$ (which is the base point) and an $$n$$-simplex $$\sigma_n$$.

INPUT:

• n – integer

EXAMPLES:

sage: S0 = simplicial_sets.Sphere(0)
sage: S0
S^0
sage: S0.nondegenerate_simplices()
[v_0, w_0]
sage: S0.is_pointed()
True
sage: simplicial_sets.Sphere(4)
S^4
sage: latex(simplicial_sets.Sphere(4))
S^{4}
sage: simplicial_sets.Sphere(4).nondegenerate_simplices()
[v_0, sigma_4]

sage.homology.simplicial_set_examples.Torus()

Return the torus as a simplicial set.

This computes the product of the circle with itself, where the circle is represented using a single 0-simplex and a single 1-simplex. Thus it has one 0-simplex, three 1-simplices, and two 2-simplices.

EXAMPLES:

sage: T = simplicial_sets.Torus()
sage: T.f_vector()
[1, 3, 2]
sage: T.homology(reduced=False)
{0: Z, 1: Z x Z, 2: Z}

sage.homology.simplicial_set_examples.simplicial_data_from_kenzo_output(filename)

Return data to construct a simplicial set, given Kenzo output.

INPUT:

• filename – name of file containing the output from Kenzo’s show-structure() function

OUTPUT: data to construct a simplicial set from the Kenzo output

Several files with Kenzo output are in the directory SAGE_EXTCODE/kenzo/.

EXAMPLES:

sage: from sage.homology.simplicial_set_examples import simplicial_data_from_kenzo_output
sage: from sage.homology.simplicial_set import SimplicialSet
sage: sphere = os.path.join(SAGE_ENV['SAGE_EXTCODE'], 'kenzo', 'S4.txt')
sage: S4 = SimplicialSet(simplicial_data_from_kenzo_output(sphere))
sage: S4.homology(reduced=False)
{0: Z, 1: 0, 2: 0, 3: 0, 4: Z}