Set Constraints and Logic Programming

Set constraints are inclusion relations between expressions denoting sets of ground terms over a ranked alphabet. They are the main ingredient in set-based program analysis. In this paper we describe a constraint logic programming languageclp(sc) over set constraints in the style of J. Jaffar and J.-L. Lassez (1987, “Proc. Symp. Principles of Programming Languages 1987,” pp. 111?119). The language subsumes ordinary logic programs over an Herbrand domain. We give an efficient unification algorithm and operational, declarative, and fixpoint semantics. We show how the language can be applied in set-based program analysis by deriving explicitly the monadic approximation of the collecting semantics of N. Heintze and J. Jaffar (1992, “Set Based Program Analysis”; 1990, “Proc. 17th Symp. Principles of Programming Languages,” pp. 197?209).

[1]  Witold Charatonik,et al.  Negative set constraints with equality , 1994, Proceedings Ninth Annual IEEE Symposium on Logic in Computer Science.

[2]  Alexander Aiken,et al.  Decidability of Systems of Set Constraints with Negative Constraints , 1994, Inf. Comput..

[3]  Prateek Mishra,et al.  Declaration-free type checking , 1985, POPL.

[4]  Maxime Crochemore,et al.  Partitioning a Graph in O(|A| log2 |V|) , 1982, Theoretical Computer Science.

[5]  Alexander Aiken,et al.  Implementing Regular Tree Expressions , 1991, FPCA.

[6]  Alexander Aiken,et al.  The Complexity of Set Constraints , 1993, CSL.

[7]  Frieder Stolzenburg,et al.  Logic Programming with Sets by Membership-Constraints , 1994, Workshop Logische Programmierung.

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

[9]  Alexander Aiken,et al.  Static type inference in a dynamically typed language , 1991, POPL '91.

[10]  Robert E. Tarjan,et al.  Three Partition Refinement Algorithms , 1987, SIAM J. Comput..

[11]  Sophie Tison,et al.  Solving systems of set constraints with negated subset relationships , 1993, Proceedings of 1993 IEEE 34th Annual Foundations of Computer Science.

[12]  Alexander Aiken,et al.  Solving systems of set constraints , 1992, [1992] Proceedings of the Seventh Annual IEEE Symposium on Logic in Computer Science.

[13]  David A. Plaisted,et al.  Programming with Equations, Subsets, and Relations , 1989, NACLP.

[14]  Nevin Charles Heintze,et al.  Set based program analysis , 1992 .

[15]  Harald Ganzinger,et al.  Set constraints are the monadic class , 1993, [1993] Proceedings Eighth Annual IEEE Symposium on Logic in Computer Science.

[16]  Joxan Jaffar,et al.  A finite presentation theorem for approximating logic programs , 1989, POPL '90.

[17]  Agostino Dovier,et al.  Embedding Finite Sets in a Logic Programming Language , 1992, ELP.

[18]  Gabriel M. Kuper,et al.  Logic programming with sets , 1987, J. Comput. Syst. Sci..

[19]  Dexter Kozen Set Constraints and Logic Programming , 1994, CCL.

[20]  Sophie Tison,et al.  Solving Systems of Set Constraints using Tree Automata , 1993, STACS.

[21]  John C. Reynolds,et al.  Automatic computation of data set definitions , 1968, IFIP Congress.

[22]  Neil D. Jones,et al.  Flow analysis and optimization of LISP-like structures , 1979, POPL.

[23]  Prateek Mishra,et al.  Towards a Theory of Types in Prolog , 1984, SLP.

[24]  Thom W. Frühwirth,et al.  Logic programs as types for logic programs , 1991, [1991] Proceedings Sixth Annual IEEE Symposium on Logic in Computer Science.

[25]  K. Stefansson,et al.  Systems of set constraints with negative constraints are NEXPTIME-complete , 1994, Proceedings Ninth Annual IEEE Symposium on Logic in Computer Science.

[26]  P. H. Lindsay Human Information Processing , 1977 .

[27]  Dexter Kozen Logical Aspects of Set Constraints , 1993, CSL.