I've pushed commit 3137b946b which fixes some bugs related to sign
testing. Bug fix is to have 'sign' call CLEARSIGN to clean up facts
introduced by sign functions. Here are examples from
tests/rtest_sign.mac:
foo : %e^(abs(uu)+uu)*(uu/abs(uu)+1)+%e^(abs(uu)-uu)*(uu/abs(uu)-1);
block ([bar, baz], bar : copy (facts (initial)), is (equal (foo, 0)),
baz : facts (initial), is (bar = baz));
=> true
map('sign,[sqrt(x),x]);
=> [pz, pnz]
buddy(p,q) := expand(if p >= 0 then q else q,0,0);
buddy(sqrt(x),abs(x));
=> abs(x);
It turns out this bug is not the cause of #2557 (abs_integrate leaks
assumption). More about that on the bug report.
best
Robert Dodier