From d321b93a9a40effb0c67aae593fc6915e7fd9417 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Tue, 22 Jun 2021 09:17:08 -0700 Subject: [PATCH] ContinuousMap: Return domain if the map's codomain is contained in the given subset --- src/sage/manifolds/continuous_map.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/sage/manifolds/continuous_map.py b/src/sage/manifolds/continuous_map.py index 077b145bef9..9f72d0bb957 100644 --- a/src/sage/manifolds/continuous_map.py +++ b/src/sage/manifolds/continuous_map.py @@ -914,9 +914,23 @@ def preimage(self, codomain_subset, name=None, latex_name=None): 2-dimensional topological manifold M sage: M.identity_map().preimage(M) is M True + + Another trivial case:: + + sage: M = Manifold(2, 'M', structure='topological') + sage: X. = M.chart() + sage: D1 = M.open_subset('D1', coord_def={X: x^2+y^2<1}) # the open unit disk + sage: D2 = M.open_subset('D2', coord_def={X: x^2+y^2<4}) + sage: f = Hom(D1,D2)({(X.restrict(D1), X.restrict(D2)): (2*x, 2*y)}, name='f') + sage: f.preimage(D2) + Open subset D1 of the 2-dimensional topological manifold M + sage: f.preimage(M) + Open subset D1 of the 2-dimensional topological manifold M """ if self._is_identity: return codomain_subset + if self._codomain.is_subset(codomain_subset): + return self._domain from sage.manifolds.subsets.pullback import ManifoldSubsetPullback return ManifoldSubsetPullback(self, codomain_subset, name=name, latex_name=latex_name)