1. Definition
给定一个系统和一个我们期待拥有的属性P, Model checking 会探索这个系统的每个状态,验证系统是否满足定义的性质。如果满足直接返回True,否则会给出一个反例(counter example)。如果系统被证明是正确的,说明该系统的所有的行为都已经被探索并满足了所定义的规约。
Advantages: (1)这是一个完全自动的过程,不需要测试有专业的数学方面的知识;(2)当设计不满足所期待的属性时,model checking会产生一个反例展示违反的属性。这个faulty trace提供了一个无价的见解帮助我们理解falure,并作为一个重要的线索帮助我们修复/解决问题。
2.Motivation
How to ensure the correctness of a design?
3. Traditional validation methods
(1) Testing
将被测系统当作一个黑盒,给予输入到系统本身,然后观察系统得输出,如果所有的输出结果符合预期的话,就通过测试。(作用于实际的系统)
(2) Simulation
给予输入到原型系统,然后观察对应的输出(作用于模拟的系统或者系统的抽象)
Limitation:上述的两种方法没有办法证明系统正确性,只能发现了问题。
(3) Reasoning and deducation
使用数学的方法去证明系统的正确性
Limitation:不能够自动,很难处理复杂的系统,对测试人员要求比较高
4. How does it work?
(1) General framework
(2) Modeling Language — Petri Net
(3) Formula Language — LTL;CTL
(a) LTL concepts
(b) LTL 模型检测框架
4. Weakness or Problem?