PADEC is a framework to build certified proofs of self-stabilizing algorithms using the Coq proof assistant. The framework includes the definition of the computational model, lemmas for common proof patterns and case studies. A constant purpose was to convince the designers that what we formally prove using PADEC is what they expect by using definitions that are (syntactically) as close as possible to their usual definitions.
PADEC Online Browsing
Self-extracted documentation from the development in Coq (proofs are omitted for readability):
- Current PADEC API available here
- Current Development:
Stabilization time in steps; application to the first Dijkstra’s token ring algorithm.See:
- Tools for step complexity: Tools/Stream_Length, Model/Steps
- Axiomatic ring topology: Model/Ring_topology
- Case Study: exact worst case stabilization time for the first Dijkstra’s token ring algorithm
The code has been written using Coq Version 8.8.0, compiled with OCaml 4.08.1 The whole development mainly includes Coq source code with every definition and proof involved in the framework and case studies.
- Current PADEC source code available here
- A Framework for Certified Self-Stabilization. Karine Altisen, Pierre Corbineau, Stéphane Devismes - FORTE'2016, the 36th IFIP International Conference on Formal Techniques for Distributed Objects, Components and Systems
- A Framework for Certified Self-Stabilization. Karine Altisen, Pierre Corbineau, Stéphane Devismes - Logical Methods in Computer Science (special issue of FORTE 2016)
- Squeezing Streams and Composition of Self-Stabilizing Algorithms. Karine Altisen, Pierre Corbineau, Stéphane Devismes - FORTE'2019 - 39th International Conference on Formal Techniques for Distributed Objects, Components, and Systems