程序的形式验证 张文辉 http://lcs.ios.ac.cn/~zwh
程序正确性的重要性 应用广泛 软件错误的可能后果 航空 航天 金融 设备的控制 日常生活 火箭 Ariane 5 Explosion (1997) 火星气候轨道器 NASA Mars Climate Orbiter (1999)
程序正确性 程序 软件系统 软件系统行为 正确性 符合行为规范
程序正确性 软件系统行为 行为规范 测试 Program testing can be used to show the presence of bugs, but never to show their absence! -- Edsger W. Dijkstra
程序正确性 软件系统行为 行为规范 形式验证?
程序正确性 软件系统行为 行为规范 形式模型 逻辑公式 形式验证
程序正确性 软件系统行为 行为规范 形式模型 逻辑公式 基于谓词逻辑的描述 基于显式状态的描述(有穷状态系统)
程序正确性 软件系统行为 行为规范 形式模型 逻辑公式 命题逻辑、谓词逻辑:状态描述 时序逻辑:行为描述
程序正确性 软件系统行为 行为规范 形式模型 逻辑公式 形式验证 程序推理 模型检测
课程主要内容 谓词逻辑模型 程序逻辑 显式状态模型 形式模型 逻辑公式 形式验证 程序推理 模型检测
预期目标 掌握并能够综合应用以下知识: 程序与 系统模型 程序逻辑 验证方法 基本原理 几类 简单的 几类 简单的 11
课程资料网页 http://lcs.ios.ac.cn/~zwh/pv
主要参考资料 软件系统行为与程序正确性。 http://lcs.ios.ac.cn/~zwh/pv/pv13.pdf
参考书 Jacques Loeckx and Kurt Sieber. The Foundation of Program Verification. John Wiley & Sons Ltd., 1984. Gerard J. Holzmann. Design and Validation of Computer Protocols. Prentice Hall, 1990. Nissim Francez. Program Verification. Addison-Wesley Publishing Company Inc., 1992. Edmund Clark, Orna Grumberg and Doron Peled. Model Checking. MIT press, 1999. Doron A. Peled. Software Reliability Methods. Springer-Verlag. 2001. Christel Baier and Joost-Pieter Katoen. Principles of Model Checking. MIT Press. 2008. Krzysztof R. Apt, Frank S. de Boer, Ernst-Rüdiger Olderog. Verification of Sequential and Concurrent Programs. Springer-Verlag. 2009.
Questions?
课程主要内容 谓词逻辑模型 程序逻辑 显式状态模型 形式模型 逻辑公式 形式验证 程序推理 模型检测
课程主要内容(1) 谓词逻辑模型 显式状态模型 形式模型 卫式迁移模型 流程图模型 结构化循环语句模型 Petri Nets Timed Automata -Automata Kripke Structures
课程主要内容(2) 程序逻辑 逻辑公式 -演算 计算树逻辑CTL/CTL* 线性时序逻辑LTL
课程主要内容(3,4) 流程图模型/前后断言 计算树逻辑CTL 卫式迁移模型/LTL 线性时序逻辑PLTL 形式验证 程序推理 模型检测
课程主要内容 谓词逻辑模型 程序逻辑 显式状态模型 形式模型 逻辑公式 形式验证 程序推理 模型检测
课程主要内容 谓词逻辑模型 程序逻辑 显式状态模型 形式模型 逻辑公式 描述问题 刻画行为 描述问题 刻画行为 形式验证 程序推理 模型检测
课程主要内容 谓词逻辑模型 程序逻辑 显式状态模型 形式模型 逻辑公式 方法/算法 原理及应用 方法/算法 原理及应用 形式验证 程序推理 模型检测
问题 ? 23