14.08.2013 Views

Reactive Systems: Modelling, Specification and Verification - Cs.ioc.ee

Reactive Systems: Modelling, Specification and Verification - Cs.ioc.ee

Reactive Systems: Modelling, Specification and Verification - Cs.ioc.ee

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

4.2. TARSKI’S FIXED POINT THEOREM 93<br />

of elements of D. As D is finite, the sequence must be eventually constant, i.e.,<br />

there is an m such that f k (⊥) = f m (⊥) for all k ≥ m. In particular,<br />

f(f m (⊥)) = f m+1 (⊥) = f m (⊥) ,<br />

which is the same as saying that f m (⊥) is a fixed point for f.<br />

To prove that f m (⊥) is the least fixed point for f, assume that d is another<br />

fixed point for f. Then we have that ⊥ ⊑ d <strong>and</strong> therefore, as f is monotonic,<br />

that f(⊥) ⊑ f(d) = d. By repeating this reasoning m−1 more times we get that<br />

f m (⊥) ⊑ d. We can therefore conclude that f m (⊥) is the least fixed point for f.<br />

The proof of the statement that characterizes largest fixed points is similar, <strong>and</strong><br />

is left as an exercise for the reader. ✷<br />

Exercise 4.8 (For the theoretically minded) Fill in the details in the proof of the<br />

above theorem. <br />

Example 4.3 Consider the function f : 2 {0,1} → 2 {0,1} defined by<br />

f(X) = X ∪ {0} .<br />

This function is monotonic, <strong>and</strong> 2 {0,1} is a complete lattice, when ordered using set<br />

inclusion, with the empty set as least element <strong>and</strong> {0, 1} as largest element. The<br />

above theorem gives an algorithm for computing the least <strong>and</strong> largest fixed point<br />

of f. To compute the least fixed point, we begin by applying f to the empty set.<br />

The result is {0}. Since, we have added 0 to the input of f, we have not found our<br />

least fixed point yet. Therefore we proc<strong>ee</strong>d by applying f to {0}. We have that<br />

f({0}) = {0} ∪ {0} = {0} .<br />

It follows that, not surprisingly, {0} is the least fixed point of the function f.<br />

To compute the largest fixed point of f, we begin by applying f to the top<br />

element in our lattice, namely the set {0, 1}. Observe that<br />

f({0, 1}) = {0, 1} ∪ {0} = {0, 1} .<br />

Therefore {0, 1} is the largest fixed point of the function f. <br />

Exercise 4.9 Consider the function g : 2 {0,1,2} → 2 {0,1,2} defined by<br />

g(X) = (X ∩ {1}) ∪ {2} .<br />

Use Theorem 4.2 to compute the least <strong>and</strong> largest fixed point of g.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!