Constraint Programming

Constraints allow programmers and users to state declaratively a relation that should be maintained, rather than requiring them to write procedures to maintain the relation themselves. They are thus useful in such applications as programming languages, user interface toolkits, and simulation packages. In many situations, it is desirable to be able to state both required and preferential constraints. The required constraints must hold. Since the other constraints are merely preferences, the system should try to satisfy them if possible, but no error condition arises if it cannot. A constmint hiemrchy consists of a set of constraints, each labeled as either required or preferred at some strength. An arbitrary number of different strengths is allowed. In the discussion of a theory of constraint hierarchies, we present alternate ways of selecting among competing possible solutions, and prove a number of propositions about the relations among these alternatives. We then outline algorithms for satisfying constraint hierarchies, and ways in which we have used constraint hierarchies in a number of programming languages and systems.

[1]  Kenneth Kunen,et al.  Negation in Logic Programming , 1987, J. Log. Program..

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

[3]  Johan de Kleer,et al.  Readings in qualitative reasoning about physical systems , 1990 .

[4]  Philip Olin,et al.  Almost direct products and saturation , 1968 .

[5]  Ronald R. Willis,et al.  New Computer Methods for Global Optimization , 1990 .

[6]  Alan K. Mackworth The Logic of Constraint Satisfaction , 1991, Artif. Intell..

[7]  Michael J. Maher,et al.  Unification Revisited , 1988, Foundations of Deductive Databases and Logic Programming..

[8]  Francesca Rossi,et al.  Non-Strict Independent And-Parallelism , 1990, ICLP.

[9]  William H. Winsborough,et al.  Multiple Specialization using Minimal-Function Graph Semantics , 1992, J. Log. Program..

[10]  Ramon E. Moore,et al.  Rigorous methods for global optimization , 1992 .

[11]  Bjørn N. Freeman-Benson,et al.  Integrating Constraints with an Object-Oriented Language , 1992, ECOOP.

[12]  Louis I. Steinberg Design as Refinement Plus Constraint Propagation: The VEXED Experience , 1987, AAAI.

[13]  James H. Davenport,et al.  Computer Algebra: Systems and Algorithms for Algebraic Computation , 1988 .

[14]  Ivan E. Sutherland,et al.  Sketchpad: a man-machine graphical communication system , 1899, AFIPS '63 (Spring).

[15]  Kim Marriott,et al.  Analysis of Constraint Logic Programs , 1990, NACLP.

[16]  Vijay A. Saraswat,et al.  Concurrent constraint programming , 1989, POPL '90.

[17]  Louis B. Rall,et al.  Pascal-SC: A computer language for scientific computation , 1987 .

[18]  Eero Hyvönen,et al.  Interval constraint satisfaction tool INC++ , 1993, Proceedings of 1993 IEEE Conference on Tools with Al (TAI-93).

[19]  Eero Hyvönen,et al.  Constraint Reasoning Based on Interval Arithmetic , 1989, IJCAI.

[20]  Radha Jagadeesan,et al.  Foundations of timed concurrent constraint programming , 1994, Proceedings Ninth Annual IEEE Symposium on Logic in Computer Science.

[21]  William Leler,et al.  Constraint programming languages: their specification and generation , 1988 .

[22]  Alan Borning,et al.  ThingLab: a constraint-oriented simulation laboratory , 1979 .

[23]  Ben C. Moszkowski,et al.  Executing temporal logic programs , 1986, Seminar on Concurrency.

[24]  Andrei Voronkov,et al.  Theorem Proving in Non-Standard Logics Based on the Inverse Method , 1992, CADE.

[25]  Masamichi Shimura,et al.  Parametric Engineering Design Using Constraint-Based Reasoning , 1990, AAAI.

[26]  Gérard Berry,et al.  The Esterel Synchronous Programming Language: Design, Semantics, Implementation , 1992, Sci. Comput. Program..

[27]  Alberto Martelli,et al.  An Efficient Unification Algorithm , 1982, TOPL.

[28]  Iain Craig,et al.  Constraint Programming Languages: Their Specification And Generation by Wm Leler Addison-Wesley, Reading MA, 1988, 202 pages (incl. index) (£24.95) , 1989, Robotica (Cambridge. Print).

[29]  Danny De Schreye,et al.  Deriving Termination Proofs for Logic Programs, Using Abstract Procedures , 1991, ICLP.

[30]  Vijay A. Saraswat The category of constraint systems is Cartesian-closed , 1992, [1992] Proceedings of the Seventh Annual IEEE Symposium on Logic in Computer Science.

[31]  Francesca Rossi,et al.  True Concurrency in Concurrent Constraint Programming , 1991, ISLP.

[32]  Jarmo T. Alander,et al.  On interval arithmetic range approximation methods of polynomials and rational functions , 1985, Comput. Graph..

[33]  Eugene C. Freuder,et al.  Partial Constraint Satisfaction , 1989, IJCAI.

[34]  Jean-Louis Lassez,et al.  A constraint sequent calculus , 1990, [1990] Proceedings. Fifth Annual IEEE Symposium on Logic in Computer Science.

[35]  James Arthur Gosling,et al.  Algebraic constraints , 1983 .

[36]  G. Gentzen Die Widerspruchsfreiheit der reinen Zahlentheorie , 1936 .

[37]  Mark Stefik,et al.  Planning with Constraints (MOLGEN: Part 1) , 1981, Artif. Intell..

[38]  A. W. Roscoe,et al.  A Timed Model for Communicating Sequential Processes , 1986, Theor. Comput. Sci..

[39]  Robin Milner,et al.  A Calculus of Communicating Systems , 1980, Lecture Notes in Computer Science.

[40]  E. Hyvonen,et al.  Interval constraint spreadsheets for financial planning , 1991, Proceedings First International Conference on Artificial Intelligence Applications on Wall Street.

[41]  Grigori Mints,et al.  The PRIZ system and propositional calculus , 1982 .

[42]  Giorgio Levi,et al.  Declarative Modeling of the Operational Behavior of Logic Languages , 1989, Theor. Comput. Sci..

[43]  Peter J. Stuckey,et al.  Semantics of Infinite Tree Logic Programming , 1986, Theor. Comput. Sci..

[44]  Maurizio Gabbrielli,et al.  Modeling Answer Constraints in Constraint Logic Programs , 1991, ICLP.

[45]  G. Forsythe Pitfalls in computation, or why a math book isn''t enough , 1970 .

[46]  Ehud Shapiro,et al.  The family of concurrent logic programming languages , 1989, CSUR.

[47]  S. Skelboe Computation of rational interval functions , 1974 .

[48]  Manuel V. Hermenegildo,et al.  A Practical Approach to the Global Analysis of CLP Programs , 1993, ILPS.

[49]  Joxan Jaffar,et al.  From Unification to Constraints , 1987, LP.

[50]  Francesca Rossi,et al.  Contextual Occurence Nets and Concurrent Constraint Programming , 1993, Dagstuhl Seminar on Graph Transformations in Computer Science.

[51]  S. Ramesh,et al.  Communicating reactive processes , 1993, POPL '93.

[52]  Jean-Louis Lassez,et al.  From LP to LP: Programming with Constraints , 1991, TACS.

[53]  Manuel V. Hermenegildo,et al.  Compile-Time Derivation of Variable Dependency Using Abstract Interpretation , 1992, J. Log. Program..

[54]  Pascal Van Hentenryck Constraint satisfaction in logic programming , 1989, Logic programming.

[55]  Prakash Panangaden,et al.  The semantic foundations of concurrent constraint programming , 1991, POPL '91.

[56]  Wolfgang Reisig Petri Nets: An Introduction , 1985, EATCS Monographs on Theoretical Computer Science.

[57]  David Robson,et al.  Smalltalk-80: The Language and Its Implementation , 1983 .

[58]  Michael J. Maher A CLP View of Logic Programming , 1992, ALP.

[59]  Benjamin Kuipers,et al.  Using Incomplete Quantitative Knowledge In Qualitative Reasoning , 1988, AAAI.

[60]  Enn Tyugu,et al.  Higher-Order Functional Constraint Networks , 1993, NATO ASI CP.

[61]  Andrew Davison,et al.  Polka: a parlog object oriented language , 1989 .

[62]  Francesca Rossi,et al.  Graph Rewriting for a Partial Ordering Semantics of Concurrent Constraint Programming , 1993, Theor. Comput. Sci..

[63]  Patrick Cousot,et al.  Comparing the Galois Connection and Widening/Narrowing Approaches to Abstract Interpretation , 1992, PLILP.

[64]  William G. Golson Toward a Declarative Semantics for Infinite Objects in Logic Programming , 1988, J. Log. Program..

[65]  Amir Pnueli,et al.  Proving Partial Order Liveness Properties , 1990, ICALP.

[66]  Gérard Berry,et al.  Preemption in Concurrent Systems , 1993, FSTTCS.

[67]  Craig Chambers,et al.  Object-Oriented Multi-Methods in Cecil , 1992, ECOOP.

[68]  James Harland,et al.  The Uniform Proof-Theoretic Foundation of Linear Logic Programming , 1991, ISLP.

[69]  Daniel G. Bobrow,et al.  Vulcan: Logical Concurrent Objects , 1987, Research Directions in Object-Oriented Programming.

[70]  Grigori Mints,et al.  Selected papers in proof theory , 1992 .

[71]  Alain Colmerauer,et al.  An introduction to Prolog III , 1989, CACM.

[72]  Antonio L Elias,et al.  Knowledge engineering of the aircraft design process , 1986 .

[73]  Bjørn N. Freeman-Benson,et al.  Multi‐way versus one‐way constraints in user interfaces: Experience with the deltablue algorithm , 1993, Softw. Pract. Exp..

[74]  Radha Jagadeesan,et al.  Angelic Non-Determinism in Concurrent Constraint Programming , 1991 .

[75]  D. Prawitz Natural Deduction: A Proof-Theoretical Study , 1965 .

[76]  Jeffery Stewart Ely Prospects for using variable precision interval software in C++ for solving some contemporary , 1990 .

[77]  Danny De Schreye,et al.  Deriving of Linear Size Relations by Abstract Interpretation , 1992, PLILP.

[78]  John Wylie Lloyd,et al.  Foundations of Logic Programming , 1987, Symbolic Computation.

[79]  W. Older,et al.  Extending Prolog with Constraint Arithmetic on Real Intervals , 1990 .

[80]  Jacques Cohen,et al.  Constraint logic programming languages , 1990, CACM.

[81]  Haskell B. Curry,et al.  Foundations of Mathematical Logic , 1964 .

[82]  S. C. Kleene,et al.  Introduction to Metamathematics , 1952 .

[83]  Jon G. Rokne,et al.  Computer Methods for the Range of Functions , 1984 .

[84]  Laurent Vieille,et al.  Recursive Query Processing: The Power of Logic , 1989, Theor. Comput. Sci..

[85]  Alan Borning,et al.  Constraint-Based Tools for Building User Interfaces , 1986, ACM Trans. Graph..

[86]  Yiannis N. Moschovakis,et al.  Elementary induction on abstract structures , 1974 .

[87]  Frank S. de Boer,et al.  A Fully Abstract Model for Concurrent Constraint Programming , 1991, TAPSOFT, Vol.1.

[88]  Enn Tyugu,et al.  Propositional Logic Programming and Priz System , 1990, J. Log. Program..

[89]  Hartmut Ehrig,et al.  Introduction to the Algebraic Theory of Graph Grammars (A Survey) , 1978, Graph-Grammars and Their Application to Computer Science and Biology.

[90]  Dov M. Gabbay,et al.  METATEM: A Framework for Programming in Temporal Logic , 1989, REX Workshop.