1 / 34

程序的形式验证 – 内容

程序的形式验证 – 内容. 中国科学院软件研究所 张文辉 http://lcs.ios.ac.cn/~zwh/pv. 课程主要内容. 验证方法 : 推理证明 / 模型检测. 程序与系统模型. 程序逻辑. 预备知识 : 逻辑 / 函数 / 有向图. 课程内容. 程序与系统模型. 隐式迁移模型. 显式状态迁移模型. 标号迁移系统. 时间迁移系统等模型. 课程内容. 程序逻辑. 线性时序逻辑 PLTL. 一阶线性时序逻辑. 分枝时序逻辑 CTL. 时序逻辑 CTL* 等. 课程内容. 程序的推理证明. 卫式迁移模型的推理.

gabe
Download Presentation

程序的形式验证 – 内容

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 程序的形式验证 – 内容 中国科学院软件研究所 张文辉 http://lcs.ios.ac.cn/~zwh/pv 1

  2. 课程主要内容 验证方法: 推理证明/模型检测 程序与系统模型 程序逻辑 预备知识: 逻辑/函数/有向图

  3. 课程内容 程序与系统模型 隐式迁移模型 显式状态迁移模型 标号迁移系统 时间迁移系统等模型

  4. 课程内容 程序逻辑 线性时序逻辑PLTL 一阶线性时序逻辑 分枝时序逻辑CTL 时序逻辑CTL*等

  5. 课程内容 程序的推理证明 卫式迁移模型的推理 谓词迁移模型的推理 流程图模型的推理 结构化程序模型推理

  6. 课程内容 基于状态的模型检测 程序的模型检测 基于路径的模型检测 限界语义模型检测

  7. 课程总结 给定一个程序和一些性质 用严格的方法 证明程序是否满足给定的性质 程序 性质 验证方法 模型 逻辑公式 7

  8. 主要内容 验证方法 模型 逻辑公式 • 程序模型 • 程序逻辑 • 验证方法 • 验证工具 • 验证实例 8

  9. 一、程序模型 不同类型 模型的特点 • 隐式迁移系统描述 • 结构化循环程序、流程图程序 • 卫式迁移系统、谓词迁移系统 • 显式状态迁移系统描述 • Kripke结构、标号Kripke结构 • 公平Kripke结构 • 标号迁移系统 • 标号迁移系统、自动机 • 交错迁移系统、交错自动机 • 时间迁移系统 • 时间迁移系统、时间自动机 • 混成迁移系统、 Petri网、通信系统 模型之间的 关系 用模型 描述系统 9

  10. 结构化循环程序 • 谓词逻辑、解释、赋值 • 语句组合 • 运行、语义 • 前断言、后断言 • 推理验证方法 10

  11. 流程图程序 • 谓词逻辑、解释、赋值 • 指令集合、begin - end • 运行、语义 • 前断言、后断言 • 推理验证方法 11

  12. 卫式迁移系统 • 谓词逻辑、解释、赋值 • 迁移集合、初始条件 • 状态、状态序列、可执行迁移、运行 • 推理验证方法 12

  13. 谓词迁移系统 • 谓词逻辑、解释、赋值 • 迁移的谓词、初始条件 • 状态、状态序列、可执行迁移、运行 • 推理验证方法 13

  14. Kripke结构 • <S,R,I> • S: 状态集合 • RSxS: 迁移关系 • I S: 初始状态集合 状态、状态序列、迁移、路径、运行 14

  15. 标号Kripke结构 • <S,R,I,L> • S: 状态集合 • RSxS: 迁移关系 • I S: 初始状态集合 • L: S2AP: 标号函数 语言 15

  16. 公平标号Kripke结构 • <S,R,I,L,F> • S: 状态集合 • RSxS: 迁移关系 • I S: 初始状态集合 • L: S2AP: 标号函数 • F 2S: 公平要求的集合 公平运行、语言 16

  17. 标号迁移系统 • <,S,,I> •  :标号集合 • S: 状态集合 •  S x  xS: 迁移关系 • I  S: 初始状态集合 运行、字符串、语言 17

  18. Buchi自动机 • <,S,,I,F> •  :标号集合 • S: 状态集合 •  S x  xS: 迁移关系 • I  S: 初始状态集合 • F 2S: 接受条件 不同类型 的自动机 可接受运行、可接受字符串、语言 18

  19. 交错迁移系统 • <,S,,I> •  :标号集合 • S: 状态集合 •  S x  x 2S: 迁移关系 • I  S: 初始状态集合 树结构的运行 19

  20. 交错自动机 • <,S,,I,F> •  :标号集合 • S: 状态集合 •  S x  x 2S: 迁移关系 • I  S: 初始状态集合 • F 2S: 接受条件 可接受运行、可接受字符串、语言 20

  21. 时间迁移系统 • <,S,C,,I> •  :标号集合 • S: 状态集合 • C: 时钟集合 •  S x  x 2C xΦ(C)xS: 迁移关系 • I  S: 初始状态集合 时间字符串、时间字符串上的运行 21

  22. 时间自动机 • <,S,X,,I,F> •  :标号集合 • S: 状态集合 • X: 时钟集合 •  S x  x 2X xΦ(X)xS: 迁移关系 • I  S: 初始状态集合 • F 2S: 接受条件 可接受运行、可接受时间字符串、语言 22

  23. 混成迁移系统 • <,S,X,,I,flow> •  :标号集合 • S: 状态集合 • X: 实数变量集合 •  S x  x (X) x Φ(X) x S: 迁移关系 • I  S: 初始状态集合 • flow: S  Φ(X,X) 时间字符串、时间字符串上的运行 23

  24. Petri网 • <P,T,F,M0> • P: 位置集合 • T: 迁移集合 • F  (P  T) (T  P) : 边的集合 • M0 : PN初始状态 状态、迁移、运行、可达状态 24

  25. 通信单元、通信系统 • <Q,C,Δ,q0> • Q: 状态集合 • C: 通道集合 • Δ  Q  (α(C){})  Q: 迁移关系 • q0  Q:初始状态 事件、可执行事件、状态、迁移、运行 25

  26. 二、程序逻辑 • 线性时序逻辑 • 命题线性时序逻辑 • 一阶线性时序逻辑 • 线性μ-演算 • 分枝时序逻辑 • 计算树逻辑(CTL) • CTL* • 模态μ-演算 不同逻辑的 特点 公式和模型 的对应关系 逻辑之间的 关系 公式和状态集 的对应关系 公式之间的 关系 用公式描述 系统或性质 26

  27. 线性时序逻辑 • 命题逻辑、谓词逻辑 • 语言 • 语义 • 逻辑公式之间的关系 • 逻辑公式用于描述性质和系统模型 • 逻辑公式对应于系统模型(自动机) 27

  28. 分枝时序逻辑 • 命题逻辑 • 语言 • 语义 • 逻辑公式之间的关系 • 逻辑公式用于描述性质 • 逻辑公式对应于Kripke结构的状态集 28

  29. 三、验证方法 • 推理验证 • 卫式迁移系统 • 流程图程序 • 结构化程序 • 模型检测 • 基于状态 • 基于路径 • 限界模型检测 程序推理方法: 特点 应用 模型检测方法: 特点 应用 相关的结构和算法 29

  30. 推理验证 • 卫式迁移系统 • 程序推理规则 • 线性时序逻辑推理规则 • 流程图程序 • 根据操作语义证明 • 根据路径分段证明、最弱宽松前断言计算方法 • 结构化程序 • 根据指称语义证明 • 根据公理语义、Hoare逻辑证明 安全性质 响应性质 部分正确 完全正确 30

  31. 模型检测 • 基于状态 • 显式状态迁移系统 • 符号状态迁移系统(最简二元决策图) • 基于路径 • 用自动机表示系统 • 用自动机表示性质(由公式构造自动机的方法) • 限界模型检测 • 限界模型 • 限界语义及应用 31

  32. 四、验证工具与实例 • 验证工具 • 程序推理辅助工具XYZ/VERI-II • 模型检测工具SMV • 模型检测工具SPIN • 模型检测工具VERDS • 验证实例 • 结构化程序 • 协议 • 电路 对课程内容 的总体认识 32

  33. 关于考试 • 各种算法和方法的使用 • 各种模型语言和逻辑语言的使用 33

  34. 问题 ? 34

More Related