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 Hom(M,N) of morphisms (i.e. continuous maps) MN.

This is a Sage parent class, whose element class is ContinuousMap.

INPUT:

  • domainTopologicalManifold; the domain topological manifold M of the morphisms

  • codomainTopologicalManifold; the codomain topological manifold N of the morphisms

  • name – (default: None) string; the name of self; if None, Hom(M,N) will be used

  • latex_name – (default: None) string; LaTeX symbol to denote self; if None, Hom(M,N) will be used

EXAMPLES:

Set of continuous maps between a 2-dimensional manifold and a 3-dimensional 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 2-dimensional topological manifold M to
 3-dimensional 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()
2-dimensional topological manifold M
sage: H.codomain()
3-dimensional topological manifold N

An element of H is a continuous map from M to N:

sage: H.Element
<class 'sage.manifolds.continuous_map.ContinuousMap'>
sage: f = H.an_element() ; f
Continuous map from the 2-dimensional topological manifold M to the
 3-dimensional 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 2-dimensional topological manifold M to
 2-dimensional 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 2-dimensional 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, since E has some extra structure (monoid).

Element

alias of sage.manifolds.continuous_map.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 Hom(M,M). Indeed, 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:

EXAMPLES:

The identity map of a 2-dimensional manifold:

sage: M = Manifold(2, 'M', structure='topological')
sage: X.<x,y> = M.chart()
sage: H = Hom(M, M) ; H
Set of Morphisms from 2-dimensional topological manifold M to
 2-dimensional 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 2-dimensional 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 2-dimensional topological manifold M
 to 3-dimensional topological manifold N
 in Category of manifolds over Real Field with 53 bits of precision
 is not a monoid