Suggested changes to the old assumptions

These are the changes that I think should be made to the old assumptions. 

Because these changes are likely to be contentious, I have split each change into a separate commit. I have also only made the change to assumptions.py. I don't want to waste time propagating the change throughout the code-base until we agree that the change should be made. 

If you think it would be even better to make each change a separate pull request, let me know. I don't know if that will make things easier or harder when propagating the changes throughout the code-base, however. 
I'm not sure about this. It definitely makes more sense for nonpositive and nonnegative. I guess we should look at where nonzero is used.