8 research outputs found

    Using parametric set constraints for locating errors in CLP programs

    Full text link
    This paper introduces a framework of parametric descriptive directional types for constraint logic programming (CLP). It proposes a method for locating type errors in CLP programs and presents a prototype debugging tool. The main technique used is checking correctness of programs w.r.t. type specifications. The approach is based on a generalization of known methods for proving correctness of logic programs to the case of parametric specifications. Set-constraint techniques are used for formulating and checking verification conditions for (parametric) polymorphic type specifications. The specifications are expressed in a parametric extension of the formalism of term grammars. The soundness of the method is proved and the prototype debugging tool supporting the proposed approach is illustrated on examples. The paper is a substantial extension of the previous work by the same authors concerning monomorphic directional types.Comment: 64 pages, To appear in Theory and Practice of Logic Programmin

    Constraint solving over multi-valued logics - application to digital circuits

    Get PDF
    Due to usage conditions, hazardous environments or intentional causes, physical and virtual systems are subject to faults in their components, which may affect their overall behaviour. In a ‘black-box’ agent modelled by a set of propositional logic rules, in which just a subset of components is externally visible, such faults may only be recognised by examining some output function of the agent. A (fault-free) model of the agent’s system provides the expected output given some input. If the real output differs from that predicted output, then the system is faulty. However, some faults may only become apparent in the system output when appropriate inputs are given. A number of problems regarding both testing and diagnosis thus arise, such as testing a fault, testing the whole system, finding possible faults and differentiating them to locate the correct one. The corresponding optimisation problems of finding solutions that require minimum resources are also very relevant in industry, as is minimal diagnosis. In this dissertation we use a well established set of benchmark circuits to address such diagnostic related problems and propose and develop models with different logics that we formalise and generalise as much as possible. We also prove that all techniques generalise to agents and to multiple faults. The developed multi-valued logics extend the usual Boolean logic (suitable for faultfree models) by encoding values with some dependency (usually on faults). Such logics thus allow modelling an arbitrary number of diagnostic theories. Each problem is subsequently solved with CLP solvers that we implement and discuss, together with a new efficient search technique that we present. We compare our results with other approaches such as SAT (that require substantial duplication of circuits), showing the effectiveness of constraints over multi-valued logics, and also the adequacy of a general set constraint solver (with special inferences over set functions such as cardinality) on other problems. In addition, for an optimisation problem, we integrate local search with a constructive approach (branch-and-bound) using a variety of logics to improve an existing efficient tool based on SAT and ILP

    Solving Classes of Set Constraints with Tree Automata

    No full text
    . Set constraints is a suitable formalism for static analysis of programs. However, it is known that the complexity of set constraint problems in the most general cases is very high (NEXPTIME-completeness of the satisfiability test). Lots of works are involved in finding more tractable subclasses. In this paper, we investigate two classes of set constraints shown to be useful for program analysis: the first one is an extension of definite set constraints including the main feature of quantified set expressions. We will show that the satisfiability problem for this class is EXPTIME- complete. The second one concerns constraints of the form X ` exp, where exp is built with function symbols, the intersection and union connectives and projection operators. The dual aspects of those two classes allows to find a common approach for solving both of them. This approach uses as basic tool tree automata, which are suitable both for computation and representing the solution of those solving prob..

    Set based failure diagnosis for concurrent constraint programming

    Get PDF
    Oz is a recent high-level programming language, based on an extension of the concurrent constraint model by higher-order procedures and state. Oz is a dynamically typed language like Prolog, Scheme, or Smalltalk. We investigate two approaches of making static type analysis available for Oz: Set-based failure diagnosis and strong typing. We define a new system of set constraints over feature trees that is appropriate for the analysis of record structures, and we investigate its satisfiability, emptiness, and entailment problem. We present a set-based diagnosis for constraint logic programming and concurrent constraint programming as first-order fragments of Oz, and we prove that it correctly detects inevitable run-time errors. We also propose an analysis for a larger sublanguage of Oz. Complementarily, we define an Oz-style language called Plain that allows an expressive strong type system. We present such a type system and prove its soundness.Oz ist eine anwendungsnahe Programmiersprache, deren Grundlage eine Erweiterung des Modells nebenläufiger Constraintprogrammierung um Prozeduren höherer Stufe und Zustand ist. Oz ist eine Sprache mit dynamischer Typüberprüfung wie Prolog, Scheme oder Smalltalk. Wir untersuchen zwei Ansätze, statische Typüberprüfung für Oz zu ermöglichen: Mengenbasierte Fehlerdiagnose und Starke Typisierung. Wir definieren ein neues System von Mengenconstraints über Featurebäumen, das für die Analyse von Recordstrukturen geeignet ist, und wir untersuchen das Erfüllbarkeits-, das Leerheits- und das Subsumtionsproblem für dieses Constraintsystem. Wir präsentieren eine mengenbasierte Diagnose für Constraint-Logikprogrammierung und für nebenläufige Constraintprogrammierung als Teilsprachen von Oz, und wir beweisen, daß diese unvermeidliche Laufzeitfehler erkennt. Wir schlagen auch eine mengenbasierte Analyse für eine grössere Teilsprache von Oz vor. Komplementär dazu definieren wir eine Oz-artige Sprache genannt Plain, die ein expressives starkes Typsystem erlaubt. Wir stellen ein solches Typsystem vor und beweisen seine Korrektheit

    Set based failure diagnosis for concurrent constraint programming

    Get PDF
    Oz is a recent high-level programming language, based on an extension of the concurrent constraint model by higher-order procedures and state. Oz is a dynamically typed language like Prolog, Scheme, or Smalltalk. We investigate two approaches of making static type analysis available for Oz: Set-based failure diagnosis and strong typing. We define a new system of set constraints over feature trees that is appropriate for the analysis of record structures, and we investigate its satisfiability, emptiness, and entailment problem. We present a set-based diagnosis for constraint logic programming and concurrent constraint programming as first-order fragments of Oz, and we prove that it correctly detects inevitable run-time errors. We also propose an analysis for a larger sublanguage of Oz. Complementarily, we define an Oz-style language called Plain that allows an expressive strong type system. We present such a type system and prove its soundness.Oz ist eine anwendungsnahe Programmiersprache, deren Grundlage eine Erweiterung des Modells nebenläufiger Constraintprogrammierung um Prozeduren höherer Stufe und Zustand ist. Oz ist eine Sprache mit dynamischer Typüberprüfung wie Prolog, Scheme oder Smalltalk. Wir untersuchen zwei Ansätze, statische Typüberprüfung für Oz zu ermöglichen: Mengenbasierte Fehlerdiagnose und Starke Typisierung. Wir definieren ein neues System von Mengenconstraints über Featurebäumen, das für die Analyse von Recordstrukturen geeignet ist, und wir untersuchen das Erfüllbarkeits-, das Leerheits- und das Subsumtionsproblem für dieses Constraintsystem. Wir präsentieren eine mengenbasierte Diagnose für Constraint-Logikprogrammierung und für nebenläufige Constraintprogrammierung als Teilsprachen von Oz, und wir beweisen, daß diese unvermeidliche Laufzeitfehler erkennt. Wir schlagen auch eine mengenbasierte Analyse für eine grössere Teilsprache von Oz vor. Komplementär dazu definieren wir eine Oz-artige Sprache genannt Plain, die ein expressives starkes Typsystem erlaubt. Wir stellen ein solches Typsystem vor und beweisen seine Korrektheit

    Solving classes of set constraints with tree automata

    No full text

    Solving Classes of Set Constraints with Tree Automata

    No full text
    Set constraints is a suitable formalism for programs static-analysis. However, it is known that the complexity of set constraint problems in the most general cases is very high (NEXPTIME-completeness of the satisfiability test). Lots of works are involved into finding more tractable subclasses. In this paper, we investigate two classes of set constraints shown to be useful for program analysis: the first one is the class of set constraints with intersection defined as inclusions between expressions built over function symbols and the intersection operator. the second one concerns constraints of the form X ` exp, where exp is built with function symbols, the intersection, union and projection operators. The dual aspects of those two classes allows to find a common approach for solving both of them. This approach uses as basic tool tree automata, which are suitable both for computation and representing the solution of those solving problems. It leads also to simple algorithms and an eas..
    corecore