# 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)

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:

• domainOpenInterval if an open interval $$I \subset \RR$$ (domain of the morphisms), or RealLine if $$I = \RR$$
• codomainDifferentiableManifold; differentiable manifold $$M$$ (codomain of the morphisms)
• name – (default: None) string; name given to the set of curves; if None, Hom(I, M) will be used
• latex_name – (default: None) string; LaTeX symbol to denote the set of curves; if None, $$\mathrm{Hom}(I,M)$$ will be used

EXAMPLES:

Set of curves $$\RR \longrightarrow M$$, where $$M$$ is a 2-dimensional 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 2-dimensional
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()
2-dimensional differentiable manifold M


An element of H is a curve in M:

sage: c = H.an_element(); c
Curve in the 2-dimensional 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 2-dimensional differentiable manifold M
sage: H = Hom(I, U) ; H
Set of Morphisms from Real interval (0, 1) to Open subset U of the
2-dimensional 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 in U:

sage: c = H.an_element() ; c
Curve in the Open subset U of the 2-dimensional 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)

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 of DifferentiableManifold
• codomain – differentiable manifold $$N$$ (codomain of the morphisms), as an instance of DifferentiableManifold
• name – (default: None) string; name given to the homset; if None, Hom(M,N) will be used
• latex_name – (default: None) string; LaTeX symbol to denote the homset; if None, $$\mathrm{Hom}(M,N)$$ will be used

EXAMPLES:

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


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

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

Element

alias of DiffMap