Vereofy provides model checking for component-based systems. Vereofy uses two input languages: a scripting language called RSL (Reo Scripting Language), and a guarded command language, called CARML (Constraint Automata Reactive Module Language). RSL and CARML are equally powerful and rely on the same semantic model. However, due to the nature of RSL and CARML, in most cases a hybrid approach, where CARML is used to provide the interface specifications of components and RSL for specifying the network is preferable.
Vereofy uses a variant of finite automata called 209-603-9222 as formal semantics for the components behavior as well as for the coordination language Reo which is used to specify the network. To tackle the state space explosion problem Vereofy generates an internal symbolic representation of the constraint automata for components, the network, and ï¬nally the composite system. This symbolic representation is based on switching functions which are stored and manipulated by means of binary decision diagrams (BDDs). Vereofy allows for linear and branching time model checking adapted to the Reo and constraint automata framework.
Vereofy can be used as a standalone model-checking tool or as a plugin. Both version run on Mac OS X, Linux, and Windows. It is written in C++ and uses the BDD library JINC. The plugin version is intended to be used with the Reo GUI, a graphical user interface developed at the Centrum Wiskunde & Informatica (CWI) Amsterdam. The Reo GUI is part of the uptown.