#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.