CTL Model Checking 张文辉 zwh.

32
CTL Model Checking 张张张 http://lcs.ios.ac.cn/~zwh

Transcript of CTL Model Checking 张文辉 zwh.

Page 1: CTL Model Checking 张文辉 zwh.

CTL Model Checking

张文辉http://lcs.ios.ac.cn/~zwh

Page 2: CTL Model Checking 张文辉 zwh.

CTL Model Checking

迁移系统迁移系统 Kripke 结构Kripke 结构

CTLCTL CTLCTL

M |= M |= M |= M |= 标号算法标号算法

Page 3: CTL Model Checking 张文辉 zwh.

CTL

Only consider CTL formulas with

propositions,negation, disjunction, EX, EG, EU

== p | | |EX | EG | E( U )

Page 4: CTL Model Checking 张文辉 zwh.

Model Checking by Labeling

Page 5: CTL Model Checking 张文辉 zwh.

Model Checking by Labeling

Given M=<S,R,I,L> and Extend L(s) to contain all sub-formulas of that holds on s.

Page 6: CTL Model Checking 张文辉 zwh.

Model Checking by Labeling

(1)For a propositional sub-formula, nothing needs to be done.

(2) For , add to L(s), if L(s)

Page 7: CTL Model Checking 张文辉 zwh.

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

Page 8: CTL Model Checking 张文辉 zwh.

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

Page 9: CTL Model Checking 张文辉 zwh.

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

Page 10: CTL Model Checking 张文辉 zwh.

Model Checking by Labeling

M,s |= iff L(s)

M |= iff L(s) for every s I.

Page 11: CTL Model Checking 张文辉 zwh.

CTL Symbolic Model Checking

迁移系统迁移系统 Kripke 结构Kripke 结构

CTLCTL CTLCTL 状态集合状态集合

M |= M |= M |= M |= I [[]]I [[]]

Fixpoint

Page 12: CTL Model Checking 张文辉 zwh.

Model Checking by Fixpoint

(1)For a propositional sub-formula p, [[p]] = { s | p L(s) }

(2) For , [[]] = S \ [[]]

Page 13: CTL Model Checking 张文辉 zwh.

Model Checking by Fixpoint

(3)For ,[[]] =[[] [[]]

(4)For EX,[[EX]] = ex([[]])

Page 14: CTL Model Checking 张文辉 zwh.

Model Checking by Fixpoint

(5)For E(U),[[E(U)]] = Z.([[]]([[]] ex(Z)))

(6)For EG ,[[EG ]] = Z.([[]] ex(Z))

Page 15: CTL Model Checking 张文辉 zwh.

Model Checking by Fixpoint

M,s |= iff s [[]]

M |= iff I [[]]

Page 16: CTL Model Checking 张文辉 zwh.

Symbolic Model Checking

Page 17: CTL Model Checking 张文辉 zwh.

CTL Symbolic Model Checking

Kripke 结构Kripke 结构

OBDD([[]])OBDD([[]])

逻辑公式逻辑公式 OBDDOBDD

OBDD 运算OBDD 运算

M |= M |= OBDD(I) OBDD([[]])OBDD(I) OBDD([[]])

Page 18: CTL Model Checking 张文辉 zwh.

Binary Decision Diagram (BDD)

BDD = <N,E,n0,L>

Labeling function: L: N -> L

Root

Edges: E: N -> N2

Nodes

L ={a,…,c}

a

bc

10

Terminal Nodes: {0, 1} N

10

Page 19: CTL Model Checking 张文辉 zwh.

Intuitive Meaning

[[w]] = (a [[x]]) (a [[y]])

a

yx

w

[[.]]: the meaning function

Terminal node: [[0]] = 0Terminal node: [[1]] = 1

Page 20: CTL Model Checking 张文辉 zwh.

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.

Page 21: CTL Model Checking 张文辉 zwh.

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

bc

10 01

Page 22: CTL Model Checking 张文辉 zwh.

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

10 01

a

b0

01

a

10

0

c

b

a

Page 23: CTL Model Checking 张文辉 zwh.

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

10 01

a

b1

01

a

11

1

c

b

a

Page 24: CTL Model Checking 张文辉 zwh.

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

Page 25: CTL Model Checking 张文辉 zwh.

Reduced Ordered Binary Decision Diagram (ROBDD)

Shared substructures

No nodes have its left and right sub-trees point to the same substructures

Page 26: CTL Model Checking 张文辉 zwh.

Operations of ROBDD

AABABABx.A

Page 27: CTL Model Checking 张文辉 zwh.

Propositional Formulas and OBDD

Propositional Formula F OBDD(F) ROBDD(F)

Page 28: CTL Model Checking 张文辉 zwh.

Kripke Structure and OBDD

Given M=<S,R,I,L> and AP = { p1,p2,…,pk }

S propositional formulaR propositional formulaI propositional formula[[p1]] propositional formula…, [[pk]] propositional formula

Page 29: CTL Model Checking 张文辉 zwh.

Symbolic Model Checking

Set operations are performed by corresponding ROBDD operations

ex(..) .. \ .... .... ..

[[]] : Manipulation of OBDD

Page 30: CTL Model Checking 张文辉 zwh.

CTL Symbolic Model Checking

Kripke 结构Kripke 结构

OBDD([[]])OBDD([[]])

逻辑公式逻辑公式 OBDDOBDD

OBDD 运算OBDD 运算

M |= M |= OBDD(I) OBDD([[]])OBDD(I) OBDD([[]])

Page 31: CTL Model Checking 张文辉 zwh.

Variable Ordering

Page 32: CTL Model Checking 张文辉 zwh.

Questions?