#10193: Create the category of SetsWithGrading
---------------------------------------------------------------+------------
       Reporter:  nthiery                                      |         Owner: 
 sage-combinat                  
           Type:  enhancement                                  |        Status: 
 needs_work                     
       Priority:  major                                        |     Milestone: 
 sage-5.10                      
      Component:  combinatorics                                |    Resolution: 
                                
       Keywords:  categories, enumerated sets, sd35.5, days45  |   Work issues: 
                                
Report Upstream:  N/A                                          |     Reviewers: 
 Nicolas Borie, Travis Scrimshaw
        Authors:  Nicolas M. ThiƩry, Vincent Delecroix         |     Merged in: 
                                
   Dependencies:  #6495 #13605                                 |      Stopgaps: 
                                
---------------------------------------------------------------+------------
Changes (by tscrim):

  * status:  needs_review => needs_work
  * reviewer:  Jason Bandlow, Franco Saliola, ... => Nicolas Borie, Travis
               Scrimshaw


Comment:

 Hey,

 A few comments/questions:

 - I prefer the name `GradedSets` over `SetsWithGrading`, it's a more
 natural name to me.
 - The example, I don't think there should be the need for another
 `NonNegativeIntegers` class. Can't we just use the existing
 `sage.sets.NonNegativeIntegers` with the required methods and placed in
 this category?
 - Similar to above, I'd like to see all sets which belong actually into
 this category. Or at least a few more of the big classes.
 - Grade should be implemented as an abstract Element method
 - I don't like the default implementation of `graded_component()` since it
 assumes the first argument of subset (which may not be implemented) is the
 graded component. If you want to use the `subset()` method, you should
 call it with `self.subset(grade=grade)`.
 - It's not well documented what methods must be implemented. The
 "automatic" way is to make them `@abstract_method`s.

 Here's also some more wish-list type things that I'd like to see, but can
 wait for a followup ticket:

 - Simple API for grading shifts
 - Checking that morphisms preserve grading
 - Make `degree()` call `grade()` (thus act like an alias, unfortunately in
 categories you can't simply make an alias by `degree = grade` [it will
 reference the wrong function]).

 Thanks,[[BR]]
 Travis

-- 
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/10193#comment:25>
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?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to