# Introduction to Model Checking

## Presentation on theme: "Introduction to Model Checking"— Presentation transcript:

Introduction to Model Checking

Outline Model checking Symbolic model checking Temporal logic
Model checking algorithms Expressiveness and complexity Symbolic model checking The “state explosion” problem Binary Decision Diagrams Computing fixed points with BDD’s Application

Propositional Linear Temporal Logic
Express properties of “Reactive Systems” interactive, nonterminating For PLTL, a model is an infinite state sequence Temporal operators “Globally”: G p at t iff p for all t’ ³ t. p p p p p p p p p p p... G p...

Temporal operators... p p p p p p F p... p p p p p p p p p q p U q...
“Future”: F p at t iff p for some t’ ³ t. p p p p p p F p... “Until”: p U q at t iff q for some t’ ³ t and p in the range [ t, t’ ) p p p p p p p p p q p U q... “Next-time”: X p at t iff p at t+1

Examples Liveness: “if input, then eventually output”
G (input Þ F output) Strong fairness: “infinitely send implies infinitely recv.” GF send Þ GF recv Weak until: “no output before input” Øoutput W input atomic props infinitely often p W q º p U q Ú G p

Safety v. Liveness Safety Liveness Refutable by finite run
Refutable only by infinite run Every finite run extensible to satisfying run

PLTL semantics Given an infinite sequence
if f is true in state si of s. if f is true in state s0 of s. if f is valid. A formula is an atomic proposition, or... true, p Ú q, Øp, p U q, X p

PLTL semantics... Definition of satisfaction iff Derived operators...

Model Checking (Clarke/Emerson, Queille/Sifakis)
G(p -> F q) yes temporal formula MC algorithm no p p q q counterexample finite-state model Model must now represent all behaviors

Kripke models A Kripke model (S,R,L) consists of
set of states S set of transitions R Í S ´ S labeling L Í S ´ AP Kripke models from programs repeat p := true; p := false; end Øp p

Mutual exclusion example
N1,N2 turn=0 T1,N2 turn=1 T1,T2 C1,N2 C1,T2 N1,T2 turn=2 T1,T2 N1,C2 T1,C2 N = noncritical, T = trying, C = critical

PLTL on Kripke models A path in model M = (S,R,L) is a sequence
such that (si,si+1) Î R. p s0 s1 p s2 s3... F p p

Branching time Model of time is a tree, not a sequence
Path quantifiers p p AF p p

Computation Tree Logic
Every operator F, G, X, U preceded by A or E Universal modalities... AG p AF p p p p p p p p p p p . . . . . . . . . . . . . . . . . . . . . . . .

CTL, cont... Existential modalities EG p EF p p p p p . . . . . .

CTL, cont Other modalities Some dualities...
AX p, EX p, A(p U q), E(p U q) Some dualities... Examples: mutual exclusion specs... AG Ø (C1 Ù C2) mutual exclusion AG (T1 Þ AF C1) liveness AG (N1 Þ EX T1) non-blocking

CTL model checking Model checking problem: Simple algorithm:
Determine for given M, s0 and f, whether Simple algorithm: Inductive over structure of formula Backward propagation of formula labels O(f V(V + E))

Example AG (T1 Þ AF C1) N1,N2 turn=0 T1,N2 turn=1 N1,T2 turn=2 C1,N2
C1,T2 turn=1 T1,C2 turn=2

CES algorithm Need only modalities EX, EU, EG. e.g.,
Checking E(p U q) by backward BFS Checking EG p p BFS q p SCC EG p SCC SCC Complexity = O(f (V + E))

CTL* Contains both CTL and LTL p in LTL ® A p in CTL*
path formulas p U q, G p, Fp, Xp, Øp, p Ù q state formulas A p, E p p in LTL ® A p in CTL* Framework for comparing expressiveness Existential properties not expressible in PLTL e.g., AG EF p Fairness assumptions not expressible in CTL e.g., A (GF p ® GF q)

Model checking complexities
CTL * = PLTL O(2f (V+E)) CTL O(f (V+E)) PSPACE COMPLETE Note: all are linear in model size

Comparing CTL and LTL Think of CTL formulas as approximations to LTL
AG EF p is weaker than G F p Good for finding bugs... p AF AG p is stronger than F G p Good for verifying... p p CTL formulas easier to verify So, use CTL when it applies... 8

Symbolic model checking
State explosion problem State graph exponential in program size Symbolic model checking approach Boolean formulas represent sets and relations Use fixed point characterizations of CTL operators Model checking without building state graph Sometimes can handle much larger sate space

Binary Decision Diagrams (Bryant)
Ordered decision tree for f = ab + cd a 1 b b 1 1 c c c c 1 1 1 1 d d d d d d d d 1 1 1 1

OBDD reduction Reduced (OBDD) form:
a 1 b 1 c 1 1 d 1 Key idea: combine equivalent sub-cases

OBDD properties Canonical form (for fixed order)
direct comparison Efficient apply algorithm build BDD’s for large circuits f fg g O(|f| |g|) Variable order strongly affects size

Boolean quantification
If v is a boolean variable, then \$v.f = f |v =0 V f |v =1 Multivariate quantification \$(w1,w2,…,wn). f Complexity on BDD representation worst case exponential heuristically efficient Example: \$(b,c). (ab Ú cd) = a Ú d

Characterizing sets Let M = (S,R,L) be a Kripke model
Let S be the set of boolean vectors (v1,v2,…,vn) Î {0,1}n Represent any P Í S by its characteristic function cP P = {(v1,v2,…,vn) : cP} Set operations cÆ = false cS = true cP È Q = P V Q cP Ç Q = P Ù Q cS \ P = Ø P

Characterizing relations
Transition relation R is a set of state pairs… R = {((v1,v2,…,vn), (v’1,v’2,…,v’n)) : Î cR} Examples A synchronous sequential circuit v0 v1 cR = (v’0 = Ø v0) Ù (v’1 = v0 Å v1)

Transition relations, cont...
An asynchronous circuit s q q r Interleaving model Simultaneous model

Forward and reverse image
Forward image P Image(P,R) R

Images, cont... Reverse image Image-1(P,R) P R = EX P

Symbolic CTL model checking
Equate a formula f with the set of states satisfying it… Compute BDD’s for characteristic functions… Ø p, p Ú q, p Ù q (use BDD ops) EX p = Image-1(p,R) AX p = Ø EX Ø p Remaining operators have fixed-point characterization... In fact, this is the least fixed point...

Fixed points of monotonic functions
Let t be a function S ® S Say t is monotonic when Fixed point of t is y such that If t monotonic, then it has least fixed point my. t(y) greatest fixed point ny. t(y)

Iteratively computing fixed points
Suppose S is finite The least fixed point my. t(y) is the limit of The greatest fixed point ny. t(y) is the limit of Note, since S is finite, convergence is finite

Example: EF p EF p is characterized by
Thus, it is the limit of the increasing series... p Ú EX(p Ú EX p) p Ú EX p . . . p ...which we can compute entirely using BDD operations

Example: EG p EG p is characterized by
Thus, it is the limit of the decreasing series... p Ù EX(p Ù EX p) ... p Ù EX p p ...which we can compute entirely using BDD operations

Remaining operators Allows CTL model checking with only BDD ops
Avoid building state graph (Sometimes) avoid state explosion problem Now you can go home and build your own symbolic model checker...

Example: “Gigamax” cache protocol
global bus . . . UIC UIC UIC cluster bus . . . . . . . . . M P P M P P Bus snooping maintains local consistency Message passing protocol for global consistency

Protocol example Cluster B read --> cluster A
global bus . . . UIC A B C UIC UIC cluster bus . . . . . . . . . M P P M P P owned copy read miss Cluster B read --> cluster A Cluster A response --> B and main memory Clusters A and B end shared

Protocol correctness issues
Protocol issues deadlock unexpected messages liveness Coherence each address is sequentially consistent store ordering (system dependent) Abstraction is relative to properties specified

Cache replacement is nondeterministic Message queue latency is arbitrary IN OUT ? A ? ? ? output of A may or may not occur at any given time

{ Specifications Absence of deadlock Coherence
SPEC AG (EF p.readable & EF p.writable); Coherence SPEC AG((p.readable & bit -> ~EF(p.readable & ~bit)); Abstraction: { 0 if data < n 1 otherwise bit =

global bus . . . UIC A B C UIC UIC cluster bus . . . . . . . . . M P P M P P owned copy from cluster A Cluster A read --> global (waits, takes lock) Cluster C read --> cluster B Cluster B response --> C and main memory Cluster C read --> cluster A (takes lock)

State space explosion State space growth is exponential

BDD performance BDD size growth is linear

BDD performance Run time growth is quadratic

Why does it work? . . . . . . . . . OBDD Many partial states equivalent... ...implies many subfunctions equivalent...

When doesn’t it work? Protocols that pass pointers Linked lists
Anytime one part of the system “knows” a large amount of information about another part

Summary Model checking State explosion problem Applications
Automatic verification (or falsification) of finite state systems Linear v. branching time logics State explosion problem Binary Decision Diagrams Heuristically efficient boolean operations Image calculations Fixed point characterization of CTL Model checking without building state graph Applications Find subtle errors in complex protocols

Similar presentations