Integrating Model Checking and Inductive Logic Programming Dalal Alrajeh 1 , Alessandra Russo 1 , Sebastian Uchitel 1,2 , and Jeff Kramer 1 1 Imperial College London {da04,ar3,su2,jk}@doc.ic.ac.uk 2 University of Buenos Aires/CONICET s.uchitel@dc.uba.ar Abstract. Inductive Logic Programming can be used to provide au- tomated support to help correct the errors identified by model check- ing, which in turn provides the relevant context for learning hypotheses that are meaningful within the domain of interest. Model checking and Inductive Logic Programming can thus be seen as two complementary approaches with much to gain from their integration. In this paper we present a general framework for such an integration, discuss its main characteristics and present an overview of its application. 1 Introduction Model Checking is an automated technique for verifying formal artefacts. It has been successfully used to verify system designs and properties in a variety of application domains, ranging from hardware and software systems to biological systems. A model checker requires a model provided in some formal description language and a semantic property that such model is expected to satisfy. The model checker then automatically checks the validity of the specified property in the model semantics. If the property is found to not hold, a counterexample is generated which shows how the property can be falsified. The automatic generation of counterexamples is one of model checking’s pow- erful features for system fault detection. Counterexamples are meant to help engineers in the tasks of identifying the cause of a property violation and cor- recting the model. However, these tasks are far from trivial with little automated support. Even in relatively small models such tasks can be very complex since (i) counterexamples are expressed in terms of the model semantics rather than the modelling language, (ii) counterexamples show the symptom and not the cause of the violation and (iii) manual modifications to the model may fail to resolve the problem and even introduce violations to other desirable properties. Inductive Logic Programming (ILP), on the other hand, is at the intersec- tion of inductive learning and logic programming and is concerned with learning general principles (in the form of logic programs) that explain (positive and negative) observations with respect to an existing background knowledge also expressed as a logic program. As the search space for hypotheses might be very large (sometimes infinite), ILP methods make use of a language bias that con- strains the search by defining the syntactic structure of the hypotheses to be This work is financially supported by ERC project PBM - FIMBSE (No. 204853).