Translating Alloy and Extensions to Classical B
In this article, we introduce a denotational translation of the specification language Alloy to classical B.
In this article, we introduce a denotational translation of the specification language Alloy to classical B.
The SMT-LIB language and the B language are both based on predicate logic and share the definition of several operators.
DECLARE 2019, Cottbus, Germany
Software is notoriously hard to test.
Employing formal methods for software development usually involves using a multitude of tools such as model checkers and provers.
Testing is an important aspect in professional software development, both to avoid and identify bugs as well as to increase maintainability.
Non-deterministic specifications play a central role in the use of formal methods for software development.
In this paper, we introduce a translation of the specification language Alloy to classical B.
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 a CLP(FD)-based constraint solver able to deal with unbounded domains.
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.
Most state-based formal methods, like B, Event-B or Z, provide support for static typing.
Initially, the ProB disprover used constraint solving to try and find counterexamples to proof obligations generated from Event-B models.
Most state-based formal methods, like B, Event-B or Z, provide support for static typing.
The ProB disprover uses constraint solving to try and find counter examples to proof obligations.
In a previous work, we applied constraint solving techniques to problems like invariant preservation and deadlock freedom checking.