  Establishing the absence of deadlocks is important in many applications of
formal methods. The use of model checking for finding deadlocks in formal
models is often limited. In this paper we propose a constraint-based approach
to finding deadlocks employing the ProB constraint solver. We present the
general technique, as well as various improvements that had to be performed on
ProB's Prolog kernel, such as reification of membership and arithmetic
constraints. This work was guided by an industrial case study, where a team
from Bosch was modeling a cruise control system. Within this case study, ProB
was able to quickly find counter examples to very large deadlock-freedom
constraints. In the paper, we also present other successful applications of
this new technique. Experiments using SAT and SMT solvers on these constraints
were thus far unsuccessful.
