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

 Replying to [comment:622 SimonKing]:
 > Replying to [comment:621 pbruin]:
 > > In short, "groups are sets" is only true in the loose sense that there
 is a forgetful functor '''Groups''' -> '''Sets''' (sending ''G'' to ''S''
 in the above notation), not that this functor is a subcategory relation.
 >
 > OK, now I get it (hopefully). The forgetful functor is not injective.
 >
 > So, how to implement it? We want that `Groups().parent_class` is derived
 from `Sets().parent_class` since there is a forgetful functor, but we want
 that `Groups()` is not a subcategory of `Sets()`.
 Yes, exactly.  We definitely want groups and their elements to inherit
 functionality from sets and their elements; the mathematical notion of
 subcategory is just not the right one to govern such inheritance.

 The fact that we want a weaker notion than subcategories is somewhat
 analogous to the situation with rings (for example): there is a notion of
 one ring being a subring of another, a weaker notion of a ring admitting a
 canonical homomorphism into another, and the coercion mechanism mainly
 relies on the weaker notion.
 {{{
 sage: ZZ.is_subring(QQ)
 True
 sage: ZZ.is_subring(Zmod(4))
 False
 sage: Zmod(4).coerce_map_from(ZZ)
 Natural morphism:
   From: Integer Ring
   To:   Ring of integers modulo 4
 }}}
 It would be nice to have an analougous distinction for categories: a
 method `is_subcategory()` whose return value reflects the usual
 mathematical notion of subcategories, and another method
 `has_coerce_functor_from()`, `has_coerce_functor_to()` or something
 similar.  The latter would implement this weaker notion of having a
 canonical functor (doing what is currently done by `is_subcategory()`),
 which should remain the more appropriate notion to control inheritance of
 parent (and element) methods.

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