8 research outputs found

    Automatic Unbounded Verification of Alloy Specifications with Prover9

    Full text link
    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

    Get PDF
    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

    Get PDF
    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

    Get PDF
    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

    On Proving Alloy Specifications Using KeY

    Get PDF

    Alloy Analyzer+PVS in the Analysis and Verification of Alloy Specifications

    No full text

    Dynamite: Alloy Analyzer+PVS in the Analysis and Verification of Alloy Specifications

    No full text
    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
    corecore