On 8/5/11, Karl-Dieter Crisman <kcrisman at gmail.com> wrote:
> (%i1) %e^(y=x);
> y = x
> (%o1) %e
> (%i2) log(y=x);
> (%o2) log(y) = log(x)
>
>
> I know that Maxima is very careful (or at least usually is) with
> automatic simplification of things involving exponents, but I'm trying
> to think of what interpretation the first result would have other than
> %e^y=%e^x.
Well, log is declared to distrubute over lists, matrices, and equations,
while exp is not so declared.
You can get the desired effect like this in a Maxima session,
or just put the Lisp code in maxima-init.lisp.
:lisp (setf (get '%exp 'distribute_over) '(mlist mequal))
(Note that this also declares that exp distributes over lists;
I hope that's not controversial. Exp shouldn't distribute over
matrices since exp(matrix) has another interpretation.)
At present a lot of stuff is hard-wired in simplification functions;
the distribute_over property is a step in the right direction -- there's
just one simple declaration to get the desired effect.
Ideally simplification properties for all functions could be declared
via s.t. like declare(foo, has_some_relation_to(bar, baz, quux))
with a look-up capability to find all the simplifications for foo or
all the operators which have the has_some_relation_to property
or queries of that flavor. That's a distant goal at the moment.
best,
Robert Dodier