28 research outputs found

    Separation Logic Modulo Theories

    Get PDF
    Logical reasoning about program data often requires dealing with heap structures as well as scalar data types. Recent advances in Satisfiability Modular Theory (SMT) already offer efficient procedures for dealing with scalars, yet they lack any support for dealing with heap structures. In this paper, we present an approach that integrates Separation Logic---a prominent logic for reasoning about list segments on the heap---and SMT. We follow a model-based approach that communicates aliasing among heap cells between the SMT solver and the Separation Logic reasoning part. An experimental evaluation using the Z3 solver indicates that our approach can effectively put to work the advances in SMT for dealing with heap structures. This is the first decision procedure for the combination of separation logic with SMT theories.Comment: 16 page

    Step-Indexed Normalization for a Language with General Recursion

    Get PDF
    The Trellys project has produced several designs for practical dependently typed languages. These languages are broken into two fragments-a_logical_fragment where every term normalizes and which is consistent when interpreted as a logic, and a_programmatic_fragment with general recursion and other convenient but unsound features. In this paper, we present a small example language in this style. Our design allows the programmer to explicitly mention and pass information between the two fragments. We show that this feature substantially complicates the metatheory and present a new technique, combining the traditional Girard-Tait method with step-indexed logical relations, which we use to show normalization for the logical fragment.Comment: In Proceedings MSFP 2012, arXiv:1202.240

    Risk Aversion and the Value of Risk to Life

    Full text link
    The standard literature on the value of life relies on Yaari’s (1965) model, which includes an implicit assumption of risk neutrality with respect to life duration. To overpass this limitation, we extend the theory to a simple variety of preferences which are not necessarily additively separable. The enlargement we propose is relevant for the evaluation of life-saving programs: current practice, we estimate, puts too little weight on mortality risk reduction of the young. Our correction exceeds in magnitude that introduced by the switch from the notion of number of lives saved to the notion of years of life saved

    Transfinite step-indexing for termination

    No full text

    Charge! - A Framework for Higher-Order Separation Logic in Coq

    No full text
    We present a comprehensive set of tactics for working with a shallow embedding of a higher-order separation logic for a subset of Java in Coq. The tactics make it possible to reason at a level of abstraction similar to pen-and-paper separation-logic proof outlines. In particular, the tactics allow the user to reason in the embedded logic rather than in the concrete model, where the stacks and heaps are exposed. The development is generic in the choice of heap model, and most of the development is also independent of the choice of programming language
    corecore