Understanding the QuickXPlain Algorithm: Simple Explanation and Formal Proof

In his seminal paper of 2004, Ulrich Junker proposed the QuickXPlain algorithm, which provides a divide-and-conquer computation strategy to find within a given set an irreducible subset with a particular (monotone) property. Beside its original application in the domain of constraint satisfaction problems, the algorithm has since then found widespread adoption in areas as different as model-based diagnosis, recommender systems, verification, or the Semantic Web. This popularity is due to the frequent occurrence of the problem of finding irreducible subsets on the one hand, and to QuickXPlain's general applicability and favorable computational complexity on the other hand. However, although (we regularly experience) people are having a hard time understanding QuickXPlain and seeing why it works correctly, a proof of correctness of the algorithm has never been published. This is what we account for in this work, by explaining QuickXPlain in a novel tried and tested way and by presenting an intelligible formal proof of it. Apart from showing the correctness of the algorithm and excluding the later detection of errors (proof and trust effect), the added value of the availability of a formal proof is, e.g., (i) that the workings of the algorithm often become completely clear only after studying, verifying and comprehending the proof (didactic effect), (ii) the shown proof methodology can be used as a guidance for proving other recursive algorithms (transfer effect), and (iii) the possibility of providing "gapless" correctness proofs of systems that rely on (results computed by) QuickXPlain, such as numerous model-based debuggers (completeness effect).

[1]  Lakhdar Sais,et al.  Recording and Minimizing Nogoods from Restarts , 2007, J. Satisf. Boolean Model. Comput..

[2]  Nachum Dershowitz,et al.  A Scalable Algorithm for Minimal Unsatisfiable Core Extraction , 2006, SAT.

[3]  Alexander Nadel Boosting minimal unsatisfiable core extraction , 2010, Formal Methods in Computer Aided Design.

[4]  Inês Lynce,et al.  On Improving MUS Extraction Algorithms , 2011, SAT.

[5]  Zohar Manna,et al.  Property-directed incremental invariant generation , 2008, Formal Aspects of Computing.

[6]  Konstantin Schekotihin,et al.  A Generally Applicable, Highly Scalable Measurement Computation and Optimization Approach to Sequential Model-Based Diagnosis , 2017, ArXiv.

[7]  Gerhard Friedrich,et al.  Interactive ontology debugging: Two query strategies for efficient fault localization☆ , 2011, J. Web Semant..

[8]  G. Hanna,et al.  Proof and Proving , 1996 .

[9]  Zohar Manna,et al.  Checking Safety by Inductive Generalization of Counterexamples to Induction , 2007, Formal Methods in Computer Aided Design (FMCAD'07).

[10]  Gila Hanna,et al.  Some pedagogical aspects of proof , 1990 .

[11]  Ulrich Junker,et al.  QUICKXPLAIN: Preferred Explanations and Relaxations for Over-Constrained Problems , 2004, AAAI.

[12]  Aditya Kalyanpur,et al.  Debugging and Repair of OWL Ontologies , 2006 .

[13]  Brian C. Williams,et al.  Diagnosing Multiple Faults , 1987, Artif. Intell..

[14]  W. Quine On Cores and Prime Implicants of Truth Functions , 1959 .

[15]  Karem A. Sakallah,et al.  Algorithms for Computing Minimal Unsatisfiable Subsets of Constraints , 2007, Journal of Automated Reasoning.

[16]  Alexander Felfernig,et al.  An efficient diagnosis algorithm for inconsistent constraint sets , 2011, Artificial Intelligence for Engineering Design, Analysis and Manufacturing.

[17]  Thomas Eiter,et al.  Answer Set Programming: A Primer , 2009, Reasoning Web.

[18]  Gerhard Friedrich,et al.  RIO: Minimizing User Interaction in Ontology Debugging , 2012, SEMWEB.

[19]  Russell Greiner,et al.  A Correction to the Algorithm in Reiter's Theory of Diagnosis , 1989, Artif. Intell..

[20]  John McCarthy,et al.  Circumscription - A Form of Non-Monotonic Reasoning , 1980, Artif. Intell..

[21]  Matthew Horridge,et al.  Justification based explanation in ontologies , 2012 .

[22]  Gerhard Friedrich,et al.  On computing minimal conflicts for ontology debugging , 2008 .

[23]  Dietmar Jannach,et al.  MergeXplain: Fast Computation of Multiple Conflicts for Diagnosis , 2015, IJCAI.

[24]  Eliezer L. Lozinskii,et al.  Consistent subsets of inconsistent systems: structure and behaviour , 2003, J. Exp. Theor. Artif. Intell..

[25]  Richard C. T. Lee,et al.  A New Algorithm for Generating Prime Implicants , 1970, IEEE Transactions on Computers.

[26]  Pierre Marquis,et al.  Knowledge Compilation Using Theory Prime Implicates , 1995, IJCAI.

[27]  Mikolás Janota,et al.  Minimal Sets over Monotone Predicates in Boolean Formulae , 2013, CAV.

[28]  Gerhard Friedrich,et al.  An Integrated Environment for the Development of Knowledge-Based Recommender Applications , 2006, Int. J. Electron. Commer..

[29]  Dietmar Jannach,et al.  Are Query-Based Ontology Debuggers Really Helping Knowledge Engineers? , 2019, Knowl. Based Syst..

[30]  Raymond Reiter,et al.  A Theory of Diagnosis from First Principles , 1986, Artif. Intell..

[31]  Patrick Rodler,et al.  Interactive Debugging of Knowledge Bases , 2016, ArXiv.

[32]  Markus Stumptner,et al.  Consistency-based diagnosis of configuration knowledge bases , 1999, Artif. Intell..

[33]  Dietmar Jannach,et al.  Model-based diagnosis of spreadsheet programs: a constraint-based debugging approach , 2016, Automated Software Engineering.

[34]  Gerhard Friedrich,et al.  Sequential diagnosis of high cardinality faults in knowledge-bases by direct diagnosis generation , 2014, ECAI.

[35]  Konstantin Schekotihin,et al.  Inexpensive Cost-Optimized Measurement Proposal for Sequential Model-Based Diagnosis , 2017, DX.

[36]  Adnan Darwiche,et al.  Decomposable negation normal form , 2001, JACM.

[37]  Ulrich Junker Conflict Detection for Arbitrary Constraint Propagation Algorithms , 2001 .

[38]  Douglas C. Schmidt,et al.  Automated diagnosis of feature model configurations , 2010, J. Syst. Softw..

[39]  Vasco M. Manquinho,et al.  Prime implicant computation using satisfiability algorithms , 1997, Proceedings Ninth IEEE International Conference on Tools with Artificial Intelligence.

[40]  Konstantin Schekotihin,et al.  OntoDebug: Interactive Ontology Debugging Plug-in for Protégé , 2018, FoIKS.

[41]  Joao Marques-Silva,et al.  MUSer2: An Efficient MUS Extractor , 2012, J. Satisf. Boolean Model. Comput..

[42]  Frank van Harmelen,et al.  Debugging Incoherent Terminologies , 2007, Journal of Automated Reasoning.

[43]  Karem A. Sakallah,et al.  Reveal: A Formal Verification Tool for Verilog Designs , 2008, LPAR.

[44]  Bertrand Mazure,et al.  Computing prime implicants , 2013, 2013 Formal Methods in Computer-Aided Design.

[45]  Alexander Felfernig,et al.  Utility-Based Repair of Inconsistent Requirements , 2009, IEA/AIE.

[46]  Patrick Rodler Towards Better Response Times and Higher-Quality Queries in Interactive Knowledge Base Debugging , 2016, ArXiv.

[47]  Igor L. Markov,et al.  AMUSE: a minimally-unsatisfiable subformula extractor , 2004, Proceedings. 41st Design Automation Conference, 2004..

[48]  Christian Meilicke,et al.  Alignment incoherence in ontology matching , 2011 .

[49]  Mikolás Janota,et al.  Proceedings of the Twenty-Third International Joint Conference on Artificial Intelligence On Computing Minimal Correction Subsets , 2022 .

[50]  J. Riedesel Diagnosing Multiple Faults in SSM/PMAD , 1990, Proceedings of the 25th Intersociety Energy Conversion Engineering Conference.

[51]  Patrick Rodler,et al.  StaticHS: A Variant of Reiter's Hitting Set Tree for Efficient Sequential Diagnosis , 2021, SOCS.

[52]  Patrick Rodler,et al.  On the Impact and Proper Use of Heuristics in Test-Driven Ontology Debugging , 2018, RuleML+RR.