#18529: Topological manifolds: basics
-------------------------------------+-------------------------------------
       Reporter:  egourgoulhon       |        Owner:  egourgoulhon
           Type:  enhancement        |       Status:  needs_info
       Priority:  major              |    Milestone:  sage-7.0
      Component:  geometry           |   Resolution:
       Keywords:  topological        |    Merged in:
  manifolds                          |    Reviewers:  Travis Scrimshaw
        Authors:  Eric Gourgoulhon,  |  Work issues:
  Travis Scrimshaw                   |       Commit:
Report Upstream:  N/A                |  3cd03a48d847e12745ed8c25b23f19db141c179a
         Branch:                     |     Stopgaps:
  public/manifolds/top_manif_basics  |
   Dependencies:  #18175             |
-------------------------------------+-------------------------------------

Comment (by egourgoulhon):

 Replying to [comment:112 tscrim]:
 > It is what I was hoping to obtain, but had trouble separating out the
 subset portion because there still is a small diamond problem with
 `Parent`. Which is why `AbstractSubset` would have to be a mixin, both in
 this hierarchy and Hierarchy-3,4 to be effective.

 Yes. Similarly `AbstractAmbient` in Hierarchy-4 has to be a mixin, so that
 only `AbstractSet` inheritates from `Parent`.

 >
 > It does seem like perhaps Hierarchy-2 would be the best since there is
 so few tests for `if self._manifold is self`. The biggest trouble I have
 with this is the separations of concerns: that it makes it somewhat harder
 to separate these classes later if they start needing different
 attributes. We also have well-established code in Sage for which there is
 a different class for subobjects.

 As said before, it is difficult to see at the monent what kind of
 different attributes would exist for manifolds and open submanifolds.
 Basically, our open submanifolds behave just like manifolds, especially
 when defining fields on them. This reflects the fact that both are open
 sets, which is the true basic structure in topology. Things are probably
 different in other parts of Sage, which deal with algebraic structures,
 instead of topological ones.
 >
 > Ah hell, perhaps we should just revert back to Hierarchy-2 to keep the
 simplicity. I'm starting to wonder if there is perhaps a more fundamental
 issue in that we are trying to be too close to the mathematical
 definitions rather than be programmers, which could potentially be a
 complete rewrite of most things. However, we have working code, which is
 always better than no code.

 OK, let us revert to Hierarchy-2. It is simple, effective, offers a better
 gathering of documentation, and, via `self._manifold = self`, it embodies
 the fact that a manifold is an open subset of itself, which is not a
 totally crazy mathematical idea.
 Anyway, the whole discussion has been very interesting (at least to me)
 and we can keep the above diagrams for future thoughts.
 >Anyways, I'm going to shutup now and just ask do you want me to handle
 the revert or are you willing to do it?
 I will do it. Of course, it will not be a complete revert to the state
 prior to your refactorization: we shall keep your singleton classes for
 the structure (topological, differentiable, etc.) and your removal of
 facade parents, which are nice features.

--
Ticket URL: <http://trac.sagemath.org/ticket/18529#comment:113>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica, 
and MATLAB

-- 
You received this message because you are subscribed to the Google Groups 
"sage-trac" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/d/optout.

Reply via email to