Debugging Overconstrained Declarative Models Using Unsatisfiable Cores
Abstract
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.
BibTeX
@inproceedings{Shlyakhter-al:ASE03,
author = {Ilya Shlyakhter and
Robert Seater and
Daniel Jackson and
Manu Sridharan and
Mana Taghdiri},
title = {Debugging Overconstrained Declarative Models Using Unsatisfiable Cores},
booktitle = {ASE},
pages = {94--105},
publisher = {{IEEE} Computer Society},
year = {2003},
}