#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 pbruin):

 Hello Nicolas,
 > From the primer:
 (More precisely, from a section of the primer introduced in ''this
 ticket''...)
 > {{{
 > 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.
 I do agree with the above motivation for having this hierarchy.  Since
 Darij raised this point in comment:617, I just wanted to state my
 agreement with his opinion that it should not be called "subcategory".  In
 other words, this section of the primer would be a good justification for
 the ''existence'' of this hierarchy, but it currently reads like an
 attempt at justifying a design decision to ''name'' this the subcategory
 relation, overriding existing mathematical terminology.
 > 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).
 Not out of disrespect for the terminology used by Sage and other computer
 algebra systems, but the subcategory relation in the mathematical sense
 has been called "subcategory" since the 1940s.  I admit never having used
 Axiom, MuPAD or GAP, but from browsing the documentation of those systems,
 I get the impression that Sage is moving (or has already moved) far beyond
 them.  Hence, given the goal of creating a more flexible framework than
 the type of relatively fixed hierarchy of those systems, of transparently
 combining functorial constructions, building new categories dynamically
 etc., I think it is exceedingly important to be extremely careful about
 both the design and the terminology.  Whenever some construction in Sage
 conflicts (in name or content) with existing mathematical usage, one at
 least has to take seriously the possibility that this will create subtle
 and less subtle problems (if only confused users) in the long run.
 > 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.
 Certainly, I do not want to say that something should be done about it
 here and now.

 For the moment, in the primer, would it perhaps be an option to just
 ''document'' that this relation is currently called "subcategory" in Sage
 and not attempt to ''justify'' this terminology?  (And maybe to consider
 rewording the mention of "category purists"; not that I consider myself
 one... 8-) )

 Finally, let me stress that I greatly value the work done by you and other
 people on this part of the infrastructure of Sage.  Please view my
 comments as evidence that this infrastructure is important enough to me to
 spend some time and energy to discuss the issues involved in "getting it
 right".

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