The ProB Animator and Model Checker

Revision as of 08:22, 30 September 2017 by Michael Leuschel (talk | contribs)

ProB is an animator, constraint solver and model checker for the B-Method (see the B-Method site of Clearsy). It allows fully automatic animation of B specifications, and can be used to systematically check a specification for a wide range of errors. The constraint-solving capabilities of ProB can also be used for model finding, deadlock checking and test-case generation.

The B language is rooted in predicate logic, arithmetic and set theory and provides support for data structures such as (higher-order) relations, functions and sequences. In addition to the B language, ProB also supports Event-B, CSP-M, TLA+, and Z. ProB can be installed within Rodin, where it comes with BMotionStudio to easily generate domain specific graphical visualizations. (See for an overview of ProB's components).

ProB is being used within Siemens, Alstom, Thales and several other companies for data validation of complicated properties for safety critical systems. For commercial support contact the spin-off company Formal Mind or Michael Leuschel. It can be used within Atelier-B as a disprover and prover. Automatically generated test coverage reports are also available.

News

11/7/2017 ProB 1.7.0 is available. Highlights: improved Latex document generation, improved XML/CSV data import and export, RULE DSL language, improvements in solver.

20/10/2016 ProB 1.6.1 is available. Highlights: Latex document generation, LET and IF-THEN-ELSE for expressions and predicates.

22/4/2016 ProB 1.6.0 is available. Highlights: directed model checking, Z3 as backend, B line comments and unicode symbols.

19/2/2015 ProB 1.5.0 is available. MC/DC coverage for guards/invariants, improved TLC interface.

3/6/2014 ProB supports Event-B Theories.

30/03/2012 Online ProB Logic Calculator is available.

More in Release History

Implementation

The core of ProB is implemented in SICStus Prolog (but can be run without a SICStus Prolog license). The ProB constraint solver is implemented using co-routining and the CLP(FD) finite domain library of SICStus. An alternate constraint solver based on Kodkod (and thus SAT) is also available within ProB, as is an integration with the SMT solver Z3. An alternate model checking engine (using TLC) well-suited for lower level B specifications is also available. An integration with LTSmin is also available. The ProB Licence can be found here.

Features

ProB covers a large part of B, and we are striving towards full coverage of Atelier B constructs. ProB supports B features such as non-deterministic operations, arbitrary quantification, sets, sequences, functions, lambda abstractions, set comprehensions, records, and many more. ProB does support multiple machines, refinements, and implementations. ProB can also be used for automated refinement checking and LTL model checking. It also supports almost full CSP-M process descriptions, to be used on their own or to guide B machines for specification and property validation. The state space of the specifications can be graphically visualized. ProB also supports Z specifications (ProB in this context is sometimes called ProZ) as well as TLA+ specifications. We now also have an online ProB Logic Calculator.