Support for predicates. Here we interprete predicates in a mathematical sense as characterizing a set via a function that maps to bool.