Hi Bruce,

On 2018-05-19, Bruce <brucewestb...@gmail.com> wrote:
> Can I make two comments?
> i. I think it would be better to say that (to a first approximation) a sage 
> category is a subcategory of Sets.
> When you are taught category theory it is drilled into you not to think of 
> an object as a set.

You are certainly right that the category framework in Sage was created with
sets in mind. And in fact, historically, the parent-element stuff that one
can find in sage.structure preceded the category framework.

I am not sure: Is it fair to say that the category framework was invented with
the intention to provide mixin abstract base classes for parents and elements,
but based on mathematical notions instead of just in terms of python classes
(as in Python's abc module)?

Anyway, it was always my impression that the category framework is very
useful for implementing algebraic stuff -- but one should still combine
it with a hard coded classical hierarchy of Python/Cython types. It is
flexible enough that two instances P1, P2 of a concrete parent class can
belong to different categories, and thus eventually provide different
functionality (and in fact type(P1) and type(P2) will then be two
different types that Sage creates dynamically). A classical example is
MatrixSpace(QQ,2) (which is object in Algebras(QQ)) and
MatrixSpace(QQ,2,3) (which is object in VectorSpaces(QQ)).

Nonetheless: At least ostensibly it is possible to create categories in
Sage that are no sub-categories of Sets(). After all, there is
sage.structure.category_object.CategoryObject, which is even more basic than
sage.structure.parent.Parent, and whose instances are not necessarily having
elements.

Best regards,
Simon

-- 
You received this message because you are subscribed to the Google Groups 
"sage-combinat-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-combinat-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-combinat-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-combinat-devel.
For more options, visit https://groups.google.com/d/optout.

Reply via email to