On 1/21/10, Dieter Kaiser <drdieterkaiser at web.de> wrote:
> Maxima now longer knows the operator properties of the dot operator.
> These properties are killed. I have traced the function kill-operator
> and I have found one call from the file rtest16.mac:
>
> 0: (KILL-OPERATOR MNCTIMES)
>
> But it is very strange. It is not enough to execute the file rtest16.mac
> a second time. There is another testfile which has to be executed too.
I think the other test script is rtest3, which has reset() in it.
Also it appears to be crucial that rtest_dot has
declare(".", commutative) and remove(".", commutative) in it.
Looks like reset() followed by kill(all) are both needed to mess
up the operator properties of "."; from what I can tell, neither one is
enough by itself. I;ve appended a transcript which seems to show
that.
I speculate that declare(".", commutative) puts "." on a list
of user-defined operators so that it is assumed to be killable ...
Just a guess.
best
Robert Dodier
PS.
(%i1) ev(is(op(?mnctimes(1, x)) = "."), dotconstrules : false,
dot1simp : false);
(%o1) true
(%i2) declare(".", commutative);
(%o2) done
(%i3) remove(".", commutative);
(%o3) done
(%i4) ev(is(op(?mnctimes(1, x)) = "."), dotconstrules : false,
dot1simp : false);
(%o4) true
(%i5) kill(all);
(%o0) done
(%i1) ev(is(op(?mnctimes(1, x)) = "."), dotconstrules : false,
dot1simp : false);
(%o1) true
(%i2) reset();
(%o1) [_, __, piece, context, lispdisp, tr-unique, current, linenum, %,
labels, *nobjects*, features, mopl]
(%i2) ev(is(op(?mnctimes(1, x)) = "."), dotconstrules : false,
dot1simp : false);
(%o2) true
(%i3) kill(all);
(%o0) done
(%i1) ev(is(op(?mnctimes(1, x)) = "."), dotconstrules : false,
dot1simp : false);
(%o1) false