Submanifolds of differentiable manifolds¶
Given two differentiable manifolds \(N\) and \(M\), an immersion \(\phi\) is a differentiable map \(N\to M\) whose differential is everywhere injective. One then says that \(N\) is an immersed submanifold of \(M\), via \(\phi\).
If in addition, \(\phi\) is a differentiable embedding (i.e. \(\phi\) is an immersion that is a homeomorphism onto its image), then \(N\) is called an embedded submanifold of \(M\) (or simply a submanifold).
\(\phi\) can also depend on one or multiple parameters. As long as the differential of \(\phi\) remains injective in these parameters, it represents a foliation. The dimension of the foliation is defined as the number of parameters.
AUTHORS:
 Florentin Jaffredo (2018): initial version
REFERENCES:
 J. M. Lee: Introduction to Smooth Manifolds [Lee2013]

class
sage.manifolds.differentiable.differentiable_submanifold.
DifferentiableSubmanifold
(n, name, field, structure, ambient=None, base_manifold=None, diff_degree=+Infinity, latex_name=None, start_index=0, category=None, unique_tag=None)¶ Bases:
sage.manifolds.differentiable.manifold.DifferentiableManifold
,sage.manifolds.topological_submanifold.TopologicalSubmanifold
Submanifold of a differentiable manifold.
Given two differentiable manifolds \(N\) and \(M\), an immersion \(\phi\) is a differentiable map \(N\to M\) whose differential is everywhere injective. One then says that \(N\) is an immersed submanifold of \(M\), via \(\phi\).
If in addition, \(\phi\) is a differentiable embedding (i.e. \(\phi\) is an immersion that is a homeomorphism onto its image), then \(N\) is called an embedded submanifold of \(M\) (or simply a submanifold).
\(\phi\) can also depend on one or multiple parameters. As long as the differential of \(\phi\) remains injective in these parameters, it represents a foliation. The dimension of the foliation is defined as the number of parameters.
INPUT:
n
– positive integer; dimension of the submanifoldname
– string; name (symbol) given to the submanifoldfield
– field \(K\) on which the sub manifold is defined; allowed values are'real'
or an object of typeRealField
(e.g.,RR
) for a manifold over \(\RR\)
'complex'
or an object of typeComplexField
(e.g.,CC
) for a manifold over \(\CC\)
 an object in the category of topological fields (see
Fields
andTopologicalSpaces
) for other types of manifolds
structure
– manifold structure (seeTopologicalStructure
orRealTopologicalStructure
)ambient
– (default:None
) codomain \(M\) of the immersion \(\phi\); must be a differentiable manifold. IfNone
, it is set toself
base_manifold
– (default:None
) if notNone
, must be a differentiable manifold; the created object is then an open subset ofbase_manifold
diff_degree
– (default:infinity
) degree of differentiabilitylatex_name
– (default:None
) string; LaTeX symbol to denote the submanifold; if none are provided, it is set toname
start_index
– (default: 0) integer; lower value of the range of indices used for “indexed objects” on the submanifold, e.g., coordinates in a chartcategory
– (default:None
) to specify the category; ifNone
,Manifolds(field).Differentiable()
(orManifolds(field).Smooth()
ifdiff_degree
=infinity
) is assumed (see the categoryManifolds
)unique_tag
– (default:None
) tag used to force the construction of a new object when all the other arguments have been used previously (withoutunique_tag
, theUniqueRepresentation
behavior inherited fromManifoldSubset
viaDifferentiableManifold
would return the previously constructed object corresponding to these arguments)
EXAMPLES:
Let \(N\) be a 2dimensional submanifold of a 3dimensional manifold \(M\):
sage: M = Manifold(3, 'M') sage: N = Manifold(2, 'N', ambient=M) sage: N 2dimensional differentiable submanifold N immersed in the 3dimensional differentiable manifold M sage: CM.<x,y,z> = M.chart() sage: CN.<u,v> = N.chart()
Let us define a 1dimensional foliation indexed by \(t\):
sage: t = var('t') sage: phi = N.continuous_map(M, {(CN,CM): [u, v, t+u^2+v^2]}) sage: phi.display() N > M (u, v) > (x, y, z) = (u, v, u^2 + v^2 + t)
The foliation inverse maps are needed for computing the adapted chart on the ambient manifold:
sage: phi_inv = M.continuous_map(N, {(CM, CN): [x, y]}) sage: phi_inv.display() M > N (x, y, z) > (u, v) = (x, y) sage: phi_inv_t = M.scalar_field({CM: zx^2y^2}) sage: phi_inv_t.display() M > R (x, y, z) > x^2  y^2 + z
\(\phi\) can then be declared as an embedding \(N\to M\):
sage: N.set_embedding(phi, inverse=phi_inv, var=t, ....: t_inverse={t: phi_inv_t})
The foliation can also be used to find new charts on the ambient manifold that are adapted to the foliation, ie in which the expression of the immersion is trivial. At the same time, the appropriate coordinate changes are computed:
sage: N.adapted_chart() [Chart (M, (u_M, v_M, t_M))] sage: M.atlas() [Chart (M, (x, y, z)), Chart (M, (u_M, v_M, t_M))] sage: len(M.coord_changes()) 2
See also