Checking Contracts in Event-B
Résumé
Verification of program properties such as partial correctness (PC) or absence of errors at runtime (RTE) applies induction principles using algorithmic techniques for checking statements in a logical frame- work such as classical logic or temporal logic. Alan Turing was undoubt- edly the first to annotate programs, namely Turing machines, and to apply an induction principle to transition systems. Our work is placed in this perspective of verifying safety properties of programs which could be executed sequentially or in a distributed manner, with the aim of pre- senting them as simply as possible to student classes in the context of a posteriori verification. We report on an in vivo experiment using the Event-B language and associated tools as an assembly and disassembly platform for correcting programs in a programming language. We have adopted a contract-based approach to programming, which we are im- plementing with Event-B . A few examples are given to illustrate this pedagogical approach as well as comments and observations. This step is part of a process of learning both the underlying tech