trying to declare kron_delta as a symmetric function (nset problem)



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.

I've tried two things -- (a) context: global; declare (kron_delta,
symmetric); context:initial; kill(all); facts(global) ==> shows 
kind(kron_delta, symmetric) on the list, but kron_delta(x,y) - 
kron_delta(y,x) doesn't simplify. 
(b) context: global; :lisp (kind '$kron_delta '$symmetric) 
context: initial; or putting (kind $kron_delta $symmetric) 
into the list of declarations at the end of src/compar.lisp 
causes kind(kron_delta, symmetric) to show up in facts(global)
but kron_delta(x,y) - kron_delta(y,x) doesn't simplify.

I'm confused. How can we get Maxima to understand (and remember)
that kron_delta is symmetric? Other functions appear to act as
declared in compar.lisp, although maybe those declarations are
shadowed elsewhere; there are certainly properties known which
are not declared there, nor anywhere AFAICT, e.g., 
cosh(x) - cosh(-x) ==> 0, but featurep(cosh,evenfun); ==> false.

Robert Dodier


		
__________________________________ 
Do you Yahoo!? 
Yahoo! Mail - Easier than ever with enhanced search. Learn more.
http://info.mail.yahoo.com/mail_250