Embedding SMT-LIB into B for Interactive Proof and Constraint Solving
The SMT-LIB language and the B language are both based on predicate logic and share the definition of several operators.
The SMT-LIB language and the B language are both based on predicate logic and share the definition of several operators.
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.
Constraint solving technology for declarative formal models has made considerable progress in recent years, and has many applications such as animation of high-level specifications, test case generation, or symbolic model checking.
The idea of verifying the correctness of software has been brought up in the early days of computing, for example by Alan Turing in 1949 or Robert W.
We present an integration of the constraint solving kernel of the ProB model checker with the SMT solver Z3.
The ProB disprover uses constraint solving to find counter-examples for B proof obligations.
Initially, the ProB disprover used constraint solving to try and find counterexamples to proof obligations generated from Event-B models.
The ProB disprover uses constraint solving to try and find counter examples to proof obligations.