"I don't know what your simp_given function looks like, but
(%i27) ctsp(expr,x,c) := limit(expr, x, c, plus) - limit(expr, x, c, minus);
(%o27) ctsp(expr, x, c) := limit(expr, x, c, plus) - limit(expr, x, c,
minus)
(%i28) ctsp(x^2*signum(x-4), x, c);
2 2
(%o28) limit x signum(x - 4) - limit x signum(x - 4)
x -> c+ x -> c-
However, of course:
(%i29) ctsp(u^2*signum(u-4), x, c);
(%o29) 0
Could you have a problem with what the dummy variable is or something?"
I forgot to say kill(all). pw.mac was loaded, it changes the answer for
some reason. If I start with kill(all) then I get what you get. I don't
know why, maybe because of diff and integrate being modified by pw.mac or
abs_integrate.mac. Does limit ever call integrate or diff? Either way this
method does not work.
Rich
PS
simp_given(e, [fcts]) ::= buildq([e,fcts], block([_ans],
unwind_protect((_ans:apply(assume, fcts), expand(e,0,0)),
apply(forget,_ans))));