> Sign shouldn't be modifying the assume database, even with *correct* inferences because the user/program loses control of the DB.
This behavior isn't documented, I think:
(%i50) buddy(p,q) := expand(if p >= 0 then q else q,0,0)$
(%i52) buddy(sqrt(x),abs(x));
(%o52) x
Presumably the CL function clearsign only expunges DB facts that are appended by sign1 & friends.
--Barton