Sets of Morphisms between Topological Manifolds¶
The class TopologicalManifoldHomset
implements sets of
morphisms between two topological manifolds over the same topological
field \(K\), a morphism being a continuous map for the category of
topological manifolds.
AUTHORS:
 Eric Gourgoulhon (2015): initial version
 Travis Scrimshaw (2016): review tweaks
REFERENCES:

class
sage.manifolds.manifold_homset.
TopologicalManifoldHomset
(domain, codomain, name=None, latex_name=None)¶ Bases:
sage.structure.unique_representation.UniqueRepresentation
,sage.categories.homset.Homset
Set of continuous maps between two topological manifolds.
Given two topological manifolds \(M\) and \(N\) over a topological field \(K\), the class
TopologicalManifoldHomset
implements the set \(\mathrm{Hom}(M, N)\) of morphisms (i.e. continuous maps) \(M \to N\).This is a Sage parent class, whose element class is
ContinuousMap
.INPUT:
domain
–TopologicalManifold
; the domain topological manifold \(M\) of the morphismscodomain
–TopologicalManifold
; the codomain topological manifold \(N\) of the morphismsname
– (default:None
) string; the name ofself
; ifNone
,Hom(M,N)
will be usedlatex_name
– (default:None
) string; LaTeX symbol to denoteself
; ifNone
, \(\mathrm{Hom}(M,N)\) will be used
EXAMPLES:
Set of continuous maps between a 2dimensional manifold and a 3dimensional one:
sage: M = Manifold(2, 'M', structure='topological') sage: X.<x,y> = M.chart() sage: N = Manifold(3, 'N', structure='topological') sage: Y.<u,v,w> = N.chart() sage: H = Hom(M, N) ; H Set of Morphisms from 2dimensional topological manifold M to 3dimensional topological manifold N in Category of manifolds over Real Field with 53 bits of precision sage: type(H) <class 'sage.manifolds.manifold_homset.TopologicalManifoldHomset_with_category'> sage: H.category() Category of homsets of topological spaces sage: latex(H) \mathrm{Hom}\left(M,N\right) sage: H.domain() 2dimensional topological manifold M sage: H.codomain() 3dimensional topological manifold N
An element of
H
is a continuous map fromM
toN
:sage: H.Element <class 'sage.manifolds.continuous_map.ContinuousMap'> sage: f = H.an_element() ; f Continuous map from the 2dimensional topological manifold M to the 3dimensional topological manifold N sage: f.display() M > N (x, y) > (u, v, w) = (0, 0, 0)
The test suite is passed:
sage: TestSuite(H).run()
When the codomain coincides with the domain, the homset is a set of endomorphisms in the category of topological manifolds:
sage: E = Hom(M, M) ; E Set of Morphisms from 2dimensional topological manifold M to 2dimensional topological manifold M in Category of manifolds over Real Field with 53 bits of precision sage: E.category() Category of endsets of topological spaces sage: E.is_endomorphism_set() True sage: E is End(M) True
In this case, the homset is a monoid for the law of morphism composition:
sage: E in Monoids() True
This was of course not the case of
H = Hom(M, N)
:sage: H in Monoids() False
The identity element of the monoid is of course the identity map of
M
:sage: E.one() Identity map Id_M of the 2dimensional topological manifold M sage: E.one() is M.identity_map() True sage: E.one().display() Id_M: M > M (x, y) > (x, y)
The test suite is passed by
E
:sage: TestSuite(E).run()
This test suite includes more tests than in the case of
H
, sinceE
has some extra structure (monoid).
Element
¶ alias of
ContinuousMap

one
()¶ Return the identity element of
self
considered as a monoid (case of a set of endomorphisms).This applies only when the codomain of the homset is equal to its domain, i.e. when the homset is of the type \(\mathrm{Hom}(M,M)\). Indeed, \(\mathrm{Hom}(M,M)\) equipped with the law of morphisms composition is a monoid, whose identity element is nothing but the identity map of \(M\).
OUTPUT:
 the identity map of \(M\), as an instance of
ContinuousMap
EXAMPLES:
The identity map of a 2dimensional manifold:
sage: M = Manifold(2, 'M', structure='topological') sage: X.<x,y> = M.chart() sage: H = Hom(M, M) ; H Set of Morphisms from 2dimensional topological manifold M to 2dimensional topological manifold M in Category of manifolds over Real Field with 53 bits of precision sage: H in Monoids() True sage: H.one() Identity map Id_M of the 2dimensional topological manifold M sage: H.one().parent() is H True sage: H.one().display() Id_M: M > M (x, y) > (x, y)
The identity map is cached:
sage: H.one() is H.one() True
If the homset is not a set of endomorphisms, the identity element is meaningless:
sage: N = Manifold(3, 'N', structure='topological') sage: Y.<u,v,w> = N.chart() sage: Hom(M, N).one() Traceback (most recent call last): ... TypeError: Set of Morphisms from 2dimensional topological manifold M to 3dimensional topological manifold N in Category of manifolds over Real Field with 53 bits of precision is not a monoid
 the identity map of \(M\), as an instance of