5.2.
∗
Исчисление Хоара 125
Так как x не входит в e, то (e)
x
u
∼ e. Так как x не входит в ϕ, то (ϕ)
x
u
∼ ϕ.
Так как u не входит в формулу под квантором, то этот квантор можно
удалить. По правилу ОП получаем
{ϕ}x = e; {ϕ ∧ x = e}.
С помощью предыдущих аксиом и правила СЛ легко получить два
правила:
ПРИСВ, ПРИСВ* Если выводимо {ϕ}Π {ψ}, то выводимы тройки
{ϕ}Π x = e; {∃u ((ψ)
x
u
∧ x = (e)
x
u
)};
{ϕ}Π x = e; {ψ ∧ x = e}.
Для первого правила необходимо, чтобы u не входило ни в ϕ, ни в e. для
второго — чтобы x не входило ни в ϕ, ни в e.
ДОБ Правило вывода: если выводимо {ϕ}Π {ψ} и LVar (Π) ∩
Var (θ) = ∅, то выводимо
{ϕ ∧ θ}Π {ψ ∧ θ}.
Доказательство. Пусть D — доказательство тройки {ϕ}Π {ψ}.
Прежде всего, в доказательстве могут быть использования правила
ЦП, в которых переменная z входит в θ. Покажем, как убрать все такие
переходы, индукцией по их количеству. Если их нет, то делать ничего не
надо. Пусть для доказательств, содержащих меньше n переходов, дока-
зано, и D содержит их n штук. Пусть t — тройка, которая доказывается
по правилу ЦП. Следовательно, D имеет вид D
1
tD
2
, причем в D
1
и в D
2
переходов по правилу ЦП меньше чем в D. Заменим в D
1
все вхождения
переменной z на новую переменную ˆz. Получим новое доказательство
ˆ
D
1
.
Рассмотрим последовательность
ˆ
D
1
tD
1
D
2
. Тогда эта последовательность
является доказательством той же тройки, что и исходное доказательство,
и оно содержит меньше переходов по правилу ЦП с использованием z.
Теперь можно использовать индукцию по доказательству {ϕ}Π {ψ}.
Базис индукции.
Если применяется аксиома АКС, то
{(ϕ)
x
e
}x = e; {ϕ}.
Так как x ∈ LVar (Π), то x 6∈ Var (θ). Следовательно, (θ)
x
e
∼ θ, поэтому:
{(ϕ)
x
e
∧ θ}x = e; {ϕ ∧ θ}