Article

Solving Inclusion Constraints between intensional sets

Authors:
To read the full-text of this research, you can request a copy directly from the author.

Abstract

Tools allowing set manipulations are generally accepted by the logic programming community as providing a very "ad-hoc" formulation of a number of problems. Most of the existing approaches to deal with sets in a constraint logic programming framework work with extensional (finite) sets, or (infinite) regular sets using tree automatas. But intensional sets are often forbidden, or supposed to be finite. In this paper, starting from the initial syntax of Prolog, we propose an extended logical programming language including the data-structure of intensional set formalizing set comprehension and cartesian product. We describe a solving algorithm manipulating inclusion constraints containing set variables through suitable rules. Our method is a way to overcome the finiteness restrictions concerning intensional sets into logical programming language. 1 Introduction Set constraints are naturally involved in many computer science areas and there is a large agreement about their value [6]. For ...

No full-text available

... (3) f(0; 10; 10); (1; 11; 10)g E (for each triple must exist an execution after which the state is this triple) constraints to bind the set variables (4) E f(x; y; z) j x 2 S 1^y 2 S 2^z 2 S 3 g (the set of reachable states is included in the cartesian product of set of reachable values of each state variable) Table 3.2 : an example of set speci cation An algorithm allowing to test the satis ability of such a speci cation (i.e. to test if there exists a solution) has been developed ( 11,13]), but we do not present it here. It uses rewriting techniques to transform set constraints in order to get a logical formula without any set variable. ...
Article
Many powerful specification languages are based on set theory, such as Z ([12]) and B ([1]) derived from VDM([6]). To validate a specification developed along such lines at a formal level, one needs tools to manipulate logical formulas on sets. Behavioral properties of modules specified in this manner can be naturally described using intentional sets and constraints on the global state variables of the specification. In this work we propose a method for such purposes of validation, by constructing a logic program meant as a "synthesis" of the behaviour of the state variables under the operations of the specification. The logic program thus constructed admits as a natural model the set of all reachable values of the state variables, after the execution of any sequence of operations. The main interest of such an approach is that it can allow us to prove the properties of a program; in addition, we can also use the logic program as a "prototype" capable of testing if a given value is reac...
Article
Full-text available
The ##-calculus is a re#nement of the #-calculus where substitutions are manipulated explicitly. The ##-calculus provides a setting for studying the theory of substitutions, with pleasant mathematical properties. It is also a useful bridge between the classical #-calculus and concrete implementations. # Digital Equipment Corporation, Systems Research Center. y Ecole Normale Sup#erieure; part of this work was completed while at Digital Equipment Corporation, Systems Research Center. z INRIA Rocquencourt; part of this work was completed while at Digital Equipment Corporation, Systems Research Center and Paris Research Laboratory. 1 1
Article
Full-text available
Miller, D., G. Nadathur, F. Pfenning and A. Scedrov, Uniform proofs as a foundation for logic programming, Annals of Pure and Applied Logic 51 (1991) 125–157. A proof-theoretic characterization of logical languages that form suitable bases for Prolog-like programming languages is provided. This characterization is based on the principle that the declarative meaning of a logic program, provided by provability in a logical system, should coincide with its operational meaning, provided by interpreting logical connectives as simple and fixed search instructions. The operational semantics is formalized by the identification of a class of cut-free sequent proofs called uniform proofs. A uniform proof is one that can be found by a goal-directed search that respects the interpretation of the logical connectives as search instructions. The concept of a uniform proof is used to define the notion of an abstract logic programming language, and it is shown that first-order and higher-order Horn clauses with classical provability are examples of such a language. Horn clauses are then generalized to hereditary Harrop formulas and it is shown that first-order and higher-order versions of this new class of formulas are also abstract logic programming languages if the inference rules are those of either intuitionistic or minimal logic. The programming language significance of the various generalizations to first-order Horn clauses is briefly discussed.
Article
Full-text available
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).
Article
Full-text available
Combinatorial problems involving sets and relations are currently tackled by integer programming and expressed with vectors or matrices of 0-1 variables. This is efficient but not flexible and unnatural in problem formulation. Toward a natural programming of combinatorial problems based on sets, graphs or relations, we define a new CLP language with set constraints. This language Conjunto 1 aims at combining the declarative aspect of Prolog with the efficiency of constraint solving techniques. We propose to constrain a set variable to range over finite set domains specified by lower and upper bounds for set inclusion. Conjunto is based on the inclusion and disjointness constraints applied to set expressions which comprise the union, intersection and difference symbols. The main contribution herein is the constraint handler which performs constraint propagation by applying consistency techniques over set constraints. 1 Introduction Various systems of set constraints have been define...
Article
An extended logic programming language is presented, that embodies the fundamental form of set designation based on the (nesting) element insertion operator. The kind of sets to be handled is characterized both by adaptation of a suitable Herbrand universe and via axioms. Predicates ϵ and = designating set membership and equality are included in the base language, along with their negative counterparts ∉ and ≠. A unification algorithm that can cope with set terms is developed and proved correct and terminating. It is proved that by incorporating this new algorithm into SLD resolution and providing suitable treatment of ϵ, ≠, and ∉ as constraints, one obtains a correct management of the distinguished set predicates. Restricted universal quantifiers are shown to be programmable directly in the extended language and thus are added to the language as a convenient syntactic extension. A similar solution is shown to be applicable to intensional set-formers, provided either a built-in set collection mechanism or some form of negation in goals and clause bodies is made available.
Article
In ordinary lambda calculus the occurrences of a bound variable are made recognizable by the use of one and the same (otherwise irrelevant) name at all occurrences. This convention is known to cause considerable trouble in cases of substitution. In the present paper a different notational system is developed, where occurrences of variables are indicated by integers giving the “distance” to the binding λ instead of a name attached to that λ. The system is claimed to be efficient for automatic formula manipulation as well as for metalingual discussion. As an example the most essential part of a proof of the Church-Rosser theorem is presented in this namefree calculus.
Article
"October 1992." Thesis (Ph. D.)--Carnegie Mellon University, 1992. Includes bibliographical references and index. Supported in part by the Defense Advanced Research Projects Agency, CSTO, issued by ESD/AVS. Supported in part by IBM
Conference Paper
We present a decision procedure, based on tree automata techniques, for satisfiability of systems of set constraints including negated subset relationships. This result extends all previous works on set constraints solving and solves a problem which was left open by L. Bachmair et al. (1993). We prove in a constructive way that a non empty set of solutions always contains a regular solution, that is a tuple of regular tree languages. Moreover, we think that the new class of tree automata described here could be interesting in its own
Conference Paper
The authors investigate the relationship between set constraints and the monadic class of first-order formulas and show that set constraints are essentially equivalent to the monadic class. From this equivalence, they infer that the satisfiability problem for set constraints is complete for NEXPTIME. More precisely, it is proved that this problem has a lower bound of NTIME(c<sup>n</sup>log n/), for some c>0. The relationship between set constraints and the monadic class also gives decidability and complexity results for certain practically useful extensions of set constraints, in particular “negative” projections and subterm equality tests
Conference Paper
It is shown that systems of set constraints that use all the standard set operations, especially unrestricted union and complement, can be solved. The centerpiece of the development is an algorithm that incrementally transforms a system of constraints while preserving the set of solutions. Eventually, either the system is shown to be inconsistent or all solutions can be exhibited. Most of the work is in proving that if this algorithm does not discover an inconsistency, then the system has a solution. This is done by showing that the system of constraints generated by the algorithm can be transformed into an equivalent set of equations that are guaranteed to have a solution. These equations are essentially tree automata
Article
We present a general algorithm for solving systems of inclusion constraints over type expressions. The constraint language includes function types, constructor types, and liberal intersection and union types. We illustrate the application of our constraint solving algorithm with a type inference system for the lambda calculus with constants. In this system, every pure lambda term has a (computable) type and every term typable in the Hindley/Milner system has all of its Hindley/Milner types. Thus, the inference system is an extension of the Hindley/Milner system that can type a very large set of lambda terms. 1 Introduction Type inference systems for functional languages are based on solving systems of type constraints. The best known and most widely used type inference algorithm was first discovered by Hindley and later independently by Milner [Hin69, Mil78]. In its simplest form, the algorithm generates type equations from the program text and then solves the equations. If the equati...
Article
Explicit substitutions calculi provide a method to compute over -expressions by using first-order term rewriting systems. Many calculi have been proposed that differ by their number of rules and their theoretical properties. In order to compare these systems, we have developed prototypes written in ELAN. In this paper, we recall their principal properties and theoretical differences, then we present some experimental results. 1 Introduction In classical -calculus [2], the main mechanism is fi-conversion defined as (a)b ! a[x / b], where [x / b] is the substitution of the variable x by the term b. The substitution mechanism relies on an external formalism which does not strictly fit the scope of the language. To overcome this problem, new systems have been developed using an explicit treatment of substitution process. These systems are expressed as sets of first-order rewrite rules which internalize the substitutions by the use of closures : a[s], where a is a -term and s a substitut...
Set Operations for Recurrent Term Schematizations
• Ali Amaniss
• Miki Hermann
• Denis Lugiez
Ali Amaniss, Miki Hermann, and Denis Lugiez. Set Operations for Recurrent Term Schematizations. In Colloquium on Trees in Algebra and Programming, volume 1214. Lecture Notes in Computer Science, 1997. ISBN 3-540-62781-2.
Dealing with in nite intensional sets in clp
• R Carmona
• A Dovier
• G Rossi
R. Carmona, A. Dovier, and G. Rossi. Dealing with in nite intensional sets in clp. In Proceedings of the joint conference on declarative programming APIA-GULP-PRODE'97, pages 467{477, Grado, Italy, June 16-19 1997.
Programmation en Logique avec Contraintes sur les ensembles, multi-ensembles et s equences Utilisation en prototypage de logiciels. Th ese d'abilitation a diriger des recherches
• B Legeard
B. Legeard. Programmation en Logique avec Contraintes sur les ensembles, multi-ensembles et s equences Utilisation en prototypage de logiciels. Th ese d'abilitation a diriger des recherches, Universit e de Franche-Comt e, 1994.
An overview of Prolog