[net.ai] Seminar - Combining Logic and Functional Programming

SHORT%hp-labs.csnet@csnet-relay.arpa (04/19/84)

          [Forwarded from the SRI-AI bboard by Laws@SRI-AI.]

                          JOSEPH A. GOGUEN
                         SRI International

COMBINING LOGIC AND FUNCTIONAL PROGRAMMING -- WITH EQUALITY, TYPES, MODULES
AND GENERICS TOO!

         Hewlett Packard Computer Colloquium - April 26, 1984

This joint work with J. Meseguer shows how to extend the paradigm of logic
programming with some features that are prominent in current programming
methodology, without sacrificing logical rigor or efficient implementation.
The first and most important of these features is functional programming;
full logical equality provides an elegant way to combine the power of Prolog
(with its logical variables, pattern matching and automatic backtracking)
with that of functional programming (supporting functions and their
composition, as well as strong typing and user definable abstract data types).
An interesting new feature that emerges here is a complete algorithm for
solving equations that contain logical variables; this algorithm uses
"narrowing", a technique from the theory of rewrite rules.  The underlying
logical system here is many-sorted Horn clause logic with equality.  A
useful refinement is "subsorts", which can be seen as an ordering relation
on the set of sorts (usually called "types") of data.  Finally, we provide
generic modules by using methods developed in the specification language
Clear.  These features are all embedded in a language call Eqlog; we
illustrate them with a program for the well-known Missionaries and Cannibals
problem.

Thursday, April 26, 1984                 4:00 p.m.

Hewlett Packard Laboratories
Computer Research Center
1501 Page Mill Road
Palo Alto, CA 94304
5M Conference Room