Second order predicate calculus