removed nonneg in term predicate as it created an infinite recursion