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.