80 likes | 211 Vues
This lecture explores μ-calculus, an advanced form of temporal logic that includes atomic properties, boolean connectives, and precondition operators. It emphasizes the significance of least and greatest fixpoint operators and their application in model checking. The course also covers the expressiveness of μ-calculus in relation to CTL* properties and discusses the intricacies of nested fixpoints within fixpoint computations. Participants will learn how to construct a μ-calculus model checker and the essential algorithms involved, enhancing their grasp of automated verification techniques.
E N D
CS 267: Automated VerificationLectures 4: -calculusInstructor: Tevfik Bultan
-Calculus -Calculus is a temporal logic which consist of the following: • Atomic properties AP • Boolean connectives: , , • Precondition operator: EX • Least and greatest fixpoint operators: y . F y and y. F y • F must be syntactically monotone in y • meaning that all occurrences of y in within F fall under an even number of negations
-Calculus • -calculus is a powerful logic • Any CTL* property can be expressed in -calculus • So, if you build a model checker for -calculus you would handle all the temporal logics we discussed: LTL, CTL, CTL* • One can write a -calculus model checker using the basic ideas about fixpoint computations that we discussed • However, there is one complication • Nested fixpoints!
Mu-calculus Model Checking Algorithm eval(f : mu-calculus formula) : a set of states case: f AP return {s | L(s,f)=true}; case: f p return S - eval(p); case: f p q return eval(p) eval(q); case: f p q return eval(p) eval(q); case: f EX p return EX(eval(p));
Mu-calculus Model Checking Algorithm eval(f) … case: f y . g(y) y := False; repeat { yold := y; y := eval(g(y)); } until y = yold return y;
Mu-calculus Model Checking Algorithm eval(f) … case: f y . g(y) y := True; repeat { yold := y; y := eval(g(y)); } until y = yold return y;
Nested Fixpoints • Here is a CTL property EG EF p = y . ( z . p EX z) EX y • The fixpoints are not nested. • Inner fixpoint is computed only once and then the outer fixpoint is computed • Fixpoint characterizations of CTL properties do not have nested fixpoints • Here is a CTL* property EGF p = y . z . ((p EX z) EX y) • The fixpoints are nested. • Inner fixpoint is recomputed for each iteration of the outer fixpoint
Nested Fixpoint Example 0 |= EGF p 0 1 2 EGF p = y . z . ((p EX z) EX y) p EF p EF p F3 F2 0 |= EG EF p nested fixpoint F3y z 0,0 {0,1,2} 0,1 {1} 0,2 {0,1} 0,3 {0,1} 1,0 {0,1} 1,1 2,0 2,1 3,0 EG EF p = y . ( z . p EX z) EX y F1 EF p fixpoint EG {0,1} fixpoint F1() = {1} F12() = {0,1} F13() = {0,1} S={0,1,2} F2(S) = {0,1} F22(S) = {0} F23(S) = {0} EG EF p = {0} EGF p =