Journal of Automated Reasoning

, Volume 15, Issue 2, pp 237-265

First online:

The anatomy of vampire

Implementing bottom-up procedures with code trees
  • Andrei VoronkovAffiliated withComputing Science Department, Uppsala University

Rent the article at a discount

Rent now

* Final gross prices may vary according to local VAT.

Get Access


We present an implementation technique for a class of bottom-up logic procedures. The technique is based oncode trees. It is intended to speed up most important and costly operations, such as subsumption and resolution. As an example, we consider the forward subsumption problem which is the bottleneck of many systems implementing first-order logic.

To efficiently implement subsumption, we specialize subsumption algorithms at run time, using theabstract subsumption machine. The abstract subsumption machine makes subsumption-check using sequences of instructions that are similar to the WAM instructions. It gives an efficient implementation of the “clause at a time” subsumption problem. To implement subsumption on the “set at a time” basis, we combine sequences of instructions incode trees.

We show that this technique yields a new way of indexing clauses. Some experimental results are given.

The code trees technique may be used in various procedures, including binary resolution, hyper-resolution, UR-resolution, the inverse method, paramodulation and rewriting, OLDT-resolution, SLD-AL-resolution, bottom-up evaluation of logic programs, and disjunctive logic programs.

Key words

bottom-up algorithms indexing subsumption otters vampires