D45 Model Checking
Overview
TODO An overview of the work done about model checking.
State Space Reduction, Compression and Hashing
Driven by SSF usage of ProB: state compression: simplify states stored so that they require less memory. This was achieved without compromising speed. If the preference COMPRESSION is set to true, then ProB will also detect common (sub-)expressions and store them only once. E.g., when several states have the same same value for a given variable x then its value will only be stored once.
Related to this aspect, the hashing of ProB states was improved on 64-bit architectures, which is also important in the context of detecting common subexpressions for sharing. We have also implemented a SHA1 hashing function for Prolog terms, but it is not yet used in the production version of ProB.
improved performance for hash symmetry markers: both reduction in size and runtime.
In addition, many improvements in constraint solving kernel.
Constraint-Based Checking
Improved Constraint-based checking for deadlocks, invariants and event sequences (used in MBT).
New Features
Experiments with Theory Plugin
Support of finite operator
Improved detection of infinite functions, and improved support for them
Detection when infinite sets had to be approximated
Experiments
Conducted comparison with TLA+ model checker TLC
Motivations
TODO To be completed.
Choices / Decisions
TODO To be completed.
Available Documentation
TODO To be completed.
Status
TODO To be completed.