Subject: Is there a name for the way Maxima does algebra?
From: Robert Dodier
Date: Mon, 9 Oct 2006 23:44:18 -0600
On 9/28/06, Chris Sangwin <sangwinc at for.mat.bham.ac.uk> wrote:
> This reminds me of the problems I was having with very basic algebraic
> manipulations in Maxima, which simp:false helped to cure.
Ideally there could be a finer-grained control over collections of
identities which are applied by Maxima. simp : false brings Maxima
to a know set of identities (namely the empty set) from which you
can start building a custom set. It would be nice if there were
something between none and all of Maxima's built-in identities.
> It would be very helpful if all assumptions could be explicit and
> controlled.
Agreed on both points. To begin with, I hope we can document
the identities which are hard-wired into built-in simplification.
Just that much would not be too hard, and pretty useful.
> For the most part users will ignore them, and carry on using
> the algebra they know and love. For others this flexibility will be
> absolutely key.
Working with arbitrary groups or rings or whatever probably requires
being able to selectively replace some simplification rules on
built-in operators. I don't see any reason to rule out working with
such objects. Incidentally maybe we can get some inspiration
about how it could work from the user's perspective by considering
some of the group theory packages; I've never used GAP or
Magma or any of that.
> I would be very interested in a vocabulary with which we could talk more
> meaningfully about these issues.
Well, I'm pretty sure that a simplification rule is the representation
in Maxima of a mathematical identity. That said, the identity in
question might be an axiom or a theorem. Declarations introduce
new axioms. Retracting an axiom would imply retracting not only
the rule corresponding to that axiom but also any rules
corresponding to theorems derived from the axiom.
That suggests tracking dependencies of theorems on axioms
and other theorems. Also, a simplification result is a theorem,
isn't it? Cacheing simplification results (e.g. via hash table
lookups) would be an implementation of adding a new theorem
for every simplification.
The difficulty in this picture is that Maxima's simplification rules
don't usually correspond to a single identity; most simplifcation
rules apply several identities. But I don't see any reason in
principle to think that couldn't be cleaned up.
All the best
Robert Dodier