equal
deleted
inserted
replaced
14 subsection {* Abstract syntax and semantics *} |
14 subsection {* Abstract syntax and semantics *} |
15 |
15 |
16 text {* The following abstract syntax and semantics of Hoare Logic |
16 text {* The following abstract syntax and semantics of Hoare Logic |
17 over \texttt{WHILE} programs closely follows the existing tradition |
17 over \texttt{WHILE} programs closely follows the existing tradition |
18 in Isabelle/HOL of formalizing the presentation given in |
18 in Isabelle/HOL of formalizing the presentation given in |
19 \cite[\S6]{Winskel:1993}. See also |
19 \cite[\S6]{Winskel:1993}. See also @{file "~~/src/HOL/Hoare"} and |
20 \url{http://isabelle.in.tum.de/library/Hoare/} and |
|
21 \cite{Nipkow:1998:Winskel}. *} |
20 \cite{Nipkow:1998:Winskel}. *} |
22 |
21 |
23 types |
22 types |
24 'a bexp = "'a set" |
23 'a bexp = "'a set" |
25 'a assn = "'a set" |
24 'a assn = "'a set" |
362 |
361 |
363 subsection {* Verification conditions \label{sec:hoare-vcg} *} |
362 subsection {* Verification conditions \label{sec:hoare-vcg} *} |
364 |
363 |
365 text {* We now load the \emph{original} ML file for proof scripts and |
364 text {* We now load the \emph{original} ML file for proof scripts and |
366 tactic definition for the Hoare Verification Condition Generator |
365 tactic definition for the Hoare Verification Condition Generator |
367 (see \url{http://isabelle.in.tum.de/library/Hoare/}). As far as we |
366 (see @{file "~~/src/HOL/Hoare/"}). As far as we |
368 are concerned here, the result is a proof method \name{hoare}, which |
367 are concerned here, the result is a proof method \name{hoare}, which |
369 may be applied to a Hoare Logic assertion to extract purely logical |
368 may be applied to a Hoare Logic assertion to extract purely logical |
370 verification conditions. It is important to note that the method |
369 verification conditions. It is important to note that the method |
371 requires \texttt{WHILE} loops to be fully annotated with invariants |
370 requires \texttt{WHILE} loops to be fully annotated with invariants |
372 beforehand. Furthermore, only \emph{concrete} pieces of code are |
371 beforehand. Furthermore, only \emph{concrete} pieces of code are |