Model Checking Lei Bu.

Slides:



Advertisements
Similar presentations
Chapter 2 Combinatorial Analysis 主講人 : 虞台文. Content Basic Procedure for Probability Calculation Counting – Ordered Samples with Replacement – Ordered.
Advertisements

智慧老伯的一席話 原稿 : 溫 Sir 中譯 : 老柳 A man of 92 years, short, very well- presented, who takes great care in his appearance, is moving into an old people’s.
高考英语短文改错 试题解析 内蒙古师范大学外国语学院 方芳 2011 年 3 月. 一、短文改错设疑方式 此 题要求改正所给短文中的错误。对标有 题号的每一行做出判断: 1) 如无错误,在该行右边横线上画一个 ( );如有错误(每行只有一个错误), 则按下列情况改正:
英语中考复习探讨 如何写好书面表达 宁波滨海学校 李爱娣. 近三年中考试题分析 评分标准 试卷评分与练习 (2009 年书面表达为例 ) 影响给分的因素: 存在问题 书面表达高分技巧 建议.
Virginia Satir 维吉尼亚·萨提尔( ): Family Therapy.
Have you ever been to a zoo? zoo water park Have you ever been to a water park?
-CHINESE TIME (中文时间): Free Response idea: 你周末做了什么?
专题八 书面表达.
广德二中2006届高考 英语专题复习 单项填空 答题指导.
初中进阶 (2346 期 ) 1 版. 1. What types of bullying do you know about? Physical hitting, tripping, stealing and hair pulling Social telling other kids.
P42) be dying to do渴望做某事 L2) hear from sb 收到某人来信
沐阳老年社区.
专题讲座 武强中学外语组 制作:刘瑞红.
Minimum Spanning Trees
Euler’s method of construction of the Exponential function
Module 5 Shopping 第2课时.
Unit 2 What should I do?.
! 温故知新 上下文无关文法 最左推导 最右推导 自上而下 自下而上 句柄 归约 移进-归约冲突 移进-归约分析 递归下降预测分析
樹狀結構 陳怡芬 2018/11/16 北一女中資訊專題研究.
初二英语写作课 课件 福建省闽清县第一中 王国豪
SAT and max-sat Qi-Zhi Cai.
住棚節 oct 4, 2015.
Guide to Freshman Life Prepared by Sam Wu.
Friendship Bouquet 友谊之花 Music: Nightengale Serenade
Course 9 NP Theory序論 An Introduction to the Theory of NP
Unit 4 My day Reading (2) It’s time for class.
但是如果你把它发给最少两个朋友。。。你将会有3年的好运气!!!
LCCC 2018 Spring Festival April 28, 2018.
Remember the five simple rules to be happy 快樂的五個簡單常規
The Wise Old Man 智慧老伯的一席話 原稿: 溫Sir 中譯 : 老柳 中譯潤稿:風刀雨箭
子博弈完美Nash均衡 我们知道,一个博弈可以有多于一个的Nash均衡。在某些情况下,我们可以按照“子博弈完美”的要求,把不符合这个要求的均衡去掉。 扩展型博弈G的一部分g叫做一个子博弈,如果g包含某个节点和它所有的后继点,并且一个G的信息集或者和g不相交,或者整个含于g。 一个Nash均衡称为子博弈完美的,如果它在每.
預備大而可畏的日子(2 of 3) 9/13/2015.
He makes all things beautiful in His time. 按祂時候能成就美好事
Lesson 44:Popular Sayings
Try to write He Mengling Daqu Middle School.
錢買不到的禮物 自動換頁 音樂:海莉·衛斯頓 演唱<Nada Sousou> 日本電影「淚光閃閃」主題曲英文版
Single’s Day.
My Internet Friend 名詞子句寫作.
客户服务 售后服务.
Have you read Treasure Island yet?
Remember the five simple rules to be happy 快樂的五個簡單常規
Unit 8 Our Clothes Topic1 What a nice coat! Section D 赤峰市翁牛特旗梧桐花中学 赵亚平.
每周三交作业,作业成绩占总成绩的15%; 平时不定期的进行小测验,占总成绩的 15%;
BORROWING SUBTRACTION WITHIN 20
3.5 Region Filling Region Filling is a process of “coloring in” a definite image area or region. 2019/4/19.
中国科学技术大学计算机系 陈香兰 2013Fall 第七讲 存储器管理 中国科学技术大学计算机系 陈香兰 2013Fall.
The Wise Old Man 智慧老伯的一席話 原稿: 溫Sir 中譯 : 老柳
关联词 Writing.
True friendship is like sound health;
软件测试技术-白盒测试 张志强 2006.
中考英语阅读理解 完成句子命题与备考 宝鸡市教育局教研室 任军利
计算机问题求解 – 论题2-1 - 算法的正确性 2018年3月7日.
商業英文 組員: 張裕欣 廖彥鈞 吳鎵佑 陳奕達.
Philosophy of Life.
高考应试作文写作训练 5. 正反观点对比.
Remember the five simple rules to be happy 快樂的五個簡單常規
Remember the five simple rules to be happy 快樂的五個簡單常規
冀教版 九年级  Look into Science!.
冀教版 九年级 Lesson 20: Say It in Five.
Remember the five simple rules to be happy 快樂的五個簡單常規
M; Well, let me check again with Jane
立足语境,放眼词块,螺旋上升 年温州一模试卷题型分析 及相应的二轮复习对策 by Sue March 14,2013.
The Wise Old Man 智慧老伯的一席話 原稿: 溫Sir 中譯 : 老柳
常州市教育学会学业水平监测 九年级英语试卷分析 常州市第二十四中学 许喆 2012年2月.
錢買不到的禮物 自動換頁 音樂:海莉·衛斯頓 演唱<Nada Sousou> 日本電影「淚光閃閃」主題曲英文版
A Presentation By: Mike Sharobim Pictures By: Unknown source
O W E L C M E.
以分为镜知对错 以卷为鉴晓得失 —邯郸市一模得与失
Train Track and Children
Presentation transcript:

Model Checking Lei Bu

大纲 为什么模型检验? 什么是模型检验? 怎么做模型检验? 更高更快更强 复杂系统模型检验

计算机已经渗透到我们工作和生活的方方面面,极大地促进了社会的发展和生产力的提高。 工作在我们身边的各种计算机系统由于其中的软硬件系统失效经常表现不尽人意,甚至造成不可挽回的损失 随着计算机技术在各行各业应用的日益普及,计算机已经渗透到我们工作和生活的方方面面,成为我们工作和生活的一部分,从而极大地促进了社会的发展和生产力的提高。 与此同时,工作在我们身边的各种计算机系统由于其中的软件系统失效经常表现不尽人意,呈现出脆弱、难以信任的特征,甚至造成不可挽回的损失,因此研究相关的可信软件关键技术以提高软件系统的可信性已经成为十分迫切的需求。

硬件 奔腾芯片 93-94 60-100 MHz FDIV Bug:某数学家发现用一个数字去除以824,633,702,441时,答案一直错误 $500 million Intel内部统计 每设计一个新版本Bug数目增加4倍… 物价飙升… 奔腾四芯片 2000-2007 1.5GHz,4200万晶体管 8000 Bugs!

欧洲阿丽亚娜5型火箭 1996年6月4日 因软件失效在 发射40秒后爆 炸,原因是惯 性参考系统 软件的数据 转换异常造 成的失效。

美国F-22猛禽战斗机 2004年12月20日,美空军第422测试评估大队的一架F-22战斗机因软件问题在起飞过程中失控坠毁。 2007年2月9 日同样因软 件问题延迟 在日本部署

我们的信息基础设施 正建立在脆弱的软硬件之上 我们的信息基础设施 正建立在脆弱的软硬件之上

提高系统可靠性 质量管理 在系统开发过程中加强管理,防止可能出现的错误。 测试(testing)或 仿真(simulation) 以运行系统(模型)为主要手段发现系统错误。 验证(Verification) 建立系统模型,确认系统模型是否存在错误。

提高可信度的途径 测试(testing)或 仿真(simulation) 无法回答系统一定没有错误这样一类问题 形式化验证(Formal Verification) 可以从某一个角度回答系统一定没有错误这样一类问题,从而进一步提高我们对系统可靠性的可信度

形式化方法 形式化方法包括: 形式验证包括: 形式化方法是指为说明和验证复杂计算机系统所采用的基于数学的语言、技术和工具。 规约(specification) 验证(verification) 形式验证包括: 定理证明(theorem proving) 模型检验(model checking)

模型检验 模型检验是一种自动验证有穷状态系统的技术。 模型检验的基本思想是通过遍历系统模型的状态空间来检验系统模型是否满足给定的性质。 模型检验技术的创始人(1981): E.M. Clarke (CMU,US) E.A. Emerson (UT Austin, US) J. Sifakis (Verimag, France)

在硬件,协议设计上巨大成功 现有手段:测试、仿真 形式化方法 太多可能、慢、无法穷尽、没有保障 举例:加法器测试: 2 160 个浮点数对… 自动证明、确定性结果 奔4 浮点数计算部 牛刀小试: Can we do more? 2003:FV found many high-quality bugs in P4 and verified “20%” of design FV is now standard practice in the floating-point domain 2009:Replacing Testing with Formal Verification in Intel  𝐂𝐨𝐫𝐞 𝐓𝐌  i7 Processor Execution Engine Validation @ CAV09

07 Turing Award!

模型检验的过程 建模(Modeling) 规约(Specification) 验证(Verification)

模型检验 在模型检验中涉及两种形式说明语言: 性质说明语言用于描述系统的性质; 模型描述语言用于描述系统的模型。 模型检验技术用于检验由模型描述语言描述的系统模型是否满足由性质说明语言描述的系统性质。

模型检验 OK Finite-state model or Error trace Model Checker Line 5: … Line 12: … Line 15:… Line 21:… Line 25:… Line 27:… … Line 41:… Line 47:… Finite-state model Model Checker (F W) Temporal logic formula

模型:Kripke Model Kripke Structure + Labeling Function S 有穷状态集合 Atomic Proposition,AP为原子命题集合. Kripke Model: M = (S, s0, R, L) S 有穷状态集合 s0S 初始状态 RS  S 状态迁移 L: S→2AP 状态上的成真命题

Kripke Structure

Temporal Logics Express properties of event orderings in time Branching Time Every moment has several successors Infinite tree Computation Tree Logic (CTL) Linear Time Every moment has a unique successor Infinite sequences (words) Linear Temporal Logic (LTL)

Path quantifiers and Temporal operators Path quantifiers: A ( for all computation path ) E ( for some computation path ) Temporal operators: X, F, G, U, R Software Engineering Group

X (next time) requires the property holds in the second state of the path F (eventually) the property will hold at some state on the path G (always) the property holds at every state on the path U (until) if there is a state on the path where the second property holds, at every preceding state, the first one holds R (release) the second property holds along the path up to and including the first state where the first property holds. However, the first property is not required to hold eventually

CTL ten basic CTL operators: AX and EX AF and EF AG and EG AU and EU AR and ER Software Engineering Group

Each of the ten operators can be expressed in terms of EX, EG and EU AX f= ! EX(!f) EF f= E[True U f] AG f =!EF(!f) AF f= !EG(!f) A[f U g]= !E[!gU(!f ^ !g)] ^ !EG !g A[f R g] = !E[!f U !g] E[f R g] = !A[!f U !g]

CTL Software Engineering Group

Examples Let "P" mean "I like chocolate" and Q mean "It's warm outside." AG.P "I will like chocolate from now on, no matter what happens.“ EF.P "It's possible I may like chocolate some day, at least for one day." AF.EG.P "It's always possible (AF) that I will suddenly start liking chocolate for the rest of time." (Note: not just the rest of my life, since my life is finite, while G is infinite). EG.AF.P "This is a critical time in my life. Depending on what happens next (E), it's possible that for the rest of time (G), there will always be some time in the future (AF) when I will like chocolate. However, if the wrong thing happens next, then all bets are off and there's no guarantee about whether I'll ever like chocolate." Software Engineering Group

A(PUQ) "From now until it's warm outside, I will like chocolate every single day. Once it's warm outside, all bets are off as to whether I'll like chocolate anymore. Oh, and it's guaranteed to be warm outside eventually, even if only for a single day." E((EX.P)U(AG.Q)) "It's possible that: there will eventually come a time when it will be warm forever (AG.Q) and that before that time there will always be some way to get me to like chocolate the next day (EX.P)." Software Engineering Group

Express Properties Safety: something bad will not happen Typical examples: AG ( reactor_temp > 1000 ) Usually: AG Software Engineering Group

Express Properties Liveness: something good will happen Typical examples: AF( rich ) AF( x > 5 ) AG( start -> AF terminate ) Usually: AF Software Engineering Group

Express Properties Fairness: something is successful/allocated infinitely often. Typical examples: AGAF ( enabled ) Usually: AGAF Software Engineering Group

基本验证方法 自动枚举、遍历所有状态 为每个状态标记其满足的性质 找出标记了目标规约f的状态集 所有初始状态都在此集合中?

First find all states labeled with Work backwards, find all states that can be reached by a path in which each state is labeled with All such states should be labeled with g.

Base on nontrivial strong connected components. Nontrivial: has more than one or contain one node with a self-loop.

LTL M |= p if (M): M, |= p Semantics M,  |= Op if M, 1 |= p M,  |= p if i≥0: M, i |= p M,  |= []p if i≥0: M, i |= p M,  |= pUq if i≥0: M, i |= q and j<i: M, j |= p M,  |= pRq if i≥0: M, i |= q or i≥0: M, i |= p and j≤i: M, j |= q M |= p if (M): M, |= p

LTL p []p pUq pRq p p p... p q q q,p

Büchi Automata Automaton which accepts infinite traces A Büchi automaton is 5-tuple , S, I, , F  is a finite alphabet S is a finite set of states I S is a set of initial states   S   S is a transition relation F S is a set of accepting states An infinite sequence of states is accepted iff it contains accepting states infinitely often

Example 1=S0S1S2S2S2S2… 2=S0S1S2S1S2S1… 3=S0S1S2S1S1S1… b a,d a S0 c S2 d 1=S0S1S2S2S2S2… ACCEPTED 2=S0S1S2S1S2S1… ACCEPTED 3=S0S1S2S1S1S1… REJECTED

LTL Model Checking Given a model M and an LTL formula  Build the Buchi automaton B¬ Compute product of M and B¬ The product accepts the traces of M that are also traces of B¬ (M  ¬) If the product accepts any sequence We have found a counterexample

关键问题 安全性问题 可达性问题 模型检验中的关键技术问题 如何设计数据结构和算法,用以表示和遍历大规模的系统模型状态空间。 安全性问题 可达性问题 模型检验中的关键技术问题 如何设计数据结构和算法,用以表示和遍历大规模的系统模型状态空间。 解决由多个系统模型的并行组合而形成的状态空间爆炸问题。

Symbolic Model Checking 用布尔公式刻画状态集合和状态对集合, 用 Ordered Binary Decision Diagram(OBDD)来表示这些布尔公式, 使用OBDD上的布尔操作来计算谓词转换子,从而使模型检验在压缩了的符号化状态空间上来验证CTL性质 a,b a,!b

Ordered Binary Decision Diagram (OBDD) 1 b1 b1 1 1 a2 a2 a2 a2 1 1 1 1 b2 b2 b2 b2 b2 b2 b2 b2 1 1 1 1 1 1 1 1 1 1 1 1 (a1  b1)  (a2  b2)

Reduced Ordered BDD a1 1 b1 b1 1 1 a2 a2 a2 1 1 1 b2 b2 b2 b2 b2 b2 1 b1 b1 1 1 a2 a2 a2 1 1 1 b2 b2 b2 b2 b2 b2 1 1 1 1 1 1 1 1 1 1 (a1  b1)  (a2  b2)

Reduced Ordered BDD a1 1 b1 b1 1 1 a2 a2 1 1 b2 b2 b2 b2 1 1 1 1 1 1 1 b1 b1 1 1 a2 a2 1 1 b2 b2 b2 b2 1 1 1 1 1 1 1 1 (a1  b1)  (a2  b2)

Reduced Ordered BDD a1 1 b1 b1 1 1 a2 1 b2 b2 1 1 1 1 b1 b1 1 1 a2 1 b2 b2 1 1 1 1 (a1  b1)  (a2  b2)

Reduced Ordered BDD a1 1 b1 b1 1 1 a2 1 b2 b2 1 1 1 b1 b1 1 1 a2 1 b2 b2 1 1 1 (a1  b1)  (a2  b2)

主要优化技术 On-the-fly技术 对称技术(Symmetry) 偏序规约技术(Partial order reduction) 反例制导的抽象精化(Counterexample Guided Abstraction Refinement, CEGAR)

On the fly Symmetry Reduction 把状态空间生成和检验它是否满足性质合在一起做,而不去预先生成整个状态空间,从而尽可能避免状态爆炸。 Symmetry Reduction 针对由多个完全类似的进程组成的系统,利用其模型的状态空间的对称性来生成压缩的且对模型检验等价的模型

Partial Order Reduction 通过发掘系统中并发执行的迁移的交换性,减少本质上相同的状态,从而仅生成足以检验性质的小部分状态空间 s s a b a s1 s2 s1 b a b r r No Reductions States Reduced

反例制导的抽象精化 I MUST ABSTRACT!! Too many states to handle ! = bad state

抽象(Abstraction) 通过抽象来减化模型 可能带来误报或漏报 不规则状态规则化 具体值集合化 。。。 x:int Even Odd …, -2, 0, 2, 4, … x:int …, -3, -1, 1, 3, …

Counterexample-Guided Abstraction-Refinement (CEGAR) Build New Abstract Model Model Check M M’ Pass No Bug Fail Check Counterexample Obtain Refinement Cue Spurious CE Real CE Bug

有界模型检验 Bounded Model Checking (BMC) A.I. Planning problems: can we reach a desired state in k steps? Verification of safety properties: can we find a bad state in k steps? Verification: can we find a counterexample in k steps ?

SATisfying assignment! If there exists an assignment to Boolean variables that makes the formula true? literals 1 = (b c) 2 = (a d) 3 = (b d)  = 1 2 3 A = {a=0, b=1, c=0, d=1} clauses SATisfying assignment!

经典的SAT-Based BMC 方法 输入: 模型 M, 时序公式f, and 用户制定步长k 构建命题公式W(k) ,此命题公式成真,satisfiable, 当且仅当 f 在某个长度为 k的路径上满足。 长度为k的路径: 假设 f = EF p ,k = 2, AG p呢?

BMC idea (cont’d) AG p means p must hold in every state along any path of length k We take That means we look for counterexamples

Safety-checking as BMC p is preserved up to k-th transition iff W(k) is unsatisfiable: . . . s0 s1 s2 sk-1 sk p p If satisfiable, satisfying assignment gives counterexample to the safety property.

Example: a two bit counter Initial state: 00 01 10 11 Transition: Safety property: AG W(2) is unsatisfiable. W(3) is satisfiable.

SMT based BMC SAT SMT 纯布尔命题逻辑 无法处理更复杂问题… 无量词一阶逻辑 除了布尔命题,还可处理复杂约束如3x+2y-z>4, sin(x)/y>m+n等 命题逻辑处理简单的陈述性命题,一阶逻辑补充覆盖了谓词和量化 While propositional logic deals with simple declarative propositions, first-order logic additionally covers predicates and quantification

复杂系统模型检验 实时嵌入式系统 信息物理融合系统 物联网 软件代码

实时嵌入式系统 嵌入式系统 反应式系统 实时系统 混成系统 特定应用、嵌入到对象系统中 接受外界输入、作出反应、持续交互 严格的时间约束、在给定时间间隔内给出响应 混成系统 离散化逻辑控制、连续性时间行为

水箱监控系统 水箱的水位在什么区间? 初始状态时,水箱中水面的高度为1英寸; 水泵打开时,水箱中水面以每秒1英寸的速度上升; 水泵关闭时,水箱中水面以每秒2英寸的速度下降; 水位达到10英寸时,监控器发出关闭水泵信号,5英寸时发出打开信号 监控器发出信号打开(关闭)水泵到实际打开(关闭)水泵之间有2秒钟的延迟; 水箱的水位在什么区间?

混成系统 有穷迁移系统,描述控制逻辑跳转 每个节点上有微分方程存在,描述相应实时行为

混成系统研究现状 研究现状及趋势 有界模型检验: 标准模型检验: 性能 性能 SMT Polyhedral Computation Interleaving Semantic 性能 低维度 低阈值 研究现状及趋势 标准模型检验: Polyhedral Computation Cartesian Product 性能 不可判定 低维度

我们的工作 单路径可达性检验 组合路径可达性检验 有界路径可达性检验 连续时间行为离散化抽象 线性编码并求解 深度优先遍历 逐条检验 基于共享事件的同步语义 线性编码并求解

工具现状 JAVA Application Web Service 公开发布,国际下载(CMU,UIUC,UCB,UBC…)

CPS Cyber-Physical System 动态环境、外界信号、大规模组合混成系统 安全攸关系统 需要验证!

示例系统一 南方某市在建CBTC列控系统 行为规约 列车与RBC频繁通信获取下一周期移动授权500ms. 行进至安全刹车点,正常制动. 5秒未收到信号,紧急制动 行为规约 运行过程中不可超出移动授权范围 前后车不会追尾

示例系统二 激光刀气管切开手术系统 行为规约 呼吸机向病人气管中泵入氧气 气管氧气浓度( 𝑂 2 )、体内血氧浓度( 𝑆𝑝𝑂 2 )监测器实时监控病人体征 (4秒一次) 行为规约 激光刀打开时气管中氧气浓度不可过高(点燃气管,每年各国均有大量相关致死案例报道) 手术中病人体内血氧浓度不能过低(窒息死亡)

建模与验证 经典模型检验问题 列车 列控方程中大量实时参数(如每周期移动授权具体值、实时风速、坡度等等 ),离线无法获取—>无法建模 大量非线性方程存在—>难以验证 手术 血氧浓度变化方程无法建模(医学难题) 原因:血氧浓度长期变化行为是一个异常复杂的生化反应系统,情绪变化都可引起相关参数剧烈波动 气管氧气浓度为非线性方程难以验证

在线建模与验证 关键参数实时数值捕获 (固定数值) (描述) 短期内可预知行为 (建模) 短期内可描述模型 (验证) 在线快速模型检验,验证系统安全 系统运行 控制方程 安全攸关关键 场景在线验证 控制参数 实时建模 信号接收 在线局部静态模型 实时参数 验证未通过 启动备案 参数采用

在线建模及试验评估 列控 病人 10车系统 109ms< 500ms 932ms <4 s 列控 病人 10车系统 109ms< 500ms 932ms <4 s (前值为多次验证时间平均值,后值为更新周期) 性能上满足要求!

当前主要方向 非线性实时系统验证 CPS系统验证与协同设计 用户级物联网验证与自动修复 软件代码验证

Thanks Q&A