FDR3 — A Modern Refinement Checker for CSP
- 94 Citations
- 2.1k Downloads
Abstract
FDR3 is a complete rewrite of the CSP refinement checker FDR2, incorporating a significant number of enhancements. In this paper we describe the operation of FDR3 at a high level and then give a detailed description of several of its more important innovations. This includes the new multi-core refinement-checking algorithm that is able to achieve a near linear speed up as the number of cores increase. Further, we describe the new algorithm that FDR3 uses to construct its internal representation of CSP processes—this algorithm is more efficient than FDR2’s, and is able to compile a large class of CSP processes to more efficient internal representations. We also present experimental results that compare FDR3 to related tools, which show it is unique (as far as we know) in being able to scale beyond the bounds of main memory.
Keywords
Operational Semantic Label Transition System Process Algebra Syntactic Process Structure Operational SemanticReferences
- 1.Hoare, C.A.R.: Communicating Sequential Processes. Prentice-Hall, Inc., Upper Saddle River (1985)zbMATHGoogle Scholar
- 2.Roscoe, A.W.: The Theory and Practice of Concurrency. Prentice Hall (1997)Google Scholar
- 3.Roscoe, A.W.: Understanding Concurrent Systems. Springer (2010)Google Scholar
- 4.Lawrence, J.: Practical Application of CSP and FDR to Software Design. In: Abdallah, A.E., Jones, C.B., Sanders, J.W. (eds.) CSP25. LNCS, vol. 3525, pp. 151–174. Springer, Heidelberg (2005)CrossRefGoogle Scholar
- 5.Mota, A., Sampaio, A.: Model-checking CSP-Z: strategy, tool support and industrial application. Science of Computer Programming 40(1) (2001)Google Scholar
- 6.Fischer, C., Wehrheim, H.: Model-Checking CSP-OZ Specifications with FDR. In: IFM 1999. Springer (1999)Google Scholar
- 7.Lowe, G.: Casper: A Compiler for the Analysis of Security Protocols. Journal of Computer Security 6(1-2) (1998)Google Scholar
- 8.Roscoe, A.W., Hopkins, D.: SVA, a Tool for Analysing Shared-Variable Programs. In: Proceedings of AVoCS 2007 (2007)Google Scholar
- 9.Holzmann, G.: Spin Model Checker: The Primer and Reference Manual. Addison-Wesley Professional (2003)Google Scholar
- 10.Barnat, J., Brim, L., Havel, V., Havlíček, J., Kriho, J., Lenčo, M., Ročkai, P., Štill, V., Weiser, J.: DiVinE 3.0 – An Explicit-State Model Checker for Multithreaded C & C++ Programs. In: Sharygina, N., Veith, H. (eds.) CAV 2013. LNCS, vol. 8044, pp. 863–868. Springer, Heidelberg (2013)CrossRefGoogle Scholar
- 11.Laarman, A., van de Pol, J., Weber, M.: Multi-Core LTSmin: Marrying Modularity and Scalability. In: Bobaru, M., Havelund, K., Holzmann, G.J., Joshi, R. (eds.) NFM 2011. LNCS, vol. 6617, pp. 506–511. Springer, Heidelberg (2011)CrossRefGoogle Scholar
- 12.University of Oxford, Failures-Divergence Refinement—FDR 3 User Manual (2013), https://www.cs.ox.ac.uk/projects/fdr/manual/
- 13.University of Oxford, libcspm (2013), https://github.com/tomgr/libcspm
- 14.Reed, G.M., Roscoe, A.W.: A Timed Model for Communicating Sequential Processes. Theoretical Computer Science 58 (1988)Google Scholar
- 15.Armstrong, P., Lowe, G., Ouaknine, J., Roscoe, A.W.: Model checking Timed CSP. In: Proceedings of HOWARD (Festschrift for Howard Barringer) (2012)Google Scholar
- 16.Ouaknine, J.: Discrete Analysis of Continuous Behaviour in Real-Time Concurrent Systems. DPhil Thesis (2001)Google Scholar
- 17.Barringer, H., Kuiper, R., Pnueli, A.: A really abstract concurrent model and its temporal logic. In: Proceedings of the 13th ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages. ACM (1986)Google Scholar
- 18.Roscoe, A.W., Hopcroft, P.J.: Slow abstraction via priority. In: Liu, Z., Woodcock, J., Zhu, H. (eds.) Theories of Programming and Formal Methods. LNCS, vol. 8051, pp. 326–345. Springer, Heidelberg (2013)CrossRefGoogle Scholar
- 19.Roscoe, A.W.: Model-Checking CSP. In: A Classical Mind: Essays in Honour of CAR Hoare (1994)Google Scholar
- 20.Goldsmith, M., Martin, J.: The parallelisation of FDR. In: Proceedings of the Workshop on Parallel and Distributed Model Checking (2002)Google Scholar
- 21.Leiserson, C.E., Schardl, T.B.: A work-efficient parallel breadth-first search algorithm (or how to cope with the nondeterminism of reducers). In: Proc. 22nd ACM Symposium on Parallelism in Algorithms and Architectures, SPAA 2010 (2010)Google Scholar
- 22.Korf, R.E., Schultze, P.: Large-scale parallel breadth-first search. In: Proc. 20th National Conference on Artificial Intelligence, vol. 3. AAAI (2005)Google Scholar
- 23.Holzmann, G.J.: Parallelizing the Spin Model Checker. In: Donaldson, A., Parker, D. (eds.) SPIN 2012. LNCS, vol. 7385, pp. 155–171. Springer, Heidelberg (2012)CrossRefGoogle Scholar
- 24.Laarman, A., van de Pol, J., Weber, M.: Boosting multi-core reachability performance with shared hash tables. In: Formal Methods in Computer-Aided Design (2010)Google Scholar