Debugging overconstrained declarative models using unsatisfiable cores

Declarative models, in which conjunction and negation are freely used, are susceptible to unintentional overconstraint. Core extraction is a new analysis that mitigates this problem in the context of a checker based on reduction to SAT (systems analysis tools). It exploits a recently developed facility of SAT solvers that provides an "unsatisfiable core" of an unsatisfiable set of clauses, often much smaller than the clause set as a whole. The unsatisfiable core is mapped back into the syntax of the original model, showing the user fragments of the model found to be irrelevant. This information can be a great help in discovering and localizing overconstraint, and in some cases pinpoints it immediately. The construction of the mapping is given for a generalized modeling language, along with a justification of the soundness of the claim that the marked portions of the model are irrelevant. Experiences in applying core extraction to a variety of existing models are discussed.

[1]  Fausto Giunchiglia,et al.  NUSMV: A New Symbolic Model Verifier , 1999, CAV.

[2]  Bart Selman,et al.  Planning as Satisfiability , 1992, ECAI.

[3]  Manu Sridharan,et al.  A micromodularity mechanism , 2001, ESEC/FSE-9.

[4]  Sharad Malik,et al.  Validating SAT solvers using an independent resolution-based checker: practical implementations and other applications , 2003, 2003 Design, Automation and Test in Europe Conference and Exhibition.

[5]  E. Clarke,et al.  Symbolic model checking using SAT procedures instead of BDDs , 1999, Proceedings 1999 Design Automation Conference (Cat. No. 99CH36361).

[6]  Ilan Beer,et al.  Efficient Detection of Vacuity in Temporal Model Checking , 2001, Formal Methods Syst. Des..

[7]  Sarfraz Khurshid,et al.  Exploring the design of an intentional naming scheme with an automatic constraint analyzer , 2000, Proceedings ASE 2000. Fifteenth IEEE International Conference on Automated Software Engineering.

[8]  Orna Kupferman,et al.  Vacuity Detection in Temporal Model Checking , 1999, CHARME.

[9]  Eugene Goldberg,et al.  BerkMin: A Fast and Robust Sat-Solver , 2002 .

[10]  J. Michael Spivey,et al.  The Z notation - a reference manual , 1992, Prentice Hall International Series in Computer Science.

[11]  Acm Sigsoft,et al.  Proceedings 18th IEEE International Conference on Automated Software Engineering , 2003, 18th IEEE International Conference on Automated Software Engineering, 2003. Proceedings..

[12]  Orna Kupferman,et al.  Coverage Metrics for Temporal Logic Model Checking , 2001, TACAS.

[13]  Mana Taghdiri Lightweight Modelling and Automatic Analysis of Multicast Key Management Schemes , 2002 .

[14]  Eugene Goldberg,et al.  Verification of proofs of unsatisfiability for CNF formulas , 2003, 2003 Design, Automation and Test in Europe Conference and Exhibition.

[15]  Suvo Mittra,et al.  Iolus: a framework for scalable secure multicasting , 1997, SIGCOMM '97.

[16]  Cliff B. Jones,et al.  Systematic software development using VDM , 1986, Prentice Hall International Series in Computer Science.

[17]  Orna Grumberg,et al.  Enhanced Vacuity Detection in Linear Temporal Logic , 2003, CAV.

[18]  Daniel Jackson Automating first-order relational logic , 2000, SIGSOFT '00/FSE-8.

[19]  Gerard J. Holzmann,et al.  The Model Checker SPIN , 1997, IEEE Trans. Software Eng..

[20]  Manu Sridharan,et al.  Exploiting subformula sharing in automatic analysis of quantified formulas , 2003 .

[21]  Alan J. Hu,et al.  Protocol verification as a hardware design aid , 1992, Proceedings 1992 IEEE International Conference on Computer Design: VLSI in Computers & Processors.