12 research outputs found
Tracing and Explaining Execution of CLP(FD) Programs
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
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
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)
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
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
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
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