Tutorial on FDR and Its Applications

  • Philippa Broadfoot
  • Bill Roscoe
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1885)


FDR [1] is a refinement checker for the process algebra CSP [2,4], based on that language’s well-established semantic models. FDR stands for Failures-Divergences Refinement, after the premier model. In common with many other model checkers, it works by “determinising” (or normalising) a specification and enumerating states in the cartesian product of this and the implementation. Unlike most, the specification and implementation are written in the same language. Under development by its creators, Formal Systems (a spin-off of the Computing Laboratory) since 1991, it now offers a range of state compression methods. On current workstations it can work at up to 20M states/hour with only a small degradation on moving to disc-based storage.


  1. 1.
    Formal Systems. FDR web site:
  2. 2.
    Hoare, C.A.R.: Communicating Sequential Processes. Prentice Hall, Englewood Cliffs (1985) Google Scholar
  3. 3.
  4. 4.
    Roscoe, A.W.: The Theory and Practice of Concurrency. Prentice Hall, Englewood Cliffs (1998) Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2000

Authors and Affiliations

  • Philippa Broadfoot
    • 1
  • Bill Roscoe
    • 1
  1. 1.Oxford University Computing LaboratoryOxfordUK

Personalised recommendations