4 research outputs found
Transforming EVENT B Models into Verified C# Implementations
The refinement-based approach to developing software is based on the correct-by-construction
paradigm where software systems are constructed via the step-by-step refinement of an initial high-level
specification into a final concrete specification. Proof obligations, generated during this process
are discharged to ensure the consistency between refinement levels and hence the systemâs overall
correctness.
Here, we are concerned with the refinement of specifications using the EVENT B modelling language
and its associated toolset, the RODIN platform. In particular, we focus on the final steps of
the process where the final concrete specification is transformed into an executable algorithm. The
transformations involved are (a) the transformation from an EVENT B specification into a concrete
recursive algorithm and (b) the transformation from the recursive algorithm into its equivalent iterative
version. We prove both transformations correct and verify the correctness of the final code in a
static program verification environment for C# programs, namely the Spec# programming syste
A Simple Refinement-based Method for Constructing Algorithms
International audienceThe Event B modelling language provides a framework for teaching programming methodology based on the famous pre/post-specifications, together with the refinement. We illustrate the call-as-event pattern for helping users to use Event B. As teacher, we are using students to evaluate our methodology and we give comments in italic, when we have got reactions from our students: a given definition, a concept related to our methodology, for instance. We discuss points related to our lectures at different levels of the university, mainly master. Simple case studies illustrate the teaching methodology based on interactive proofs