matchdeclare syntax



Try
 pred1(x):=is(integerp(x) and x>4)

matchdeclare(q,pred1);

tellsimp(i^q,i^mod(q,4));

tellsimp(i^2,-1); etc.

I have no idea what bug you have encountered.
RJF


Edwin Woollett wrote:
> is there a way to use matchdeclare() to require that a pattern parameter is 
> both an integer and greater than some value?
> I am trying to learn how to use tellsimp() and tellsimpafter().
>
> As a simple exercise, try to define rules so that the symbol i has the 
> properties, i^2 = -1, i^3 = -i, and i^4 = 1.
> I get as far as these and then try to use the mod function for all higher 
> value of n, but run into some kind of error msg.
> ==
> (%i1) tellsimp(i^2,-1);
> (%o1)                         [^rule1, simpexpt]
> (%i2) tellsimp(i^3, -i);
> (%o2)                     [^rule2, ^rule1, simpexpt]
> (%i3) tellsimp(i^4,1);
> (%o3)                 [^rule3, ^rule2, ^rule1, simpexpt]
> (%i4) [i,i^2,i^3,i^4];
> (%o4)                          [i, - 1, - i, 1]
> (%i5) matchdeclare(m,integerp);
> (%o5)                                done
> (%i6) matchdeclare(m,is(m>4) );
> (%o6)                                done
> (%i7) tellsimp(i^m, i^mod(m,4) );
> (%o7)             [^rule4, ^rule3, ^rule2, ^rule1, simpexpt]
> (%i8) i^4;
> Maxima encountered a Lisp error:
>
>  Error in DEFINITELY-SO [or a callee]: DEFINITELY-SO [or a callee] requires 
> less than two arguments.
>
> Automatically continuing.
> To reenable the Lisp debugger set *debugger-hook* to nil.
> (%i9)
> TIA
> Ted Woollett
> ps. thanks for the help with the incorrect math operation diff( 
> conjugate(f) ) = conjugate( diff(f) ).
> _______________________________________________
> Maxima mailing list
> Maxima at math.utexas.edu
> http://www.math.utexas.edu/mailman/listinfo/maxima
>