情報科学 › ソフトウェア設計とテスト › 事例研究

検査に合格した版だけが公開される

命題 7.1(「事例研究」§7) ・ ✓公理まで証明済み

版 cc に対する決定的な検査を χ\chi、生成を gen\mathrm{gen} とし、公開されている成果物の時間的な列を a0,a1,a2,…a_0, a_1, a_2, \ldots とする。

(a) 次の 3 つを仮定する。(G1) 公開物が更新されるのは、パイプライン「検査 → 生成 → 公開」が最後まで成功したときだけである。(G2) 生成は、検査が合格を返したのと同じ版 cc を入力にする。(G3) 公開は、その生成の出力 gen(c)\mathrm{gen}(c) をそのまま公開物にする。このとき、a0a_0 が「ある版 cc について χ(c)=合格\chi(c) = \text{合格} かつ a0=gen(c)a_0 = \mathrm{gen}(c)」を満たせば、すべての kk について aka_k も同じ条件を満たす。

(b) (台帳つきの検査)違反の集合を返す決定的な検査 κ\kappa と、許容する違反の集合 AA(台帳)に対し、χA(c)=合格\chi_A(c) = \text{合格} を κ(c)⊆A\kappa(c) \subseteq A で定める。検査を導入する時点の版を c0c_0 とし、A0=κ(c0)A_0 = \kappa(c_0) とおく。以後、合格した版の列 c1,c2,…c_1, c_2, \ldots について、台帳を Ak=Ak−1∩κ(ck)A_{k} = A_{k-1} \cap \kappa(c_k) と更新する(ckc_k は χAk−1\chi_{A_{k-1}} に合格したものとする)。このとき

  • χA0(c0)=合格\chi_{A_0}(c_0) = \text{合格}(導入した瞬間にパイプラインは止まらない)、
  • すべての k≥1k \ge 1 で κ(ck)=Ak⊆Ak−1⊆⋯⊆A0\kappa(c_k) = A_k \subseteq A_{k-1} \subseteq \cdots \subseteq A_0(台帳にない違反は 1 件も入らず、台帳は増えない)、
  • Ak=∅A_k = \emptyset となった後は、χAk\chi_{A_k} は「違反が 1 件もない」という台帳なしの検査に一致する。

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

閉包の状態

✓ 公理まで証明済み

証明が使う定理を 前提 としてたどると、Rikai の中の証明だけで定義・公理(物理では基本仮定)までつながっています(前提の定理類 4 件、定義なども含めて 5 件)。

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

前提をたどる 証明が使う定理・定義(直接 2 件)

▸ を開くと、その項目の証明が使う前提が出ます。深い先は各項目のページでたどれます。

これを使っている定理

証明で明示的に参照している定理は、まだありません。

関連するノック 2 問