The missing not equals is just an oversight, thanks for pointing that out!  `Not` is an expression, in [the file with other boolean predicates](https://github.com/marmbrus/spark/blob/catalyst/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/predicates.scala).  It is not clear to me yet if we want to expose these directly or not to the user.  I'm hesitant to make too much of catalyst a Public API, especially initially.