Consider:
(%i1) assume(equal(a,b),equal(b,c));
(%o1) [equal(a,b),equal(b,c)]
(%i2) declare(a,noninteger);
(%o2) done
The function check-noninteger-facts (defined in compar.lisp) isn't able to determine that c is an integer:
(%i3) map(lambda([s], featurep(s,noninteger)),[a,b,c]);
(%o3) [true,true,false]
Maybe somebody would like to figure out how to make assume(equal(symbol1, symbol2)) examine symbol1
for declared properties and automatically declare symbol2 to have the same properties?
--Barton