Predicate Calculus and Program Semantics