Sets of Morphisms between Differentiable Manifolds¶
The class DifferentiableManifoldHomset
implements sets of morphisms between
two differentiable manifolds over the same topological field \(K\) (in most
applications, \(K = \RR\) or \(K = \CC\)), a morphism being a differentiable map
for the category of differentiable manifolds.
The subclass DifferentiableCurveSet
is devoted to the specific case of
differential curves, i.e. morphisms whose domain is an open interval of
\(\RR\).
AUTHORS:
 Eric Gourgoulhon (2015): initial version
 Travis Scrimshaw (2016): review tweaks
REFERENCES:

class
sage.manifolds.differentiable.manifold_homset.
DifferentiableCurveSet
(domain, codomain, name=None, latex_name=None)¶ Bases:
sage.manifolds.differentiable.manifold_homset.DifferentiableManifoldHomset
Set of differentiable curves in a differentiable manifold.
Given an open interval \(I\) of \(\RR\) (possibly \(I = \RR\)) and a differentiable manifold \(M\) over \(\RR\), this is the set \(\mathrm{Hom}(I,M)\) of morphisms (i.e. differentiable curves) \(I \to M\).
INPUT:
domain
–OpenInterval
if an open interval \(I \subset \RR\) (domain of the morphisms), orRealLine
if \(I = \RR\)codomain
–DifferentiableManifold
; differentiable manifold \(M\) (codomain of the morphisms)name
– (default:None
) string; name given to the set of curves; ifNone
,Hom(I, M)
will be usedlatex_name
– (default:None
) string; LaTeX symbol to denote the set of curves; ifNone
, \(\mathrm{Hom}(I,M)\) will be used
EXAMPLES:
Set of curves \(\RR \longrightarrow M\), where \(M\) is a 2dimensional manifold:
sage: M = Manifold(2, 'M') sage: X.<x,y> = M.chart() sage: R.<t> = RealLine() ; R Real number line R sage: H = Hom(R, M) ; H Set of Morphisms from Real number line R to 2dimensional differentiable manifold M in Category of smooth manifolds over Real Field with 53 bits of precision sage: H.category() Category of homsets of topological spaces sage: latex(H) \mathrm{Hom}\left(\Bold{R},M\right) sage: H.domain() Real number line R sage: H.codomain() 2dimensional differentiable manifold M
An element of
H
is a curve inM
:sage: c = H.an_element(); c Curve in the 2dimensional differentiable manifold M sage: c.display() R > M t > (x, y) = (1/(t^2 + 1)  1/2, 0)
The test suite is passed:
sage: TestSuite(H).run()
The set of curves \((0,1) \longrightarrow U\), where \(U\) is an open subset of \(M\):
sage: I = R.open_interval(0, 1) ; I Real interval (0, 1) sage: U = M.open_subset('U', coord_def={X: x^2+y^2<1}) ; U Open subset U of the 2dimensional differentiable manifold M sage: H = Hom(I, U) ; H Set of Morphisms from Real interval (0, 1) to Open subset U of the 2dimensional differentiable manifold M in Join of Category of subobjects of sets and Category of smooth manifolds over Real Field with 53 bits of precision
An element of
H
is a curve inU
:sage: c = H.an_element() ; c Curve in the Open subset U of the 2dimensional differentiable manifold M sage: c.display() (0, 1) > U t > (x, y) = (1/(t^2 + 1)  1/2, 0)
The set of curves \(\RR \longrightarrow \RR\) is a set of (manifold) endomorphisms:
sage: E = Hom(R, R) ; E Set of Morphisms from Real number line R to Real number line R in Category of smooth 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(R) True
It is a monoid for the law of morphism composition:
sage: E in Monoids() True
The identity element of the monoid is the identity map of \(\RR\):
sage: E.one() Identity map Id_R of the Real number line R sage: E.one() is R.identity_map() True sage: E.one().display() Id_R: R > R t > t
A “typical” element of the monoid:
sage: E.an_element().display() R > R t > 1/(t^2 + 1)  1/2
The test suite is passed by
E
:sage: TestSuite(E).run()
Similarly, the set of curves \(I \longrightarrow I\) is a monoid, whose elements are (manifold) endomorphisms:
sage: EI = Hom(I, I) ; EI Set of Morphisms from Real interval (0, 1) to Real interval (0, 1) in Join of Category of subobjects of sets and Category of smooth manifolds over Real Field with 53 bits of precision sage: EI.category() Category of endsets of subobjects of sets and topological spaces sage: EI is End(I) True sage: EI in Monoids() True
The identity element and a “typical” element of this monoid:
sage: EI.one() Identity map Id_(0, 1) of the Real interval (0, 1) sage: EI.one().display() Id_(0, 1): (0, 1) > (0, 1) t > t sage: EI.an_element().display() (0, 1) > (0, 1) t > 1/2/(t^2 + 1) + 1/4
The test suite is passed by
EI
:sage: TestSuite(EI).run()

Element
¶ alias of
DifferentiableCurve

class
sage.manifolds.differentiable.manifold_homset.
DifferentiableManifoldHomset
(domain, codomain, name=None, latex_name=None)¶ Bases:
sage.manifolds.manifold_homset.TopologicalManifoldHomset
Set of differentiable maps between two differentiable manifolds.
Given two differentiable manifolds \(M\) and \(N\) over a topological field \(K\), the class
DifferentiableManifoldHomset
implements the set \(\mathrm{Hom}(M,N)\) of morphisms (i.e. differentiable maps) \(M\rightarrow N\).This is a Sage parent class, whose element class is
DiffMap
.INPUT:
domain
– differentiable manifold \(M\) (domain of the morphisms), as an instance ofDifferentiableManifold
codomain
– differentiable manifold \(N\) (codomain of the morphisms), as an instance ofDifferentiableManifold
name
– (default:None
) string; name given to the homset; ifNone
, Hom(M,N) will be usedlatex_name
– (default:None
) string; LaTeX symbol to denote the homset; ifNone
, \(\mathrm{Hom}(M,N)\) will be used
EXAMPLES:
Set of differentiable maps between a 2dimensional differentiable manifold and a 3dimensional one:
sage: M = Manifold(2, 'M') sage: X.<x,y> = M.chart() sage: N = Manifold(3, 'N') sage: Y.<u,v,w> = N.chart() sage: H = Hom(M, N) ; H Set of Morphisms from 2dimensional differentiable manifold M to 3dimensional differentiable manifold N in Category of smooth manifolds over Real Field with 53 bits of precision sage: type(H) <class 'sage.manifolds.differentiable.manifold_homset.DifferentiableManifoldHomset_with_category'> sage: H.category() Category of homsets of topological spaces sage: latex(H) \mathrm{Hom}\left(M,N\right) sage: H.domain() 2dimensional differentiable manifold M sage: H.codomain() 3dimensional differentiable manifold N
An element of
H
is a differentiable map fromM
toN
:sage: H.Element <class 'sage.manifolds.differentiable.diff_map.DiffMap'> sage: f = H.an_element() ; f Differentiable map from the 2dimensional differentiable manifold M to the 3dimensional differentiable 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 differentiable manifolds:
sage: E = Hom(M, M) ; E Set of Morphisms from 2dimensional differentiable manifold M to 2dimensional differentiable manifold M in Category of smooth 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 for
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 differentiable 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
DiffMap