recursive predicate