Opened 2 years ago

Closed 19 months ago

#18725 closed enhancement (fixed)

Topological manifolds: morphisms

Reported by: egourgoulhon Owned by: egourgoulhon
Priority: major Milestone: sage-7.2
Component: geometry Keywords: topological manifolds
Cc: Merged in:
Authors: Eric Gourgoulhon, Travis Scrimshaw Reviewers: Travis Scrimshaw
Report Upstream: N/A Work issues:
Branch: efcb618 (Commits) Commit: efcb618c969a0f060e59961be3ad2d913d6c7fc9
Dependencies: #18640, #18175 Stopgaps:

Description (last modified by egourgoulhon)

This ticket implements morphisms of topological manifolds, i.e. continuous maps between topological manifolds. This is a follow-up of #18640 within the SageManifolds project. See the metaticket #18528 for an overview.

Two new Python classes are introduced in this ticket:

  • the parent class TopologicalManifoldHomset for sets Hom(M,N) of morphisms between two topological manifolds M and N over the same topological field K
  • the element class ContinuousMap for elements of Hom(M,N), i.e. continuous maps M --> N

Moreover, this ticket introduces plotting capabilities for charts (method RealChart.plot()) and for points (method ManifoldPoint.plot()), which require continuous maps and thus could not have been introduced in #18529.

Documentation: The reference manual is produced by sage -docbuild reference/manifolds html It can also be accessed online at http://sagemanifolds.obspm.fr/doc/18725/reference/manifolds/ More documentation (e.g. example worksheets) can be found here.

Change History (36)

comment:1 Changed 2 years ago by git

  • Commit changed from 608d4ea0bc3fe3616d7d8fea0312c3f6b20ef3a3 to bab7bb4b357625189d52fbf2a7dbda797f095637

Branch pushed to git repo; I updated commit sha1. New commits:

bab7bb4Add doctests to TopManifoldHomset and ContinuousMap

comment:2 Changed 2 years ago by git

  • Commit changed from bab7bb4b357625189d52fbf2a7dbda797f095637 to 6289514bcdc8ee9a62d75acb53d6bbe96c1a88a4

Branch pushed to git repo; I updated commit sha1. New commits:

6289514Remove unnecessary import in chart.py

comment:3 Changed 2 years ago by git

  • Commit changed from 6289514bcdc8ee9a62d75acb53d6bbe96c1a88a4 to a4b414cb74b4cec8f96bf4a699e73d8c35b46c13

Branch pushed to git repo; I updated commit sha1. New commits:

a4b414cModifications in CoordChange and TopManifold.__init__ to allow for subclasses.

comment:4 Changed 2 years ago by git

  • Commit changed from a4b414cb74b4cec8f96bf4a699e73d8c35b46c13 to 08808111915767774bdd0116a246f3c929b7a7f6

Branch pushed to git repo; I updated commit sha1. New commits:

0880811Changes in ContinuousMap, in particular in __invert__

comment:5 Changed 2 years ago by git

  • Commit changed from 08808111915767774bdd0116a246f3c929b7a7f6 to 30e812a668e3fca229def326012bbc47a450b15e

Branch pushed to git repo; I updated commit sha1. New commits:

30e812aMinor modifications in CoordFunctionSymb and ContinuousMap.__invert__

comment:6 Changed 2 years ago by git

  • Commit changed from 30e812a668e3fca229def326012bbc47a450b15e to c0b328480e68b4ac3e0ced337ddd5ef1892e0e7c

Branch pushed to git repo; I updated commit sha1. New commits:

c0b3284Improve documentation of classes Chart and ContinuousMap

comment:7 Changed 2 years ago by git

  • Commit changed from c0b328480e68b4ac3e0ced337ddd5ef1892e0e7c to 4c72118b8be5be766944439c53df6bda370e7ae2

Branch pushed to git repo; I updated commit sha1. New commits:

4c72118Add method plot() to RealChart and TopManifoldPoint

comment:8 Changed 2 years ago by git

  • Commit changed from 4c72118b8be5be766944439c53df6bda370e7ae2 to 055bf3edc0cb446c14b40bc762874b1343f9aad3

Branch pushed to git repo; I updated commit sha1. New commits:

055bf3eImprove documentation of RealChart.plot() and TopManifoldPoint.plot()

comment:9 Changed 2 years ago by egourgoulhon

  • Description modified (diff)

comment:10 Changed 2 years ago by git

  • Commit changed from 055bf3edc0cb446c14b40bc762874b1343f9aad3 to 57b21df71dc774e673be2f2150a197cfd5bc5a8c

Branch pushed to git repo; I updated commit sha1. New commits:

57b21dfAdd doctest to set_axes_labels

comment:11 Changed 2 years ago by git

  • Commit changed from 57b21df71dc774e673be2f2150a197cfd5bc5a8c to e558c06024e5a7108d857080fb3856bda9f049c1

Branch pushed to git repo; I updated commit sha1. New commits:

e558c06Improvement in simplify_sqrt_real(); TestSuite run non-verbose

comment:12 Changed 2 years ago by git

  • Commit changed from e558c06024e5a7108d857080fb3856bda9f049c1 to d65f654de942ede34956278de1b1921f34eed445

Branch pushed to git repo; I updated commit sha1. New commits:

d65f654Introduce open covers on top manifolds + many improvements in the documentation

comment:13 Changed 2 years ago by git

  • Commit changed from d65f654de942ede34956278de1b1921f34eed445 to 00c327d98c7edb9f05f781e1c334f785286348cc

Branch pushed to git repo; I updated commit sha1. New commits:

00c327dSlight reorganization of the reference manual of topological manifolds (morphisms part)

comment:14 Changed 2 years ago by git

  • Commit changed from 00c327d98c7edb9f05f781e1c334f785286348cc to f8d3f273a52273bf4830ca99a651a43d57090ee4

Branch pushed to git repo; I updated commit sha1. Last 10 new commits:

4de19a7Merge branch 'public/manifolds/top_manif_basics' of git://trac.sagemath.org/sage into sage 6.9
ccc2f81Remove unnecessary import in chart.py
aad7c58Modifications in CoordChange and TopManifold.__init__ to allow for subclasses.
3f22784Minor modifications in CoordFunctionSymb
ba5d142Improvement in simplify_sqrt_real() and in the documentation.
9977194Minor improvements in the doc of top manifolds (scalar fields part)
63357e4Introduce open covers on top manifolds and improve documentation
92da04bSlight reorganization of the reference manual for topological manifolds (scalar field part)
31d3fa5Merge #18640 into #18529
f8d3f27Merge #18725 into #18640

comment:15 Changed 2 years ago by egourgoulhon

  • Description modified (diff)
  • Milestone changed from sage-6.8 to sage-6.10
  • Status changed from new to needs_review

comment:16 Changed 2 years ago by git

  • Commit changed from f8d3f273a52273bf4830ca99a651a43d57090ee4 to b0521ef6b38d8d70116b2383c0aa7dcf18035749

Branch pushed to git repo; I updated commit sha1. Last 10 new commits:

375ff46Fixing doctest failures and letting a few other rings know they are metric spaces.
8b851a0Merge branch 'develop' into public/categories/topological_metric_spaces-18175
f8f5b93Fixing last remaining doctests.
041a5d1Adding p-adics to metric spaces and some cleanup.
bfa0cdfOne last doc tweak.
d13c368Fixing doc of metric spaces.
2605c0bMerge #18529 (Topological manifolds: basics) into #18175 (Implement categories for topological...)
6dec6d5Implement topological manifolds (basics, #18529) on the new categories for manifolds (#18175)
3403978Implement top. manifolds (scalar fields, #18640) on the new manifold categories (#18175)
b0521efImplement top. manifolds (morphisms, #18725) on the new manifold categories (#18175)

comment:17 Changed 2 years ago by git

  • Commit changed from b0521ef6b38d8d70116b2383c0aa7dcf18035749 to 668bc26960cf5d2b23c32e3ce51001180e50004b

Branch pushed to git repo; I updated commit sha1. New commits:

f582241Introduce function Manifold() as the global entry point to construct any type of manifold.
f342e03Remove UniqueRepresentation from topological manifolds, subsets and charts.
902908bRevert to UniqueRepresentation for topological manifolds and charts, with the possibility to reuse manifold names.
252e616Remove UniqueRepresentation, leaving only WithEqualityById, for topological manifolds and charts.
e7139abMerge branch top_manif_basics without UniqueRepresentation into top_manif_scalar_fields.
e2f192fRemove UniqueRepresentation, leaving only WithEqualityById, for scalar fields on topological manifolds
668bc26Remove UniqueRepresentation, leaving only WithEqualityById, for topological manifold homsets

comment:18 Changed 2 years ago by egourgoulhon

  • Description modified (diff)

The above commit takes into account this discussion on sage-devel and on ticket #18529: it removes UniqueRepresentation for the class TopologicalManifoldHomset, leaving only WithEqualityById.

comment:19 Changed 2 years ago by git

  • Commit changed from 668bc26960cf5d2b23c32e3ce51001180e50004b to a28ed04da7c51df3dce4b295f603d4e972312ce7

Branch pushed to git repo; I updated commit sha1. New commits:

6518699Introduce the attribute _field_type in class TopologicalManifold to check for real and complex manifolds.
22383e6Check for real/complex manifold performed on base_field_type() instead of RR/CC
66f2c5aChange function('f', x) to function('f')(x) to accomodate the deprecation warning introduced in #17447
a28ed04Morphisms of topological manifolds with the use of base_field_type()

comment:20 Changed 2 years ago by git

  • Commit changed from a28ed04da7c51df3dce4b295f603d4e972312ce7 to 0cc06e8ac69d3f4a5b5339a6e85d1d6f9dede75d

Branch pushed to git repo; I updated commit sha1. New commits:

d8397c1Merge branch 'public/manifolds/top_manif_basics' of trac.sagemath.org:sage into public/manifolds/top_manif_basics
0b08b11Some small tweaks as part of the review.
d3e5d4dRevert to UniqueRepresentation for topological manifolds
2481359Revert to UniqueRepresentation for ScalarFieldAlgebra; better ScalarField constructor
0cc06e8Revert to UniqueRepresentation for topological manifold homsets

comment:21 Changed 2 years ago by git

  • Commit changed from 0cc06e8ac69d3f4a5b5339a6e85d1d6f9dede75d to 7889a5d8dc0fd60d9dcef7edf151177725952961

Branch pushed to git repo; I updated commit sha1. New commits:

85d03dcChange the argument type to structure in Manifold
5251ef0Remove method _test_pickling from class TopologicalManifoldPoint
f69c9eeFix doctest error in coord_func_symb.py due to #19312 (update to pynac-0.5.2)
7889a5dChange in simplify_sqrt_real to cope with the change of != operator induced by #19312 (Sage 6.10.beta7)

comment:22 Changed 2 years ago by git

  • Commit changed from 7889a5d8dc0fd60d9dcef7edf151177725952961 to bc770598e606904fb28179960cd8121d30939978

Branch pushed to git repo; I updated commit sha1. New commits:

2ca24ffMerge branch 'public/manifolds/top_manif_basics' of git://trac.sagemath.org/sage into Sage 6.10.rc1
0fb39dfRefactoring the code to separate out the structural part of the manifold.
cdfa817Merge branch u/tscrim/top_manifolds_refactor into Sage 6.10.rc1 + public/manifolds/top_manif_basics
c5f35afMake AbstractSet inherit from UniqueRepresentation; correct doctests; start to change documentation.
3a52500Some class renaming; add more examples and doctests (full coverage)
a1ba52aReplace a!=b by not(a==b) in simplify_sqrt_real to cope with the change of logic induced by #19312 (Sage 6.10.beta7)
e2c7ab3Scalar fields on the refactored topoological manifolds
cb53417Add argument full_name to AbstractNamedObject; remove _repr_() from all parent classes; improve documentation
ce03503Scalar fields on topological manifolds: slight improvements in the documentation
bc77059Morphisms on the refactored topoological manifolds

comment:23 Changed 2 years ago by egourgoulhon

  • Description modified (diff)
  • Milestone changed from sage-6.10 to sage-6.11

comment:24 Changed 23 months ago by git

  • Commit changed from bc770598e606904fb28179960cd8121d30939978 to f6c6a3495170bbeded949d02c0ba076b03f250eb

Branch pushed to git repo; I updated commit sha1. New commits:

c38ae80Suppress the (unused) argument category in OpenTopologicalSubmanifold; minor doc improvements
069baf4Merge branch 'public/manifolds/top_manif_basics' into Sage 7.0.beta2.
19caedbRevert to AbstractNamedObject without argument full_name; restore _repr_() in manifold classes
9d25aa0Scalar field algebras with AbstractNamedObject without argument full_name
ed4aa58ScalarFieldAlgebra does not longer inherit from AbstractNamedObject
f6c6a34Topological manifold morphisms with AbstractNamedObject without full_name

comment:25 Changed 23 months ago by git

  • Commit changed from f6c6a3495170bbeded949d02c0ba076b03f250eb to c866d6c3297f87910366e149951fd4dfa176af20

Branch pushed to git repo; I updated commit sha1. New commits:

3cd03a4Add methods lift() and retract() to ManifoldSubset; add method __eq__() in CoordChange
984c3c2Revert to simple hierarchy for manifold classes
c01048fScalar fields with the simplified hierarchy for manifold classes
c866d6cMorphisms of topological manifolds with the simplified hierarchy for manifold classes

comment:26 Changed 22 months ago by git

  • Commit changed from c866d6c3297f87910366e149951fd4dfa176af20 to f00be0070cf53e4b28670b8b46b526ee5b97f6fd

Branch pushed to git repo; I updated commit sha1. New commits:

8e17d54Merge into the latest version of #18529; improve treatment of composite functions in ExpressionNice
f00be00Topological manifold morphisms: solved merge conflict with Sage 7.1.beta1

comment:27 Changed 19 months ago by git

  • Commit changed from f00be0070cf53e4b28670b8b46b526ee5b97f6fd to d190b37ac17f05ec381c5b7798f0a0d3a58c3e17

Branch pushed to git repo; I updated commit sha1. New commits:

c767696Merge branch 'public/manifolds/top_manif_scalar_fields' of trac.sagemath.org:sage into public/manifolds/top_manif_scalar_fields
3b92a85Some formatting and small reviewer changes.
e44f7d9Merge branch 'develop' into public/manifolds/top_manif_scalar_fields
0fd44d6Some cleanup and creating a parent for coordinate functions.
33abe9eMarking known bugs in utilities.py.
57b7b7bImplementing global_options for display formatting.
f11df50Set CoordFunctionSymbRing in the category of commutative algebras over SR; minor documentation changes
d190b37Morphisms of topological manifolds with coordinate functions as algebra elements

comment:28 Changed 19 months ago by git

  • Commit changed from d190b37ac17f05ec381c5b7798f0a0d3a58c3e17 to 2577fc55c357f3ecefc5f7bdc4ad43ef9b145b0e

Branch pushed to git repo; I updated commit sha1. New commits:

2577fc5Fixing a (essentially trivial) doctest failure.

comment:29 Changed 19 months ago by tscrim

2577fc5 was meant to go on #18640. However, #18640 will merge in with this cleanly (at the very minor cost of a merge commit). The other option would be to start a "new" branch here rebased on #18640.

comment:30 Changed 19 months ago by git

  • Commit changed from 2577fc55c357f3ecefc5f7bdc4ad43ef9b145b0e to 7125e291bdada4280fbab99e3ba45b9c2787bcad

Branch pushed to git repo; I updated commit sha1. New commits:

f3f5470Fixing a (essentially trivial) doctest failure.
7b3dab3Merge branch 'public/manifolds/top_manif_scalar_fields' of git://trac.sagemath.org/sage into Sage 7.2.rc0
9ec7d3ePython 3 format for print in manifolds
7125e29Python3 format for print in morphims of topological manifolds

comment:31 Changed 19 months ago by egourgoulhon

  • Milestone changed from sage-7.0 to sage-7.2

comment:32 Changed 19 months ago by git

  • Commit changed from 7125e291bdada4280fbab99e3ba45b9c2787bcad to cfecb18d666ae132043fafe1d942762550bdbaa9

Branch pushed to git repo; I updated commit sha1. New commits:

4fad094Merge branch 'public/manifolds/top_manif_morphisms' of trac.sagemath.org:sage into public/manifolds/top_manif_morphisms
cfecb18Reviewer changes and tweaks for continuous maps ticket.

comment:33 follow-up: Changed 19 months ago by tscrim

  • Reviewers set to Travis Scrimshaw

Okay, I made it through this ticket. I made a number of formatting changes and little tweaks that I think improves the doc (including a few I missed on the previous ticket). I also made aliases *expression of *expr because it is good to be verbose, made some things @cached_method rather than doing attribute caching, and used the @options decorator for some plot() options. If you agree with my changes, you can set a positive review.

comment:34 Changed 19 months ago by git

  • Commit changed from cfecb18d666ae132043fafe1d942762550bdbaa9 to efcb618c969a0f060e59961be3ad2d913d6c7fc9

Branch pushed to git repo; I updated commit sha1. New commits:

efcb618Modify authorship for continuous maps.

comment:35 in reply to: ↑ 33 Changed 19 months ago by egourgoulhon

  • Authors changed from Eric Gourgoulhon to Eric Gourgoulhon, Travis Scrimshaw
  • Status changed from needs_review to positive_review

Replying to tscrim:

Okay, I made it through this ticket. I made a number of formatting changes and little tweaks that I think improves the doc (including a few I missed on the previous ticket). I also made aliases *expression of *expr because it is good to be verbose, made some things @cached_method rather than doing attribute caching, and used the @options decorator for some plot() options. If you agree with my changes, you can set a positive review.

Thank you very much for all the improvements. I've made a few checks on the impact on the subsequent tickets in #18528 (especially regarding the changes in TopologicalManifoldHomset.__call__); they all passed. So I am setting the ticket to positive review.

comment:36 Changed 19 months ago by vbraun

  • Branch changed from public/manifolds/top_manif_morphisms to efcb618c969a0f060e59961be3ad2d913d6c7fc9
  • Resolution set to fixed
  • Status changed from positive_review to closed
Note: See TracTickets for help on using tickets.