FDR (Failures-Divergences Refinement) and subsequently FDR2 are refinement checking software tools, designed to check formal models expressed in Communicating sequential processes (CSP). The tools have been developed by Formal Systems (Europe) Ltd.[1] Bill Roscoe of the Oxford University Computing Laboratory devised the algorithms used by the tool and Michael Goldsmith[2] was instrumental in the implementation.[3] FDR2 is downloadable from Formal Systems.[4]
FDR2 is a commercial product of Formal Systems (Europe) Ltd. It 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, or failures/divergence).[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.