Logic Machine Architecture: Kernel Funtions

In this paper we present an attempt to abstract from the great diversity of approaches to automated deduction a core collection of operations which are common to all of them. Implementation of this kernel of functions provides a software platform upon which a variety of theorem-proving systems can be built, We outline the architecture for a layered family of software tools to support the development of theorem-proving systems and present in some detail the functions which comprise the two lowest layers. These are the layer implementing primitive abstract data types not supported by the host language and the layer providing primitives for the manipulation of logical formulas. This layer includes the implementation of efficient unification and substitution application algorithms, structure sharing within the formula database, and efficient access to formulas via arbitrary user-defined properties. The tools are provided in a highly portable form (implemented in Pascal) in order that a diverse community of users may build on them.