Disclaimer: I think this may have more or less been covered in the
earlier mega-discussion on symbolic computation. Also the whole reason
we use maxima is to avoid dealing with the problems I'm describing but
I still
would like to think about it a bit and am curious if anyone has any
insight.


I have been thinking a lot about symbolic algebra.  I was thinking
about what would be required to do symbolic manipulations without
using maxima. If we represent symbolic expressions as trees of
operations and operands
then it seems what is needed is some sort of ability to define rules
to transform trees.

I will represent trees as lists in lisp notation so [+ a b] is the
tree

          a
       /
    /
+
    \
       \
          b

Consider a + b +a, this will be stored as [+ a [+ b a]] (or maybe [+
[+a b] a] )


Obviously this should become 2*a + b


If we could define rules that

[+ a b] = [+ b a]
[+ [+ a b] c] = [+ a [+ b c]]
[* 1 a] = a
[+ a [* c a ]] = [* (c+1) c]

then we could make this simplification, however even in this simple
case, I don't really know how one would automatically do this
simplification.

Perhaps one could make a rule that multiplication is simpler than
addition, squaring is simpler than multiplication, etc and rank the
expressions by their complexity under this ranking and search for
simpler expressions,
i.e. since we would find a way to replace an addition by a
multiplication, 2*a+b is a simpler expression.

We would also need pattern matching capabilities to deal with sub-
expressions.

i.e. we should be able to infer that

[+ a [+ b c] ]  = [+ [+ b c] a]

and matching [+ a [+ b c] ] to an abstract expresion of the form of
the first rule above.


 Does anybody know how this works in general.


 
Josh


--~--~---------~--~----~------------~-------~--~----~
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/
-~----------~----~----~----~------~----~------~--~---

Reply via email to