trying to declare kron_delta as a symmetric function (nset problem)
Subject: trying to declare kron_delta as a symmetric function (nset problem)
From: James Amundson
Date: Thu, 24 Feb 2005 11:29:21 -0600
On Thu, 2005-02-24 at 10:39, Robert Dodier wrote:
> Hello,
>
> I've moved nset.lisp into the src/ directory in my local sandbox,
> and I can rebuild Maxima but I run into a problem with the
> test suite, which it turns out is related to the symmetric
> property of $kron_delta, a version of which is defined in nset.lisp.
>
> nset.lisp had a line like (meval* '(($declare) $kron_delta $symmetric))
> which has the desired effect, but this declaration goes into the
> user facts lists (i.e., the context named "initial") and it is
> killed by kill(all). That causes rtestnset.mac to fail as the
> first thing it does is kill(all). In any event we don't want
> kron_delta to lose its properties.
This is a symptom of the general problem with kill: it kills things it
shouldn't. For example:
(%i1) trigsimp(sin(x)^2+cos(x)^2);
(%o1) 1
(%i2) kill(all);
(%o0) done
(%i1) trigsimp(sin(x)^2+cos(x)^2);
2 2
(%o1) sin (x) + cos (x)
There are several bugs in the database that boil down to this problem,
for example, run_testsuite() shows several errors if it is run twice.
We've discussed the problem on the list multiple times. I have spent
some time on kill recently, but I do not yet have a complete solution.
It's the last major thing I intend to do before 5.9.2.
You don't need spend any more time on making kron's properties
persistent across kills unless you want to work on the general problem.
Any non-general solution will be a hack.
--Jim