Mike Gordon.
Mechanizing Programming Logics in Higher Order Logic.
University of Cambridge, Computer Laboratory, TR 145, 1988.
published as
Mike Gordon.
Mechanizing Programming Logics in Higher Order Logic.
In
Current Trends in Hardware Verification and Automated Theorem Proving
,
edited by G. Birtwistle and P.A. Subrahmanyam, Springer-Verlag, 1989.
At the top level, it provides a tactic hoare_tac, which transforms a goal
{P} prog {Q}into a set of HOL-level verification conditions.
Note: Program variables are typed in the same way as HOL variables. Although you can write programs over arbitrary types, all program variables in a particular program must be of the same type!