59 research outputs found

    Declarative Programming with Intensional Sets in Java Using JSetL

    Full text link
    Intensional sets are sets given by a property rather than by enumerating their elements. In previous work, we have proposed a decision procedure for a first-order logic language which provides Restricted Intensional Sets (RIS), i.e., a sub-class of intensional sets that are guaranteed to denote finite---though unbounded---sets. In this paper we show how RIS can be exploited as a convenient programming tool also in a conventional setting, namely, the imperative O-O language Java. We do this by considering a Java library, called JSetL, that integrates the notions of logical variable, (set) unification and constraints that are typical of constraint logic programming languages into the Java language. We show how JSetL is naturally extended to accommodate for RIS and RIS constraints, and how this extension can be exploited, on the one hand, to support a more declarative style of programming and, on the other hand, to effectively enhance the expressive power of the constraint language provided by the library

    Propagation techniques in WAM-based architectures : the FIDO-III approach

    Get PDF
    In this paper we develop techniques to implement finite domain constraints into the Warren Abstract Machine (WAM) to solve large combinatorial problems effciently. The WAM is the de facto standard model for compiling PROLOG. The FIDO system ("FInite Domain';) provides the same functionality as the finite domain part of CHIP. The extension includes the integration of several new variable types (suspended variables, domain variables and suspended domain variables) into the WAM. The "firing conditions'; are lookahead and forward control schemes known from CHIP. We have developed a constraint model where the constraint is divided into constraint initialization code, constraint testing code and constraint body. Furthermore, we supply a deeply integrated WAM builtin to realize the first fail principle. Besides the summary of the important theoretical results, the specification of the compilation process in the WAM Compilation Scheme is given. We also present a simple graphical analysis method to estimate the computational burden of lookahead and forward constraints. The work is an instance of exploring finite domain consistency techniques in logic programming belonging to the FIDO lab within the ARC-TEC project

    Propagation techniques in WAM-based architectures : the FIDO-III approach

    Get PDF
    In this paper we develop techniques to implement finite domain constraints into the Warren Abstract Machine (WAM) to solve large combinatorial problems effciently. The WAM is the de facto standard model for compiling PROLOG. The FIDO system ("FInite Domain\u27;) provides the same functionality as the finite domain part of CHIP. The extension includes the integration of several new variable types (suspended variables, domain variables and suspended domain variables) into the WAM. The "firing conditions\u27; are lookahead and forward control schemes known from CHIP. We have developed a constraint model where the constraint is divided into constraint initialization code, constraint testing code and constraint body. Furthermore, we supply a deeply integrated WAM builtin to realize the first fail principle. Besides the summary of the important theoretical results, the specification of the compilation process in the WAM Compilation Scheme is given. We also present a simple graphical analysis method to estimate the computational burden of lookahead and forward constraints. The work is an instance of exploring finite domain consistency techniques in logic programming belonging to the FIDO lab within the ARC-TEC project

    Automated Reasoning with Restricted Intensional Sets

    Full text link
    Intensional sets, i.e., sets given by a property rather than by enumerating elements, are widely recognized as a key feature to describe complex problems (see, e.g., specification languages such as B and Z). Notwithstanding, very few tools exist supporting high-level automated reasoning on general formulas involving intensional sets. In this paper we present a decision procedure for a first-order logic language offering both extensional and (a restricted form of) intensional sets (RIS). RIS are introduced as first-class citizens of the language and set-theoretical operators on RIS are dealt with as constraints. Syntactic restrictions on RIS guarantee that the denoted sets are finite, though unbounded. The language of RIS, called L_RIS , is parametric with respect to any first-order theory X providing at least equality and a decision procedure for X-formulas. In particular, we consider the instance of L_RIS when X is the theory of hereditarily finite sets and binary relations. We also present a working implementation of this instance as part of the {log} tool and we show through a number of examples and two case studies that, although RIS are a subclass of general intensional sets, they are still sufficiently expressive as to encode and solve many interesting problems. Finally, an extensive empirical evaluation provides evidence that the tool can be used in practice
    corecore