3
|
1 \section{Hoare Logic}
|
7
|
2 Hoare Logic とは C.A.R Hoare、 R.W Floyd が考案したプログラムの検証の手法である。
|
|
3 これは、「プログラムの事前条件(P)が成立しているとき、コマンド(C)実行して停止すると事後条件(Q)が成り立つ」
|
|
4 というもので、CbCの実行を継続するという性質に非常に相性が良い。
|
|
5 Hoare Logic を表記すると以下のようになる。
|
|
6 {P} C {Q}
|
|
7 この3つ組は Hoare Triple と呼ばれる。
|
|
8
|
|
9 Hoare Triple の事後条件を受け取り異なる条件を返す別の Hoare Triple を繋げることでプログラムを記述していく。
|
3
|
10
|
7
|
11 Hoare Logic の検証では、「条件がすべて正しく接続されている」かつ「コマンドが停止する」ことが必要である。
|
|
12 これらを満たし、事前条件から事後条件を導けることを検証することで Hoare Logic の健全性を示すことができる。
|
|
13
|
3
|
14
|
7
|
15 \begin{center}
|
|
16 \includegraphics[height=3.5cm]{pic/hoare_cg_dg.pdf}
|
|
17 \caption{CodeGear、DataGear での Hoare Logic}
|
|
18 \label{hoare}
|
|
19 \end{center}
|
3
|
20
|