1 / 117

实时系统的形式化 验证技术

实时系统的形式化 验证技术. 研讨课 2013-11. 引言 —— 形式化方法的定义. 形式化( formal method )方法: 广义 —— 有精确数学语义的系统工程方法; 狭义 —— 形式化 规格( specification ) 方法; 形式化 验证( verification ) 方法。. 引言 —— 形式化验证方法. 基于(形式化)模型的开发过程 基于模型的规格说明  基于规格化模型的验证 形式化验证主要包括: 模型检查 ( model checking ) 形式语言推理证明. 引言 —— 形式化验证方法 (续). 模型检查

maeve
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. 实时系统的形式化验证技术 研讨课 2013-11

  2. 引言——形式化方法的定义 • 形式化(formal method)方法: • 广义——有精确数学语义的系统工程方法; • 狭义—— • 形式化规格(specification)方法; • 形式化验证(verification)方法。

  3. 引言——形式化验证方法 • 基于(形式化)模型的开发过程 • 基于模型的规格说明基于规格化模型的验证 • 形式化验证主要包括: • 模型检查(model checking) • 形式语言推理证明

  4. 引言——形式化验证方法(续) • 模型检查 • 基于有限状态模型,检查该模型的期望特性是否得到满足; • 状态空间的蛮力(brute)搜索,理论上是指数复杂度的,但可以采用较合理的数据结构在一定的程度上提高效率; • 当所检查的性质未被满足的时候,终止运行,给出反例和状态变化轨迹; • 可以用于系统的部分的规格说明的检查; • 无限状态可抽象为有限状态描述。

  5. 引言——形式化验证方法(续) • 计算复杂度 • 时间:EXPTIME • 空间:PSPACE 引用自 Ruys Theo. Formal Methods and Tools.System Validation course, dept. of CS, Univ. of Twente. 2006.5

  6. 引言——形式化验证方法(续) • 模型检查与时间自动机 • Time Automata • 时间自动机模型 • 逻辑——时态逻辑 • 操作——并发操作

  7. 引言——形式化验证方法(续) • 模型检查工具 • SPIN, HyTech, UPPAAL, Kronos, EMC, BOOST, Hybrid … • 模型检查工具与项目开发方法的结合 • 如:以色列IAI的ESM • 如:欧洲的ASDE • 如:用于AFDX端到端延迟抖动的分析

  8. 提纲 • 时态逻辑与行为建模 • 时间自动机模型检查及UPPAAL工具 • *模型检查工具的实现技术 • *模型检查工具的扩展 • *应用案例

  9. 时态逻辑与行为建模 时间自动机模型检查及工具 实时系统形式化验证技术——时间自动机和模型检查 2013

  10. 时态逻辑与行为建模 • 命题逻辑、一阶逻辑、模态逻辑、时态逻辑 • 行为建模 • 以CTL(计算树逻辑)为例,说明时态逻辑的行为建模能力;并且综述 • 各种时态逻辑的比较与评价规则。

  11. 经典逻辑 • 命题逻辑 • 命题(proposition):对事物作出确定性判断的陈述语句。 • 真、假 • 原子命题:非 • 复合命题: • 二元连接词 • 合取(和) ∧ 、析取(或) ∨ • 蕴含 →(if… then…)

  12. 经典逻辑(续) • 逻辑推理 • P, Q |- R,P, Q的关系不仅仅是∨和∧关系 • 对原子命题进行分解 • 个体(域) • 研究对象所构成的非空集合 • 确定的个体 – 常元 • 泛指的个体 – 变元 • 函词 • 谓词(predication) • 量词:用来约束变元,表示个体数量 • 存在量词 (Existence) • 全称量词(All)

  13. 经典逻辑(续) • “零阶”:命题逻辑 • 一阶:(一阶)谓词逻辑 • FOL: first order logic • 高阶:允许将谓词也作为可量化的变元 • HOL: higher order logic • 高阶表现力强,但逻辑的完备性与可判定性差

  14. 模态逻辑 • 模态 Modal ['moudl] • 不涉及本质的执行模式;“情境” • 描述“可能世界” • 模态词: • 必然(necessary)□ • 可能(possibility) ◇ • 模态逻辑 • 命题/FOL/HOL + 模态词扩展

  15. _ _ p,q w0 _ r,s _ _ p,q w2 p,q w1 r s 模态逻辑(续) • 模态逻辑的模型——Kripe结构 • 三元组 M = ( W, R, L ) • World 可能的“世界”集合(或者说不同状态的世界) • Relation 二元关系 wi到 wj的迁移 • Labeling (或 evaluation func.) • L: W →2P; P 原子公式的集合

  16. 时态逻辑 • 对模态(Modal)的时态(Temporal)解释 • R: 时间先后关系 • 必然 □ : always 算子 ( henceforth√) • 可能 ◇ :sometimes 算子 (eventually√) • 命题成立与否具有时间依赖性 • 事件发生的顺序(event ordering) • 逻辑变元取值发生改变的时间关系 • next 算子:○ , ○A, ○mA • until 算子: • ( since 算子 )

  17. 时态逻辑(续) • 时间域的结构 • 离散 / 连续 • 线性 / 分支 • 线性时态逻辑LTI • PLTI • FOLTI • 应用案例: • 数字电路分析 • 工具:e.g. • HYBIRD, • BOOST - SPL SCADE / Signal Property Language 任意当前时刻只存在唯一的可能未来时刻 分支时态逻辑可以较好地处理不确定性

  18. 时态逻辑(续) • 计算树逻辑 CTL 和 CTL* • CTL: computational tree logic • Clarke E M, Emerson E A, 1980s • “Automatic verification of finite-state concurrent systems using temporal logic specifications” • Model checking • -- also by Clarke & Emerson • “For verifying CTL specification, a model-checking approach is typically used since the specification can be modeled as a state machine”

  19. 思考:时间(时钟)状态如何表达? 时态逻辑(续) • Model checking (续) • 基于有限状态模型, • 对模型的状态空间进行蛮力搜索, • 检查该模型是否具有某种性质。 e.g. 利用Kriple结构的标号算法(labeling algo.),NP,brute • FSM -- 由 computational tree 折叠而成 • Time Automata – 并发,实例化,事件同步 • by Alur R 1990s • 组合爆炸 • EXPTIME, PSPACE • 如:有序二叉决策图(Ordered Binary Decision Diagrams),]:100~200状态变量,状态数目10120的系统

  20. 将时态逻辑用于行为建模 行为建模 • 时态逻辑关注系统行为建模,而不是功能或结构 • Functional modeling • 负责处理系统的数据传输,输入输出的内容 • Structural modeling • 如何将系统分解为子系统和组件 • Behavior modeling • 行为是指系统对外部激励和内部事件的响应,这是反应式(reactive)和实时系统的关键方面。 • 典型地,系统的行为由一系列的关系(relationship)的集合表达,这些关系枚举了事件和动作之间的时态约束。

  21. 行为建模(续) • Assessing the capabilities of TL • 时态逻辑的行为表达能力 • 时态逻辑模型的自动验证能力 • 评价准则 • 逻辑阶 • 时态结构 • 事件顺序 • 时间度量 • 显式时钟/隐式时钟 • 逻辑可判定性

  22. 时态逻辑的行为建模能力 • 以CTL为例作主要讲解,结合与其它TL的比较 1. 逻辑阶Logic order • CTL 是 命题逻辑 • “分支时态逻辑中则需要提供对分支的时间特性下多种未来行为描述的量化词” [1] • 未来路径:A -- • 某一路径:E -- • 对于状态公式 ,存在路径树 详见工具部分

  23. 时态逻辑的行为建模能力(续) 2. 时态结构 Temporal Structure Clarke’s CTL: • 离散、时间点实体、树状分支结构 3. 事件顺序 Ordering of events Clarke’s CTL: • 因果关系:由经典逻辑继承了蕴含(imply)算子: • Ordering of events:必须定义until算子

  24. 时态逻辑的行为建模能力(续) 4. 时间度量 Metrics for time 对于Clarke’s CTL,没有定义时间度量,只有时间的顺序可以判别 其它TL或是CTL的改进,可以引进时间度量 CTL的改进——UPPAAL有时间度量 5. 显式时钟/隐式时钟 Explicit / implicit Clarke’s CTL,隐式时钟

  25. 时态逻辑的行为建模能力(续) 5. 显式时钟/隐式时钟(续) • 隐式时钟:只考察事件之间的时间先后次序 • 全局的显式时钟: • 逻辑关系式中有时钟变元T,这样,很多情况下,式中甚至不用考虑时间域的结构,如: ( ( )<>( ) ) • 显示时钟必然要求 时间度量 量词

  26. 时态逻辑的行为建模能力(续) 5. 显式时钟/隐式时钟(续) • Alur R and Henzinger T. A ‘s Observations [2] • 如果不允许用显式的量词修饰时间变元,将使规范定义的风格更加自然;(1990) • 如果找到实际可用的验证(verification)方法,必然不可能使用显式的量词修饰时间变元。 换言之,“用显式的量词修饰时间变元”实际上超过了FOL(对PL更是如此)的表达能力,同时是不可决定的。

  27. 时态逻辑的行为建模能力(续) 5. 显式时钟/隐式时钟(续) • 局部的时钟 • 如果有时间度量,可以用Kriple(W, R, L)结构模型对时钟建模; • e.g. UPPAAL • Formal Spec. – 每个实例可以申明多两个clock var. • Formal Verif. – 没有修饰时间的量词,所谓的“时钟”相当于计时器,并不是抽象的物理时间。 • e.g. UPPAAL的可判定性 • UPPAAL 的Formal Spec. – Time Automata • Time Automata (TA) created by Alur R !

  28. 时态逻辑的行为建模能力(续) 6. 可判定性 Logic decidability • Formal Spec.  Formal Verification • 特例:symbolic model checking • 例 Clarke’s CTL – Yes • 例 CTL的扩展 -- CTL* 可用Labeling Algo.检查 • 其它的TL: • 线性: PTL, Choppy, ITL, PMLTI, IL, EIL, RTIL, TILCO… • 分支:BTTL, PMLTI, … • 实时系统需要什么样的TL? • 具体问题具体分析 • 有工具支持——工程师可用 • 不要被名称迷惑,e.g. RTTL – 允许量词修饰时间,如果在这种情况下就是 un-decidable

  29. 时态逻辑与行为建模 时间自动机模型检查及工具 实时系统形式化验证技术——时间自动机和模型检查 2013 计划2013-11-15

  30. 时态逻辑建模与模型检查工具 • UPPAAL • “Modeling language” – Time Automata • 并发的TA,相当于networks of TA • “Query language” – a subset of CTL • Model Checking Engine • since 1995 • LARSEN K G, PETTERSON P, WANG Y

  31. 时间自动机 • timed graph  timed Büchi automata  timed safety automata • Alur Rajeev, Dill David L 1990 • clock variables • constraints on the clock var.s  restrict the behavior of the TA • constraints on properties of process by: • Büchi Accepting Theorem

  32. 时间自动机(续) • timed safety automata • 1994 Henzinger Thomas A • constraints on properties of process by: • local invariant condition 本地不变条件 • 简化,促进以TA为建模语言的模型检查工具发展 • Model Checking Tools by TA specification • UPPAAL 1995 • KRONOS 1998 by Bozga • IF 2005 • ……

  33. 时间自动机(续) • 位置 location • 不变量 invariant • 边 edge • 卫兵 guard • 赋值 assignment • 时钟 clock 注意:变量声明 local 和 global

  34. //Global declarations const int N = 2 ; typedef int[0,N-1] id_t; UPPAAL中的TA模型 • template • 模板 – 类 • process • 过程 – 类的实例 • system • 系统 – 场景 • 并行的实例

  35. simu. trace UPPAAL中的TA模型 • process与system // global static variable id_t g_id; // Place template instantiations here. 定义模板的实例 // SYNAX: Process = Template(); templ(const id_t id) = My_Templ(id, g_id); // List one or more processes to be composed into a system. // SYNAX: system Process; 列出一个或多个过程构成系统 system templ;

  36. UPPAAL中的TA模型(续) • chan (channel,”信道”) • “action” • 信号量~同步 • chan – binary synchronization • broadcast chan • multicast chan ? • synchronization pairs

  37. UPPAAL中的TA模型(续) • 同步 Synchronization 无条件 条件 单向 异步,双向 委托

  38. UPPAAL中的TA模型(续) • 委托位置 • committed locations • committed – 委托 • 委托位置(状态)的作用 • “强制” • 避免不必要的状态交织 • 保证同步操作的原子性

  39. UPPAAL中的TA模型(续) • 强制位置:避免不必要的状态交织 引用自 Jansen David N. Model checking of timed Automata. System Validation course, dept. of CS, Univ. of Twente. 2006.5

  40. var p1.in p1.out p2.in p2.out var ACK 握手的 延迟 此时ACK不是原子性的 UPPAAL中的TA模型(续) • 强制位置:保证同步握手的原子性操作 总线,信号广播介质 同步

  41. 必然 □ : always 算子 ( henceforth) 可能 ◇ :sometimes 算子 (eventually ) CTL修饰状态,但含有路径的语意 未来路径:A 某一路径:E UPPAAL的查询语言 • 时态词 • [] 和 <> • 路径公式与状态公式 • 量词 • A 和 E • 状态与路径 • A[], E<>, A<>, E[] • lead to : “ -->” • imply

  42. UPPAAL的查询语言(续) • A[]f Invariantly • E<> f Possibly • A<> f Eventually • E[] f Potentially always

  43. reachability safety liveness safety safety UPPAAL的查询语言(续) • A[]p Invariantly not E<> not p • /* for any p it should be always true */ • // p should be true in all reachable state. • E<>P Possibly • /* Exist a state that p is true eventually */ • // some state satisfying p should be reachable. • A<>P Eventually not E[] not p • /* p is eventually satisfied */ • // For any condition, p should be true eventually • E[]p Potentially always • // there should exit a maximum path such that p is always true • deadlock: A state is a deadlock state if • /* there are no outgoing action transitions neither from the state itself or any of its delay successors. */

  44. UPPAAL的查询语言(续) • lead to • psi --> phi • A[](psi imply A<> phi) • whenever psi is satisfied, the phi will be eventually satisfied • Liveness

  45. 有界活性检查 • Bounded Liveness Checking • 对于实时系统,常规的活性检查对于正确性的表达是不充分的。思考为什么? • “the property in question must be hold (or observed) within a certain uppertime-limit” • 三种检查的模式 • time-bounded lead to 算子 • 两种变体的查询式

  46. 有界活性检查(续) • time-bounded lead to 算子 模式1:对无界的“leadsto”算子的改造 • 添加时钟变量z; • 当状态 psi 开始有效的时候,将z复位; • psi --> ( phi && z<=T ) 模式2:改造安全性检查式(更高效的检查式) • 添加一个时钟变量 z 和一个布尔量 b • 布尔量 b 的初始值为false • 当状态 psi 开始有效的时候,将 z 复位,令b =true • 当状态 phi 开始有效的时候,令b =false • 检查:A[](b imply z<=T) • 模式3:检查自动机

  47. 有界活性检查(续) • Test Automaton • 原始世界模型 –(形式化的“互易”规则)反世界模型 • “原始模型” • 构造对于待检查的属性的“抽象模型(abstraction)”,以它为骨架构造“抽象反模型”(tester) • “反世界”中的BAD状态 • 原始模型|| 抽象反模型 • 检查BAD状态的可达性

  48. UPPAAL 的 Model Checker • 模型检查引擎(核心算法) • DBM —— Difference Bound Matrix • 原理(不严格的描述)——符号计算,时钟约束条件 • 时钟变量的等价空间; • 当时间“流逝”,各个进程操纵时钟,在空间中占有一定的区域 引用自 Jansen David N. Model checking of timed Automata. System Validation course, dept. of CS, Univ. of Twente. 2006.5

  49. Avionics ! UPPAAL UPPAAL的扩展与成功应用 • Distributed – UPPAAL • Cost UPPAAL • priced  minimum cost reachability analysis • COVER 和 T-UPPAAL (TRON) • test case generator • TIMES • schedulability. • verification core by UPPAAL • games – UPPAAL • 成功应用…… • 协议分析:TDMA, CAN • 计算机控制:变速箱 • 操作检验:Philips电器,数码产品 • Robotics:LEGO, RoboCup

  50. 模型检查工具的实现技术 模型检查工具的扩展 实时系统形式化验证技术——时间自动机和模型检查 2013

More Related