An axiomatic basis for computer programming | Communications of the ACM | DeepDyve