[ home | schedule | assignments | projects | resources | handouts | overview | links ]

# Lecture 27: Path Indexing

During the proof of theorems in first-order logic, a number of potentially expensive operations come up repeatedly:

1. Find all rules which could apply to a given sequent.
2. Find all sequents which may be premises of a given rule.
3. Determine if a new sequent is subsumed by any sequent of the database.
4. Determine if a new sequent subsumes any sequents in the database.

These operations involve a potentially large set of rules or sequents, and require unification and matching. In order for these operations to be efficient, theorem provers employ indexing, using techniques which are appropriate for efficient retrieval of unifiable, more general, or less general atoms and sequents.

• A draft chapter in the Handbook of Automated Reasoning on Term Indexing by I.V. Ramakrishnan, R. Sekar, A. Voronkov, pp. 1-20, 33-41.
• Slides used in class.
• Code directory with a rudimentary implementation of path indexing (also available as gzipped tar file). The file path.sml contains the code for path indexing.

### Key Concepts

• Indexing
• Perfect and imperfect filter
• Path indexing
• Trie
• Linearity
• Unification
• Generalization
• Instantiation