Sebuah aturan bingkai , seperti yang diberikan di bawah ini, menangkap gagasan bahwa, mengingat program c
dengan prasyarat p
yang memegang sebelum berjalan dan postcondition q
yang memegang sesudahnya, beberapa kondisi menguraikan r
harus memegang baik sebelum dan sesudah c
berjalan. ( Konektif *
mensyaratkan bahwa argumennya terpisah.) Seringkali, kondisi pra dan pasca adalah keadaan tumpukan, dan c
merupakan program yang efektif yang memodifikasi tumpukan dengan beberapa cara.
{p} c {q}
----------------- (where no free variable in r is modified by c)
{p * r} c {q * r}
Diskusi tentang aturan bingkai yang saya lihat selalu tampak berfokus pada bagaimana bagian yang terpisah dari tumpukan, r
dipertahankan. Ini memungkinkan "penalaran lokal": ketika berpikir tentang efek yang c
dimilikinya, kita dapat mengabaikan r
bagian tumpukan dan hanya memusatkan perhatian pada bagian yang benar-benar berubah. Tetapi cara lain untuk melihatnya adalah bahwa perubahan dari p
keq
dipertahankan, meskipun r
sekarang duduk di sana. Dengan kata lain, penting bahwa kita berakhir dengan kondisi akhir {q * r}
, bukan {q' * r}
untuk beberapa lainnya q'
.
Jadi, pertanyaan saya adalah apakah ada perawatan dari aturan frame yang dibahas atau merek penggunaan pelestarian-of-perubahan-dari- p
-to- q
hal.