#16340: Infrastructure for modelling full subcategories
-------------------------------------+-------------------------------------
       Reporter:  nthiery            |        Owner:
           Type:  enhancement        |       Status:  needs_review
       Priority:  major              |    Milestone:  sage-6.4
      Component:  categories         |   Resolution:
       Keywords:  full               |    Merged in:
  subcategories, homset              |    Reviewers:  Darij Grinberg,
        Authors:  Nicolas M. ThiƩry  |  Travis Scrimshaw
Report Upstream:  N/A                |  Work issues:
         Branch:                     |       Commit:
  public/categories/full_subcategories-16340|  
d4c7a88563a397291b6cd5ddadb8f574cc1eedb5
   Dependencies:                     |     Stopgaps:
-------------------------------------+-------------------------------------

Comment (by pbruin):

 Replying to [comment:38 nthiery]:
 > Replying to [comment:36 pbruin]:
 > > This actually strengthens my conviction that "structure category" is
 > > not a well-defined notion.
 >
 > It's perfectly defined: C is a structure category if whenever A and B
 > are in C and phi is a morphism between A and B for any strict super
 > category of `C`, then phi is a `C` morphism. And it coincides with the
 > intuition we have of it: does `C` define some additional structure
 > (typically an operation) that has to be preserved by `C`-morphisms.

 OK, but what I meant is that this notion depends on what supercategories
 of `C` have been defined, not just on `C` itself.

 > > In this example, it depends on how you define `Rings()`: either as
 > > `Rngs() & Semigroups().Unital()`, in which case it is just a join of
 > > categories without new structure, _or_ as `Rngs().Unital()`, in which
 > > it does have extra structure (at least at first sight; you have to
 > > know that the category code magically rearranges the construction to
 > > turn `Rngs().Unital()` into a join of larger categories).  In fact,
 > > `Semigroups().Unital()` (= `Monoids()`) is not a structure category
 > > either; it is the join of `Magmas().Unital()` and `Semigroups()`.
 >
 > I don't see why `Rngs().Unital()` should suggest it's a structure
 > category. `A.Unital()` is never a structure category unless `A` is the
 > category defining `Unital`. That is `A=Magmas()`.

 Certainly, but this relies on the the implementation choice of defining
 `Magmas().Unital()`.  I admit this may be a slightly silly example, but I
 could imagine a different scenario where the person implementing these
 categories did not think anyone would need unital magmas, and hence chose
 to define `Unital()` relative to a more specific category, which in an
 extreme case could be `Rngs()`.  In that case `Rings() = Rngs().Unital()`
 would have been a structure category, while being mathematically exactly
 the same as the actual `Rings()`.

 > > I don't see why this should necessarily be the case; we would just
 > > encode for each direct supercategory (of which there are usually
 > > just one or two) whether it is a full supercategory.
 >
 > Well, I tried, and the code stunk with duplication, urging me to do it
 > differently :-) Feel free to try for yourself.

 I wish I had the time, but given that I don't, the best I can do is to
 just add my perspective as a non-developer but potential user of the
 category framework...

 > > This makes computing all full supercategories not any slower (and
 > > probably faster) than computing all supercategories,
 >
 > Yup.
 >
 > > or presumably all "structure supercategories" for that matter.
 >
 > Possibly so. There are few structure supercategories so that's rather
 > cheap too.

 But to find them I assume one needs to traverse all supercategories and
 pick out the ones that are structure supercategories, so the time would
 still depend on the number of all supercategories, or am I mistaken?

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