Solution

ID: past-exam-of-the-computer-science-course-of-the-university-of-oxford/2015/computer-aided-formal-verification/3/f/solution

Yes: the procedure always terminates after finitely many steps. If an iteration does not return, then . Thus at least one state is permanently removed. A finite set of states can suffer at most such strict decreases, after which the next equality test must return. Therefore the procedure makes at most
when started from , counting the final evaluation that detects equality. The bound also covers , where the first evaluation already returns. Each evaluation inspects finitely many states and successors, so every individual step terminates as well. Finiteness, rather than monotonicity alone, supplies this finite termination bound.

New to topics? Read the docs here!