Be more explicit in the definition of signum (probably does not matter)
Only evaluate first term to avoid holding to a lot of stuff.
Make posInf and negInf work with terms instead of integers.

This is a step towards implementing the optimization where for
outermost quantifiers we don't expand but instead:
  1. keep variables
  2. collect divisibility constraints, and solve them
  3. only expand for values that satisfy the div. constraints

This still needs to be done though.