Extending Equation Solving and Constraint Handling in Logic Programming

Publisher Summary By virtue of its relational form, nondeterministic computation and unification mechanism, Prolog can be seen as a good candidate for a powerful constraint programming language. Unification is used to solve equality constraints among terms of this universe. This chapter explains how Prolog is adequate for solving problems stated by the means of constraints, and the necessity to extend the computation domains and the related constraint solving techniques. A unification algorithm is presented for boolean terms that computes the unique most general unifier, if it exists. Two applications of boolean unification is presented in the digital circuit design—proof of correctness and specialization. Finite domains are introduced in Prolog and the associated constraint handling techniques to solve constraint satisfaction problems. It discusses the use of these techniques on two examples—a cryptarithmetic puzzle and a warehouse location problem from Operations Research.

[1]  Joxan Jaffar,et al.  Constraint logic programming , 1987, POPL '87.

[2]  J. A. Robinson,et al.  A Machine-Oriented Logic Based on the Resolution Principle , 1965, JACM.

[3]  A. Colmerauer,et al.  Prolog, bases théoriques et développements actuels , 1983 .

[4]  Keki B. Irani,et al.  A Many-Sorted Resolution Based on an Extension of a First-Order Language , 1985, IJCAI.

[5]  Tobias Nipkow,et al.  Unification in Boolean Rings , 1986, CADE.

[6]  Eugene C. Freuder Synthesizing constraint expressions , 1978, CACM.

[7]  Gerald Jay Sussman,et al.  CONSTRAINTS - A Language for Expressing Almost-Hierarchical Descriptions , 1980, Artif. Intell..

[8]  Guy L. Steele,et al.  The definition and implementation of a computer programming language based on constraints , 1980 .

[9]  Pascal Van Hentenryck A Theoretical Framework for Consistency Techniques in Logic Programming , 1987, IJCAI.

[10]  Jean-Marie Hullot,et al.  Canonical Forms and Unification , 1980, CADE.

[11]  Waldo C. Kabat,et al.  Automated Synthesis of Combinational Logic Using Theorem-Proving Techniques , 1985, IEEE Transactions on Computers.

[12]  José Meseguer,et al.  Equality, Types, Modules, and (Why not ?) Generics for Logic Programming , 1984, J. Log. Program..

[13]  Alan K. Mackworth Consistency in Networks of Relations , 1977, Artif. Intell..

[14]  Jean-Louis Laurière,et al.  A Language and a Program for Stating and Solving Combinatorial Problems , 1978, Artif. Intell..

[15]  M. Dincbas Constraints, logic programming and deductive databases , 1988 .

[16]  Pascal Van Hentenryck,et al.  Forward Checking in Logic Programming , 1987, ICLP.

[17]  Giorgio Levi,et al.  The Relation between Logic and Functional Languages: A Survey , 1986, J. Log. Program..

[18]  Pascal Van Hentenryck,et al.  Extended Unification Algorithms for the Integration of Functional Programming into Logic Programming , 1987, J. Log. Program..

[19]  Hassan Aït-Kaci,et al.  LOGIN: A Logic Programming Language with Built-In Inheritance , 1986, J. Log. Program..

[20]  Joxan Jaffar,et al.  Methodology and Implementation of a CLP System , 1987, ICLP.

[21]  Ugo Montanari,et al.  Networks of constraints: Fundamental properties and applications to picture processing , 1974, Inf. Sci..

[22]  Harry G. Barrow Proving the Correctness of Digital Hardware Designs , 1983, AAAI.

[23]  Wolfram Büttner,et al.  Embedding Boolean Expressions into Logic Programming , 1987, J. Symb. Comput..

[24]  Robert M. Haralick,et al.  Increasing Tree Search Efficiency for Constraint Satisfaction Problems , 1979, Artif. Intell..

[25]  Pascal Van Hentenryck,et al.  Domains in Logic Programming , 1986, AAAI.

[26]  Harry G. Barrow,et al.  VERIFY: A Program for Proving Correctness of Digital Hardware Designs , 1984, Artif. Intell..

[27]  Alain Colmerauer,et al.  Note sur Prolog III , 1986, SPLT.

[28]  Hervé Gallaire,et al.  Logic Programming: Further Developments , 1985, SLP.

[29]  David L. Waltz,et al.  Generating Semantic Descriptions From Drawings of Scenes With Shadows , 1972 .