程序验证-内容-讲义

Download Report

Transcript 程序验证-内容-讲义

程序的形式验证
张文辉
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