Automated Synthesis of Distributed Self-Stabilizing Protocols (1509.05664v4)
Abstract: In this paper, we introduce an SMT-based method that automatically synthesizes a distributed self-stabilizing protocol from a given high-level specification and network topology. Unlike existing approaches, where synthesis algorithms require the explicit description of the set of legitimate states, our technique only needs the temporal behavior of the protocol. We extend our approach to synthesize ideal-stabilizing protocols, where every state is legitimate. We also extend our technique to synthesize monotonic-stabilizing protocols, where during recovery, each process can execute an most once one action. Our proposed methods are fully implemented and we report successful synthesis of well-known protocols such as Dijkstra's token ring, a self-stabilizing version of Raymond's mutual exclusion algorithm, ideal-stabilizing leader election and local mutual exclusion, as well as monotonic-stabilizing maximal independent set and distributed Grundy coloring.
- F. Abujarad and S. S. Kulkarni. Multicore constraint-based automated stabilization. In Proceedings of the 11th International Symposium on Stabilization, Safety, and Security of Distributed Systems (SSS), pages 47–61, 2009.
- Synthesis of self-stabilising and byzantine-resilient distributed systems. In Proceedings of the 28th International Conference on Computer Aided Verification (CAV), pages 157–176, 2016.
- B. Bonakdarpour and S. S. Kulkarni. Synthesizing bounded-time 2-phase fault recovery. Formal Aspects of Computing, 27(1):1–31, 2015.
- Symbolic synthesis of masking fault-tolerant programs. Springer Journal on Distributed Computing, 25(1):83–108, March 2012.
- Z3: an efficient SMT solver. In Proceedings of the 14th International Conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS), pages 337–340, 2008.
- Specification-based design of self-stabilization. IEEE Transactions on Parallel Distributed Systems, 27(1):263–270, 2016.
- E. W. Dijkstra. Self-stabilizing systems in spite of distributed control. Communications of the ACM, 17(11):643–644, 1974.
- E. W. Dijkstra. A belated proof of self-stabilization. Distributed Computing, 1(1):5–6, 1986.
- Bruno Dutertre. Yices 2.2. In Proceedings of the 26th International Conference on Computer Aided Verification (CAV), pages 737–744, 2014.
- A. Ebnenasir and A. Farahat. A lightweight method for automated design of convergence. In Proceedings of the 25th IEEE International Parallel and Distributed Processing Symposium (IPDPS), pages 219–230, 2011.
- F. Faghih and B. Bonakdarpour. Assess: A tool for automated synthesis of distributed self-stabilizing algorithms. In Proceedings of the 19th International Symposium on Stabilization, Safety, and Security of Distributed Systems (SSS), 2017. To appear.
- F. Faghih and B. Bonakdarpour. Symbolic synthesis of timed models with strict 2-phase fault recovery. IEEE Transactions on Dependable and Secure Computing (TDSC), to appear.
- Specification-based synthesis of distributed self-stabilizing protocols. In Proceedings of the International Conference on Formal Techniques for Distributed Objects, Components, and Systems (FORTE), pages 124–141, 2016.
- SMT-based synthesis of distributed self-stabilizing systems. ACM Transactions on Autonomous and Adaptive Systems (TAAS), 10(3):21, 2015.
- B. Finkbeiner and S. Schewe. Bounded synthesis. International Journal on Software Tools for Technology Transfer (STTT), 15(5-6):519–539, 2013.
- M. G. Gouda. The theory of weak stabilization. In Proceedings of the 5th Workshop on Self-Stabilizing Systems, pages 114–123, 2001.
- Nash equilibria in stabilizing systems. In Proceedings of the 11th International Symposium on Stabilization, Safety, and Security of Distributed Systems (SSS), pages 311–324, 2009.
- T. Herman. Probabilistic self-stabilization. Information Processing Letters, 35(2):63–67, 1990.
- D. Jackson. Software Abstractions: Logic, Language, and Analysis. MIT Press Cambridge, 2012.
- S. Jacobs and R. Bloem. Parameterized synthesis. Logical Methods in Computer Science, 10(1), 2014.
- A. Klinkhamer and A. Ebnenasir. On the complexity of adding convergence. In Proceedings of the 5th IPM International Conference on Fundamentals of Software Engineering (FSEN), pages 17–33, 2013.
- A. Klinkhamer and A. Ebnenasir. Synthesizing self-stabilization through superposition and backtracking. In Proceedings of the 16th International Symposium on Stabilization, Safety, and Security of Distributed Systems (SSS), pages 252–267, 2014.
- N. Lynch. Distributed Algorithms. Morgan Kaufmann Publishers, San Mateo, CA, 1996.
- Ideal stabilisation. IJGUC, 4(4):219–230, 2013.
- A. Pnueli. The temporal logic of programs. In Proceedings of the 18th Annual Symposium on Foundations of Computer Science (FOCS), pages 46–57, 1977.
- Kerry Raymond. A tree-based algorithm for distributed mutual exclusion. ACM Transactions on Computer Systems, 7(1):61–77, 1989.
- Observations on self-stabilizing graph algorithms for anonymous networks. In Proceedings of the Second Workshop on Self-Stabilizing Systems, pages 1–15, 1995.
- Y. Yamauchi and S. Tixeuil. Monotonic stabilization. In Proceedings of the 14th International Conference on Principles of Distributed Systems (OPODIS), pages 475–490, 2010.