A pragmatic reconstruction of Lambda-Prolog
Résumé
Lambda-Prolog is a logic programming language in which hereditary Harrop formulas generalize Horn formulas, and simply typed lambda-terms generalize Prolog terms. One may wonder if these extensions are simultaneously required, and if useful subsets of lambda-Prolog can be defined, at least for pedagogical purposes. We answer this question by exhibiting a network of necessity links between the new features of lambda-Prolog. The starting point of the network is the demand for programming by structural induction on lambda-terms, and the necessity links give a rationale for such a programming style.