1,419 research outputs found

    Algebraic Principles for Rely-Guarantee Style Concurrency Verification Tools

    Full text link
    We provide simple equational principles for deriving rely-guarantee-style inference rules and refinement laws based on idempotent semirings. We link the algebraic layer with concrete models of programs based on languages and execution traces. We have implemented the approach in Isabelle/HOL as a lightweight concurrency verification tool that supports reasoning about the control and data flow of concurrent programs with shared variables at different levels of abstraction. This is illustrated on two simple verification examples

    Featherweight VeriFast

    Full text link
    VeriFast is a leading research prototype tool for the sound modular verification of safety and correctness properties of single-threaded and multithreaded C and Java programs. It has been used as a vehicle for exploration and validation of novel program verification techniques and for industrial case studies; it has served well at a number of program verification competitions; and it has been used for teaching by multiple teachers independent of the authors. However, until now, while VeriFast's operation has been described informally in a number of publications, and specific verification techniques have been formalized, a clear and precise exposition of how VeriFast works has not yet appeared. In this article we present for the first time a formal definition and soundness proof of a core subset of the VeriFast program verification approach. The exposition aims to be both accessible and rigorous: the text is based on lecture notes for a graduate course on program verification, and it is backed by an executable machine-readable definition and machine-checked soundness proof in Coq

    Reasoning about correctness properties of a coordination programming language

    Get PDF
    Safety critical systems place additional requirements to the programming language used to implement them with respect to traditional environments. Examples of features that in uence the suitability of a programming language in such environments include complexity of de nitions, expressive power, bounded space and time and veri ability. Hume is a novel programming language with a design which targets the rst three of these, in some ways, contradictory features: fully expressive languages cannot guarantee bounds on time and space, and low-level languages which can guarantee space and time bounds are often complex and thus error-phrone. In Hume, this contradiction is solved by a two layered architecture: a high-level fully expressive language, is built on top of a low-level coordination language which can guarantee space and time bounds. This thesis explores the veri cation of Hume programs. It targets safety properties, which are the most important type of correctness properties, of the low-level coordination language, which is believed to be the most error-prone. Deductive veri cation in Lamport's temporal logic of actions (TLA) is utilised, in turn validated through algorithmic experiments. This deductive veri cation is mechanised by rst embedding TLA in the Isabelle theorem prover, and then embedding Hume on top of this. Veri cation of temporal invariants is explored in this setting. In Hume, program transformation is a key feature, often required to guarantee space and time bounds of high-level constructs. Veri cation of transformations is thus an integral part of this thesis. The work with both invariant veri cation, and in particular, transformation veri cation, has pinpointed several weaknesses of the Hume language. Motivated and in uenced by this, an extension to Hume, called Hierarchical Hume, is developed and embedded in TLA. Several case studies of transformation and invariant veri cation of Hierarchical Hume in Isabelle are conducted, and an approach towards a calculus for transformations is examined.James Watt ScholarshipEngineering and Physical Sciences Research Council (EPSRC) Platform grant GR/SO177

    Bayesian networks as a decision support tool for rural water supply and sanitation sector

    Get PDF
    Despite the efforts made towards the Millennium Development Goals targets during the last decade, still millions of people across the world lack of improved access to water supply or basic sanitation. The increasing complexity of the context in which these services are delivered is not properly captured by the conventional approaches that pursue to assess water, sanitation and hygiene (WaSH) interventions. Instead, a holistic framework is required to integrate the wide range of aspects which are influencing sustainable and equitable provision of safe water and sanitation, especially to those in vulnerable situations. In this context, the WaSH Poverty Index (WaSH-PI) was adopted, as a multi-dimensional policy tool that tackles the links between access to basic services and the socio-economic drivers of poverty. Nevertheless, this approach does not fully describe the increasing interdependency of the reality. For this reason, appropriate Decision Support Systems (DSS) are required to i) inform about the results achieved in past and current interventions, and to ii) determine expected impacts of future initiatives, particularly taking into account envisaged investments to reach the targets set by the Sustainable Development Goals (SDGs). This would provide decision-makers with adequate information to define strategies and actions that are efficient, effective, and sustainable. This master thesis explores the use of object-oriented Bayesian networks (ooBn) as a powerful instrument to support project planning and monitoring, as well as targeting and prioritization. Based on WaSH-PI theoretical framework, a simple ooBn model has been developed and applied to reflect the main issues that determine access to safe water, sanitation and hygiene. A case study is presented in Kenya, where the Government launched in 2008 a national program aimed to increase the access to improved water, sanitation and hygiene in 22 of the 47 existing districts. Main impacts resulted from this initiative are assessed and compared against the initial situation. This research concludes that the proposed approach is able to accommodate the conditions at different scales, at the same time that reflects the complexities of WaSH-related issues. Additionally, this DSS represents an effective management tool to support decisionmakers to formulate informed choices between alternative actions

    The Variety of Variables in Automated Real-Time Refinement

    Get PDF
    The refinement calculus is a well-established theory for deriving program code from specifications. Recent research has extended the theory to handle timing requirements, as well as functional ones, and we have developed an interactive programming tool based on these extensions. Through a number of case studies completed using the tool, this paper explains how the tool helps the programmer by supporting the many forms of variables needed in the theory. These include simple state variables as in the untimed calculus, trace variables that model the evolution of properties over time, auxiliary variables that exist only to support formal reasoning, subroutine parameters, and variables shared between parallel processes
    • …
    corecore