To implement the proviso system I mentioned would require that
it be deeply embedded in the algorithms. Whenever an algorithm
(say, division) did an operation that involved a proviso it would
need to (a) decorate the result with the proviso and (b) potentially
split the answer into separate sub-answers for further computation.
Note that I did not make any restrictions on the provisos so they
could be anything (not even necessarily computable), such as polynomials
or roots (e.g. [x suchthat x in roots of ....] and they don't need to
be intervals (e.g. f(x) is holonomic, the so-called "is" provisos).
There are deep research questions here involving reformulating normal
algorithmic computations to collect the provisos, splitting the
collection into (not necessarily decidable) disjoint sets, doing
parallel computation under a proviso set (generating further subsets
as the computation proceeds), combining partial results to poison
other branches of the parallel computation tree (which implies computing
partial CAD results and a "blackboard architecture") and the question
of combining results under proviso constraints (e.g. combining intervals
if the representations are intervals, in order to recover the real line
or the complex plane).
There is a whole research program here but the NSF doesn't seem to know
or care so its unlikely to be explored except by open source. Axiom has
a long term goal of refactoring the algebra to include this in the design
at the fundamental level (which was the point of the thesis work). It is
only in recent years that hundred-core machines are becoming available to
support the huge parallel trees this generates. A proviso-based system
will enable parallel computation in a "natural" manner as opposed to the
current ideas that depend on simple cases (like matrix multiply).
An "assume" facility that is bolted-on after the fact cannot possibly
handle issues that arise as part of the computation since intermediate
expressions can contain computations that are not apparent in the final
result. An assume facility could create some initial conditions but would
naturally be expressed using something like Axiom's "suchthat".
Tim Daly
On 9/23/2010 11:19 AM, rjf wrote:
On Sep 23, 5:36 am, Burcin Erocal<bur...@erocal.org> wrote:
I think it would be a huge overstatement to say that the symbolics
subsystem in Sage was "designed" in any way. IMHO, it was mostly
patched together to support educational use, then acquired more cruft
through several rewrite attempts and cramped schedules.
I think that is true of ALL the subsystems in Sage.
In terms of my own interests, that is why the idea of rewriting Maxima
in
Python is pointless. Wouldn't you prefer to write a system that
addressed
the shortcomings of Macsyma (etc.) And by shortcomings I don't mean
"written in Lisp instead of Python".
There are perhaps papers hinting at the Macsyma "assume" system
capabilities by Michael Genesereth, but a quick search did not reveal
them.
The Maple system has a more ambitious capability, but it is still
patched on.
I do not know where the Mathematica version contains, at the moment.
It
seems to grow, every so often. But it is still patched on. The note
from
Tim suggests that (I think) linear inequalities and rectangular
regions can
encode most conditions of interest. Or maybe polynomial conditions?
Certainly not all. And cylindrical algebraic decomposition may be
useful, though
potentially quite expensive, there is all that other stuff that is not
algebraic.
Like log, exp, cos, ...
I am definitely not an expert in this field and have no idea how the
assumptions should work. If you can provide some references, perhaps
these could be used as starting points when/if somebody decides to
work on this.
Well, you can probably start with that Maple reference,
the next time you design a system. Unfortunately, Sage is already
built, and it
is probably too late. But Stein is doing something else, so you don't
have
to worry about him getting in the way. Maybe UberSage; you can call
Sage
if you need to.
Here is the only reference I found on this topic:
http://portal.acm.org/citation.cfm?id=680466
The article is available for download here (for those with access):
http://www.springerlink.com/content/p77364025wh6j7h5/
Burcin
--
To post to this group, send an email to sage-devel@googlegroups.com
To unsubscribe from this group, send an email to
sage-devel+unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URL: http://www.sagemath.org