5.2.
∗
Исчисление Хоара 111
2. Полная корректность. Из полной корректности {ϕ}Π
1
{θ} следу-
ет, что Π
1
(σ) определено и Π
1
(σ) |= θ. Из полной корректно-
сти {θ}Π
2
{ψ} следует, что Π
2
(Π
1
(σ)) определено и Π
2
(Π
1
(σ)) |=
ψ. Но (Π
1
Π
2
) (σ) = Π
2
(Π
1
(σ)). То есть (Π
1
Π
2
) (σ) определено и
(Π
1
Π
2
) (σ) |= ψ Это значит, что тройка {ϕ}Π
1
Π
2
{ψ} вполне кор-
ректна.
НВ Пусть
Π ∼ if T then Π
1
end;
Пусть тройка {ϕ ∧ T }Π
1
{ψ} корректна и формула ϕ ∧¬T → ψ истинна
на предметной области. Пусть σ |= ϕ.
1. Частичная корректность. Пусть Π (σ) определено.
Если σ |= T , то Π (σ) = Π
1
(σ) и σ |= ϕ ∧ T . Из-за частичной
корректности {ϕ ∧ T }Π
1
{ψ} имеем Π
1
(σ) |= ψ и Π (σ) |= ψ.
Если σ 6|= T , то Π (σ) = σ. Кроме того, σ |= ϕ ∧¬T . Следовательно,
σ |= ψ, то есть Π (σ) |= ψ.
Итак, в любом случае Π (σ) |= ψ, то есть тройка {ϕ}Π {ψ} частично
корректна.
2. Полная корректность.
Если σ |= T , то Π (σ) = Π
1
(σ) и σ |= ϕ ∧T . Так как {ϕ ∧ T }Π
1
{ψ}
полностью корректна, то Π
1
(σ) определено и Π
1
(σ) |= ψ. Следова-
тельно, Π (σ) |= ψ.
Если σ 6|= T , то Π (σ) = σ. Кроме того, σ |= ϕ ∧¬T . Следовательно,
σ |= ψ, то есть Π (σ) |= ψ.
Итак, в любом случае Π (σ) определено и Π (σ) |= ψ, то есть тройка
{ϕ}Π {ψ} вполне корректна.
ПВ Аналогично.
∗
Задача 5.5. Докажите, что с помощью правила ПВ из частично
(полностью) кор ректных троек можно получить только частично
(полностью) корректные тройки.
∗∗
Замечание 5.4. Обычно, когда вводят какие-либо исчисления, тре-
буют, чтобы множество доказуемых конструкций было рекурсивно пе-
речислимо. В нашем случае это не так, поскольку установить истин-
ность формулы на алгебраической системе алгоритмически невозмож-
но.