Pošljite SMS: Integrating relational and imperative programming via a weakest precondition calculus.