Elsevier

Science of Computer Programming

Volume 148, 15 November 2017, Pages 49-65
Science of Computer Programming

Derivation of algorithmic control structures in Event-B refinement

https://doi.org/10.1016/j.scico.2017.05.010Get rights and content
Under an Elsevier user license
open archive

Highlights

  • Introducing an approach for making the control flow in Event-B explicit

  • Augmenting Event-B with a scheduling language

  • Presenting a number of refinement rules to support incremental derivation of algorithmic control structure

  • Presenting a number of schedule guard propagation rules and guard elimination conditions to verify the correctness of the schedule

  • Validating the approach by applying it to development of the Schorr–Waite algorithm

Abstract

The Event-B formalism allows program specifications to be modelled at an abstract level and refined towards a concrete model. However, Event-B lacks explicit control flow structure and ordering is implicitly encoded in event guards. This makes it difficult to identify and apply rules for transformation of Event-B models to sequential code. This paper introduces a scheduling language to support the incremental derivation of algorithmic control structure for events as part of the Event-B refinement process. We provide intermediate control structures for non-deterministic iteration and choice that ease the transition from abstract specifications to sequential implementations. We present rules for transforming algorithmic structures to more concrete refinements. We illustrate our approach by applying our method to the Schorr–Waite graph marking algorithm.

Keywords

Refinement
Program verification
Event-B
Program derivation

Cited by (0)