Jim Woodcock 0001

dblp:w/JWoodcock · also J. C. P. Woodcock, James Charles Paul Woodcock · DBLP profile ↗
← Back
122ranked-venue papers
20as first author
27since 2021 · last 2026
0000-0001-7955-2702ORCID · verified

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 62 · 12 first-author · 11 since 2021Theory of computation · 62 · 11 first-author · 15 since 2021Systems, architecture and hardware · 2Security and privacy · 2Databases, data management, data science and information retrieval · 2 · 1 since 2021Applied, interdisciplinary, general and emerging computing · 2 · 1 first-author
YearPublicationVenuePosition
2026 Introduction to the Special Collection on the History of Formal Methods
Cliff Jones, Jim Woodcock 0001
Formal Aspects Comput.2
2026 Jean-Raymond Abrial (1938 - 2025) Pioneer of Formal Methods and Inventor of the B Method. An Obituary
abstract
Jean-Raymond Abrial (6 November 1938 – 26 May 2025), one of the founding figures of modern formal methods in computer science, passed away at the age of 86. His contributions laid the groundwork for mathematically rigorous software development, and his influence spans generations of researchers, engineers, and educators worldwide.
Jim Woodcock 0001
Formal Aspects Comput.1
2026 A Brief History of Formal Methods in China
abstract
The development of formal methods (FM) in China dates back to the early 1950s, when several logicians shifted their research focus from mathematics to theoretical computer science and began advocating the application of mathematical logic to enhance the rigor of computing systems. A significant expansion of FM in China emerged in the 1980s, pioneered by a new generation of talented computer scientists who had visited, studied, and/or worked in Western countries, such as the United Kingdom and the United States, closely tied to China’s reform and opening-up policy. A notable milestone was the establishment of the United Nations University International Institute for Software Technology (UNU/IIST) in Macau in the early 1990s, which played a crucial role in advancing FM research and collaboration in China. In recent years, the return of an increasing number of talented young scholars has further strengthened China’s FM community, elevating its influence and contribution within the global FM landscape.
Naijun Zhan, Jim Woodcock 0001, Ji Wang 0001, Mingshuai Chen
Formal Aspects Comput.2
2025 Formal Verification of Physical Layer Security Protocols for Next-Generation Communication Networks
Kangfeng Ye, Roberto Metere, Jim Woodcock 0001, Poonam Yadav
ICFEM3
2025 In Memoriam: Ernest Allen Emerson II
Jim Woodcock 0001
Formal Aspects Comput.1
2025 Farewell Editorial
Jim Woodcock 0001
Formal Aspects Comput.1
2025 Auto-Encoding Neural Tucker Factorization
abstract
Low-rank latent factorization of tensors is a powerful method for analyzing high-dimensional and incomplete (HDI) data derived from cyber-physical systems, particularly when computational resources are limited. However, traditional tensor factorization models are inherently linear and struggle to capture the complex nonlinear spatiotemporal dependencies embedded in the data. This paper introduces a novel latent factorization model, namelyAuto-encodingNeuralTuckerFactorization (ANTucF) for accurate spatiotemporal representation learning on the HDI tensor. It constructs a low-rank Tucker factorization-based neural network to capture a potential latent manifold in space and time, built upon three core ideas: a) applying density-oriented modeling principles with neural networks to facilitate latent feature learning via positional and temporal encoding of mode indices; b) constructing a Tucker interaction tensor to represent all possible spatiotemporal interactions among distinct spatial and temporal modes; and c) enhancing the uniqueness of the core tensor in Tucker factorization by incorporating nonlinear spatiotemporal representation learning via auto-encoding latent interaction learning. The ANTucF model outperforms several state-of-the-art LFT models in estimating missing observations on real-world datasets. Additionally, visualizations demonstrate its ability to capture finer spatiotemporal dynamics by nonlinearly exploiting an optimal Tucker core tensor using a data-driven approach.
Peng Tang 0003, Xin Luo 0001, Jim Woodcock 0001
IEEE Trans. Knowl. Data Eng.3
2025 Unifying Model Execution and Deductive Verification with Interaction Trees in Isabelle/HOL
abstract
Model execution allows us to prototype and analyse software engineering models by stepping through their possible behaviours, using techniques like animation and simulation. On the other hand, deductive verification allows us to construct formal proofs demonstrating satisfaction of certain critical properties in support of high-assurance software engineering. To ensure coherent results between execution and proof, we need unifying semantics and automation. In this article, we mechanise Interaction Trees (ITrees) in Isabelle/HOL to produce an execution and verification framework. ITrees are coinductive structures that allow us to encode infinite labelled transition systems, yet they are inherently executable. We use ITrees to create verification tools for stateful imperative programs, concurrent programs with message passing in the form of the CSP and Circus languages, and abstract system models in the style of the Z and B methods. We demonstrate how ITrees can account for diverse semantic presentations, such as structural operational semantics, a relational program model, and CSP's failures-divergences trace model. Finally, we demonstrate how ITrees can be executed using the Isabelle code generator to support the animation of models.
Simon Foster 0001, Chung-Kil Hur, Jim Woodcock 0001
ACM Trans. Softw. Eng. Methodol.3
2024 Digital Twin Engineering
John S. Fitzgerald, Cláudio Gomes 0001, Einar Broch Johnsen, Eduard Kamburjan, Martin Leucker, Jim Woodcock 0001
ISoLA (5)6
2024 Formally verified animation for RoboChart using interaction trees
abstract
RoboChart is a core notation in the RoboStar framework. It is a timed and probabilistic domain-specific and state machine-based language for robotics. RoboChart supports shared variables and communication across entities in its component model. It has formal denotational semantics given in CSP. The semantic technique of Interaction Trees (ITrees) represents behaviours of reactive and concurrent programs interacting with their environments. Recent mechanisation of ITrees, ITree-based CSP semantics and a Z mathematical toolkit in Isabelle/HOL bring new applications of verification and animation for state-rich process languages, such as RoboChart. In this paper, we use ITrees to give RoboChart novel operational semantics, implement it in Isabelle, and use Isabelle's code generator to generate verified and executable animations. We illustrate our approach using an autonomous chemical detector and patrol robot models, exhibiting nondeterminism and using shared variables. With animation, we show two concrete scenarios for the chemical detector when the robot encounters different environmental inputs and three for the patrol robot when its calibrated position is in other corridor sections. We also verify that the animated scenarios are trace refinements of the CSP denotational semantics of the RoboChart models using FDR, a refinement model checker for CSP. This ensures that our approach to resolve nondeterminism using CSP operators with priority is sound and correct.
Kangfeng Ye, Simon Foster 0001, Jim Woodcock 0001
J. Log. Algebraic Methods Program.3
2024 Probabilistic unifying relations for modelling epistemic and aleatoric uncertainty: Semantics and automated reasoning with theorem proving
abstract
Probabilistic programming combines general computer programming, statistical inference, and formal semantics to help systems make decisions when facing uncertainty. Probabilistic programs are ubiquitous, including having a significant impact on machine intelligence. While many probabilistic algorithms have been used in practice in different domains, their automated verification based on formal semantics is still a relatively new research area. In the last two decades, it has attracted much interest. Many challenges, however, remain. The work presented in this paper, probabilistic unifying relations (ProbURel), takes a step towards our vision to tackle these challenges. Our work is based on Hehner's predicative probabilistic programming, but there are several obstacles to the broader adoption of his work. Our contributions here include (1) the formalisation of its syntax and semantics by introducing an Iverson bracket notation to separate relations from arithmetic; (2) the formalisation of relations using Unifying Theories of Programming (UTP) and probabilities outside the brackets using summation over the topological space of the real numbers; (3) the constructive semantics for probabilistic loops using Kleene's fixed-point theorem; (4) the enrichment of its semantics from distributions to subdistributions and superdistributions to deal with the constructive semantics; (5) the unique fixed-point theorem to simplify the reasoning about probabilistic loops; and (6) the mechanisation of our theory in Isabelle/UTP, an implementation of UTP in Isabelle/HOL, for automated reasoning using theorem proving. We demonstrate our work with six examples, including problems in robot localisation, classification in machine learning, and the termination of probabilistic loops. • A probabilistic semantics unification framework (ProbURel). • A new probabilistic programming language modelling Bayesian learning. • Iteration-based fix-point theorems and unique fix-point theorem for loops. • Mechanised theories in Isabelle/HOL and proved six examples.
Kangfeng Ye, Jim Woodcock 0001, Simon Foster 0001
Theor. Comput. Sci.2
2023 Modelling and Verifying Robotic Software that Uses Neural Networks
Ziggy Attala, Ana Cavalcanti 0001, Jim Woodcock 0001
ICTAC3
2023 Introduction to the Special Section on Reliability, Safety, and Security of Railway Systems
abstract
Securing a safety-critical system is a challenging task, because safety requirements have to be considered alongside security controls. We report on our experience to develop a security architecture for railway signalling systems starting from the bare ...
Simon Collart Dutilleul, Anne E. Haxthausen, Thierry Lecomte, Jim Woodcock 0001
Formal Aspects Comput.4
2023 A manifesto for applicable formal methods
abstract
Abstract Recently, formal methods have been used in large industrial organisations (including AWS, Facebook/Meta, and Microsoft) and have proved to be an effective part of a software engineering process finding important bugs. Perhaps because of that, practitioners are interested in using them more often. Nevertheless, formal methods are far less applied than expected, particularly for safety-critical systems where they are strongly recommended and have the most significant potential. We hypothesise that formal methods still seem not applicable enough or ready for their intended use in such areas. In critical software engineering, what do we mean when we speak of a formal method? And what does it mean for such a method to be applicable both from a scientific and practical viewpoint? Based on what the literature tells about the first question, with this manifesto, we identify key challenges and lay out a set of guiding principles that, when followed by a formal method, give rise to its mature applicability in a given scope. Rather than exercising criticism of past developments, this manifesto strives to foster increased use of formal methods in any appropriate context to the maximum benefit.
Mario Gleirscher, Jaco van de Pol, Jim Woodcock 0001
Softw. Syst. Model.3
2022 Formally Verified Animation for RoboChart Using Interaction Trees
Kangfeng Ye, Simon Foster 0001, Jim Woodcock 0001
ICFEM3
2022 Engineering of Digital Twins for Cyber-Physical Systems
John S. Fitzgerald, Peter Gorm Larsen, Tiziana Margaria, Jim Woodcock 0001, Cláudio Gomes 0001
ISoLA (4)4
2022 Formally Verified Self-adaptation of an Incubator Digital Twin
Thomas Wright, Cláudio Gomes 0001, Jim Woodcock 0001
ISoLA (4)3
2022 A Survey of Practical Formal Methods for Security
abstract
In today’s world, critical infrastructure is often controlled by computing systems. This introduces new risks for cyber attacks, which can compromise the security and disrupt the functionality of these systems. It is therefore necessary to build such systems with strong guarantees of resiliency against cyber attacks. One way to achieve this level of assurance is using formal verification, which provides proofs of system compliance with desired cyber security properties. The use of Formal Methods (FM) in aspects of cyber security and safety-critical systems are reviewed in this article. We split FM into the three main classes: theorem proving, model checking, and lightweight FM. To allow the different uses of FM to be compared, we define a common set of terms. We further develop categories based on the type of computing system FM are applied in. Solutions in each class and category are presented, discussed, compared, and summarised. We describe historical highlights and developments and present a state-of-the-art review in the area of FM in cyber security. This review is presented from the point of view of FM practitioners and researchers, commenting on the trends in each of the classes and categories. This is achieved by considering all types of FM, several types of security and safety-critical systems, and by structuring the taxonomy accordingly. The article hence provides a comprehensive overview of FM and techniques available to system designers of security-critical systems, simplifying the process of choosing the right tool for the task. The article concludes by summarising the discussion of the review, focusing on best practices, challenges, general future trends, and directions of research within this field.
Tomas Kulik, Brijesh Dongol, Peter Gorm Larsen, Hugo Daniel Macedo, Steve A. Schneider, Peter Würtz Vinther Tran-Jørgensen, Jim Woodcock 0001
Formal Aspects Comput.7
2022 Probabilistic modelling and verification using RoboChart and PRISM
abstract
Abstract RoboChart is a timed domain-specific language for robotics, distinctive in its support for automated verification by model checking and theorem proving. Since uncertainty is an essential part of robotic systems, we present here an extension to RoboChart to model uncertainty using probabilism. The extension enriches RoboChart state machines with probability through a new construct: probabilistic junctions as the source of transitions with a probability value. RoboChart has an accompanying tool, called RoboTool, for modelling and verification of functional and real-time behaviour. We present here also an automatic technique, implemented in RoboTool, to transform a RoboChart model into a PRISM model for verification. We have extended the property language of RoboTool so that probabilistic properties expressed in temporal logic can be written using controlled natural language.
Kangfeng Ye, Ana Cavalcanti 0001, Simon Foster 0001, Alvaro Miyazawa, Jim Woodcock 0001
Softw. Syst. Model.5
2021 Automated Reasoning for Probabilistic Sequential Programs with Theorem Proving
Kangfeng Ye, Simon Foster 0001, Jim Woodcock 0001
RAMiCS3
2021 Formally Verified Simulations of State-Rich Processes Using Interaction Trees in Isabelle/HOL
abstract
Simulation and formal verification are important complementary techniques necessary in high assurance model-based systems development. In order to support coherent results, it is necessary to provide unifying semantics and automation for both activities. In this paper we apply Interaction Trees in Isabelle/HOL to produce a verification and simulation framework for state-rich process languages. We develop the core theory and verification techniques for Interaction Trees, use them to give a semantics to the CSP and Circus languages, and formally link our new semantics with the failures-divergences semantic model. We also show how the Isabelle code generator can be used to generate verified executable simulations for reactive and concurrent programs.
Simon Foster 0001, Chung-Kil Hur, Jim Woodcock 0001
CONCUR3
2021 Verification of Co-simulation Algorithms Subject to Algebraic Loops and Adaptive Steps
Simon Thrane Hansen, Cláudio Gomes 0001, Maurizio Palmieri, Casper Thule, Jaco van de Pol, Jim Woodcock 0001
FMICS6
2021 Editorial
abstract
No abstract available.
Zhiming Liu 0001, Ji Wang 0001, Jim Woodcock 0001
Formal Aspects Comput.4
2021 Editorial
abstract
No abstract available.
Alessandro Fantechi, Anne E. Haxthausen, Jim Woodcock 0001
Formal Aspects Comput.3
2021 RiskStructures: A design algebra for risk-aware machines
abstract
Abstract Machines, such as mobile robots and delivery drones, incorporate controllers responsible for a task while handling risk (e.g. anticipating and mitigating hazards; preventing and alleviating accidents). We refer to machines with this capability as risk-awaremachines. Risk awareness includes robustness and resilience and complicates monitoring (i.e., introspection, sensing, prediction), decision making, and control. From an engineering perspective, risk awareness adds a range of dependability requirements to system assurance . Such assurance mandates a correct-by-construction approach to controller design, based on mathematical theory.We introduce RiskStructures, an algebraic framework for risk modelling intended to support the design of safety controllers for risk-aware machines. Using the concept of a risk factor as a modelling primitive, this framework provides facilities to construct, examine, and assure these controllers.We prove desirable algebraic properties of these facilities, and demonstrate their applicability by using them to specify key aspects of safety controllers for risk-aware automated driving and collaborative robots.
Mario Gleirscher, Radu Calinescu, Jim Woodcock 0001
Formal Aspects Comput.3
2021 Learning safe neural network controllers with barrier certificates
abstract
Abstract We provide a new approach to synthesize controllers for nonlinear continuous dynamical systems with control against safety properties. The controllers are based on neural networks (NNs). To certify the safety property we utilize barrier functions, which are represented by NNs as well. We train the controller-NN and barrier-NN simultaneously, achieving a verification-in-the-loop synthesis. We provide a prototype tool nncontroller with a number of case studies. The experiment results confirm the feasibility and efficacy of our approach.
Hengjun Zhao, Xia Zeng, Taolue Chen 0001, Zhiming Liu 0001, Jim Woodcock 0001
Formal Aspects Comput.5
2021 Automated verification of reactive and concurrent programs by calculation
Simon Foster 0001, Kangfeng Ye, Ana Cavalcanti 0001, Jim Woodcock 0001
J. Log. Algebraic Methods Program.4
2020 Engineering of Digital Twins for Cyber-Physical Systems
abstract
Advances in sensing, communications and data analytics have made it possible to construct virtual replicas of Cyber-Physical Systems (CPSs). Such replicas, known as digital twins, can in principle inform decision making during operation and evolution of the systems they model. This short paper introduces the ISoLA 2020/21 series of papers on the technology and practice of engineering digital twins for CPSs. The focus is on the relationship between model-based design, machine learning, digital twins and CPSs.
John S. Fitzgerald, Peter Gorm Larsen, Tiziana Margaria, Jim Woodcock 0001
ISoLA (4)4
2020 Uncertainty Quantification and Runtime Monitoring Using Environment-Aware Digital Twins
abstract
A digital twin for a Cyber-Physical System includes a simulation model that predicts how a physical system should behave. We show how to quantify and characterise violation events for a given safety property for the physical system. The analysis uses the digital twin to inform a runtime monitor that checks whether the noise and violations observed fall within expected statistical distributions. The results allow engineers to determine the best system configuration through what-if analysis. We illustrate our approach with a case study of an agricultural vehicle.
Jim Woodcock 0001, Cláudio Gomes 0001, Hugo Daniel Macedo, Peter Gorm Larsen
ISoLA (4)1
2020 Learning Safe Neural Network Controllers with Barrier Certificates
Hengjun Zhao, Xia Zeng, Taolue Chen 0001, Zhiming Liu 0001, Jim Woodcock 0001
SETTA5
2020 Unifying semantic foundations for automated verification tools in Isabelle/UTP
Simon Foster 0001, James Baxter 0001, Ana Cavalcanti 0001, Jim Woodcock 0001, Frank Zeyda
Sci. Comput. Program.4
2020 Unifying theories of reactive design contracts
Simon Foster 0001, Ana Cavalcanti 0001, Samuel Canham, Jim Woodcock 0001, Frank Zeyda
Theor. Comput. Sci.4
2020 Development Automation of Real-Time Java: Model-Driven Transformation and Synthesis
abstract
Many applications in emerging scenarios, such as autonomous vehicles, intelligent robots, and industrial automation, are safety-critical with strict timing requirements. However, the development of real-time systems is error prone and highly dependent on sophisticated domain expertise, making it a costly process. This article utilises the principles of model-driven engineering (MDE) and proposes two methodologies to automate the development of real-time Java applications. The first one automatically converts standard time-sharing Java applications to real-time Java applications, using a series of transformations. It is in line with the observed industrial trend, such as for the big data technology, of redeveloping existing software without the real-time notion to realise the real-time features. The second one allows users to automatically generate real-time Java application templates with a lightweight modelling language, which can be used to define the real-time properties—essentially a synthesis process. This article opens up a new research direction on development automation of real-time programming languages and inspires many research questions that can be jointly investigated by the embedded systems, programming languages as well as MDE communities.
Wanli Chang 0001, Shuai Zhao 0004, Andy J. Wellings, Jim Woodcock 0001, Alan Burns 0001
ACM Trans. Embed. Comput. Syst.5
2019 RoboChart: modelling and verification of the functional behaviour of robotic applications
abstract
Robots are becoming ubiquitous: from vacuum cleaners to driverless cars, there is a wide variety of applications, many with potential safety hazards. The work presented in this paper proposes a set of constructs suitable for both modelling robotic applications and supporting verification via model checking and theorem proving. Our goal is to support roboticists in writing models and applying modern verification techniques using a language familiar to them. To that end, we present RoboChart, a domain-specific modelling language based on UML, but with a restricted set of constructs to enable a simplified semantics and automated reasoning. We present the RoboChart metamodel, its well-formedness rules, and its process-algebraic semantics. We discuss verification based on these foundations using an implementation of RoboChart and its semantics as a set of Eclipse plug-ins called RoboTool.
Alvaro Miyazawa, Pedro Ribeiro 0002, Wei Li 0055, Ana Cavalcanti 0001, Jonathan Timmis, Jim Woodcock 0001
Softw. Syst. Model.6
2018 Calculational Verification of Reactive Programs with Reactive Relations and Kleene Algebra
Simon Foster 0001, Kangfeng Ye, Ana Cavalcanti 0001, Jim Woodcock 0001
RAMiCS4
2018 Cyber-Physical Systems Engineering: An Introduction
abstract
Cyber-Physical Systems (CPSs) [ 1 ] connect the real world to software systems through a network of sensors and actuators in which physical and logical components interact in complex ways. There is a diverse range of application domains [ 2 ], including health [ 3 ], energy [ 4 ], transport [ 5 ], autonomous vehicles [ 6 ] and robotics [ 7 ]; and many of these include safety critical requirements [ 8 ]. Such systems are, by definition, characterised by both discrete and continuous components. The development and verification processes must, therefore, incorporate and integrate discrete and continuous models. The development of techniques and tools to handle the correct design of CPSs has drawn the attention of many researchers. Continuous modelling approaches are usually based on a formal mathematical expression of the problem using dense reals and differential equations to model the behaviour of the studied hybrid system. Then, models are simulated in order to check required properties. Discrete modelling approaches rely on formal methods, based on abstraction, model-checking and theorem proving. There is much ongoing research concerned with how best to combine these approaches in a more coherent and pragmatic fashion, in order to support more rigorous and automated hybrid-design verification. It is also possible to combine different discrete-event and continuous-time models using a technique called co-simulation. This has been supported by different tools and the underlying foundation for this has been analysed. Thus, the track will also look into these areas as well as the industrial usage of this kind of technology.
J. Paul Gibson, Peter Gorm Larsen, Marc Pantel, John S. Fitzgerald, Jim Woodcock 0001
ISoLA (3)5
2018 Unifying theories of time with generalised reactive processes
Simon Foster 0001, Ana Cavalcanti 0001, Jim Woodcock 0001, Frank Zeyda
Inf. Process. Lett.3
2017 Editorial
abstract
No abstract available.
Maurizio Proietti, Hirohisa Seki, Jim Woodcock 0001
Formal Aspects Comput.3
2017 Model checking of state-rich formalism Circus by linking to CSP ‖ B
Kangfeng Ye, Jim Woodcock 0001
Int. J. Softw. Tools Technol. Transf.2
2016 Checking SysML Models for Co-simulation
Nuno Amálio, Richard John Payne, Ana Cavalcanti 0001, Jim Woodcock 0001
ICFEM4
2016 Behavioural Models for FMI Co-simulations
Ana Cavalcanti 0001, Jim Woodcock 0001, Nuno Amálio
ICTAC2
2016 Unifying Heterogeneous State-Spaces with Lenses
Simon Foster 0001, Frank Zeyda, Jim Woodcock 0001
ICTAC3
2016 Towards Semantically Integrated Models and Tools for Cyber-Physical Systems Design
Peter Gorm Larsen, John S. Fitzgerald, Jim Woodcock 0001, René A. Nilsson, Carl Gamble, Simon Foster 0001
ISoLA (2)3
2016 Heterogeneous Semantics and Unifying Theories
Jim Woodcock 0001, Simon Foster 0001, Andrew Butterfield
ISoLA (1)1
2015 Refinement-Based Verification of the FreeRTOS Scheduler in VCC
Sumesh Divakaran, Deepak D'Souza, Anirudh Kushwah, Prahladavaradan Sampath, Nigamanth Sridhar, Jim Woodcock 0001
ICFEM6
2015 CSP and Kripke Structures
Ana Cavalcanti 0001, Wen-ling Huang, Jan Peleska 0001, Jim Woodcock 0001
ICTAC4
2015 Using formal reasoning on a model of tasks for FreeRTOS
abstract
Abstract FreeRTOS is an open-source real-time microkernel that has a wide community of users. We present the formal specification of the behaviour of the task part of FreeRTOS that deals with the creation, management, and scheduling of tasks using priority-based preemption. Our model is written in the Z notation, and we verify its consistency using the Z/Eves theorem prover. This includes a precise statement of the preconditions for all API commands. This task model forms the basis for three dimensions of further work: (a) the modelling of the rest of the behaviour of queues, time, mutex, and interrupts in FreeRTOS; (b) refinement of the models to code to produce a verified implementation; and (c) extension of the behaviour of FreeRTOS to multi-core architectures. We propose all three dimensions as benchmark challenge problems for Hoare’s Verified Software Initiative.
Shu Cheng, Jim Woodcock 0001, Deepak D'Souza
Formal Aspects Comput.2
2015 Model checking CML: tool development and industrial applications
abstract
Abstract A model checker is an automatic tool that traverses a specific structure (normally a Kripke structure referred as the modelM) to check the satisfaction of some (temporal) logical propertyf. This is formally stated as M⊧f . For some formal notations, the modelMof a specificationS(written in a formal languageL) can be described as a labelled transition system (LTS). Specifically, it is not clear in general how usual tools such as SPIN, FDR, PAT, etc., create the LTS representation from a given process. Although one expects the coherence of the LTS generation with the semantics ofL, it is completely hidden inside the model checker itself. In this paper we show how to create a model checker forL, using a development approach based on its operational semantics. We use a systematic semantics embedding and the formal modeling using logic programming and analysis (FORMULA) framework to this end. We illustrate our strategy considering the formal language COMPASS modelling language (CML)—a new language that was based on CSP, VDM and the refinement calculus proposed for modelling and analysis of systems of systems. As FORMULA is based on satisfiability modulo theories solving, our model checker can handle communications and predicates involving data with infinite domains by building and manipulating a symbolic LTS. This goes beyond the capabilities of traditional CSP model checkers such as FDR and PAT. Moreover, we show how to reduce time and space complexities by simple semantic modifications in the embedding. This allows a more semantics-preserving tuning. Finally, we show a real implementation of our model checker in an integrated development platform for CML and its practical use on an industrial case study.
Alexandre Mota 0001, Adalberto Farias, Jim Woodcock 0001, Peter Gorm Larsen
Formal Aspects Comput.3
2015 Editorial
abstract
No abstract available.
Jim Woodcock 0001, Cliff B. Jones
Formal Aspects Comput.1
2014 A Refinement Based Strategy for Local Deadlock Analysis of Networks of CSP Processes
Pedro R. G. Antonino, Augusto Sampaio 0001, Jim Woodcock 0001
FM3
2014 Engineering UToPiA - Formal Semantics for CML
Jim Woodcock 0001
FM1
2014 Contracts in CML
Jim Woodcock 0001, Ana Cavalcanti 0001, John S. Fitzgerald, Simon Foster 0001, Peter Gorm Larsen
ISoLA (2)1
2014 Rapid Prototyping of a Semantically Well Founded Circus Model Checker
Alexandre Mota 0001, Adalberto Farias, André Didier, Jim Woodcock 0001
SEFM4
2014 Test-data generation for control coverage by proof
abstract
Abstract Many tools can check if a test set provides control coverage; they are, however, of little or no help when coverage is not achieved and the test set needs to be completed. In this paper, we describe how a formal characterisation of a coverage criterion can be used to generate test data; we present a procedure based on traditional programming techniques like normalisation, and weakest precondition calculation. It is a basis for automation using an algebraic theorem prover. In the worst situation, if automation fails to produce a specific test, we are left with a specification of the compliant test sets. Many approaches to model-based testing rely on formal models of a system under test. Our work, on the other hand, is not concerned with the use of abstract models for testing, but with coverage based on the text of programs.
Ana Cavalcanti 0001, Steve King 0001, Colin O'Halloran, Jim Woodcock 0001
Formal Aspects Comput.4
2014 Adapting FreeRTOS for multicores: an experience report
abstract
Multicore processors are ubiquitous. Their use in embedded systems is growing rapidly, and given the constraints on uniprocessor clock speeds, their importance in meeting the demands of increasingly processor-intensive embedded applications cannot be understated. To harness this potential, system designers need to have available to them embedded operating systems with built-in multicore support for widely available embedded hardware. This paper documents our experience of adapting FreeRTOS, a popular embedded real-time operating system, to support multiple processors. A working multicore version of FreeRTOS that is able to schedule tasks on multiple processors as well as provide full mutual-exclusion support for use in concurrent applications is presented. Mutual exclusion is achieved in an almost completely platform-agnostic manner, preserving one of FreeRTOS's most attractive features: portability. Copyright © 2013 John Wiley & Sons, Ltd.
James Mistry, Jim Woodcock 0001
Softw. Pract. Exp.3
2013 A Verified Protocol to Implement Multi-way Synchronisation and Interleaving in CSP
Marcel Oliveira, Ivan Soares de Medeiros Júnior, Jim Woodcock 0001
SEFM3
2013 The Safety-Critical Java memory model formalised
abstract
Abstract Safety-Critical Java (SCJ) is a version of Java for real-time programming, restricted to facilitate certification of implementations of safety-critical systems. Its development is the result of an international effort involving experts from industry and academia. What we provide here is, as far as we know, the first formalisation of the SCJ model of memory regions. We use Hoare and He’s unifying theories of programming (UTP), enabling the integration of our theory with refinement models for object orientation and concurrency. In developing the SCJ theory, we also make a contribution to UTP by providing a general theory of invariants (an instance of which is used in the SCJ theory). The results presented here are a first essential ingredient to formalise the novel programming paradigm embedded in SCJ, and enable the justification and development of formal reasoning techniques based on refinement.
Ana Cavalcanti 0001, Andy J. Wellings, Jim Woodcock 0001
Formal Aspects Comput.3
2013 Unifying theories in ProofPower-Z
abstract
Abstract The increasing interest in the combination of different computational paradigms is well represented by Hoare and He in the Unifying Theories of Programming (UTP). In this paper, we present a mechanisation of part of that work in a theorem prover, ProofPower-Z; the theories of alphabetised relations, designs, reactive and CSP processes are in the scope of this paper. Furthermore, the mechanisation of Circus , a language that combines Z, CSP, specification statements and Dijkstra’s guarded command language, is also presented here. We also present an account of how this mechanisation is achieved, and more interestingly, of what issues were raised, and of our decisions. We aim at providing tool support not only for CSP and Circus , but also for further explorations of Hoare and He’s unification, and for the mechanisation of languages whose semantics is based on the UTP.
Marcel Oliveira, Ana Cavalcanti 0001, Jim Woodcock 0001
Formal Aspects Comput.3
2013 Modelling temporal behaviour in complex systems with Timebands
Jim Woodcock 0001, Alan Burns 0001
Formal Methods Syst. Des.2
2013 Safety-critical Java programs from Circus models
Ana Cavalcanti 0001, Frank Zeyda, Andy J. Wellings, Jim Woodcock 0001
Real Time Syst.4
2012 A Plug-in Based Approach for UML Model Simulation
Alek Radjenovic, Richard F. Paige, Louis M. Rose, Jim Woodcock 0001, Steve King 0001
ECMFA4
2012 Editorial
abstract
No abstract available.
Jim Woodcock 0001
Formal Aspects Comput.1
2012 Mechanised wire-wise verification of Handel-C synthesis
Juan Ignacio Perna, Jim Woodcock 0001
Sci. Comput. Program.2
2011 The Safety-Critical Java Memory Model: A Formal Account
Ana Cavalcanti 0001, Andy J. Wellings, Jim Woodcock 0001
FM3
2011 Using Model Transformation to Generate Graphical Counter-Examples for the Formal Analysis of xUML Models
abstract
The INESS (Integrated European Signalling System) Project, funded by the FP7 programme of the European Union, aims to provide a common, integrated, railway signalling system within Europe. INESS experts have been using the Executable UML (xUML) language to model an executable specification of the proposed system. Due to safety-critical aspects of these systems, one key idea is to formally analyse them. In this context, we have been working with other universities on different translation-based methods that enable the formal verification of xUML models. At the core of this approach is a verification framework based on model transformation technology, used to implement an automatic and transparent verification method for xUML. Since a translation-based approach is used, a key aspect to achieve transparency is the automatic generation of counter-examples for verified properties that have a false result during the analysis, in terms of the original xUML model. We describe in this paper how we achieve this using model transformation technology.
Osmar Marchi dos Santos, Jim Woodcock 0001, Richard F. Paige
ICECCS2
2011 Timed Circus: Timed CSP with the Miracle
abstract
Timed Circus is a compact extension to Circus, that is, it inherits only the CSP part of Circus while introducing time. Although it looks much like timed CSP from the viewpoint of syntax, its semantics is very different from that of timed CSP because it uses a complete lattice in the implication ordering instead of the complete partial order of the standard failures-divergences model of CSP. The complete lattice gives rise to a number of strange processes which violate some axioms of CSP, especially when the miracle (the top element) and SKIP meet time. In this paper, compared with timed CSP, we will extensively explore such strange processes which turn out to be very useful in specifying a distinct property that "something must occur". Finally, we use a simple example to demonstrate how our model can contribute to modelling temporal behaviours with multiple time scales in complex systems.
Jim Woodcock 0001, Alan Burns 0001
ICECCS2
2011 Correct hardware synthesis - An algebraic approach
Juan Ignacio Perna, Jim Woodcock 0001, Augusto Sampaio 0001, Juliano Iyoda
Acta Informatica2
2011 Editorial
abstract
The importance of verification for software products is being increasingly appreciated in industry, although still not as much as necessary to become a standard development approach for industrial-scale high-quality software.In 2005, a global initiative was started by eminent researchers in both industry and academia, with the aim of establishing and disseminating a culture of software verification from the first principles by means of theories, tools and experiments.This special issue contains a selection of contributions originally presented at the 2008 Workshop on Tools at VSTTE 2008, the conference on Verified Software: Theories, Tools and Experiments in Toronto.The VSTTE series of conferences and workshops focuses on the challenge of verifying software systems.Within VSTTE, the scope of the Tools workshop includes implementations and enabling techniques for program verifiers, which are important ingredients for the dissemination of principles and techniques among industrial practitioners.This special issue complements a sister special issue of the Journal on Software Tools For Technology Transfer (STTT) [STT10].The FAC papers address the foundational aspects of tool-based verification, whereas the STTT selection focuses on practical aspects.The general public perceives the quality of software products as a major issue.In fact, the cost of software construction is dominated by the process of debugging it and validating that the software meets the desired requirements.Due to the prohibitive cost of manual inspection, it is widely believed that computers themselves need to be part of the solution.To this end, Tony Hoare's Grand Challenge for computing research proposes the Verifying Compiler, that is, computer-implemented algorithms that validate the correctness of a given program [Hoa03].In the Manifesto of the Grand Challenge, presented at VSTTE 2005 [MW08, Coo07], the first in the series of VSTTE conferences and workshops, Tony Hoare and Jay Misra directly recognise and appraise the importance of tools as vehicles for the transmission of knowledge to practitioners.In the second paragraph of the introduction, they write: "This paper argues that the time is ripe to embark on an international Grand Challenge project to construct a program verifier that would use logical proof to give an automatic check of the correctness of programs submitted to it.Prototypes for the program verifier will be based on a sound and complete theory of programming; they will be supported by a range of program construction and analysis tools; and the entire toolset will be evaluated and evolve by experimental application to a large and widely representative sample of useful computer programs.The project will provide the scientific basis of a solution for many of the problems of programming error that afflict all builders and users of software today."The paper also suggested that the achievement of this vision should be accelerated by a major international research initiative, modelled on a Grand Challenge, with specific measurable goals.The suggested measure was one million lines of verified code, together with its specifications, designs, assertions, and other artifacts.
Daniel Kroening, Tiziana Margaria, Jim Woodcock 0001
Formal Aspects Comput.3
2011 Editorial
abstract
No abstract available.
Zhiming Liu 0001, Jim Woodcock 0001
Formal Aspects Comput.2
2010 A Timed Model of Circus with the Reactive Design Miracle
abstract
We propose a timed model of Circus which is a compact extension of original Circus. Apart from introducing time, this model uses UTP-style semantics to describe each process as a reactive design. One of significant contributions of our timed model is to extensively explore the reactive design miracle, the top element of a complete lattice with respect to the implication ordering. The employment of the miracle brings a number of brand-new features such as deadline and urgent events, which provide a more powerful and flexible expressiveness in system specifications.
Jim Woodcock 0001, Alan Burns 0001
SEFM2
2009 Industrial Practice in Formal Methods: A Review
Juan Bicarregui, John S. Fitzgerald, Peter Gorm Larsen, Jim Woodcock 0001
FM4
2009 Putting Formal Specifications under the Magnifying Glass: Model-based Testing for Validation
abstract
A software development process is effectively an abstract form of model transformation, starting from an end-user model of requirements, through to a system model for which code can be automatically generated. The success (or failure) of such a transformation depends substantially on obtaining a correct, well-formed initial model that captures user concerns. Model-based testing automates black box testing based on the model of the system under analysis. This paper proposes and evaluates a novel model-based testing technique that aims to reveal specification/requirement-related errors by generating test cases from a test model and exercising them on the design model. The case study outlined in the paper shows that a separate test model not only increases the level of objectivity of the requirements, but also supports the validation of the system under test through test case generation. The results obtained from the case study support the hypothesis that there may be discrepancies between the formal specification of the system modeled at developer end and the problem to be solved, and using solely formal verification methods may not be sufficient to reveal these. The approach presented in this paper aims at providing means to obtain greater confidence in the design model that is used as the basis for code generation.
Emine Gökçe Aydal, Richard F. Paige, Mark Utting, Jim Woodcock 0001
ICST4
2009 State Visibility and Communication in Unifying Theories of Programming
abstract
We explore the interactions between program-variable state visibility and communication behaviour in state-rich CSP-like processes, using the Unifying Theories of Programming (UTP) framework. The key results of this work are: having variable state visible while a process is waiting to communicate, results in an operationally complex theory of behaviour; by contrast, considering state as unobservable during communication wait periods results in an elegant theory, with much cleaner operational intuitions. The language constructs most affected by this observability choice are those of external choice and parallel composition. We also discuss situations where this state hiding can prevent the adoption of interesting operators that seize control from waiting processes.
Andrew Butterfield, Pawel Gancarski, Jim Woodcock 0001
TASE3
2009 FDR Explorer
abstract
Abstract We describe: (1) the internal structures of FDR, the refinement model checker for Hoare’s Communicating Sequential Processes (CSP); and (2) an application-programming interface (API) that allows users to interact more closely with FDR and to have finer-grain control over its behaviour and data structures. This API makes it possible to create optimised CSP code to perform refinement checks that are more space or time efficient, enabling the analysis of more complex and data-intensive specifications. The API can be used either by those constructing CSP models or by tools that automatically generate CSP code. We present examples of using our tool, including handling advanced FDR features such as transparent functions, which compress state spaces before checking. We also show how to transform FDR’s graph format into a graph notation such as JGraph, enabling visualisation of labelled transition systems of CSP specifications.
Leo Freitas, Jim Woodcock 0001
Formal Aspects Comput.2
2009 A UTP semantics for Circus
abstract
Abstract Circus specifications define both data and behavioural aspects of systems using a combination of Z and CSP constructs. Previously, a denotational semantics has been given to Circus; however, a shallow embedding of Circus in Z, in which the mapping from Circus constructs to their semantic representation as a Z specification, with yet another language being used as a meta-language, was not useful for proving properties like the refinement laws that justify the distinguishing development technique associated with Circus. This work presents a final reference for the Circus denotational semantics based on Hoare and He’s Unifying Theories of Programming (UTP); as such, it allows the proof of meta-theorems about Circus including the refinement laws in which we are interested. Its correspondence with the CSP semantics is illustrated with some examples. We also discuss the library of lemmas and theorems used in the proofs of the refinement laws. Finally, we give an account of the mechanisation of the Circus semantics and of the mechanical proofs of the refinement laws.
Marcel Oliveira, Ana Cavalcanti 0001, Jim Woodcock 0001
Formal Aspects Comput.3
2009 Editorial
abstract
No abstract available.
Richard F. Paige, Phillip J. Brooke, Jin Song Dong 0001, Jim Woodcock 0001
Formal Aspects Comput.4
2009 Mechanising a formal model of flash memory
Andrew Butterfield, Leo Freitas, Jim Woodcock 0001
Sci. Comput. Program.3
2009 POSIX file store in Z/Eves: An experiment in the verified software repository
Leo Freitas, Jim Woodcock 0001, Zheng Fu
Sci. Comput. Program.2
2009 Verifying the CICS File Control API with Z/Eves: An experiment in the verified software repository
Leo Freitas, Jim Woodcock 0001
Sci. Comput. Program.2
2008 POSIX and the Verification Grand Challenge: A Roadmap
abstract
We present a research roadmap for the second pilot project in the Verified Software Grand Challenge on formally verified POSIX file stores. The work is inspired by the requirements for NASA's forthcoming Mars Rover missions. The roadmap describes an integrated and comprehensive body of work, including current work, as well as further opportunities for collaboration.
Leo Freitas, Jim Woodcock 0001, Andrew Butterfield
ICECCS2
2008 Linking VDM and Z
abstract
The International Grand Challenge in Verified Software is benchmarking current verification technology by conducting a series of experiments, and one such experiment is to build a verified POSIX-compliant flash filestore. An objective of this experiment is to combine different formal methods, and this raises issues about the different logics used. One significant area of difference is in the treatment of undefined expressions, and we show how this difference can be overcome using a unifying theory. This then allows us to use a theorem proverfor Z to verify theorems about a data type specified and refined in VDM.
Jim Woodcock 0001, Leo Freitas
ICECCS1
2008 A Theory of Pointers for the UTP
Will Harwood, Ana Cavalcanti 0001, Jim Woodcock 0001
ICTAC3
2008 Mechanising Mondex with Z/Eves
abstract
Abstract We describe our experiences in mechanising the specification, refinement, and proof of the Mondex Electronic Purse using the Z/Eves theorem prover. We took a conservative approach and mechanised the original L a T E X sources without changing their technical content, except to correct errors. We found problems in the original specification and some missing invariants in the refinements. Based on these experiences, we present novel and detailed guidance on how to drive Z/Eves successfully. The work contributes to the Repository for the Verified Software Grand Challenge.
Leo Freitas, Jim Woodcock 0001
Formal Aspects Comput.2
2008 Editorial
abstract
This issue of Formal Aspects is devoted to an experiment conducted as part of the world-wide Grand Challenge in Verified Software.The challenge is to achieve a significant body of verified programs that have precise external specifications, complete internal specifications, and machine-checked proofs of correctness with respect to a sound theory of programming.The first pilot project in the challenge was to mechanise the proof of correctness of the Mondex smart-card for electronic finance.Eight international research groups tackled the problem, and the following papers record the experiences of six of these groups.The pilot project remains open for other groups to contribute. The certification of the Mondex electronic purse to ITSEC Level E6Woodcock, Stepney, Cooper, Clark, and Jacob were all involved in the original work on Mondex; the first three were specifiers and the last two evaluators.They recall the work that led to the successful certification of the Mondex electronic purse, and the research that this inspired.The paper contains an introduction to the Mondex specification and refinement, and an overview of the proof. Mondex, an electronic purse: specification and refinement checks with the Alloy model-finding methodRamananandro started from the existing specification on Mondex in Z, and constructed a specification in the Alloy specification language, which is based on relational first-order logic with transitive closures.The experiment shows that, if the concerns about finiteness are dropped, then the Mondex specification can be expressed in first-order logic without transitive closures.Ramananandro checked the specification with the Alloy Analyser, a tool for finding models.The Analyser translates the specification into a boolean formula, which it then tries to satisfy.If an assignment of variables is found, then the program translates it back to get a counterexample.This can be accomplished only for bounded numbers of objects: their scope.The specification has been checked for a scope of at most eight objects of each kind.The analysis found several bugs in Mondex: (i) purses can hold unauthentic transaction details; (ii) a wrong case analysis in a proof; (iii) a mistake in a framing schema.
Cliff B. Jones, Jim Woodcock 0001
Formal Aspects Comput.2
2008 The certification of the Mondex electronic purse to ITSEC Level E6
abstract
Abstract. Ten years ago the Mondex electronic purse was certified to ITSEC Level E6, the highest level of assurance for secure systems. This involved building formal models in the Z notation, linking them with refinement, and proving that they correctly implement the required security properties. The work has been revived recently as a pilot project for the international Grand Challenge in Verified Software. This paper records the history of the original project and gives an overview of the formal models and proofs used.
Jim Woodcock 0001, Susan Stepney, John A. Clark, Jeremy L. Jacob
Formal Aspects Comput.1
2007 Formalising Flash Memory: First Steps
abstract
We present first steps in the construction of formal models of NAND flash memory, based on a recently emerged open standard for such devices. The model is at a level of abstraction that captures the internal architecture of such a device, as well as the commands that are used to operate it. The model is intended as a key step in a plan to develop a verified filestore system, by providing a description of the hardware devices that would be used in it implementation.
Andrew Butterfield, Jim Woodcock 0001
ICECCS2
2007 POSIX file store in Z/Eves: an experiment in the verified software repository
abstract
We present results from the second pilot project in the international Verification Grand Challenge: a formally verified specification of a POSIX-compliant file store using the Z/Eves theorem prover. The project's overall objective is to build a verified file store for space-flight missions. Our specification of the file store is based on Morgan & Sufrin's specification of the UNIX filing system; the proof and its mechanisation in Z/Eves are novel. We show how our work contributes towards building a verified software repository: a set of general theories and experiments reusable across different domains.
Leo Freitas, Zheng Fu, Jim Woodcock 0001
ICECCS3
2007 Verifying the CICS File Control API with Z/Eves: An Experiment in the Verified Software Repository
abstract
Parts of the CICS transaction processing system were modelled formally in the 1980s in a collaborative project between IBM Hursley Park and Oxford University Computing Laboratory. Z was used to capture a precise description of the behaviour of various modules as a means of communicating requirements and design intentions. These descriptions were not mechanically verified in any way: proof tools for Z were not considered mature, and no business case was made for effort in this area. We report a recent experiment on using the Z/Eves mechanical theorem prover to construct a machine-checked analysis of one of the CICS modules: the File Control API. This work was carried out as part of the international Grand Challenge in Verified Software, and our results are recorded in the Verified Software Repository. We give a brief description of the other modules, and propose them as challenge problems for the verification community.
Leo Freitas, Konstantinos Mokos, Jim Woodcock 0001
ICECCS3
2007 Automatic Generation of Verified Concurrent Hardware
Marcel Oliveira, Jim Woodcock 0001
ICFEM2
2007 A Denotational Semantics for Handel-C Hardware Compilation
Juan Ignacio Perna, Jim Woodcock 0001
ICFEM2
2007 Slotted-Circus
Andrew Butterfield, Adnan Sherif, Jim Woodcock 0001
IFM3
2007 Editorial
abstract
No abstract available.
Cliff B. Jones, Jim Woodcock 0001
Formal Aspects Comput.2
2006 Verified Software Grand Challenge
Jim Woodcock 0001
FM1
2006 A Layered Behavioural Model of Platelets
Steve A. Schneider, Helen Treharne, Ana Cavalcanti 0001, Jim Woodcock 0001
ICECCS4
2006 Taking Our Own Medicine: Applying the Refinement Calculus to State-Rich Refinement Model Checking
Leo Freitas, Ana Cavalcanti 0001, Jim Woodcock 0001
ICFEM3
2006 Z/Eves and the Mondex Electronic Purse
Jim Woodcock 0001, Leo Freitas
ICTAC1
2006 First Steps in the Verified Software Grand Challenge
abstract
Summary form only given. The computer science research community is collaborating to develop verification technology that will demonstrably enhance the productivity and reliability with which software is designed, developed, integrated, and maintained
Jim Woodcock 0001
SEW1
2006 The verified software repository: a step towards the verifying compiler
abstract
Abstract The verified software repository is dedicated to a long-term vision of a future in which all computer systems justify the trust that society increasingly places in them. This would be accompanied by a substantial reduction in the current high costs of programming error, incurred during the design, development, testing, installation, maintenance, evolution, and retirement of computer software. An important technical contribution to this vision will be a verifying compiler: a tool-set that automatically proves that a program will always meet its specification, insofar as this has been formalised, without even needing to run it. This has been a challenge for computing research for over 30 years, but the current state of the art now gives grounds for hope that it may be implemented in the foreseeable future. Achievement of the overall vision will depend also on continued progress of research into dependability and software evolution, as envisaged by the UKCRC Grand Challenge project in dependable systems evolution . The verified software repository is a first step towards the realisation of this long-term vision. It will maintain and develop an evolving collection of state-of-the-art tools, together with a representative portfolio of real programs and specifications on which to test, evaluate, and develop the tools. It will contribute initially to the inter-working of tools, and eventually to their integration. It will promote transfer of the relevant technology to industrial tools and into software engineering practice. It will build on the recognised achievements of practical formal development of safety-critical computer applications, and contribute to an international initiative in verified software, covering theory, tools, and experimental validation.
Juan Bicarregui, Tony Hoare, Jim Woodcock 0001
Formal Aspects Comput.3
2006 Angelic nondeterminism in the unifying theories of programming
abstract
Abstract Hoare and He’s unifying theories of programming (UTP) is a model of alphabetised relations expressed as predicates; it supports development in several programming paradigms. The aim of Hoare and He’s work is the unification of languages and techniques, so that we can benefit from results in different contexts. In this paper, we investigate the integration of angelic nondeterminism in the UTP; we propose the unification of a model of binary multirelations, which is isomorphic to the monotonic predicate transformers model and can express angelic and demonic nondeterminism.
Ana Cavalcanti 0001, Jim Woodcock 0001, Steve Dunne
Formal Aspects Comput.2
2005 Operational Semantics for Model Checking Circus
Jim Woodcock 0001, Ana Cavalcanti 0001, Leo Freitas
FM1
2005 Unifying classes and processes
Ana Cavalcanti 0001, Augusto Sampaio 0001, Jim Woodcock 0001
Softw. Syst. Model.3
2005 prialt in Handel-C: an operational semantics
Andrew Butterfield, Jim Woodcock 0001
Int. J. Softw. Tools Technol. Transf.2
2004 A Tutorial Introduction to Designs in Unifying Theories of Programming
Jim Woodcock 0001, Ana Cavalcanti 0001
IFM1
2004 Travelling Processes
Xinbei Tang, Jim Woodcock 0001
MPC2
2004 Towards Mobile Processes in Unifying Theories
Xinbei Tang, Jim Woodcock 0001
SEFM2
2003 A Refinement Strategy for Circus
abstract
Abstract We present a refinement strategy for Circus , which is the combination of Z, CSP, and the refinement calculus in the setting of Hoare and He’s unifying theories of programming. The strategy unifies the theories of refinement for processes and their constituent actions, and provides a coherent technique for the stepwise refinement of concurrent and distributed programs involving rich data structures. This kind of development is carried out using Circus ’s refinement calculus, and we describe some of its laws for the simultaneous refinement of state and control behaviour, including the splitting of a process into parallel subcomponents. We illustrate the strategy and the laws using a case study that shows the complete development of a small distributed program.
Ana Cavalcanti 0001, Augusto Sampaio 0001, Jim Woodcock 0001
Formal Aspects Comput.3
2003 ArcAngel: a Tactic Language for Refinement
abstract
Abstract. Morgan's refinement calculus is a successful technique for developing software in a precise and consistent way. This technique, however, can be hard to use, as developments may be long and repetitive. Many authors have pointed out that a lot can be gained by identifying commonly used development strategies, documenting them as tactics, and using them as single transformation rules. Also, it is useful to have a notation for describing derivations, so that they can be analysed and modified. In this paper, we present ArcAngel, a language for defining such refinement tactics; we present the language, its semantics, and some of its algebraic laws. Apart from Angel, a general-purpose tactic language that we are extending, no other tactic language has a denotational semantics and proof theory of its own.
Marcel Oliveira, Ana Cavalcanti 0001, Jim Woodcock 0001
Formal Aspects Comput.3
2002 Unifying Theories of Parallel Programming
Jim Woodcock 0001, Arthur P. Hughes
ICFEM1
2001 The Steam Boiler in a Unified Theory of Z and CSP
abstract
This paper presents a formalisation of the steam boiler problem using Circus, a unified theory of the formal specification languages Z and CSP. The aim of Circus is to provide powerful support for the specification of the data-oriented and behavioural aspects of concurrent systems, and to provide a calculational development technique for languages similar to Occam, Java, and Handel-C.
Jim Woodcock 0001, Ana Cavalcanti 0001
APSEC1
2000 The First World Congress on Formal Methods in the Development of Computing Systems
abstract
Abstract. Formal methods are coming of age: mathematical techniques and tools are now regarded as an important part of the development process in a wide range of industrial and governmental organisations. A transfer of technology into the mainstream of systems development is slowly, but surely, taking place. FM'99, the First World Congress on Formal Methods in the Development of Computing Systems, was a result and a measure of this new-found maturity. It brought together an impressive array of industrial and applications-oriented papers that show how formal methods have been used to tackle real problems. The proceedings are published as Volumes 1708 and 1709 in Springer-Verlag's Lecture Notes in Computer Science. These proceedings are a record of the technical symposium of FM'99. Alongside the papers describing applications of formal methods, you will find technical reports, papers, and abstracts detailing new advances in formal techniques, from mathematical foundations to practical tools. After the World Congress, we decided that many papers deserved a wider audience, and we created an opportunity for their authors to revise and extend their work. The proceedings contain over one hundred papers, and we decided to publish twelve of them simultaneously in special issues of three journals: Formal Aspects of Computing, Formal Methods in System Design, and IEEE Transactions in Software Engineering. The papers selected are among the best submitted to FM'99, and were subjected to a rigorous second review process involving leading international academic and industrial researchers.
Jeannette M. Wing, Jim Woodcock 0001
Formal Aspects Comput.2
2000 Introduction: Special Issues for FM'99, the First World Congress on Formal Methods in the Development of Computing Systems
Jeannette M. Wing, Jim Woodcock 0001
Formal Methods Syst. Des.2
2000 Guest Editors' Introduction-Special Issues for FM '99: The First World Congress On Formal Methods in the Development of Computing Systems
abstract
Formal methods are coming of age: mathematical techniques and tools are now regarded as an important part of the development process in a wide range of industrial and governmental process in a wide range of industrial and governmental organizations. A transfer of technology into the mainstream development is slowly but surely taking place. (Introduction).
Jeannette M. Wing, Jim Woodcock 0001
IEEE Trans. Software Eng.2
1999 On the Refinement and Simulation of Data Types and Processes
Christie Marr, Jim Davies, Jim Woodcock 0001
IFM3
1999 An Inconsistency in Procedures, Parameters, and Substitution in the Refinement Calculus
Ana Cavalcanti 0001, Augusto Sampaio 0001, Jim Woodcock 0001
Sci. Comput. Program.3
1998 A Weakest Precondition Semantics for Z
abstract
The lack of a method for developing programs from Z specifications is a widely recognized difficulty. In response to this problem, different approaches to the integration of Z with a refinement calculus have been proposed. These programming techniques are promising, but as far as we know, have not been formalized. Since they are based on refinement calculi formalized in terms of weakest preconditions, the definition of a weakest precondition semantics for Z is a significant contribution to the solution of this problem. In this paper, we actually construct a weakest precondition semantics from a relational semantics proposed by the Z standards panel. The construction provides reassurance as to the adequacy of the resulting semantics definition and additionally establishes an isomorphism between weakest preconditions and relations. Compositional formulations for the weakest precondition of some schema calculus expressions are provided.
Ana Cavalcanti 0001, Jim Woodcock 0001
Comput. J.2
1998 ZRC - A Refinement Calculus for Z
abstract
Abstract. The fact that Z is a specification language only, with no associated program development method, is a widely recognised problem. As an answer to that, we present ZRC, a refinement calculus based on Morgan's work that incorporates the Z notation and follows its style and conventions. This work builds upon existing refinement techniques for Z, but distinguishes itself mainly in that ZRC is completely formalised. In this paper, we explain how programs can be derived from Z specifications using ZRC. We present ZRC-L, the language of our calculus, and its conversion laws, which are concerned with the transformation of Z schemas into programs of this language. Moreover, we present the weakest precondition semantics of ZRC-L, which is the basis for the derivation of the laws of ZRC. More than a refinement calculus, ZRC is a theory of refinement for Z.
Ana Cavalcanti 0001, Jim Woodcock 0001
Formal Aspects Comput.2
1996 A Tactic Calculus-Abridged Version
abstract
Abstract We present a very general language for expressing tactic programs. The paper describes some essential tactic combinators (tacticals), and gives them a formal semantics. Those definitions are used to produce a complete calculus for reasoning about tactics written in this language. The language is extended to cover structural combinators which enable the tactics to be precisely targeted upon particular sub-expressions.
Andrew P. Martin, Paul H. B. Gardiner, Jim Woodcock 0001
Formal Aspects Comput.3
1996 Non-interference through Determinism
abstract
The standard approach to the specification of a secure system is to present a (usually state-based) abstract security model separately from the specification of the system's functional requirements, and establishing a correspondence between the two specifications. This complex treatment has resulte d in development methods distinct from those usually advocated for general applications. We provide a novel and intellectually satisfying formulation of security properties in a process algebraic framework, and show that these are preserved under refinement. We relate the results to a more familiar state-based (Z) specification methodology. There are efficient algorithms for verifying our security properties using model checking.
A. W. Roscoe 0001, Jim Woodcock 0001, Lars Wulf
J. Comput. Secur.2
1995 Event Refinement in State-Based Concurrent Systems
abstract
Abstract Operations on action systems may be defined corresponding to CSP hiding and renaming. These are of particular use in describing the refinement between action systems in which the granularity of actions is altered. We derive a simplified expression for hiding sets of actions and present sufficient conditions for forwards simulation in which the concrete system uses hiding and renaming. Both of these reduce the complexity of proofs of refinement. We present a case study in specification and refinement using action systems which makes use of the operations and refinement rules previously defined.
Jane E. Sinclair, Jim Woodcock 0001
Formal Aspects Comput.2
1995 Introduction to Special Section (Guest Editorial)
Jim Woodcock 0001, Peter Gorm Larsen
IEEE Trans. Software Eng.1
1994 Non-Interference Through Determinism
A. W. Roscoe 0001, Jim Woodcock 0001, Lars Wulf
ESORICS2
1992 The Rudiments of Algorithm Refinement
abstract
We describe the rudiments of algorithm refinement: the business of taking a specification and producing code that correctly implements it. The paper starts with a general discussion of the concepts, and then turns to a particular calculus for algorithm refinement.
Jim Woodcock 0001
Comput. J.1