some refactoring of Verify to further express the difference between predicates and policies