12 research outputs found

    Tracing and Explaining Execution of CLP(FD) Programs

    Get PDF
    Previous work in the area of tracing CLP(FD) programs mainly focuses on providing information about control of execution and domain modification. In this paper, we present a trace structure that provides information about additional important aspects. We incorporate explanations in the trace structure, i.e. reasons for why certain solver actions occur. Furthermore, we come up with a format for describing the execution of the filtering algorithms of global constraints. Some new ideas about the design of the trace are also presented. For example, we have modeled our trace as a nested block structure in order to achieve a hierarchical view. Also, new ways about how to represent and identify different entities such as constraints and domain variables are presented.Comment: 16 pages; Alexandre Tessier, editor; WLPE 2002, http://xxx.lanl.gov/abs/cs.SE/020705

    Proceedings of the 2022 XCSP3 Competition

    Full text link
    This document represents the proceedings of the 2022 XCSP3 Competition. The results of this competition of constraint solvers were presented at FLOC (Federated Logic Conference) 2022 Olympic Games, held in Haifa, Israel from 31th July 2022 to 7th August, 2022.Comment: arXiv admin note: text overlap with arXiv:1901.0183

    Constraint-based verification of imperative programs

    Get PDF
    work presented in the context of the European Master’s program in Computational Logic, as the partial requirement for obtaining Master of Science degree in Computational LogicThe continuous reduction in the cost of computing ever since the first days of computers has resulted in the ubiquity of computing systems today; there is no any sphere of life in the daily routine of human beings that is not directly or indirectly influenced by computer systems anymore. But this high reliance on computers has not come without a risk to the society or a challenge to computer scientists. As many computer systems of today are safety critical, it is crucial for computer scientists to make sure that computer systems, both the hardware and software components, behave correctly under all circumstances. In this study, we are interested in techniques of program verification that are aimed at ensuring the correctness of the software component. In this work, constraint programming techniques are used to device a program verification framework where constraint solvers play the role of typical verification tools. The programs considered are written in some subset of Java, and their specifications are written in some subset of Java Modeling Language(JML). In our framework, the program verification process has two principal steps: constraint generation and constraint solving. A program together with its specification is first parsed into a system of constraints. And then, the system of constraints is processed using constraint solvers so that the correctness of the original program is proved to hold, or not, based on the outcome of the constraint solving. The performance of our framework is compared with other well-known program verification tools using standard benchmarks, and our framework has performed quite well for most of the cases

    Global Constraint Catalog, 2nd Edition (revision a)

    Get PDF
    This report presents a catalogue of global constraints where each constraint is explicitly described in terms of graph properties and/or automata and/or first order logical formulae with arithmetic. When available, it also presents some typical usage as well as some pointers to existing filtering algorithms

    Global Constraint Catalog, 2nd Edition

    Get PDF
    This report presents a catalogue of global constraints where each constraint is explicitly described in terms of graph properties and/or automata and/or first order logical formulae with arithmetic. When available, it also presents some typical usage as well as some pointers to existing filtering algorithms

    Constraint-based specifications for system configuration

    Get PDF
    Declarative, object-oriented configuration management systems are widely used, and there is a desire to extend such systems with automated analysis and decision-making. This thesis introduces a new formulation for configuration management problems based on the tools and techniques of constraint programming, which enables automated decision-making. We present ConfSolve, an object-oriented declarative configuration language, in which logical constraints on a system can be specified. Verification, impact analysis, and the generation of valid configurations can then be performed. This is achieved via translation to the MiniZinc constraint programming language, which is in turn solved via the Gecode constraint solver. We formally define the syntax, type system, and semantics of ConfSolve, in order to provide it with a rigorous foundation. Additionally we show that our implementation outperforms previous work, which utilised an SMT solver, while adding new features such as optimisation. We next develop an extension of the ConfSolve language, which facilitates not only one-off configuration tasks, but also subsequent re-configurations in which the previous state of the system is taken into account. In a practical setting one does not wish for a re-configuration to deviate too far from the existing state, unless the benefits are substantial. Re-configuration is of crucial importance if automated configuration systems are to gain industry adoption. We present a novel approach to incorporating state-change into ConfSolve while remaining declarative and providing acceptable performance

    Diseño de un sistema genérico de Solvers para el modelado y razonamiento en herramientas de ingeniería de líneas de productos

    Get PDF
    Las líneas de productos (PL, por sus siglas en inglés) constituyen entidades complejas, y para gestionar proyectos basados en esta metodología, se requieren herramientas que simplifiquen la enorme complejidad de configurar cientos de productos compuestos por miles de componentes. Para abordar estas dificultades, se han desarrollado diversas herramientas destinadas a la implementación de líneas de producto. En la ingeniería de líneas de productos (PLE, por sus siglas en inglés), es común que ciertos casos de uso de estas herramientas requieran diferentes representaciones matemáticas que permitan evaluar los modelos que describen la línea de productos de diversas maneras. Uno de los principales desafíos en la PLE es habilitar un conjunto de herramientas lo suficientemente amplio como para modelar diferentes expresiones de modelos de PLE. En este documento, exploramos una propuesta que permite añadir componentes para el razonamiento acerca de las propiedades de varios modelos de líneas de productos. Investigamos operaciones de razonamiento que no son tradicionales en la literatura de PLE. Además, examinamos cómo desarrollar un conjunto de procesos y artefactos de código que faciliten la creación de diferentes representaciones de los modelos y permitan razonar con diversas herramientas
    corecore