# Homsets between simplicial complexes¶

AUTHORS:

• Travis Scrimshaw (2012-08-18): Made all simplicial complexes immutable to work with the homset cache.

EXAMPLES:

sage: S = simplicial_complexes.Sphere(1)
sage: T = simplicial_complexes.Sphere(2)
sage: H = Hom(S,T)
sage: f = {0:0,1:1,2:3}
sage: x = H(f)
sage: x
Simplicial complex morphism:
From: Minimal triangulation of the 1-sphere
To: Minimal triangulation of the 2-sphere
Defn: 0 |--> 0
1 |--> 1
2 |--> 3
sage: x.is_injective()
True
sage: x.is_surjective()
False
sage: x.image()
Simplicial complex with vertex set (0, 1, 3) and facets {(0, 1), (0, 3), (1, 3)}
sage: from sage.homology.simplicial_complex import Simplex
sage: s = Simplex([1,2])
sage: x(s)
(1, 3)

class sage.homology.simplicial_complex_homset.SimplicialComplexHomset(X, Y, category=None, base=None, check=True)
an_element()

Return a (non-random) element of self.

EXAMPLES:

sage: S = simplicial_complexes.KleinBottle()
sage: T = simplicial_complexes.Sphere(5)
sage: H = Hom(S,T)
sage: x = H.an_element()
sage: x
Simplicial complex morphism:
From: Minimal triangulation of the Klein bottle
To:   Minimal triangulation of the 5-sphere
Defn: [0, 1, 2, 3, 4, 5, 6, 7] --> [0, 0, 0, 0, 0, 0, 0, 0]

diagonal_morphism(rename_vertices=True)

Return the diagonal morphism in $$Hom(S, S \times S)$$.

EXAMPLES:

sage: S = simplicial_complexes.Sphere(2)
sage: H = Hom(S,S.product(S, is_mutable=False))
sage: d = H.diagonal_morphism()
sage: d
Simplicial complex morphism:
From: Minimal triangulation of the 2-sphere
To:   Simplicial complex with 16 vertices and 96 facets
Defn: 0 |--> L0R0
1 |--> L1R1
2 |--> L2R2
3 |--> L3R3

sage: T = SimplicialComplex([[0], [1]], is_mutable=False)
sage: U = T.product(T,rename_vertices = False, is_mutable=False)
sage: G = Hom(T,U)
sage: e = G.diagonal_morphism(rename_vertices = False)
sage: e
Simplicial complex morphism:
From: Simplicial complex with vertex set (0, 1) and facets {(0,), (1,)}
To:   Simplicial complex with 4 vertices and facets {((0, 0),), ((0, 1),), ((1, 0),), ((1, 1),)}
Defn: 0 |--> (0, 0)
1 |--> (1, 1)

identity()

Return the identity morphism of $$Hom(S,S)$$.

EXAMPLES:

sage: S = simplicial_complexes.Sphere(2)
sage: H = Hom(S,S)
sage: i = H.identity()
sage: i.is_identity()
True

sage: T = SimplicialComplex([[0,1]], is_mutable=False)
sage: G = Hom(T,T)
sage: G.identity()
Simplicial complex endomorphism of Simplicial complex with vertex set (0, 1) and facets {(0, 1)}
Defn: 0 |--> 0
1 |--> 1

sage.homology.simplicial_complex_homset.is_SimplicialComplexHomset(x)

Return True if and only if x is a simplicial complex homspace.

EXAMPLES:

sage: S = SimplicialComplex(is_mutable=False)
sage: T = SimplicialComplex(is_mutable=False)
sage: H = Hom(S, T)
sage: H
Set of Morphisms from Simplicial complex with vertex set () and facets {()}
to Simplicial complex with vertex set () and facets {()}
in Category of finite simplicial complexes
sage: from sage.homology.simplicial_complex_homset import is_SimplicialComplexHomset
sage: is_SimplicialComplexHomset(H)
True