2020年度 ソフトウェア検証論   Software Verification

文字サイズ 

アップデートお知らせメールへ登録 お気に入り講義リストに追加
開講元
数理・計算科学コース
担当教員名
南出 靖彦 
授業形態
講義    (Zoom)
メディア利用科目
曜日・時限(講義室)
火7-8(W831)  金7-8(W831)  
クラス
-
科目コード
MCS.T509
単位数
2
開講年度
2020年度
開講クォーター
2Q
シラバス更新日
2020年9月18日
講義資料更新日
-
使用言語
日本語
アクセスランキング
media

講義の概要とねらい

ソフトウェア検証の基礎となる理論について話題を選んで解説する. プログラムの意味を定義する操作的意味論について紹介し, プログラム検証の基礎となるホーア論理とその健全性・完全性について議論する. その後,モデル検査等のソフトウェア検証技術の基礎となる理論について解説する. モデル検査, 無限語上のオートマトン, LTL, CTL等.

到達目標

ソフトウェア検証の基礎となる理論を理解するとともに,様々な計算モデルへの理解を深める.

キーワード

操作的意味論,ホーア論理,モデル検査,無限語上のオートマトン,時相論理

学生が身につける力(ディグリー・ポリシー)

専門力 教養力 コミュニケーション力 展開力(探究力又は設定力) 展開力(実践力又は解決力)

授業の進め方

以下の授業計画に基づき授業を進める. 毎回,講義中に1〜2個程度の演習問題を出し,理解度を確認しながら進める.また,7回程度の演習問題を解く課題を出す.

授業計画・課題

  授業計画 課題
第1回 プログラミング言語の操作的意味論 操作的意味論: big-step と small-step
第2回 ホーア論理(1) ホーア論理の推論規則
第3回 ホーア論理(2):健全性と相対完全性 相対完全性, 表明言語の表現力
第4回 命題論理とその充足可能性判定 命題論理,SAT
第5回 述語論理の復習 述語論理の意味論, 標準形
第6回 自動証明の原理:導出原理 単一化, 導出原理
第7回 算術の判定アルゴリズム プレスバーガ算術の判定アルゴリズム
第8回 無限語上のオートマトン(1) ω正則現言語, Büchiオートマトン
第9回 無限語上のオートマトン(2) 閉包性, Muller オートマトン
第10回 線形時間時相論理(LTL) LTLの意味論とモデル検査
第11回 理解度確認のための試験 中間試験
第12回 分岐時間時相論理(CTL) CTLの意味論とモデル検査
第13回 二分決定図(BDD) BDD上の演算
第14回 ソフトウェアモデル検査 抽象化, 反例による詳細化

授業時間外学修(予習・復習等)

学修効果を上げるため,教科書や配布資料等の該当箇所を参照し,「毎授業」授業内容に関する予習と復習(課題含む)をそれぞれ概ね100分を目安に行うこと。

教科書

指定しない.

参考書、講義資料等

講義資料を適宜配付する.

次の本を参考書として使用する.
*Formal Semantics of Programming Languages, Glynn Winskel, MIT Press, 1993.
*Automata Theory: An Algorithmic Approach, Javier Esparza.(https://www7.in.tum.de/~esparza/automatanotes.html)

成績評価の基準及び方法

試験, レポート及び課題の得点により評価する.

関連する科目

  • MCS.T214 : オートマトンと数理言語論
  • MCS.T334 : プログラミング言語処理系
  • MCS.T313 : 数理論理学
  • MCS.T404 : 計算論理学

履修の条件(知識・技能・履修済科目等)

論理, オートマトン, 文脈自由文法に関する基礎的な知識を仮定する.

このページのトップへ