Download presentation
Presentation is loading. Please wait.
1
CTL Model Checking 张文辉 http://lcs.ios.ac.cn/~zwh
2
CTL Model Checking 迁移系统 Kripke 结构 CTL M |= 标号算法
3
CTL Only consider CTL formulas with propositions, negation, disjunction, EX, EG, EU == p | | |EX | EG | E( U )
4
Model Checking by Labeling
5
Given M= and Extend L(s) to contain all sub-formulas of that holds on s.
6
Model Checking by Labeling (1) For a propositional sub-formula, nothing needs to be done. (2) For , add to L(s), if L(s)
7
Model Checking by Labeling (3) For , add to L(s), if L(s) or L(s) (4) For EX , add EX to L(s), if L(s’) for some (s,s’) R
8
Model Checking by Labeling (5) For E( U ), a) add E( U ) to L(s), if L(s) b) add E( U ) to L(s), if L(s) and E( U ) L(s’) for some (s,s’) R (c) repeat b until L does not change
9
Model Checking by Labeling (6) For EG , a) compute S’={s | L(s)} b) compute nontrivial SCCs of the sub-graph induced by S’; for every s in such an SCC, add EG to L(s). c) add EG to L(s), if s S’ and EG L(s’) for some (s,s’) R (d) repeat c until L does not change
10
Model Checking by Labeling M,s |= iff L(s) M |= iff L(s) for every s I.
11
CTL Symbolic Model Checking 迁移系统 Kripke 结构 CTL 状态集合 M |= I [[ ]] Fixpoint
12
Model Checking by Fixpoint (1) For a propositional sub-formula p, [[p]] = { s | p L(s) } (2) For , [[ ]] = S \ [[ ]]
13
Model Checking by Fixpoint (3) For , [[ ]] =[[ ] [[ ]] (4) For EX , [[EX ]] = ex([[ ]])
14
Model Checking by Fixpoint (5) For E( U ), [[E( U )]] = Z.([[ ]] ([[ ]] ex(Z))) (6) For EG , [[EG ]] = Z.([[ ]] ex(Z))
15
Model Checking by Fixpoint M,s |= iff s [[ ]] M |= iff I [[ ]]
16
Symbolic Model Checking
17
CTL Symbolic Model Checking Kripke 结构 OBDD([[ ]]) 逻辑公式 OBDD OBDD 运算 M |= OBDD(I) OBDD([[ ]])
18
Binary Decision Diagram (BDD) BDD = Labeling function: L: N -> L Root Edges: E: N -> N 2 Nodes L ={a,…,c} a bc 10 Terminal Nodes: {0, 1} N 10
19
Intuitive Meaning [[w]] = ( a [[x]]) (a [[y]]) a yx w [[.]]: the meaning function Terminal node: [[0]] = 0 Terminal node: [[1]] = 1
20
Models Subset of L - L A model represents a state in a discrete system. M is a model of a BDD, if the BDD can be simplified to 1, according to given simplification rules.
21
Examples of Models [ a, b, c], [ a, b, c], [ a, b, c], [ a, b, c] [a, b, c], [a, b, c], [a, b, c], [a, b, c] a b c 1001
22
Example 1 of Simplification [ a, b, c], [ a, b, c], [ a, b, c], [ a, b, c] [a, b, c], [a, b, c], [a, b, c], [a, b, c] a bc 1001 a b0 01 a 1 0 0 cc bb aa
23
Example 2 of Simplification [ a, b, c], [ a, b, c], [ a, b, c], [ a, b, c] [a, b, c], [a, b, c], [a, b, c], [a, b, c] a bc 1001 a b1 01 a 1 1 1 c bb aa
24
Ordered Binary Decision Diagram (OBDD) Given an order of variables (x1<x2<…) A BDD is ordered if every path of the BDD is labeled in accordance with the variable order
25
Reduced Ordered Binary Decision Diagram (ROBDD) Shared substructures No nodes have its left and right sub-trees point to the same substructures
26
Operations of ROBDD A A B A B A B x.A
27
Propositional Formulas and OBDD Propositional Formula F OBDD(F) ROBDD(F)
28
Kripke Structure and OBDD Given M= and AP = { p1,p2,…,pk } S propositional formula R propositional formula I propositional formula [[p1]] propositional formula …, [[pk]] propositional formula
29
Symbolic Model Checking Set operations are performed by corresponding ROBDD operations ex(..).. \.... .... .. [[ ]] : Manipulation of OBDD
30
CTL Symbolic Model Checking Kripke 结构 OBDD([[ ]]) 逻辑公式 OBDD OBDD 运算 M |= OBDD(I) OBDD([[ ]])
31
Variable Ordering
32
Questions?
Similar presentations
© 2024 SlidePlayer.com Inc.
All rights reserved.