On Mon, Mar 10, 2014 at 5:48 AM, Nicolas M. Thiery <nicolas.thi...@u-psud.fr> wrote: > On Mon, Mar 10, 2014 at 04:35:25AM -0700, Volker Braun wrote: >> IMHO the contained-class makes it clear what the base category is, but not >> what the axiom is. For example: >> class Cs(Category): >> class Finite(CategoryWithAxiom): >> pass >> class Ds(Category): >> class Endlich(CategoryWithAxiom): >> pass >> Now Cs.Finite implements an axiom, but Ds.Endlich does not (since you >> haven't added the "Endlich" string to a global list somewhere). > > No. What makes Endlich an axiom (or not) is that some super category > has defined it (or not) [1].
Ah, this was not at all clear in the initial proposal. > As an analogy, when an abstract class C declares a method foo, and you > implement this method in some subclass D, you don't write explicitly > in D.foo that you override the method foo declared in C. > > If you need that information, you either use the semantic (here the > math), or you walk the hierarchy. Of course, since the hierarchy is > built dynamically here, you need to walk the hierarchy dynamically; > introspection does that nicely for you (yes, unless Sage does not > start at all; but in that case we are speaking of the very basic > axioms and you can still use the math). > > Cheers, > Nicolas > > [1] The fact that Sage needs a list of the names of all the axioms > being defined is an implementation detail. Recall that it is used > mostly for printing purposes (and allowing for syntactical sugar in > some spots). We could get rid of it without changing the syntax of how > axioms are defined and implemented. > > -- > Nicolas M. ThiƩry "Isil" <nthi...@users.sf.net> > http://Nicolas.Thiery.name/ > > -- > You received this message because you are subscribed to the Google Groups > "sage-devel" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to sage-devel+unsubscr...@googlegroups.com. > To post to this group, send email to sage-devel@googlegroups.com. > Visit this group at http://groups.google.com/group/sage-devel. > For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups "sage-devel" group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-devel+unsubscr...@googlegroups.com. To post to this group, send email to sage-devel@googlegroups.com. Visit this group at http://groups.google.com/group/sage-devel. For more options, visit https://groups.google.com/d/optout.