Teaching maxima a new identity



Hi Dan,

> manipulations that result in equations involving the
> expression u^2 + v^2 + w^2, and it would be nice if
> Maxima would automatically replace this expression

In expressions in which u^2 + v^2 + w^2 appears as
a separate factor (e.g. sin (u^2 + v^2 + w^2) or
(u^2 + v^2 + w^2)^n, but not u^2 + v^2 + w^2 + x^2 + y^2)
tellsimpafter can help --

  tellsimpafter (u^2 + v^2 + w^2, 1);

  sin (u^2 + v^2 + w^2);  => sin (1)
  (u^2 + v^2 + w^2)^n  => 1

tellsimpafter carries out pattern matching.
There is a lot to say about that. See tellsimpafter under
"Rules and Patterns" at
http://maxima.sf.net/docs/manual/en/maxima_toc.html

> Related uestion: if this is not what "::" is
> supposed to do, then what *does* it do, exactly?

a :: b  means assign b to the value of a.
a must evaluate to something which can be assigned to.
e.g. a : 'foo$ a :: 123$ foo;  => 123
i.e., foo got assigned instead of a .

here's another one -- a : concat ('x, 'y, 'z); a :: 123; xyz; => 123
i.e., I made up a new symbol xyz and then assign 123 to it.

looking at the reference manual, the description of ::
is too sketchy -- needs some examples.

:: is not too common, but the capability seems meaningful
and useful in some context, so I'm not inclined to redefine ::
to be something else.

By the way, I think I did try once to post something via
the gmane interface, and it didn't work for me.
Dunno what's up with that.

All the best,
Robert Dodier