Using B and ProB for Data Validation Projects

Constraint satisfaction and data validation problems can be expressed very elegantly in state-based formal methods such as B. However, is B suited for developing larger applications and are there existing tools that scale for these projects? In this paper, we present our experiences on two real-world data validation projects from different domains which are based on the B language and use ProB as the central validation tool. The first project is the validation of university timetables, and the second project is the validation of railway topologies. Based on these two projects, we present a general structure of a data validation project in B and outline common challenges along with various solutions. We also discuss possible evolutions of the B language to make it even more suitable for such projects.

[1]  M.N. Sastry,et al.  Structure and interpretation of computer programs , 1986, Proceedings of the IEEE.

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

[3]  Michael Leuschel,et al.  Towards B as a High-Level Constraint Modelling Language - Solving the Jobs Puzzle Challenge , 2014, ABZ.

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

[5]  Michael Leuschel,et al.  From Animation to Data Validation: The ProB Constraint Solver 10 Years On , 2014 .

[6]  Mitchell Wand,et al.  A Theory of Hygienic Macros , 2008, ESOP.

[7]  Daniel Jackson,et al.  αRby - An Embedding of Alloy in Ruby , 2014, ABZ.

[8]  Hana Rudová,et al.  University Course Timetabling with Soft Constraints , 2002, PATAT.

[9]  Daniel Jackson,et al.  Software Abstractions - Logic, Language, and Analysis , 2006 .

[10]  Gerald J. Sussman,et al.  Structure and interpretation of computer programs , 1985, Proceedings of the IEEE.

[11]  Rahma Ben Ayed,et al.  B Formal Validation of ERTMS/ETCS Railway Operating Rules , 2014, ABZ.

[12]  Calvin C. Gotlieb,et al.  The Construction of Class-Teacher Time-Tables , 1962, IFIP Congress.

[13]  Paul Clements,et al.  Software product lines - practices and patterns , 2001, SEI series in software engineering.

[14]  Michael Leuschel,et al.  Model-based problem solving for university timetable validation and improvement , 2018, Formal Aspects of Computing.

[15]  Michael Leuschel,et al.  Formally Checking Large Data Sets in the Railways , 2012, ArXiv.

[16]  Frédéric Badeau,et al.  Using B as a High Level Programming Language in an Industrial Project: Roissy VAL , 2005, ZB.

[17]  Frédéric Badeau,et al.  Formal Data Validation with Event-B , 2012, ArXiv.

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

[19]  Laurent Voisin,et al.  Formal Implementation of Data Validation for Railway Safety-Related Systems with OVADO , 2013, SEFM Workshops.

[20]  J. E. Nicholls,et al.  Understanding the differences between VDM and Z , 1994, SOEN.

[21]  Safaai Deris,et al.  Timetable planning using the constraint-based reasoning , 2000, Comput. Oper. Res..

[22]  Dominique Cansell,et al.  Validating and Animating Higher-Order Recursive Functions in B , 2009, Rigorous Methods for Software Construction and Analysis.

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

[24]  Stefan Helber,et al.  Application of a real-world university-course timetabling model solved by integer programming , 2007, OR Spectr..