Explain how BDD-based model checking computes the set of states reachable from the initial states of a Kripke structure.
Think about your answer, then reveal below.
Model answer: Start with the BDD representing the initial state set I. In each iteration, compute the image: apply the transition relation (also a BDD over current-state and next-state variables) to the current reachable set, existentially quantifying out the current-state variables to obtain the set of next states. Take the union with the current reachable set. Repeat until a fixed point — the reachable set stops growing. All operations (image computation, union, fixed-point check) are BDD operations, never enumerating individual states.
This fixed-point computation is the core of symbolic model checking. The transition relation R(s, s') is encoded as a BDD over 2n Boolean variables (n for current state, n for next state). The image of a set S is computed as: exists s. (S(s) AND R(s,s')), yielding a BDD over next-state variables representing all possible successors. Renaming next-state variables back to current-state variables and taking the union with S gives the new reachable set. Convergence is guaranteed because the state space is finite.