Maxima interface to Lisp bit-functions



I am not sure about these simplifications

bit_and(x) => x
bit_and(foo(y)) => foo(y)
bit_and(x, -x-1) => 0

Should these be valid for all x and foo, 
or do they require that x is declared as integer and foo is declared as integervalued?

Comments welcome.


In this context I have a question about declare:

(%i1) declare(x,even);
(%o1)                                done
(%i2) featurep(x,even);
(%o2)                                true
(%i3) evenp(x);
(%o3)                                false

What do I miss here?

Volker van Nek