8 research outputs found
Automatic Unbounded Verification of Alloy Specifications with Prover9
Alloy is an increasingly popular lightweight specification language based on
relational logic. Alloy models can be automatically verified within a bounded
scope using off-the-shelf SAT solvers. Since false assertions can usually be
disproved using small counter-examples, this approach suffices for most
applications. Unfortunately, it can sometimes lead to a false sense of
security, and in critical applications a more traditional unbounded proof may
be required. The automatic theorem prover Prover9 has been shown to be
particularly effective for proving theorems of relation algebras [7], a
quantifier-free (or point-free) axiomatization of a fragment of relational
logic. In this paper we propose a translation from Alloy specifications to fork
algebras (an extension of relation algebras with the same expressive power as
relational logic) which enables their unbounded verification in Prover9. This
translation covers not only logic assertions, but also the structural aspects
(namely type declarations), and was successfully implemented and applied to
several examples
HeteroGenius: A Framework for Hybrid Analysis of Heterogeneous Software Specifications
Nowadays, software artifacts are ubiquitous in our lives being an essential
part of home appliances, cars, cell phones, and even in more critical
activities like aeronautics and health sciences. In this context software
failures may produce enormous losses, either economical or, in the worst case,
in human lives. Software analysis is an area in software engineering concerned
with the application of diverse techniques in order to prove the absence of
errors in software pieces. In many cases different analysis techniques are
applied by following specific methodological combinations that ensure better
results. These interactions between tools are usually carried out at the user
level and it is not supported by the tools. In this work we present
HeteroGenius, a framework conceived to develop tools that allow users to
perform hybrid analysis of heterogeneous software specifications.
HeteroGenius was designed prioritising the possibility of adding new
specification languages and analysis tools and enabling a synergic relation of
the techniques under a graphical interface satisfying several well-known
usability enhancement criteria. As a case-study we implemented the
functionality of Dynamite on top of HeteroGenius.Comment: In Proceedings LAFM 2013, arXiv:1401.056
A Dual-Engine for Early Analysis of Critical Systems
This paper presents a framework for modeling, simulating, and checking
properties of critical systems based on the Alloy language -- a declarative,
first-order, relational logic with a built-in transitive closure operator. The
paper introduces a new dual-analysis engine that is capable of providing both
counterexamples and proofs. Counterexamples are found fully automatically using
an SMT solver, which provides a better support for numerical expressions than
the existing Alloy Analyzer. Proofs, however, cannot always be found
automatically since the Alloy language is undecidable. Our engine offers an
economical approach by first trying to prove properties using a
fully-automatic, SMT-based analysis, and switches to an interactive theorem
prover only if the first attempt fails. This paper also reports on applying our
framework to Microsoft's COM standard and the mark-and-sweep garbage collection
algorithm.Comment: Workshop on Dependable Software for Critical Infrastructures (DSCI),
Berlin 201
Herramientas de model finding para asistir en la construcción de especificaciones formales
Este trabajo plantea el desafío técnico de asistir en la construcción de especificaciones en el contexto de la enseñanza de la programación, en materias introductorias, a través de la provisión automática de información de análisis, basada en constraint solving relacional. Se presentan a través de ejemplos concretos, por un lado, la traducción de especificaciones que involucran expresiones cuantificadas al lenguaje Alloy, y por otro la definición de consultas de análisis que, mediante las herramientas Alloy y DynAlloy, brindan feedback automático a los estudiantes. Se discuten además algunas dificultades técnicas que se presentan al construir modelos de especificaciones con dominios numéricos, para su utilización en herramientas de model finding.Workshop: WTIAE – Tecnología Informática Aplicada en EducaciónRed de Universidades con Carreras en Informátic
Dynamite: Alloy Analyzer+PVS in the Analysis and Verification of Alloy Specifications
This article contains two main contributions. On the theoretical side, it presents a novel complete calculus for Alloy. On the applied side we present DYNAMITE, a tool that combines the semi-automatic theorem prover PVS with the Alloy Analyzer. DYNAMITE allows one to prove Alloy assertion from Alloy specifications, while using the Alloy Analyzer for the automated analysis of hypotheses introduced during the proof process. As a means to assess the usability of the tool, we present a complex case-study based on Zave’s model of addressing for interoperating networks. Categories and Subject Descriptors D.2.4 Software EngineeringSoftware/Progra