The 481 ways to split a clause and deal with propositional variables

  • Authors:
  • Kryštof Hoder;Andrei Voronkov

  • Affiliations:
  • University of Manchester, Manchester, UK;University of Manchester, Manchester, UK

  • Venue:
  • CADE'13 Proceedings of the 24th international conference on Automated Deduction
  • Year:
  • 2013

Quantified Score

Hi-index 0.00

Visualization

Abstract

It is often the case that first-order problems contain propositional variables and that proof-search generates many clauses that can be split into components with disjoint sets of variables. This is especially true for problems coming from some applications, where many ground literals occur in the problems and even more are generated. The problem of dealing with such clauses has so far been addressed using either splitting with backtracking (as in Spass [14]) or splitting without backtracking (as in Vampire [7]). However, the only extensive experiments described in the literature [6] show that on the average using splitting solves fewer problems, yet there are some problems that can be solved only using splitting. We tried to identify essential issues contributing to efficiency in dealing with splitting in resolution theorem provers and enhanced the theorem prover Vampire with new options, algorithms and datastructures dealing with splitting. This paper describes these options, algorithms and datastructures and analyses their performance in extensive experiments carried out over the TPTP library [12]. Another contribution of this paper is a calculus RePro separating propositional reasoning from first-order reasoning.