Subject: defrule regression compare to version 5.29.1
From: Valery Pipin
Date: Tue, 07 May 2013 14:06:49 -0700
Hi,
I found that part of my applications which are related to itensor
do not work in the current version 5.30.
For example,
To average the result in k-space,
e.g., <k([i],[], k([j],[])> ~ delta([i,j],[])
I defined the rules like this,
matchdeclare([i,q,l,m,n,z],true);
defrule(KLOW0,k0([],[i]),(z1:idummy(),dlt([],[z1,i])*k0([z1],[])));
defrule(K_0,k0([-i],[]),(z1:idummy(),dlt([],[z1,i])*k0([z1],[])));
defrule(kk1,k0([i],[]),t*e0([i],[]));
defrule(kk2,k0([i],[])*k0([q],[]),
dlt([i,q],[])*(1-t^2)/2-e0([i],[])*e0([q],[])*(1-3*t^2)/2);
etc
up to six order product.
When I updated the maxima for 5.30 (Maxima 5.30.0
http://maxima.sourceforge.net
using Lisp SBCL 1.1.4)
My old method does not work. I used it for 10 years.
(%i48) matchdeclare([i,q,l,m,n,z],true);
(%o48) done
(%i49) defrule(KLOW0,k0([],[i]),(z1:idummy(),dlt([],[z1,i])*k0([z1],[])));
** error while printing error message **
FORMAT: Pattern must contain exactly 1 template ~M
-- an error. To debug this try: debugmode(true);