情報科学 › ソフトウェア設計とテスト › 契約による設計

ループ変量

定義 5.1(「契約による設計」§5)

ループ while b do c\mathtt{while}\ b\ \mathtt{do}\ c と表明 II に対し、写像 v:Σ→Zv : \Sigma \to \mathbb{Z} が次の 2 条件を満たすとき、vv を(不変条件 II のもとでの)ループ変量という。

  • (下に有界)I(σ)I(\sigma) かつ ⟦b⟧σ=tt\llbracket b \rrbracket\sigma = \mathrm{tt} ならば v(σ)≥0v(\sigma) \ge 0。
  • (真に減る)すべての k∈Zk \in \mathbb{Z} について ⊨[I∧b∧v=k] c [I∧v<k]\models [I \wedge b \wedge v = k]\ c\ [I \wedge v \lt k]。ここで v=kv = k は表明 {σ∣v(σ)=k}\{\sigma \mid v(\sigma) = k\}、v<kv \lt k は {σ∣v(σ)<k}\{\sigma \mid v(\sigma) \lt k\} を表す。

本文で読む(前後の説明と例)→

閉包の状態

定義

定義は閉包の起点です(証明を要しません)。

印の意味: ✓公理まで証明済み ・ △証明あり(閉包未完)・ ※主張のみ。テーマごとの集計は 閉包の状況。

これを使っている定理 証明で参照している 3 件

関連するノック 1 問