[ home
| schedule
| assignments
| projects
| resources
| handouts
| overview
| links
]
# 15-815 Automated Theorem Proving

# Lecture 27: Path Indexing

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

- Find all rules which could apply to a given sequent.
- Find all sequents which may be premises of a given rule.
- Determine if a new sequent is subsumed by any sequent of the database.
- 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.

### Reading

- 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

### Links

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

Frank Pfenning
fp@cs