@unpublished{deploy285, month = {December}, title = {Developing a Consensus Algorithm using Stepwise Refinement}, author = {Jeremy W. Bryans}, publisher = {Newcastle University}, year = {2010}, pages = {1--19}, keywords = { Consensus Algorithms, Stepwise Refinement, Verification}, url = {http://deploy-eprints.ecs.soton.ac.uk/285/}, abstract = {We give a formal development and proof of a known consensus algorithm using stepwise refinement. We begin with an abstract specification of the intended result of the algorithm. The algorithm is developed and proved correct over a number of refinement steps. The proof of correctness is performed concurrently with the development. The development and proof make use of key fault and failure assumptions. The stepwise refinement approach allows us to introduce and prove each property at the most appropriate stage in the development, before detail irrelevant to that property has been added to the model. Finally we introduce an abstract model of a possible network on which the algorithm could be executed.} }