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. 
should this just be `nonnegative | nonpositive`?