#18175: Implement categories for topological and metric spaces and related
categories
-------------------------------------+-------------------------------------
       Reporter:  tscrim             |        Owner:  tscrim
           Type:  enhancement        |       Status:  needs_review
       Priority:  major              |    Milestone:  sage-6.10
      Component:  categories         |   Resolution:
       Keywords:  geometry,          |    Merged in:
  topology, sd67                     |    Reviewers:  Eric Gourgoulhon
        Authors:  Travis Scrimshaw   |  Work issues:
Report Upstream:  N/A                |       Commit:
         Branch:                     |  d13c3688328149c08f4efbbcee91a8fd2978d91a
  public/categories/topological_metric_spaces-18175|     Stopgaps:
   Dependencies:  #18174 #17160      |
-------------------------------------+-------------------------------------

Comment (by egourgoulhon):

 Replying to [comment:58 tscrim]:
 > Replying to [comment:56 egourgoulhon]:
 > > 1/ The new categories do not appear in the reference manual, in the
 section "Individual Categories". Shouldn't they ?
 >
 > Yes they should and now they do.

 Very good.

 >
 > I've added them in and I reworked the default `dist` to use the `abs`
 method of the elements. I also made it so that there is a call loop
 `P.metric -> E.dist -> P.dist -> E.abs -> P.metric` so one just needs to
 implement one of these methods (`P` is the parent and `E` is the element).
 This is a slight abuse as not all metric spaces have a `0` (more generally
 a distinguished base point), nor implement subtraction. I think this is
 something we can live with for now and on a followup ticket better refine
 the categories for these generic metrics as most parents who additive
 groups (well, this might be a stronger condition than needed, but I'm not
 worrying about that now).

 The default `dist` using `abs` seems reasonable at this stage. Thanks for
 having added the p-adic fields.

 I've merged the last commit of this ticket in all the tickets of #18528,
 replacing the `Sets()` category by `Manifolds(K)`,
 `Manifolds(K).Differentiable()` or `Manifolds(K).Smooth()`, with `K`=`RR`,
 `QQ`, `Qp(5)` or `CC`. Everything works well!

 I've just one last question:

 In the examples (in `src/sage/categories/examples/manifolds.py` and
 `src/sage/categories/examples/cw_complexes.py`), the parents implement the
 method `an_element` and not `_an_element_` (as advised in the Parent
 section of the reference manual). Is there any reason for this?

 and three suggestions of typo corrections:

 - in `src/sage/categories/manifolds.py`, line 70: replace
   "a morphism of metric spaces between manifolds is a manifold morphism"
 by
   "a morphism of topological spaces between manifolds is a manifold
 morphism"
 - in `src/sage/categories/metric_spaces.py`, line 48: replace "is
 simultaneously a
   topological group by itself, and a topogological space"
   by "is simultaneously a topological group by itself, and a metric space"
 - in `src/sage/categories/topological_spaces.py`, there seems to be an
 unnecessary import:
   `from sage.misc.lazy_attribute import lazy_class_attribute`

--
Ticket URL: <http://trac.sagemath.org/ticket/18175#comment:61>
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 http://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/d/optout.

Reply via email to