#10963: Axioms and more functorial constructions
-------------------------------------+-------------------------------------
       Reporter:  nthiery            |        Owner:  stumpc5
           Type:  enhancement        |       Status:  needs_info
       Priority:  major              |    Milestone:  sage-6.2
      Component:  categories         |   Resolution:
       Keywords:  days54             |    Merged in:
        Authors:  Nicolas M. Thiéry  |    Reviewers:  Simon King, Frédéric
Report Upstream:  N/A                |  Chapoton
         Branch:                     |  Work issues:  merge with #15801
  public/ticket/10963-doc-           |  once things stabilize
  distributive                       |       Commit:
   Dependencies:  #11224, #8327,     |  ce2193e9d6f179d2d51812c6af002697ccfbaa8c
  #10193, #12895, #14516, #14722,    |     Stopgaps:
  #13589, #14471, #15069, #15094,    |
  #11688, #13394, #15150, #15506,    |
  #15757, #15759, #15919             |
-------------------------------------+-------------------------------------

Comment (by nthiery):

 From the primer:
 {{{
 We have seen above that, for example, the category of groups is
 considered by Sage as a subcategory of the category of sets. For
 category purists, this is not quite correct: namely, a group is not a
 set; instead, one can recover the underlying set by forgetting the
 multiplicative structure. However, it would be impractical to have to
 explicitly forget the multiplicative structure whenever one wanted to
 apply on a group an operation defined on sets. In object oriented
 parlance, we really want the relation "a group *is a* set", so that
 groups can inherit code implemented on sets.

 Therefore, in Sage, as well as in most systems with a similar category
 framework, we use this slightly abusive definition of subcategory:

 A category ``Ds()`` is a *subcategory* of the category ``Cs()`` if, up
 to implicitly applying the appropriate forgetful functor, every object
 of ``Ds()`` is an object of ``Cs()``. Reciprocally, ``Cs()`` is in
 this case a *super category* of ``Ds()``.
 }}}

 This is the correct hierarchy relation that we want for organizing the
 code.

 This hierarchy relation has been called "subcategory" in Sage since
 2007, following the other systems with a category mechanism (Axiom,
 MuPAD, ... and actually GAP as well). If you believe that the implicit
 application of the forgetful functor makes it abusive to call this
 "subcategory", or if you think we *also* want to model the "pure
 subcategories relation", we can debate the pros and cons. But this
 belongs to a separate new ticket.

 Cheers,
                           Nicolas

--
Ticket URL: <http://trac.sagemath.org/ticket/10963#comment:625>
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