#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, | 268345f966b19589088e9b0dc84f183e4f45f545
#10193, #12895, #14516, #14722, | Stopgaps:
#13589, #14471, #15069, #15094, |
#11688, #13394, #15150, #15506, |
#15757, #15759, #15919 |
-------------------------------------+-------------------------------------
Comment (by pbruin):
Replying to [comment:629 nthiery]:
> Maybe it's not so bad after all: in the code the relation appears
> essentially under the name "super-category". So if one can accept
> super-category as not being the opposite of "sub-category" (I
> certainly can), and if there is a good alternative name for
> "sub-category" (I just tried a couple online antonym dictionaries, and
> so far found nothing better than "inferior"), things should be easy to
> change.
That is a very good point; I certainly accept that using either of the two
words "subcategory" and "supercategory" does not mean that one has to
admit the other as meaning the exact opposite.
After thinking about it for a while, I could only come up with exactly one
alternative, but one that I am starting to find very appealing: why don't
we call this relation ''refinement''?
What I like about this word is that it evokes both a state of being (so
`is_refinement()` is close enough to `is_subcategory()`) and the
''process'' of refining (a category being refined into another one by
adding axioms and/or extra structure). It has a slight vagueness about
it, like "forgetful functor", since neither of the two terms has a nice
mathematical definition.
One could say that "the (Sage) category `D` is a refinement of the
category `C`" has exactly the same meaning as "Sage knows about a
forgetful functor from `D` to `C`" and also as "`C` is in Sage's hierarchy
of supercategories of `D`". It probably doesn't hurt to reiterate that
this common meaning refers to the internal category hierarchy of Sage, not
necessarily to a mathematical definition.
Let me give a few arguments why the name "refinement" would fit in well
with existing code:
- `sage.structure.CategoryObject` has a method `_refine_category_()` whose
job is exactly to place the object into what we currently call a
subcategory, but what I propose to call refinement.
- `ForgetfulFunctor_generic` currently claims to represent "The forgetful
functor, i.e. embedding of a subcategory"; this would be made both more
general and more in line with the existing use of "forgetful functor" and
"subcategory" if the description were changed to "The forgetful functor
corresponding to a refinement of categories" or something similar.
- In (almost) all current uses of `X.is_subcategory()` in the Sage library
(there are actually not that many), `X` is visibly a category, and is
often even called `category`. Changing `category.is_subcategory(...)`
into `category.is_refinement(...)` does not remove any expressiveness;
almost on the contrary.
- "Refinement" is one character and two syllables shorter than
"subcategory". 8-)
I am very interested to hear any opinions about this proposed terminology!
If we end up wanting to change the name, we can decide later whether we
want to do it here or in a new ticket. There would not be huge amount of
code to change, but it might still be a bit much for this ticket.
--
Ticket URL: <http://trac.sagemath.org/ticket/10963#comment:633>
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.