Refinement, Decomposition, and Instantiation of Discrete Models: Application to Event-B

We argue that formal modeling should be the starting point for any serious development of computer systems. This claim poses a challenge for modeling: at first it must cope with the constraints and scale of serious developments. Only then it is a suitable starting point. We present three techniques, refinement, decomposition, and instantiation, that we consider indispensable for modeling large and complex systems. The vehicle of our presentation is Event-B, but the techniques themselves do not depend on it.

[1]  Peter A. Lindsay,et al.  mural: A Formal Development Support System , 1991, Springer London.

[2]  Egon Börger,et al.  The ASM Refinement Method , 2003, Formal Aspects of Computing.

[3]  Gerhard Schellhorn,et al.  ASM refinement and generalizations of forward simulation in data refinement: a comparison , 2005, Theor. Comput. Sci..

[4]  Ralph-Johan Back,et al.  Refinement Calculus: A Systematic Introduction , 1998 .

[5]  Eric C. R. Hehner A Practical Theory of Programming , 1993, Texts and Monographs in Computer Science.

[6]  Ralph-Johan Back,et al.  Refinement Calculus, Part I: Sequential Nondeterministic Programs , 1989, REX Workshop.

[7]  Guy L. Steele,et al.  The Java Language Specification , 1996 .

[8]  Carroll Morgan,et al.  Programming from specifications , 1990, Prentice Hall International Series in computer science.

[9]  Lawrence Charles Paulson,et al.  Isabelle: A Generic Theorem Prover , 1994 .

[10]  Kai Engelhardt,et al.  Data Refinement: Model-Oriented Proof Methods and their Comparison , 1998 .

[11]  Mary Jean Harrold,et al.  Testing: a roadmap , 2000, ICSE '00.

[12]  Jim Woodcock,et al.  Using Z - specification, refinement, and proof , 1996, Prentice Hall international series in computer science.

[13]  W. Reif,et al.  Theorem Proving in Large Theories , 1998 .

[14]  Egon Börger,et al.  Abstract State Machines. A Method for High-Level System Design and Analysis , 2003 .

[15]  Eric C. R. Hehner,et al.  A Practical Theory of Programming , 1993, Texts and Monographs in Computer Science.

[16]  Guy L. Steele,et al.  Java(TM) Language Specification, The (3rd Edition) (Java (Addison-Wesley)) , 2005 .

[17]  Leslie Lamport,et al.  Specifying Systems: The TLA+ Language and Tools for Hardware and Software Engineers [Book Review] , 2002, Computer.

[18]  Jean-Raymond Abrial,et al.  The B-book - assigning programs to meanings , 1996 .

[19]  Dominique Cansell,et al.  Refinement and Reachability in EventB , 2005, ZB.

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

[21]  Frédéric Badeau,et al.  Using B as a High Level Programming Language in an Industrial Project: Roissy VAL , 2005, ZB.

[22]  Jean-Raymond Abrial,et al.  Introducing Dynamic Constraints in B , 1998, B.

[23]  Niklaus Wirth,et al.  Modula: A language for modular multiprogramming , 1977, Softw. Pract. Exp..

[24]  Dominique Cansell,et al.  Click'n Prove: Interactive Proofs within Set Theory , 2003, TPHOLs.

[25]  WirthNiklaus Program development by stepwise refinement , 1971 .

[26]  Niklaus Wirth,et al.  Program development by stepwise refinement , 1971, CACM.

[27]  Ralph-Johan Back,et al.  Refinement Calculus , 1998, Graduate Texts in Computer Science.

[28]  Cliff B. Jones,et al.  Systematic software development using VDM , 1986, Prentice Hall International Series in Computer Science.