Event-B Decomposition for Parallel Programs

We present here a case study developing a parallel program. The approach that we use combines refinement and decomposition techniques. This involves in the first step to abstractly specify the aim of the program, then subsequently introduce shared information between sub-processes via refinement. Afterwards, decomposition is applied to split the resulting model into sub-models for different processes. These sub-models are later independently developed using refinement. Our approach aids the understanding of parallel programs and reduces the complexity in their proofs of correctness.

[1]  Ajitha Rajan,et al.  Requirements Coverage as an Adequacy Measure for Conformance Testing , 2008, ICFEM.

[2]  Dominique Cansell,et al.  Formal Construction of a Non-blocking Concurrent Queue Algorithm (a Case Study in Atomicity) , 2005, J. Univers. Comput. Sci..

[3]  Michael J. Butler,et al.  An Open Extensible Tool Environment for Event-B , 2006, ICFEM.

[4]  Howard Barringer A Survey of Verification Techniques for Parallel Programs , 1985, Lecture Notes in Computer Science.

[5]  Leslie Lamport Composition: A Way to Make Proofs Harder , 1997, COMPOS.

[6]  Jean-Raymond Abrial,et al.  Refinement, Decomposition, and Instantiation of Discrete Models: Application to Event-B , 2007, Fundam. Informaticae.

[7]  Cliff B. Jones,et al.  Splitting atoms safely , 2007, Theor. Comput. Sci..

[8]  Kaisa Sere,et al.  Stepwise Refinement of Parallel Algorithms , 1990, Sci. Comput. Program..

[9]  Martín Abadi,et al.  Conjoining specifications , 1995, TOPL.

[10]  Jean-Raymond Abrial,et al.  Event-B development of the FindP program , 2010 .

[11]  Barry K. Rosen,et al.  Correctness of Parallel Programs: The Church-Rosser Approach , 1976, Theor. Comput. Sci..

[12]  Leonor Prensa Nieto Verification of parallel programs with the Owicki-Gries and Rely-Guarantee methods in Isabelle, HOL , 2002 .

[13]  Cliff B. Jones,et al.  Tentative steps toward a development method for interfering programs , 1983, TOPL.

[14]  D. Andrews Formal methods and software development , 1996, Proceedings 1996 International Conference Software Engineering: Education and Practice.

[15]  Cliff B. Jones The Role of Proof Obligations in Software Design , 1985, TAPSOFT, Vol.2.

[16]  Jozef Hooman,et al.  Concurrency Verification: Introduction to Compositional and Noncompositional Methods , 2001, Cambridge Tracts in Theoretical Computer Science.

[17]  Jean-Raymond Abrial,et al.  Modeling in event-b - system and software engineering by Jean-Raymond Abrial , 2010, SOEN.

[18]  Kaisa Sere,et al.  Superposition Refinement of Parallel Algorithms , 1991, FORTE.

[19]  Susan Owicki,et al.  An axiomatic proof technique for parallel programs I , 1976, Acta Informatica.

[20]  Jean-Raymond Abrial,et al.  Event Model Decomposition , 2009 .

[21]  Amir Pnueli,et al.  Compositionality: The Significant Difference , 1999, Lecture Notes in Computer Science.

[22]  Ralph-Johan Back,et al.  Refinement Calculus, Part II: Parallel and Reactive Programs , 1989, REX Workshop.