Правило рамки , як наведеному нижче, відображає ідею , що, з огляду на програму 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-До- qречі.