allow a predicates that start with a ! to indicate logical negation