A Constructive Proof for FLP

Benjamin Bisping 📧, Paul-David Brodmann 📧, Tim Jungnickel 📧, Christina Rickmann 📧, Henning Seidler 📧, Anke Stüber 📧, Arno Wilhelm-Weidner 📧, Kirstin Peters 📧 and Uwe Nestmann 🌐

May 18, 2016

This is a development version of this entry. It might change over time and is not stable. Please refer to release versions for citations.


The impossibility of distributed consensus with one faulty process is a result with important consequences for real world distributed systems e.g., commits in replicated databases. Since proofs are not immune to faults and even plausible proofs with a profound formalism can conclude wrong results, we validate the fundamental result named FLP after Fischer, Lynch and Paterson. We present a formalization of distributed systems and the aforementioned consensus problem. Our proof is based on Hagen Völzer's paper "A constructive proof for FLP". In addition to the enhanced confidence in the validity of Völzer's proof, we contribute the missing gaps to show the correctness in Isabelle/HOL. We clarify the proof details and even prove fairness of the infinite execution that contradicts consensus. Our Isabelle formalization can also be reused for further proofs of properties of distributed systems.


BSD License


Session FLP