フレームルールは、下記のいずれかのように、プログラム与えられた、という考えキャプチャc
前提でp
、それを実行する前に保持し、事後条件q
、その後保持している、いくつかの互いに素条件はr
前と後の両方を保持する必要がありますc
実行を。(コネクティブは*
引数が互いに素であることが必要です。)多くの場合、事前条件と事後条件はヒープの状態でありc
、何らかの方法でヒープを変更する効果的なプログラムです。
{p} c {q}
----------------- (where no free variable in r is modified by c)
{p * r} c {q * r}
私が見たフレームルールの議論は、ヒープのばらばらの部分がどのようにr
保存されるかに常に焦点を当てているようです。これにより、「ローカルな推論」が可能になります。効果について推論する場合、ヒープc
のr
部分を無視し、実際に変化する部分のみに関心を持つことができます。しかし、別の見方をすれば、現在そこに座っているにもかかわらず、からp
へq
の変更が保存されるというr
ことです。言い換えれば、それは我々が事後条件で終わることが重要だ{q * r}
のではなく、{q' * r}
他のいくつかのためにq'
。
だから、私の質問は、議論したり作るが保存-の変更-from-の使用という枠ルールのいずれかの治療がありますかどうかであるp
-to- q
事。