Verification by Construction of Distributed Algorithms
Résumé
The verification of distributed algorithms is a challenge for formal techniques supported by tools, as model checkers and proof as- sistants. The difficulties, even for powerful tools, lie in the derivation of proofs of required properties, such as safety and eventuality, for dis- tributed algorithms. Verification by construction can be achieved by us- ing a formal framework in which models are constructed at different levels of abstraction; each level of abstraction is refined by the one below, and this refinement relationships is documented by an abstraction relation namely a gluing invariant. The highest levels of abstraction are used to express the required behavior in terms of the problem domain and the lowest level of abstraction corresponds to an implementation from which an efficient implementation can be derived automatically. In this paper, we describe a methodology based on the general concept of refinement and used for developing distributed algorithms satisfying a given list of safety and liveness properties. The modelling methodology is defined in the Event-B modelling language using the IDE Rodin.