I don't understand why we need `inverse_of_true` and `not_true` and `false`. These seem like really confusing predicate names. Especially when you get to `inverse_of_not_true`. So... not true would be `false`, but the inverse of that would mean `true`? If so, then why not use the `true` predicate?