ALDB: Debugging Alloy Models of Behavioural Requirements

Declarative modelling languages, such as Alloy, are becoming popular for describing behavioural requirements very early in system development because automated analysis of these models provides valuable feedback. Typically, these languages are supported by constraint solvers (SAT, SMT) for providing instances or model checking properties. However, a user can quickly find simple bugs and gain confidence in their model by concretely simulating steps of the transition system. We present ALDB: a debugger for models of transition systems written in the Alloy language. It provides a familiar debugging interface to walk around in the behaviour of the model, enabling users to quickly explore scenarios, find errors via concrete simulation, and incrementally build up to bounded model checking.