Watched Data Structures for QBF Solvers Ian Gent 1 , Enrico Giunchiglia 2 , Massimo Narizzano 2 , Andrew Rowley 1 , and Armando Tacchella 2 1 Dept. of Computer Science, University of St. Andrews North Haugh, St. Andrews, Fife, KY16 9SS, Scotland {ipg, agdr}@dcs.st-and.ac.uk 2 DIST - Universit` a di Genova Viale Causa 13, 16145 Genova, Italy {enrico, mox, tac}@mrg.dist.unige.it Abstract. In the last few years, we have seen a tremendous boost in the efficiency of SAT solvers, this boost being mostly due to Chaff. Chaff owes some of its efficiency to its “two-literal watching” data structure. In this paper we present watched data structures for Quantified Boolean Formula (QBF) satisfiability solvers. In particular, we propose (i) two Chaff-like literal watching schemes for unit clause detection; and (ii) two other watched data structures, one for detecting pure literals and the other for detecting void quantifiers. We have conducted an experi- mental evaluation of the proposed data structures, using both randomly generated and real-world benchmarks. Our results indicate that clause watching is very effective, while the 2 and 3 literal watching data struc- tures become more effective as the clause length increases. The quantifier watching structure does not appear to be effective on the instances con- sidered. 1 Introduction In the last few years, we have seen a tremendous boost in the efficiency of SAT solvers, this boost being mostly due to Chaff. Chaff is based on DPLL pro- cedure [1, 2], and owes part of its efficiency to its data structures designed for the specific look-ahead it implements, i.e., unit-propagation. The basic idea is to detect unit clauses by watching two unassigned literals per clause. As soon as one of the watched literals is assigned, another unassigned literal is looked for in the clause: failure to find one implies that the clause is unit. The main advantage of any such procedure is that, when a literal is given a truth value, only its watched occurrences are assigned. This is to be contrasted to traditional DPLL implementations where, when assigning a variable, all its occurrences are considered. This simple idea can be realized in various ways, differing for the spe- cific operations done when assigning a watched literal or when backtracking (see, e.g., [3–5]). In Chaff, backtracking requires a constant number of operations. See [4] for more details. In this paper we tackle the problem of designing, implementing and exper- imenting with watching data structures for DPLL-based QBF solvers. In par- ticular, we propose (i) two Chaff-like literal watching schemes for unit clause