68 Глава 3. Структурированные программы
Лемма 3.13. (О разложении выражения) Пусть d — выражение,
y — переменная, σ, τ — состояния, τ = (y = d; ) (σ). Тогда для любого
выражения e
τ (e) = σ ((e)
y
d
) .
Доказательство. Очевидно, что τ отличается от σ только тем, что
τy = σ (d). Индукция по построению выражения e.
Базис индукции.
1. e ∼ y. Тогда σ ((e)
y
d
) = σ (d) = τy = τ (e).
2. e ∼ z, z — переменная, z 6∼ y. Тогда σ ((e)
y
d
) = σz = τz = τ (e).
3. e ∼ c, c — константа: σ ((e)
y
d
) = σc = τc = τ (e).
Шаг индукции.
Пусть для выражений e
1
, . . . , e
n
лемма доказана и e ∼ o (e
1
, . . . , e
n
), где
o — операция.
σ ((e)
y
d
) = σ (o ((e
1
)
y
d
, . . . , (e
n
)
y
d
)) =
= o (σ ((e
1
)
y
d
) , . . . , σ ((e
n
)
y
d
)) = o (τ (e
1
) , . . . , τ (e
n
)) = τ (e) .
Следствие 3.9. (О разложении теста) Пусть d — выражение, y —
переменная, σ, τ — состояния, τ = (y = d; ) (σ). Тогда для любого те-
ста T
τ |= T ⇐⇒ σ |= (T )
y
d
.
Задача 3.32. Докажите следствие.
Напомним еще раз, что с помощью V мы обозначаем множество все-
возможных переменных, которые могут использоваться в программах.
Следствие 3.10. (Упрощение присваиваний) Пусть x, y — пере-
менные, d, e — выражения,
Π ∼ x = (e)
y
d
;
Π
1
∼ y = d; x = e;
Var (Π) ⊆ V ⊆ V;
y 6∈ V . Тогда для любого состояния σ
Π (σ) V = Π
1
(σ) V.