higher order predicate calculus