Subsets of Topological Manifolds

The class ManifoldSubset implements generic subsets of a topological manifold. Open subsets are implemented by the class TopologicalManifold (since an open subset of a manifold is a manifold by itself), which inherits from ManifoldSubset.

AUTHORS:

  • Eric Gourgoulhon, Michal Bejger (2013-2015): initial version
  • Travis Scrimshaw (2015): review tweaks; removal of facade parents

REFERENCES:

EXAMPLES:

Two subsets on a manifold:

sage: M = Manifold(2, 'M', structure='topological')
sage: a = M.subset('A'); a
Subset A of the 2-dimensional topological manifold M
sage: b = M.subset('B'); b
Subset B of the 2-dimensional topological manifold M
sage: M.list_of_subsets()
[Subset A of the 2-dimensional topological manifold M,
 Subset B of the 2-dimensional topological manifold M,
 2-dimensional topological manifold M]

The intersection of the two subsets:

sage: c = a.intersection(b); c
Subset A_inter_B of the 2-dimensional topological manifold M

Their union:

sage: d = a.union(b); d
Subset A_union_B of the 2-dimensional topological manifold M

Lists of subsets after the above operations:

sage: M.list_of_subsets()
[Subset A of the 2-dimensional topological manifold M,
 Subset A_inter_B of the 2-dimensional topological manifold M,
 Subset A_union_B of the 2-dimensional topological manifold M,
 Subset B of the 2-dimensional topological manifold M,
 2-dimensional topological manifold M]
sage: a.list_of_subsets()
[Subset A of the 2-dimensional topological manifold M,
 Subset A_inter_B of the 2-dimensional topological manifold M]
sage: c.list_of_subsets()
[Subset A_inter_B of the 2-dimensional topological manifold M]
sage: d.list_of_subsets()
[Subset A of the 2-dimensional topological manifold M,
 Subset A_inter_B of the 2-dimensional topological manifold M,
 Subset A_union_B of the 2-dimensional topological manifold M,
 Subset B of the 2-dimensional topological manifold M]
sage.manifolds.subset.ManifoldSubset

Subset of a topological manifold.

The class ManifoldSubset inherits from the generic class Parent. The corresponding element class is ManifoldPoint.

Note that open subsets are not implemented directly by this class, but by the derived class TopologicalManifold (an open subset of a topological manifold being itself a topological manifold).

INPUT:

  • manifold – topological manifold on which the subset is defined
  • name – string; name (symbol) given to the subset
  • latex_name – (default: None) string; LaTeX symbol to denote the subset; if none are provided, it is set to name
  • category – (default: None) to specify the category; if None, the category for generic subsets is used

EXAMPLES:

A subset of a manifold:

sage: M = Manifold(2, 'M', structure='topological')
sage: from sage.manifolds.subset import ManifoldSubset
sage: A = ManifoldSubset(M, 'A', latex_name=r'\mathcal{A}')
sage: A
Subset A of the 2-dimensional topological manifold M
sage: latex(A)
\mathcal{A}
sage: A.is_subset(M)
True

Instead of importing ManifoldSubset in the global namespace, it is recommended to use the method subset() to create a new subset:

sage: B = M.subset('B', latex_name=r'\mathcal{B}'); B
Subset B of the 2-dimensional topological manifold M
sage: M.list_of_subsets()
[Subset A of the 2-dimensional topological manifold M,
 Subset B of the 2-dimensional topological manifold M,
 2-dimensional topological manifold M]

The manifold is itself a subset:

sage: isinstance(M, ManifoldSubset)
True
sage: M in M.subsets()
True

Instances of ManifoldSubset are parents:

sage: isinstance(A, Parent)
True
sage: A.category()
Category of subobjects of sets
sage: p = A.an_element(); p
Point on the 2-dimensional topological manifold M
sage: p.parent()
Subset A of the 2-dimensional topological manifold M
sage: p in A
True
sage: p in M
True