Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Правила корректности для оператора суперпозиции. Рассмотрим спецификацию оператора суперпозиции в виде тройки Хоара:



Рассмотрим спецификацию оператора суперпозиции в виде тройки Хоара:

{P(x)} A; B {Q(x, y)}. (2.12)

Предположим, что операторы A и B корректны. Их спецификации представлены тройками:

{PA(x)} A {QA(x, z)}, {PB(z)} B {QB(z, y)}.

Определим правила, гарантирующие корректность оператора суперпозиции (2.12).

Правило RS1. P(x) ├ PA(x) & "z (QA(x, z) Þ PB(z)).

Правило RS2. P(x) & $z (QA(x, z) & QB(z, y)) ├ Q(x, y).

Лемма 2.5. Пусть предусловие P(x) истинно. Допустим, операторы A и B корректны. Если правила RS1 и RS2 истинны, то оператор суперпозиции (2.12) является корректным.

Доказательство. В соответствии с формулой (2.10) достаточно доказать реализуемость LS(A; B)(x, y) и выводимость постусловия Q(x, y) из LS(A; B)(x, y). В соответствии с (2.1) формула LS(A; B)(x, y) определена как $z.(LS(A)(x, z) & LS(B)(z, y)).

Из истинности предусловия P(x) по правилу RS1 следует истинность формул PA(x) и "z (QA(x, z) Þ PB(z)). Из истинности PA(x) и правила E2 следует истинность формулы $z. LS(A)(x, z). Допустим, для некоторого z0 формула LS(A)(x, z0) истинна. Из истинности PA(x) и правила E3 следует истинность LS(A)(x, z0) Þ QA(x, z0). Как следствие, истинно QA(x, z0). Далее, из истинности формулы "z (QA(x, z) Þ PB(z)) следует истинность PB(z0). По правилу E2 истинна формула $y LS(B)(z0, y). Далее, истинна конъюнкция LS(A)(x, z0) & $y LS(B)(z0, y), и затем – формула $y. $z. (LS(A)(x, z) & LS(B)(z, y)), т. е. доказана реализуемость LS(A; B)(x, y).

Докажем выводимость постусловия Q(x, y) из LS(A; B)(x, y). Пусть LS(A; B)(x, y) истинно, т. е. истинна формула $z.(LS(A)(x, z) & LS(B)(z, y)). Пусть формула истинна для некоторого z1. По правилу E3 истинна формула LS(A)(x, z1) Þ QA(x, z1) и далее – QA(x, z1). Истинность QA(x, z1) и "z (QA(x, z) Þ PB(z)) влечет истинность PB(z1). По правилу E3 истинно LS(B)(z1, y) Þ QB(z1, y). Поскольку LS(B)(z1, y) истинно, то истинно QB(z1, y). Таким образом, истинна правая часть правила RS2, а значит – и левая, т. е. истинно постусловие Q(x, y). □





Дата публикования: 2014-11-18; Прочитано: 309 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...