FDR (software)

Last updated

FDR FDR2 FDR3 FDR4
Developer(s) University of Oxford, Cocotec
Stable release
4.2.4 / 19 February 2019;4 years ago (2019-02-19)
Operating system
  • Linux
  • MacOS
  • Windows
Type CSP refinement checker
License proprietary software
Website https://cocotec.io/fdr/

FDR (Failures-Divergences Refinement) and subsequently FDR2, FDR3 and FDR4 are refinement checking software tools, designed to check formal models expressed in Communicating sequential processes (CSP). The tools were originally developed by Formal Systems (Europe) Ltd. [1] Bill Roscoe of the Department of Computer Science, University of Oxford devised many of the algorithms used by the tool and Michael Goldsmith [2] was instrumental in the implementation. [3] FDR2 was developed by Department of Computer Science, University of Oxford from where it was freely available for academic and other non-commercial use. [4]

FDR is often described as a model checker, but is technically a refinement checker, in that it converts two CSP process expressions into Labelled Transition Systems (LTSs), and then determines whether one of the processes is a refinement of the other within some specified semantic model (traces, failures, failures/divergence and some other alternatives). [5] FDR2 applies various state-space compression algorithms to the process LTSs in order to reduce the size of the state-space that must be explored during a refinement check.

FDR2 has gone through many releases, having replaced the earlier tool now referred to as FDR1 in 1995. It has been succeeded by FDR3, a completely re-written version incorporating amongst other things parallel execution and an integrated type checker. FDR3 is released by the University of Oxford, which also released FDR2 in the period 2008-12. [6] A ProBE CSP Animator is integrated in FDR3. It now has been succeeded by FDR4. FDR4 is available from Cocotec. [7]

Related Research Articles

<span class="mw-page-title-main">Tony Hoare</span> British computer scientist

Sir Charles Antony Richard Hoare is a British computer scientist who has made foundational contributions to programming languages, algorithms, operating systems, formal verification, and concurrent computing. His work earned him the Turing Award, usually regarded as the highest distinction in computer science, in 1980.

In computer science, formal methods are mathematically rigorous techniques for the specification, development, analysis, and verification of software and hardware systems. The use of formal methods for software and hardware design is motivated by the expectation that, as in other engineering disciplines, performing appropriate mathematical analysis can contribute to the reliability and robustness of a design.

In computer science, communicating sequential processes (CSP) is a formal language for describing patterns of interaction in concurrent systems. It is a member of the family of mathematical theories of concurrency known as process algebras, or process calculi, based on message passing via channels. CSP was highly influential in the design of the occam programming language and also influenced the design of programming languages such as Limbo, RaftLib, Erlang, Go, Crystal, and Clojure's core.async.

In the context of hardware and software systems, formal verification is the act of proving or disproving the correctness of intended algorithms underlying a system with respect to a certain formal specification or property, using formal methods of mathematics.

<span class="mw-page-title-main">Model checking</span> Computer science field

In computer science, model checking or property checking is a method for checking whether a finite-state model of a system meets a given specification. This is typically associated with hardware or software systems, where the specification contains liveness requirements as well as safety requirements.

<span class="mw-page-title-main">Spell checker</span> Software to help correct spelling errors

In software, a spell checker is a software feature that checks for misspellings in a text. Spell-checking features are often embedded in software or services, such as a word processor, email client, electronic dictionary, or search engine.

The Berkeley Lazy Abstraction Software verification Tool (BLAST) is a software model checking tool for C programs. The task addressed by BLAST is the need to check whether software satisfies the behavioral requirements of its associated interfaces. BLAST employs counterexample-driven automatic abstraction refinement to construct an abstract model that is then model-checked for safety properties. The abstraction is constructed on the fly, and only to the requested precision.

SPIN is a general tool for verifying the correctness of concurrent software models in a rigorous and mostly automated fashion. It was written by Gerard J. Holzmann and others in the original Unix group of the Computing Sciences Research Center at Bell Labs, beginning in 1980. The software has been available freely since 1991, and continues to evolve to keep pace with new developments in the field.

Andrew William Roscoe is a Scottish computer scientist. He was Head of the Department of Computer Science, University of Oxford from 2003 to 2014, and is a Professor of Computer Science. He is also a Fellow of University College, Oxford.

Michael David May FRS FREng is a British computer scientist. He is a Professor in the Department of Computer Science at the University of Bristol and founder of XMOS Semiconductor, serving until February 2014 as the chief technology officer.

<span class="mw-page-title-main">Michael Butler (computer scientist)</span>

Michael J. Butler is an Irish computer scientist. As of 2022, he is professor of computer science and Dean of the Faculty of Engineering and Physical Sciences at the University of Southampton, England.

In computer science, fault injection is a testing technique for understanding how computing systems behave when stressed in unusual ways. This can be achieved using physical- or software-based means, or using a hybrid approach. Widely studied physical fault injections include the application of high voltages, extreme temperatures and electromagnetic pulses on electronic components, such as computer memory and central processing units. By exposing components to conditions beyond their intended operating limits, computing systems can be coerced into mis-executing instructions and corrupting critical data.

PRISM is a probabilistic model checker, a formal verification software tool for the modelling and analysis of systems that exhibit probabilistic behaviour. One source of such systems is the use of randomization, for example in communication protocols like Bluetooth and FireWire, or in security protocols such as Crowds and Onion routing. Stochastic behaviour also arises in many other computer systems, for example due to equipment failures or unpredictable communication delays. Yet another class of systems amenable to this kind of analysis are biochemical reaction networks.

<span class="mw-page-title-main">Construction and Analysis of Distributed Processes</span>

CADP is a toolbox for the design of communication protocols and distributed systems. CADP is developed by the CONVECS team at INRIA Rhone-Alpes and connected to various complementary tools. CADP is maintained, regularly improved, and used in many industrial projects.

Jim Davies is Professor of Software Engineering and current Director of the Software Engineering Programme at the University of Oxford, England.

CPAchecker is a framework and tool for formal software verification, and program analysis, of C programs. Some of its ideas and concepts, for example lazy abstraction, were inherited from the software model checker BLAST. CPAchecker is based on the idea of configurable program analysis which is a concept that allows expression of both model checking and program analysis with one formalism. When executed, CPAchecker performs a reachability analysis, i.e., it checks whether a certain state, which violates a given specification, can potentially be reached.

Helmut Veith was an Austrian computer scientist who worked on the areas of computer-aided verification, software engineering, computer security, and logic in computer science. He was a Professor of Informatics at the Vienna University of Technology, Austria.

Steve Schneider FBCS, CITP is an English computer scientist and Professor of Security. He is Director of the Surrey Centre for Cyber Security and Associate Dean at the University of Surrey.

Gavin Lowe is a British academic. He is a professor of computer science and tutorial fellow at St Catherine's College, Oxford, a professor at the University of Oxford, and President of the Senior Common Room of St Catherine's College, Oxford. His research interests include computer security, for which he developed the cryptographic protocol analysis tool Casper, and concurrency.

References

  1. Formal Systems (Europe) Ltd.
  2. Professor Michael Goldsmith (also now of Oxford University).
  3. Philippa Broadfoot and Bill Roscoe. Tutorial on FDR and Its Applications. In Klaus Havelund, John Penix, Willem Visser (editors), SPIN model checking and software verification , Springer-Verlag, Lecture Notes in Computer Science, Volume 1885, page 322, 2000.
  4. Software: FDR2, with commercial licences obtainable from Formal Systems (Europe) Ltd.
  5. A.W. Roscoe (1994). "Model-checking CSP". A Classical Mind: Essays in Honour of C.A.R. Hoare . Prentice Hall. p. 353. ISBN   9780132948449.
  6. Introduction to FDR3
  7. Software: FDR4, with commercial licences obtainable after download and first start