On Thu, Oct 1, 2015 at 11:00 AM, Bill Page <bill.p...@newsynthesis.org> wrote: > On 1 October 2015 at 13:07, William Stein <wst...@gmail.com> wrote: >> On Thu, Oct 1, 2015 at 9:38 AM, Bill Page <bill.p...@newsynthesis.org> wrote: >>> [Changed thread subject from: Sources of funding - perhaps computer >>> manufacturers? ] >>> >>> What I find hard to swallow is the peculiar mix of "parent", >>> "category", and Python data types (class system and inheritance). In >>> spite of the available documentation in the category system in Sage, I >> >> Just curious -- Bill Page, did you ever take a graduate mathematics >> course in "category theory", or at least a course that had a >> significant portion devoted to it, or at least carefully read (and did >> exercises!) from a textbook on category theory? > > Yes, yes, and yes. > >> Because despite >> being called "abstract nonsense" by some, category is a serious, >> highly technical, and nontrivial area of mathematics, with interesting >> theorems, a long development, etc., just like other areas of math. >> > > Yes, certainly. I consider category theory an appropriate foundation > for a very large part of mathematics. > >> I would expect that somebody who doesn't know category theory (the >> mathematical area) would find the category framework in Sage very >> confusing, just like somebody who doesn't know calculus might find the >> symbolic functionality confusing. > > No, I find the Sage implementation of these ideas confusing, or at the > very least overly complicated. I am sure that if I had a good reason > and enough energy to want to overcome this impression > (pre-conception?) then I would probably find categories in Sage very > useful. It certainly seems to be useful to at least a small core of > developers in Sage.
Cool; thanks for explaining your background. One other impression you have is that categories were just bolted on by combinatorics people at the end. However, David Kohel and I actually implemented the first round of category-related stuff in Sage right at the very, very beginning -- it was one of the first things we did, motivated by what David had wished Magma had. And it is has just been iteratively refined over the users, with Nicolas ThiƩry doing by far the most work on it during his sabbatical a few years ago. There was also a lot of input coming from the multiple rounds of rewriting of the coercion model, by me, David Roe, Robert Bradshaw (especially), and others. By the way, look at how coercion "works" in Magma: $ magma Magma V2.18-5 Thu Oct 1 2015 16:59:12 on compute3-us [Seed = 629019987] Type ? for help. Type <Ctrl>-D to quit. > R<x> := PolynomialRing(IntegerRing()); > x + 1/2; >> x + 1/2; ^ Runtime error in '+': Bad argument types Argument types given: RngUPolElt[RngInt], FldRatElt > Total time: 0.550 seconds, Total memory usage: 9.53MB -- William > > It is important also to keep in mind what are called "categories" in > Axiom have a best only an indirect connection to mathematical category > theory. To my knowledge there has been only a bit of work done in > trying to actually implement some form of category theory in > Axiom/Aldor. > > http://axiom-wiki.newsynthesis.org/CategoryTheoryAndAxiom > > -- > 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. -- William (http://wstein.org) -- 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.