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:

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 manifold

  • name – string; name (symbol) given to the manifold

  • field – field \(K\) on which the manifold is defined; allowed values are

    • 'real' or an object of type RealField (e.g., RR) for
      a manifold over \(\RR\)
    • 'complex' or an object of type ComplexField (e.g., CC)
      for a manifold over \(\CC\)
    • an object in the category of topological fields (see Fields and TopologicalSpaces) for other types of manifolds
  • structure – manifold structure (see TopologicalStructure or RealTopologicalStructure)

  • ambient – (default: None) manifold of destination of the immersion. If None, set to self

  • base_manifold – (default: None) if not None, must be a topological manifold; the created object is then an open subset of base_manifold

  • latex_name – (default: None) string; LaTeX symbol to denote the manifold; if none are provided, it is set to name

  • start_index – (default: 0) integer; lower value of the range of indices used for “indexed objects” on the manifold, e.g., coordinates in a chart

  • category – (default: None) to specify the category; if None, Manifolds(field) is assumed (see the category Manifolds)

  • unique_tag – (default: None) tag used to force the construction of a new object when all the other arguments have been used previously (without unique_tag, the UniqueRepresentation behavior inherited from ManifoldSubset would return the previously constructed object corresponding to these arguments)

EXAMPLES:

Let \(N\) be a 2-dimensional submanifold of a 3-dimensional manifold \(M\):

sage: M = Manifold(3, 'M')
sage: N = Manifold(2, 'N', ambient=M)
sage: N
2-dimensional differentiable submanifold N embedded in 3-dimensional
 differentiable manifold M
sage: CM.<x,y,z> = M.chart()
sage: CN.<u,v> = N.chart()

Let us define a 1-dimension foliation indexed by \(t\). The inverse map is needed in order to compute the adapted chart in the ambient manifold:

sage: t = var('t')
sage: phi = N.diff_map(M,{(CN, CM):[u, v, t+u**2+v**2]}); phi
Differentiable map from the 2-dimensional differentiable submanifold N
 embedded in 3-dimensional differentiable manifold M to the
 3-dimensional differentiable manifold M
sage: phi_inv = M.diff_map(N, {(CM, CN):[x, y]})
sage: phi_inv_t = M.scalar_field({CM: z-x**2-y**2})

\(\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: len(M.coord_changes())
2