A Proof Framework for Concurrent Programs
This paper presents a proof framework for verifying concurrent programs that communicate using global variables. The approach is geared towards verification of models that have an unbounded state size and are as close to the original code as possible. The bakery algorithm is used as a demonstration of the framework basics, while the (full) framework with thread synchronization was used to verify and correct the reentrant readers writers algorithm as used in the Qt library.
KeywordsModel Checker Theorem Prove Global Variable Critical Section Concurrent Program
Unable to display preview. Download preview PDF.
- 1.Archer, M.: TAME: Using PVS strategies for special-purpose theorem proving. Annals of Mathematics and Artificial Intelligence (2000)Google Scholar
- 2.Baier, C., Katoen, J.-P.: Principles of Model Checking (Representation and Mind Series). The MIT Press (2008)Google Scholar
- 4.de Groot, A.: Practical Automaton Proofs in PVS. PhD thesis, Radboud University Nijmegen (2008)Google Scholar
- 10.Owre, S., Rushby, J.M., Shankar, N.: PVS: A Prototype Verification System. In: Kapur, D. (ed.) CADE 1992. LNCS, vol. 607, pp. 747–752. Springer, Heidelberg (1992)Google Scholar
- 11.Pantelic, V., Jin, X.-H., Lawford, M., Parnas, D.L.: Inspection of concurrent systems: Combining tables, theorem proving and model checking. In: Software Engineering Research and Practice, pp. 629–635 (2006)Google Scholar
- 12.Ripon, S., Miller, A.: Verification of symmetry detection using pvs. ECEASST 35 (2010)Google Scholar
- 13.Sutter, H.: The Free Lunch Is Over: A Fundamental Turn Toward Concurrency in Software. Dr. Dobb’s Journal 30(3) (March 2005)Google Scholar