On 9/12/07, David Kohel <[EMAIL PROTECTED]> wrote: > Just to add my 2 bits, I think we should aim for something like the > following: > > sage: x = var('x') > sage: X = x.domain() > sage: X > Affine line over the Real Field > sage: X.identity() > x > sage: f = sin(x) > sage: X == f.domain() > True > sage: f = sin(domain=X,codomain=X) ... > Note that the default domain could be a Complex Field rather than a > Real Field. > In order to allow domains which are, say, the positive real numbers, I > don't see > how to get around the need for a class for such domains (i.e. > RealField() does > not do the job). [...] > However it also introduces some headaches, like when (or on what > domain) is the > composition sqrt(x) defined, and how to specify the domain of an > inverse function: >[...] > With this approach, one has to make a design decision whether a > function must be > defined everywhere on a domain, whether it can have isolated poles, > and if the ... [...] > This would provide some > mathematical rigor without killing usability.
The entire point of the SAGE symbolic calculus package is to not do what you're suggesting above. It is meant for pure symbol manipulation and calculus, even if this might not be completely rigorous. It's a completely different kind of thinking than what goes into Magma or even advanced rigorous mathematics. And for certain types of problems (the vast majority of the ones undergrad non-math majors encounter), this non-rigorous symbol manipulation is by far the easiest thing to use. There is a genuine reason why Maple and Mathematica have millions of users, and more formal rigorous systems (e.g., Axiom) have far less, even though they to some extent address the same problems. My goal for for SAGE is to provide a viable open source alternative to Maple, Mathematica, Matlab, and Magma. To do this it's critical that there be a part of SAGE that can truly be as usable for non-mathematicians as Maple. We're far from there yet, but I think the current calculus package is a step in the right direction, and what you're suggesting isn't. I think that something like you're suggesting definitely has a place for people with much more mathematical maturating that "undergrad science majors". But I think the two must be complementary, not that one replaces the other. I remember reading a long thread on axiom-devel that was a discussion between Ondrej Certik and the axiom developers. It ended rather abruptly when one of them wrote that they were not interested at all in "formal symbol manipulation" and Ondrej replied that possibly non-rigorous formal symbol manipulation was *precisely* what he is interested in. There is certainly a very important place for this sort of computation. William --~--~---------~--~----~------------~-------~--~----~ To post to this group, send email to sage-devel@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/sage-devel URLs: http://sage.scipy.org/sage/ and http://modular.math.washington.edu/sage/ -~----------~----~----~----~------~----~------~--~---