In practice, most equational logic programs are constructor-based; symbols, called constructors, that construct data terms are distinguished from those, called defined functions or operations, that operate on data terms (see, e.g., the Equational Interpreter [O'Donnell 1985] and the functional logic languages ALF [Hanus 1990], BABEL [Moreno-Navarro and Rodriguez-Artalejo 1992], K-LEAF [Giovannetti et al.
Programming in equational logic: Beyond strong sequentiality.
For recent notable work, I focus on some significant theorem-proving systems: the geometry theorem provers of Chou (Chou, Gao, and Zhang 1994; Chou 1988); the Boyer and Moore (1988) interactive theorem prover NQTHM and its successor ACL2 (Kaufmann and Moore 1996); the rewrite rule laboratory (RRL) of Kaput and Zhang (1995); the resolution prover OTTER (McCune and Otter 1997; McCune 1994) and the equational logic prover EQP by McCune (1996); the interactive higher-order logic provers NUPRL (Constable et al.
I mentioned that the term-rewriting community is central to the work in equational logics. This point warrants elaboration.
Incremental constraint satisfaction for
equational logic programming.
But it seems that the complexity of the
equational logic of nondeterminism exceeds by far the complexity of classical equational reasoning.
In summary, the declarative control architecture implements, with an
equational logic formalism, a combination of planning, inference and feedback control principles.
PIM is an equational logic designed to function as a "transformational toolkit" for compilers and other programming tools that analyze and manipulate imperative languages.
This article is an effort to contribute to a better understanding of these issues by presenting a formal account of properties of an equational logic called PIM [Field 1992].