Writing a Model Checker in 80 Days: Reusable Libraries and Custom Implementation

Jessica Petrasch, Jan-Hendrik Oepen, Sebastian Krings, Moritz Gericke
2019
During a course on model checking we developed BMoth, a full-stack model checker for classical B, featuring both explicit-state and symbolic model checking. Given that we only had a single university term to finish the project, a particular focus was on reusing existing libraries to reduce implementation workload. In the following, we report on a selection of reusable libraries, which can be combined into a prototypical model checker relatively easily. Additionally, we discuss where custom code
more » ... depending on the specification language to be checked is needed and where further optimization can take place. To conclude, we compare to other model checkers for classical B.
doi:10.14279/tuj.eceasst.76.1074.1041 fatcat:klq33a3um5hthljjx2rhxk7vxe