Validating B, Z and TLA + Using ProB and Kodkod

We present the integration of the Kodkod high-level interface to SAT-solvers into the kernel of ProB. As such, predicates from B, Event-B, Z and TLA + can be solved using a mixture of SAT-solving and ProB’s own constraint-solving capabilities developed using constraint logic programming: the first-order parts which can be dealt with by Kodkod and the remaining parts solved by the existing ProB kernel. We also present an empirical evaluation and analyze the respective merits of SAT-solving and classical constraint solving. We also compare to using SMT solvers via recently available translators for Event-B.

[1]  Daniel Jackson,et al.  Alloy: a lightweight object modelling notation , 2002, TSEM.

[2]  Bruno Legeard,et al.  Automated Boundary Testing from Z and B , 2002, FME.

[3]  Peter A. Lindsay,et al.  FME 2002:Formal Methods—Getting IT Right , 2002, Lecture Notes in Computer Science.

[4]  Leslie Lamport,et al.  Specifying Systems: The TLA+ Language and Tools for Hardware and Software Engineers [Book Review] , 2002, Computer.

[5]  J. R. Abrial,et al.  The B-Book: Mathematics , 1996 .

[6]  Monica S. Lam,et al.  Cloning-based context-sensitive pointer alias analysis using binary decision diagrams , 2004, PLDI '04.

[7]  Alexander Romanovsky,et al.  SAL, Kodkod, and BDDs for Validation of B Models. Lessons and Outlook. , 2009 .

[8]  Michael Leuschel,et al.  Constraint-based deadlock checking of high-level specifications , 2011, Theory Pract. Log. Program..

[9]  Alfred V. Aho,et al.  Compilers: Principles, Techniques, and Tools , 1986, Addison-Wesley series in computer science / World student series edition.

[10]  Michael J. Butler,et al.  ProB: A Model Checker for B , 2003, FME.

[11]  Ana Cavalcanti,et al.  FM 2009: Formal Methods, Second World Congress, Eindhoven, The Netherlands, November 2-6, 2009. Proceedings , 2009, FM.

[12]  Michael Leuschel,et al.  Automated Property Verification for Large Scale B Models , 2009, FM.

[13]  Seth D. Bergmann,et al.  Compilers , 1973, CSC '73.

[14]  Joao Marques-Silva,et al.  Model Checking Event-B by Encoding into Alloy , 2008, ABZ.

[15]  John Derrick,et al.  Z2SAL: a translation-based model checker for Z , 2009, Formal Aspects of Computing.

[16]  Kevin Lano,et al.  Slicing of UML models using model transformations , 2010, MODELS'10.

[17]  Henrik I. Christensen Lessons and Outlook , 2010, Cognitive Systems.

[18]  Leslie Lamport,et al.  Model Checking TLA+ Specifications , 1999, CHARME.

[19]  Stefania Gnesi,et al.  FME 2003: Formal Methods: International Symposium of Formal Methods Europe, Pisa, Italy, September 8-14, 2003. Proceedings , 2003, Lecture Notes in Computer Science.

[20]  John Derrick,et al.  Z2SAL - Building a Model Checker for Z , 2008, ABZ.

[21]  Jonathan P. Bowen,et al.  ZB 2002:Formal Specification and Development in Z and B , 2002, Lecture Notes in Computer Science.

[22]  J. R. Abrial,et al.  The B-Book: Programming , 1996 .

[23]  Daniel Balasubramanian,et al.  Reasoning about metamodeling with formal specifications and automatic proofs , 2011, MODELS'11.

[24]  Michael J. Butler,et al.  An Approach to Combining B and Alloy , 2002, ZB.

[25]  Sarfraz Khurshid,et al.  Proceedings of the Third international conference on Abstract State Machines, Alloy, B, VDM, and Z , 2012 .

[26]  Lindsay Groves,et al.  Translating Z to Alloy , 2010, ASM.

[27]  Emina Torlak,et al.  Kodkod: A Relational Model Finder , 2007, TACAS.

[28]  Abz,et al.  Abstract State Machines, B and Z, First International Conference, ABZ 2008, London, UK, September 16-18, 2008. Proceedings , 2008, ABZ.

[29]  Nikolaj Bjørner,et al.  Z3: An Efficient SMT Solver , 2008, TACAS.

[30]  Michael Leuschel,et al.  Under consideration for publication in Formal Aspects of Computing Automated Property Verification for Large Scale B Models with ProB , 2010 .

[31]  Pascal Fontaine,et al.  SMT Solvers for Rodin , 2012, ABZ.

[32]  Frank Waters,et al.  The B Book , 1971 .

[33]  George J. Milne,et al.  Correct Hardware Design and Verification Methods , 2003, Lecture Notes in Computer Science.

[34]  Rajeev Alur,et al.  A Temporal Logic of Nested Calls and Returns , 2004, TACAS.

[35]  Johan Wittocx,et al.  Grounding FO and FO(ID) with Bounds , 2010, J. Artif. Intell. Res..