97 research outputs found
Automating Deductive Verification for Weak-Memory Programs
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
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
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
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
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
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
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
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
- …