97 research outputs found

    Automating Deductive Verification for Weak-Memory Programs

    Full text link
    Writing correct programs for weak memory models such as the C11 memory model is challenging because of the weak consistency guarantees these models provide. The first program logics for the verification of such programs have recently been proposed, but their usage has been limited thus far to manual proofs. Automating proofs in these logics via first-order solvers is non-trivial, due to reasoning features such as higher-order assertions, modalities and rich permission resources. In this paper, we provide the first implementation of a weak memory program logic using existing deductive verification tools. We tackle three recent program logics: Relaxed Separation Logic and two forms of Fenced Separation Logic, and show how these can be encoded using the Viper verification infrastructure. In doing so, we illustrate several novel encoding techniques which could be employed for other logics. Our work is implemented, and has been evaluated on examples from existing papers as well as the Facebook open-source Folly library.Comment: Extended version of TACAS 2018 publicatio

    solc-verify: A Modular Verifier for Solidity Smart Contracts

    Full text link
    We present solc-verify, a source-level verification tool for Ethereum smart contracts. Solc-verify takes smart contracts written in Solidity and discharges verification conditions using modular program analysis and SMT solvers. Built on top of the Solidity compiler, solc-verify reasons at the level of the contract source code, as opposed to the more common approaches that operate at the level of Ethereum bytecode. This enables solc-verify to effectively reason about high-level contract properties while modeling low-level language semantics precisely. The contract properties, such as contract invariants, loop invariants, and function pre- and post-conditions, can be provided as annotations in the code by the developer. This enables automated, yet user-friendly formal verification for smart contracts. We demonstrate solc-verify by examining real-world examples where our tool can effectively find bugs and prove correctness of non-trivial properties with minimal user effort.Comment: Authors' manuscript. Published in S. Chakraborty and J. A. Navas (Eds.): VSTTE 2019, LNCS 12031, 2020. The final publication is available at Springer via https://doi.org/10.1007/978-3-030-41600-3_1

    ‘The Invisible Chain by Which All Are Bound to Each Other’: Civil Defence Magazines and the Development of Community During the Second World War

    No full text
    This article uses local collaboratively produced civil defence magazines to examine how community spirit was developed and represented within the civil defence services during the Second World War. It highlights the range of functions which the magazines performed, as well as the strategies employed by civil defence communities to manage their emotions in order to keep morale high and distract personnel from the fear and boredom experienced while on duty. The article also discusses silences in the magazines — especially around the experience of air raids — and argues that this too reflects group emotional management strategies. The significance of local social groups in developing narratives about civil defence and their workplace communities is demonstrated, and the article shows how personnel were able to engage with and refashion dominant cultural narratives of the ‘people’s war’ in order to assert their own status within the war effort

    Formal verification of a memory model for C-like imperative languages

    Get PDF
    http://www.springer.com/International audienceThis paper presents a formal verification with the Coq proof assistant of a memory model for C-like imperative languages. This model defines the memory layout and the operations that manage the memory. The model has been specified at two levels of abstraction and implemented as part of an ongoing certification in Coq of a moderately-optimising C compiler. Many properties of the memory have been verified in the specification. They facilitate the definition of precise formal semantics of C pointers. A certified OCaml code implementing the memory model has been automatically extracted from the specifications

    Toward a History of Women Projectionists in Post-war British Cinemas

    Get PDF
    Cinema projection is usually understood to be a male-dominated occupation, with the projection box characterised as a gendered space separate from the more typically feminine front-of-house roles. Although this is a fairly accurate representation, it risks eliminating all traces of women’s labour in the projection box. Previous work by David R. Williams (1997) and Rebecca Harrison (2016) has addressed the role of women projectionists during wartime, and this article begins to excavate a hidden history of women projectionists in a peacetime context. The article uses oral testimony from two women – Florence Barton and Joan Pearson – who worked as projectionists in the mid-twentieth century. Their accounts are presented in the article as two portraits, which aim to convey a sense of the women’s everyday lives in the projection box, as well as think about implications that their stories have for our understanding of women’s roles in projection more broadly. Of particular significance to both Barton and Pearson are the relationships that they had with their male colleagues, the possibilities afforded for career progression (and the different paths taken by the women) and the nature of projection work. The women’s repeated assertions that they were expected to do the same jobs as their male counterparts form a key aspect of the interviews, which suggest there is scope for further investigation of women’s labour specifically in projection boxes and in cinemas more generally

    Capabilities for Uniqueness and Borrowing

    Get PDF
    An important application of unique object references is safe and efficient message passing in concurrent object-oriented programming. However, to prevent the ill effects of aliasing, practical systems often severely restrict the shape of messages passed by reference. Moreover, the problematic interplay between destructive reads--often used to implement unique references--and temporary aliasing through "borrowed" references is exacerbated in a concurrent setting, increasing the potential for unpredictable run-time errors. This paper introduces a new approach to uniqueness. The idea is to use capabilities for enforcing both at-most-once consumption of unique references, and a flexible notion of uniqueness. The main novelty of our approach is a model of uniqueness and borrowing based on simple, unstructured capabilities. The advantages are: first, it provides simple foundations for uniqueness and borrowing. Second, it can be formalized using a relatively simple type system, for which we provide a complete soundness proof. Third, it avoids common problems involving borrowing and destructive reads, since unique references subsume borrowed references. We have implemented our type system as an extension to Scala. Practical experience suggests that our system allows type checking real-world actor-based concurrent programs with only a small number of additional type annotations

    Narrative, metaphor and the subjective understanding of identity transition

    Get PDF
    This is the author accepted manuscript. The final version is available from the publisher via the DOI in this record.This paper examines the relevance of employing an oral history method and narrative interview techniques for business historians. We explore the use of oral history interviews as a means of capturing the expression of subjective experience in narrative and metaphor. We do so by analysing interviews concerning the transition of East German identities following reunification with West Germany. Self-expression emerges as critical to the vital identity work required for social integration following transformation, metaphor providing a means of articulating deep-rooted patterns of thought. We demonstrate that employing an oral history methodology can benefit business historians by affording access to the human dimension of a research project, unlocking the subjective understanding of experience by low-power actors among the non-hegemonic classes. Hence, employing an oral history methodology provides a valuable means of countering narrative imperialism, exemplified here by the dominant West German success story grounded in Western-style individual freedom

    Democratizing, Stretching, Entangling, Transversing: Four Moves for Reshaping Migration Categories

    No full text
    Migration categories are powerful in shaping who migrates, how and with what rights. This paper outlines the who, why, how, where and when of current categorization and its limits. It then suggests four practices that can reshape migration categories: democratizing and decolonizing them by taking these categories beyond the countries of the global North; stretching their spatio-temporal referents; entangling them with other categorisations based on race and gender and how they are practiced so that their theoretical foundations, disciplinary insights and methodologies can be multiplied; and transversing them to see other processes and methods that cut across migrant categories
    corecore