Hi Eric, On 2015-11-04, Eric Gourgoulhon <egourgoul...@gmail.com> wrote: > The context is as follows: > > - Manifolds are parents, whose elements are points. > - Manifolds are characterized by a user-defined atlas, which is a list of > coordinate charts defined on the > fly by the user, along with transition maps. "Defined on the fly" means > that charts are added to the > atlas during the working session. In particular, the atlas is not set at > the manifold construction. > - Two points are declared equal iff they have the same coordinates in the > same chart. > - Mathematically speaking, two manifolds are equal if they have the same > maximal atlas, not the > same "user-defined" atlas. Now maximal atlases cannot be represented in > the computer. > - One needs fast equality check for manifolds, since > (i) they are used as dictionary keys (for instance as the domains in the > dictionary of the restrictions of > some field) > (ii) check of chart equality involves comparison of chart domains, which > are manifolds (as open subset > of a manifold), and charts are massively used as keys in the > dictionary of coordinate expressions > of scalar fields
Are you serious? Certainly you are aware that there is no algorithm that would be able to test whether two arbitrary compact 4-manifolds are homeomorphic. And if I am not mistaken, the Rubinstein-Thompson algorithm for the recognition of the 3-sphere is still state of the art, but it involves solving a double-exponential number (in terms of number of tetrahedra of a one-vertex triangulation) of NP-complete problems. In such a situation, I believe a UniqueRepresentation does not make sense. You may have different input data yielding homeomorphic manifolds, and it is not feasible to solve a computationally super-hard problem upon creation of each manifold (basically comparing the new to-be-created manifold with all previously created manifolds, unless you come up with a normal form for manifolds). What you COULD use is CachedRepresentation. Then, identical input data would result in identical output. But still, non-identical input data would result in two manifolds that may or may not be homeomorphic. And using manifolds as dictionary keys seems to me like a very bad idea, given the above-mentioned problems. Best regards, Simon -- You received this message because you are subscribed to the Google Groups "sage-devel" group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-devel+unsubscr...@googlegroups.com. To post to this group, send email to sage-devel@googlegroups.com. Visit this group at http://groups.google.com/group/sage-devel. For more options, visit https://groups.google.com/d/optout.