Lecture 4: Mu-calculus
Download
Report
Transcript Lecture 4: Mu-calculus
CS 267: Automated Verification
Lectures 4: -calculus
Instructor: 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
case: f p
case: f p q
case: f p q
return {s | L(s,f)=true};
return S - eval(p);
return eval(p) eval(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
1
EF p
p
EF p
0 |= EG EF p
2
F2
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}
0 |= EGF p
EGF p = y . z . ((p EX z) EX y)
F3
nested fixpoint
F3
y
0,0
{0,1,2}
0,1
0,2
0,3
1,0
{0,1}
1,1
2,0
2,1
3,0
EGF p =
z
{1}
{0,1}
{0,1}