Formal Analysis of the Bakery Protocol with Consideration of Nonatomic Reads and Writes

The bakery protocol is the first real solution of the mutual exclusion problem. It does not assume any lower mutual exclusion protocols. The bakery protocol has been often used as a benchmark to demonstrate that proposed verification methods and/or tools are powerful enough. But, the true bakery protocol has been rarely used. We have formally proved that the protocol satisfies the mutual exclusion property. The proof is mechanized with CafeOBJ, an algebraic specification language, in which state machines as well as data types can be specified. Nonatomic reads and writes to shared variables are formalized by representing an assignment to a shared variable with multiple atomic transitions. Our formal model of the protocol has states in which a shared variable is being modified. A read to the variable in such states obtains an arbitrary value, which is represented as a CafeOBJ term.

[1]  Nachum Dershowitz,et al.  Rewrite Methods for Clausal and Non-Clausal Theorem Proving , 1983, ICALP.

[2]  Nakamura Masaki,et al.  On equality predicates in algebraic specification languages , 2007 .

[3]  José Meseguer,et al.  Equational abstractions , 2008, Theor. Comput. Sci..

[4]  Kokichi Futatsugi,et al.  CafeOBJ as a Tool for Behavioral System Verification , 2002, ISSS.

[5]  Thomas E. Anderson,et al.  The Performance of Spin Lock Alternatives for Shared-Memory Multiprocessors , 1990, IEEE Trans. Parallel Distributed Syst..

[6]  Leslie Lamport,et al.  win and sin: predicate transformers for concurrency , 1990, TOPL.

[7]  Michael L. Scott,et al.  Algorithms for scalable synchronization on shared-memory multiprocessors , 1991, TOCS.

[8]  Leslie Lamport,et al.  Proving the Correctness of Multiprocess Programs , 1977, IEEE Transactions on Software Engineering.

[9]  Razvan Diaconescu,et al.  Cafeobj Report - The Language, Proof Techniques, and Methodologies for Object-Oriented Algebraic Specification , 1998, AMAST Series in Computing.

[10]  Donald Sannella,et al.  Horizontal Composability Revisited , 2006, Essays Dedicated to Joseph A. Goguen.

[11]  Leslie Lamport,et al.  A new solution of Dijkstra's concurrent programming problem , 1974, Commun. ACM.

[12]  Kazuhiro Ogata,et al.  Some Tips on Writing Proof Scores in the OTS/CafeOBJ Method , 2006, Essays Dedicated to Joseph A. Goguen.

[13]  Narciso Martí-Oliet,et al.  All About Maude - A High-Performance Logical Framework, How to Specify, Program and Verify Systems in Rewriting Logic , 2007, All About Maude.

[14]  Robin Milner,et al.  On Observing Nondeterminism and Concurrency , 1980, ICALP.

[15]  José Meseguer,et al.  The Maude LTL Model Checker , 2004, WRLA.

[16]  Leslie Lamport A New Approach to Proving the Correctness of Multiprocess Programs , 1979, TOPL.

[17]  James H. Anderson,et al.  Atomic Semantics of Nonatomic Programs , 1988, Inf. Process. Lett..

[18]  Jacques D. Fleuriot,et al.  IsaPlanner: A Prototype Proof Planner in Isabelle , 2003, CADE.

[19]  Harald Ruess,et al.  Bounded Model Checking and Induction: From Refutation to Verification (Extended Abstract, Category A) , 2003, CAV.

[20]  Jim Woodcock,et al.  Theoretical Aspects of Computing - ICTAC 2007, 4th International Colloquium, Macau, China, September 26-28, 2007, Proceedings , 2007, ICTAC.

[21]  Kazuhiro Ogata,et al.  Proof Scores in the OTS/CafeOBJ Method , 2003, FMOODS.

[22]  Edsger W. Dijkstra,et al.  Solution of a problem in concurrent programming control , 1965, CACM.

[23]  Akinori Yonezawa,et al.  Software Security — Theories and Systems , 2003, Lecture Notes in Computer Science.

[24]  Gary L. Peterson,et al.  Myths About the Mutual Exclusion Problem , 1981, Inf. Process. Lett..