Trustworthy Systems

The model evolution calculus as a first-order DPLL method


Peter Baumgartner and Cesare Tinelli


The University of Iowa


The DPLL procedure is the basis of some of the most successful propositional satisfiability solvers to date. Although originally devised as a proof-procedure for first-order logic, it has been used almost exclusively for propositional logic so far because of its highly inefficient treatment of quantifiers, based on instantiation into ground formulas. The FDPLL calculus by Baumgartner was the first successful attempt to lift the procedure to the first-order level without resorting to ground instantiations. FDPLL lifts to the first-order case the core of the DPLL procedure, the splitting rule, but ignores other aspects of the procedure that, although not necessary for completeness, are crucial for its effectiveness in practice.

In this paper, we present a new calculus loosely based on FDPLL that lifts these aspects as well. In addition to being a more faithful litfing of the DPLL procedure, the new calculus contains a more systematic treatment of universal literals, which are crucial to achieve efficiency in practice. The new calculus has been implemented successfully in the Darwin system, described elsewhere. The main results of this paper are theoretical, showing the soundness and completeness of the new calculus. In addition, the paper provides a high-level description of a proof procedure for the calculus, as well as a comparison with other calculi.

BibTeX Entry

    publisher        = {Elsevier},
    issn             = {0004-3702},
    month            = jan,
    journal          = {Artificial Intelligence},
    paperurl         = {},
    year             = {2008},
    keywords         = {automated theorem proving, instance-based methods},
    volume           = {172},
    title            = {The Model Evolution Calculus as a First-Order {DPLL} Method},
    number           = {4--5},
    author           = {Baumgartner, Peter and Tinelli, Cesare},
    pages            = {591--632}