Subject: The factor function is a little bit silly.
From: Richard Fateman
Date: Mon, 7 Apr 2008 20:43:29 -0700
> -----Original Message-----
> From: maxima-bounces at math.utexas.edu
> [mailto:maxima-bounces at math.utexas.edu] On Behalf Of J.C. Pizarro
> Sent: Monday, April 07, 2008 4:45 AM
> To: maxima at math.utexas.edu
> Subject: The factor function is a little bit silly.
>
> I've 2 issues here:
>
> FIRST: Halting problem in TM
> ------
> The below symbolic example doesn't terminate after many minutes in
> maxima-5.14.0 although the human solution is f(x)-g(x)-h(x):
>
> factor(expand((f(x)-g(x)-h(x))^500));
>
> To fix this problem in the future: better artificial
> sustitution in the
> solving of factor or intelligent lazy computation as
> factor(expand(Alpha)) => Alpha.
There are many interesting issues that could be characterized as making
Maxima more intelligent.
This does not look like one. It might be intelligent to say "this is taking
a long time. do you want
to continue?"
For a starter, as Alex pointed out,
factor(expand(Alpha)) is not generally exactly the same as Alpha.
Secondly, if you write f(g(alpha)), that command means apply g to alpha,
then apply f to the result.
If f and g are not programs, or if they are "quoted", you could define
simplifications so that
f.g is the identity ... that is, f(g(x)) = x.
But factor and expand are programs.
>
> SECOND: Non-deterministic Memoization
> -------
>.....
> I think that the maxima system uses memoization that remember
> some internal
> answers of previous computations but it's non-deterministic.
No, there is nothing non-deterministic about Maxima, even its random
function.