1,419 research outputs found
Algebraic Principles for Rely-Guarantee Style Concurrency Verification Tools
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
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
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
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
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
- …