Made (as far as I know) all the implication rules in the predicates
work, as well as removing the error messages (because now they call
each other and two of them are recursive and these error messages
would be unavoidable and not mean that anything was wrong).
I also tried to make sure the toString() now prints all the predicates,
but who knows, I might have missed some and now they're in a not
as beautiful order. I also added more lists to accomidate
these changes.
Did a bunch of changes to Environment to fix everything.