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
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.