Semantic Embedding of Hoare Logic

This directory contains a sugared shallow semantic embedding of Hoare logic for a while language. The implementation closely follows

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.
Syntax:
the letters a-z are interpreted as program variables, all other identifiers as mathematical variables.

The pre/post conditions can be arbitrary HOL formulae including program variables. The program text should only refer to program variables.