Playing with AVATAR
Lecture Notes in Computer Science
Modern first-order resolution and superposition theorem provers use saturation algorithms to search for a refutation in clauses derivable from the input clauses. On hard problems, this search space often grows rapidly and performance degrades especially fast when long and heavy clauses are generated. One approach that has proved successful in taming the search space is splitting where clauses are split into components with disjoint variables and the components are asserted in turn. This reduces
... the length and weight of clauses in the search space at the cost of keeping track of splitting decisions. This paper considers the new AVATAR (Advanced Vampire Architecture for Theories And Resolution) approach to splitting which places a SAT (or SMT) solver at the centre of the theorem prover and uses it to direct the exploration of the search space. Using such an approach also allows the propositional part of the search space to be dealt with outside of the first-order prover. AVATAR has proved very successful, especially for problems coming from applications such as program verification and program analysis as these commonly contain clauses suitable for splitting. However, AVATAR is still a new idea and there is much left to understand. This paper presents an in-depth exploration of this new architecture, introducing new, highly experimental, options that allow us to vary the operation and interaction of the various components. It then extensively evaluates these new options, using the TPTP library, to gain an insight into which of these options are essential and how AVATAR can be optimally applied. Partially supported by the EPSRC grant "Reasoning for Verification and Security" AVATAR by Example Whilst the theory of AVATAR was established in  , and is reviewed later in this paper, the authors feel that the key ideas behind the approach are best demonstrated via an example.