Docsity
Docsity

Prepare for your exams
Prepare for your exams

Study with the several resources on Docsity


Earn points to download
Earn points to download

Earn points by helping other students or get them with a premium plan


Guidelines and tips
Guidelines and tips

LTL and CTL Semantics with Model Checking Algorithms, Study Guides, Projects, Research of Computer Science

An overview of linear time temporal logic (ltl) and computation tree logic (ctl) semantics, their temporal operators, and model checking algorithms. Ltl and ctl are used to reason about the properties of reactive systems, and model checking is a technique to verify if a system satisfies a given property. The basics of ltl and ctl semantics, their equivalences, and the ctl model checking algorithm.

Typology: Study Guides, Projects, Research

Pre 2010

Uploaded on 07/30/2009

koofers-user-okv
koofers-user-okv 🇺🇸

10 documents

1 / 14

Toggle sidebar

Related documents


Partial preview of the text

Download LTL and CTL Semantics with Model Checking Algorithms and more Study Guides, Projects, Research Computer Science in PDF only on Docsity! 1 Model Checking Foundations and Applications Tevfik Bultan Department of Computer Science University of California, Santa Barbara bultan@cs.ucsb.edu http://www.cs.ucsb.edu/~bultan/ Outline • Temporal Logics for Reactive Systems • Automated Verification of Temporal Properties of Finite State Systems • Temporal Properties ≡ Fixpoints • Symbolic Model Checking – SMV • LTL Properties ≡ Büchi automata – SPIN • Infinite State Model Checking • Model Checking Programs – SLAM project – Java Path Finder Temporal Logics for Reactive Systems [Pnueli FOCS 77, TCS 81] Transformational systems get input; compute something; return result; Reactive systems while (true) { receive some input, send some output } • Transformational view follows from the initial use of computers as advanced calculators: A component receives some input, does some calculation and then returns a result. • Nowadays, the reactive system view seems more natural: components which continuously interact with each other and their environment without terminating Transformational vs. Reactive Systems Transformational systems get input; {pre-condition} compute something; {post-condition} return result; Reactive systems while (true) { receive some input, send some output } • Earlier work in verification uses the transformational view: – halting problem – Hoare logic – pre and post-conditions – partial vs. total correctness • For reactive systems: – termination is not the main issue – pre and post-conditions are not enough Reactive Systems: A Very Simple Model • We will use a very simple model for reactive systems • A reactive system generates a set of execution paths • An execution path is a concatenation of the states (configurations) of the system, starting from some initial state • There is a transition relation which specifies the next-state relation, i.e., given a state what are the states that can follow that state • We need an example A Mutual Exclusion Protocol Process 1: while (true) { out: a := true; turn := true; wait: await (b = false or turn = false); cs: a := false; } || Process 2: while (true) { out: b := true; turn := false; wait: await (a = false or turn); cs: b := false; } Two concurrently executing processes are trying to enter a critical section without violating mutual exclusion 2 State Space • The state space of a program can be captured by the valuations of the variables and the program counters – you have to wait until the next lecture for a discussion about the control stack (and recursion) and the heap (and dynamic memory allocation) • For our example, we have – two program counters: pc1, pc2 domains of the program counters: {out, wait, cs} – three boolean variables: turn, a, b boolean domain: {True, False} • Each state of the program is a valuation of all the variables State Space • Each state can be written as a tuple (pc1,pc2,turn,a,b) • Initial states: {(o,o,F,F,F), (o,o,F,F,T), (o,o,F,T,F), (o,o,F,T,T), (o,o,T,F,F), (o,o,T,F,T), (o,o,T,T,F), (o,o,T,T,T)} – initially: pc1=o and pc2=o • How many states total? 3 * 3 * 2 * 2 * 2 = 72 exponential in the number of variables and the number of concurrent components Transition Relation • Transition Relation specifies the next-state relation, i.e., given a state what are the states that can come after that state • For example, given the initial state (o,o,F,F,F) Process 1 can execute: out: a := true; turn := true; or Process 2 can execute: out: b := true; turn := false; • If process 1 executes, the next state is (w,o,T,T,F) • If process 2 executes, the next state is (o,w,F,F,T) • So the state pairs ((o,o,F,F,F),(w,o,T,T,F)) and ((o,o,F,F,F),(o,w,F,F,T)) are included in the transition relation Transition Relation The transition relation is like a graph, edges represent the next-state relation (o,o,F,F,F) (o,w,F,F,T) (w,o,T,T,F) (o,c,F,F,T) (w,w,T,T,T) Transition System • A transition system T = (S, I, R) consists of – a set of states S – a set of initial states I ⊆ S – and a transition relation R ⊆ S × S • A common assumption in model checking – R is total, i.e., for all s ∈ S, there exists s’ such that (s,s’) ∈ R Execution Paths • An execution path is an infinite sequence of states x = s0, s1, s2, ... such that s0 ∈ I and for all i ≥ 0, (si,si+1) ∈ R Notation: For any path x xi denotes the i’th state on the path (i.e., si) xi denotes the i’th suffix of the path (i.e., si, si+1, si+2, ... ) 5 CTL Semantics s0 |= EG p iff there exists a path s0, s1, s2, ... such that for all i, si |= p s0 |= AG p iff for all paths s0, s1, s2, ..., for all i, si |= p s0 |= EF p iff there exists a path s0, s1, s2, ... such that there exists an i such that si |= p s0 |= AF p iff for all paths s0, s1, s2, ..., there exists an i, such that, si |= p s0 |= p EU q iff there exists a path s0, s1, s2, ..., such that, there exists an i such that si |= q and for all j < i, sj |= p s0 |= p AU q iff for all paths s0, s1, s2, ..., there exists an i such that si |= q and for all j < i, sj |= p CTL Equivalences • CTL basis: EX, EU, EG AX p = ¬ EX ¬p AG p = ¬ EF ¬p AF p = ¬ EG ¬p p AU q = ¬( (¬q EU (¬p ∧¬q)) ∨ EG ¬ q) EF p = True EU p • Another CTL basis: EX, EU, AU CTL Properties s2s1 s4s3 Transition System Computation Tree s4 s3 s3 s1 s2 ... . . . s3s4 s1 . . . ... . . . s4 s1 . . . p p p p p p s3 |= p s4 |= p s1 |= ¬ p s2 |= ¬ p s3 |= EX p s3 |= EX ¬ p s3 |= ¬ AX p s3 |= ¬ AX ¬ p s3 |= EG p s3 |= ¬ EG ¬ p s3 |= AF p s3 |= EF ¬ p s3 |= ¬ AF ¬ p p p CTL Model Checking • Given a transition system T= (S, I, R) and a CTL property p T |= p iff for all initial state s ∈ I, s |= p Model checking problem: Given a transition system T and a CTL property p, determine if T is a model for p (i.e., if T |=p) For example: T |=? AG ( ¬ (pc1=c ∧ pc2=c)) T |=? AG(pc1=w ⇒ AF(pc1=c)) ∧ AG(pc2=w ⇒ AF(pc2=c)) • Question: Are CTL and LTL equivalent? CTL vs. LTL • CTL and LTL are not equivalent – There are properties that can be expressed in LTL but cannot be expressed in CTL • For example: FG p – There are properties that can be expressed in CTL but cannot be expressed in LTL • For example: AG(EF p) • Hence, expressive power of CTL and LTL are not comparable CTL* • CTL* is a temporal logic which is strictly more powerful than CTL and LTL • CTL* also uses the temporal operators X, F, G, U and the path quantifiers A and E, but temporal operators can also be used without path quantifiers • The following CTL* property cannot be expressed in CTL or LTL – A(FG p) ∨ AG(EF p) 6 Automated Verification of Finite State Systems [Clarke and Emerson 81], [Queille and Sifakis 82] CTL Model checking problem: Given a transition system T = (S, I, R), and a CTL formula f, does the transition system satisfy the property? CTL model checking problem can be solved in O(|f| × (|S|+|R|)) Note that the complexity is linear in the size of the transition system – Recall that the size of the transition system is exponential in the number of variables and concurrent components (this is called the state space explosion problem) CTL Model Checking Algorithm • Translate the formula to a formula which uses the basis – EX p, EG p, p EU q • Start from the innermost (non-atomic) subformulas and label the states in the transition system with the subformulas that hold in that state – Initially states are labeled with atomic properties • Each (temporal or boolean) operator has to be processed once • Computation of each subformula takes O(|S|+|R|) CTL Model Checking Algorithm • EX p is easy to do in O(|S|+|R|) – All the nodes which have a next state labeled with p should be labeled with EX p • p EU q: Find the states which are the source of a path where p U q holds – Equivalently, find the nodes which reach a node that is labeled with q by a path where each node is labeled with p – Label such nodes with p EU q – It is a reachability problem which can be solved in O(|S|+|R|) CTL Model Checking Algorithm • EG p: Find infinite paths where each node is labeled with p and label nodes in such paths with EG p – First remove all the states which do not satisfy p from the transition graph – Compute the strongly connected components of the remaining graph and then find the nodes which can reach the strongly connected components (both of which can be done in O(|S|+|R|) – Label the nodes in the strongly connected components and that can reach the strongly connected components with EG p Verification vs. Falsification • Verification: – Show: initial states ⊆ truth set of p • Falsification: – Find: a state ∈ initial states ∩ truth set of ¬p – Generate a counter-example starting from that state • CTL model checking algorithm can also generate a counter- example path if the property is not satisfied – without increasing the complexity • The ability to find counter-examples is one of the biggest strengths of the model checkers What About LTL and CTL* Model Checking? • The complexity of the model checking problem for LTL and CTL* are: – (|S|+|R|) × 2O(|f|) • Typically the size of the formula is much smaller than the size of the transition system – So the exponential complexity in the size of the formula is not very significant in practice 7 Temporal Properties ≡ Fixpoints [Emerson and Clarke 80] Here are some interesting CTL equivalences: AG p = p ∧ AX AG p EG p = p ∧ EX EG p AF p = p ∨ AX AF p EF p = p ∨ EX EF p p AU q = q ∨ (p ∧ AX (p AU q)) p EU q = q ∨ (p ∧ EX (p EU q)) Note that we wrote the CTL temporal operators in terms of themselves and EX and AX operators Functionals • Given a transition system T=(S, I, R), we will define functions from sets of states to sets of states – F : 2S → 2S • For example, one such function is the EX operator (which computes the precondition of a set of states) – EX : 2S → 2S which can be defined as: EX(p) = { s | (s,s’) ∈ R and s’ ∈ p } Abuse of notation: I am using p to denote the set of states which satisfy the property p Functionals • Now, we can think of all temporal operators also as functions from sets of states to sets of states • For example: AX p = ¬EX(¬p) or if we use the set notation AX p = (S - EX(S - p)) Abuse of notation: I will use the set and logic notations interchangeably. Logic Set p ∧ q p ∩ q p ∨ q p ∪ q ¬p S – p False ∅ True S Lattice The set of states of the transition system forms a lattice: • lattice 2S • partial order ⊆ • bottom element ∅ • top element S • Least upper bound ∪ (aka join) operator • Greatest lower bound ∩ (aka meet) operator Temporal Properties ≡ Fixpoints Based on the equivalence EF p = p ∨ EX EF p we observe that EF p is a fixpoint of the following function: F y = p ∨ EX y F (EF p) = EF p In fact, EF p is the least fixpoint of F, which is written as: EF p = µ y . p ∨ EX y Based on the equivalence EG p = p ∧ AX EG p we observe that EG p is a fixpoint of the following function: F y = p ∧ EX y F (EG p) = EG p In fact, EG p is the greatest fixpoint of F, which is written as: EG p = ν y . p ∧ EX y Fixpoint Characterizations Fixpoint Characterization Equivalences AG p = ν y . p ∧ AX y AG p = p ∧ AX AG p EG p = ν y . p ∧ EX y EG p = p ∧ EX EG p AF p = µ y . p ∨ AX y AF p = p ∨ AX AF p EF p = µ y . p ∨ EX y EF p = p ∨ EX EF p p AU q = µ y . q ∨ (p ∧ AX (y)) p AU q=q ∨ (p ∧ AX (p AU q)) p EU q = µ y . q ∨ (p ∧ EX (y)) p EU q = q ∨ (p ∧ EX (p EU q)) 10 Symbolic Pre-condition Computation • Remember the function EX : 2S → 2S which is defined as: EX(p) = { s | (s,s’) ∈ R and s’ ∈ p } • We can symbolically compute pre as follows EX(p) ≡ ∃V’ R ∧ p[V’ / V] – V : current-state boolean variables – V’ : next-state boolean variables – p[V’ / V] : rename variables in p by replacing current- state variables with the corresponding next-state variables – ∃V’ f : existentially quantify out all the variables in V’ from f Renaming • Assume that we have two variables x, y. • Then, V = {x, y} and V’={x’, y’} • Renaming example: Given p ≡ x ∧ y : p[V’ / V] ≡ x ∧ y [V’ / V] ≡ x’ ∧ y’ Existential Quantifier Elimination • Given a boolean formula f and a single variable v ∃v f ≡ f[True/v] ∨ f[False/v] i.e., to existentially quantify out a variable, first set it to true then set it to false and then take the disjunction of the two results • Example: f ≡ ¬x ∧ y ∧ x’ ∧ y’ ∃V’ f ≡ ∃x’ ( ∃y’ (¬x ∧ y ∧ x’ ∧ y’) ) ≡ ∃x’ ((¬x ∧ y ∧ x’ ∧ y’ )[T/y’] ∨ (¬x ∧ y ∧ x’ ∧ y’ )[F/y’]) ≡ ∃x’ (¬x ∧ y ∧ x’ ∧T ∨ ¬x ∧ y ∧ x’ ∧ F ) ≡ ∃x’ ¬x ∧ y ∧ x’ ≡ (¬x ∧ y ∧ x’)[T/x’] ∨ (¬x ∧ y ∧ x’)[F/x’]) ≡ ¬x ∧ y ∧ T ∨ ¬x ∧ y ∧ F ≡ ¬x ∧ y An Extremely Simple Example Variables: x, y: boolean Set of states: S = {(F,F), (F,T), (T,F), (T,T)} S ≡ True Initial condition: I ≡ ¬ x ∧ ¬ y Transition relation (negates one variable at a time): R ≡ x’=¬x ∧ y’=y ∨ x’=x ∧ y’=¬y (= means ↔) F,T F,F T,T T,F An Extremely Simple Example Given p ≡ x ∧ y, compute EX(p) EX(p) ≡ ∃V’ R ∧ p[V’ / V] ≡ ∃V’ R ∧ x’ ∧ y’ ≡ ∃V’ (x’=¬x ∧ y’=y ∨ x’=x ∧ y’=¬y ) ∧ x’ ∧ y’ ≡ ∃V’ (x’=¬x ∧ y’=y) ∧ x’ ∧ y’ ∨ (x’=x ∧ y’=¬y) ∧ x’ ∧ y’ ≡ ∃V’ ¬x ∧ y ∧ x’ ∧ y’ ∨ x ∧ ¬y ∧ x’ ∧ y’ ≡ ¬x ∧ y ∨ x ∧ ¬y EX(x ∧ y) ≡ ¬x ∧ y ∨ x ∧ ¬y In other words EX({(T,T)}) ≡ {(F,T), (T,F)} F,T F,F T,T T,F An Extremely Simple Example Let’s compute compute EF(x ∧ y) The fixpoint sequence is False, x∧y , x∧y ∨ EX(x∧y) , x∧y ∨ EX (x∧y ∨ EX(x∧y) ) , ... If we do the EX computations, we get: False, x ∧ y , x ∧ y ∨ ¬x ∧ y ∨ x ∧ ¬y, True EF(x ∧ y) ≡ True In other words EF({(T,T)}) ≡ {(F,F),(F,T), (T,F),(T,T)} F,T F,F T,T T,F 0 1 2 3 1 2 3 11 An Extremely Simple Example • Based on our results, for our extremely simple transition system T=(S,I,R) we have I ⊆ EF(x ∧ y) (⊆ corresponds to implication) hence: T |= EF(x ∧ y) (i.e., there exists a path from each initial state where eventually x and y both become true at the same time) I ⊆ EX(x ∧ y) hence: T |= EX(x ∧ y) (i.e., there does not exist a path from each initial state where in the next state x and y both become true) An Extremely Simple Example • Let’s try one more property AF(x ∧ y) • To check this property we first convert it to a formula which uses only the temporal operators in our basis: AF(x ∧ y) ≡ ¬ EG(¬(x ∧ y)) If we can find an initial state which satisfies EG(¬(x ∧ y)), then we know that the transition system T, does not satisfy the property AF(x ∧ y) An Extremely Simple Example Let’s compute compute EG(¬(x ∧ y)) The fixpoint sequence is True, ¬x ∨ ¬y, (¬x ∨ ¬y) ∧ EX(¬x ∨ ¬y) , … If we do the EX computations, we get: True, ¬x ∨ ¬y, ¬x ∨ ¬y, EG(¬(x ∧ y)) ≡ ¬x ∨ ¬y Since I ∩ EG(¬(x ∧ y)) ≠ ∅ we conclude that T |= AF(x ∧ y) F,T F,F T,T T,F 0 1 2 0 1 Symbolic CTL Model Checking Algorithm • Translate the formula to a formula which uses the basis – EX p, EG p, p EU q • Atomic formulas can be interpreted directly on the state representation • For EX p compute the precondition using existential variable elimination as we discussed • For EG and EU compute the fixpoints iteratively Symbolic Model Checking Algorithm Check(f : CTL formula) : boolean logic formula case: f ∈ AP return f; case: f ≡ ¬p return ¬Check(p); case: f ≡ p ∧q return Check(p) ∧ Check(q); case: f ≡ p ∨ q return Check(p) ∨ Check(q); case: f ≡ EX p return ∃V’ R ∧ Check(p) [V’ / V]; Symbolic Model Checking Algorithm Check(f) … case: f ≡ EG p Y := True; P := Check(p); Y’ := P ∧ Check(EX(Y)); while (Y ≠ Y’) { Y := Y’; Y’ := P ∧ Check(EX(Y)); } return Y; 12 Symbolic Model Checking Algorithm Check(f) … case: f ≡ p EU q Y := False; P := Check(p); Q := Check(q); Y’ := Q ∨ P ∧ Check(EX(Y)); while (Y ≠ Y’) { Y := Y’; Y’ := Q ∨ P ∧ Check(EX(Y)); } return Y; Binary Decision Diagrams (BDDs) • Ordered Binary Decision Diagrams (BDDs) – An efficient data structure for boolean formula manipulation – There are BDD packages available: (for example CUDD from Colorado University) • BDD data structure can be used to implement the symbolic model checking algorithm discussed above • BDDs are a canonical representation for boolean logic formulas – given two boolean logic formulas F and G, if F and G are equivalent their BDD representations will be identical Binary Decision Trees Fix a variable order, in each level of the tree branch on the value of the variable in that level • Examples for boolean formulas on two variables Variable order: x, y F F F T T T x y y T F T T x ∨ y F F F T T F x y y F F T T x ∧ y F F F T T F x y y T F T T x F F F T T F x y y F F T F False BDDs • Repeatedly apply the following transformations to a binary decision tree: – Remove duplicate terminals – Remove duplicate non-terminals – Remove redundant tests • These transformations transform the tree to a directed acyclic graph Binary Decision Trees vs. BDDs F F F T T T x y y T F T T x ∨ y F F F T T F x y y F F T T x ∧ y F F F T T F x y y T F T T x F F F T T F x y y F F T F False F F F T T T x y F F F T T T x y F F T T x F Good News About BDDs • Given BDDs for two boolean logic formulas F and G – The BDDs for F ∧ G and F ∨ G are of size |F| × |G| (and can be computed in that time) – The BDD for ¬F can be computed in and is of size |F| (and can be computed in that time) – F ≡? G can be checked in constant time – Satisfiability of F can be checked in constant time • No, this does not mean that you cane solve SAT in constant time
Docsity logo



Copyright © 2024 Ladybird Srl - Via Leonardo da Vinci 16, 10126, Torino, Italy - VAT 10816460017 - All rights reserved