Uma regra de quadro , como a fornecida abaixo, captura a idéia de que, dado um programa ccom pré-condição pque é mantida antes da execução e pós-condição qque é rmantida posteriormente, alguma condição de desarticulação deve ser mantida antes e depois da cexecução. (O *conectivo exige que seus argumentos sejam disjuntos.) Freqüentemente, as pré e pós-condições são estados de um heap e cé um programa eficaz que modifica o heap de alguma maneira.
{p} c {q}
----------------- (where no free variable in r is modified by c)
{p * r} c {q * r}
As discussões sobre a regra de estrutura que eu sempre vi parecem focar em como a parte separada da pilha ré preservada. Isso permite o "raciocínio local": ao raciocinar sobre o efeito que isso ccausa, podemos desconsiderar a rparte do heap e nos preocupar apenas com a parte que realmente muda. Mas outra maneira de ver é que a mudança de pparaq é preservada, mesmo que ragora esteja lá. Em outras palavras, é importante que terminemos com a pós-condição {q * r}, e não {q' * r}com outras q'.
Então, minha pergunta é se existe qualquer tratamento da regra quadro que discute ou faz uso da preservação-de-change-de- pPara- qcoisa.