Abstract
Self-stabilization in distributed systems is a technique to guarantee convergence to a set of legitimate states without external intervention when a transient fault or bad initialization occurs. Recently, there has been a surge of efforts in designing techniques for automated synthesis of self-stabilizing algorithms that are correct by construction. Most of these techniques, however, are not parameterized, meaning that they can only synthesize a solution for a fixed and predetermined number of processes. In this paper, we report a breakthrough in parameterized synthesis of self-stabilizing algorithms in symmetric networks, including ring, line, mesh, and torus. First, we develop cutoffs that guarantee (1) closure in legitimate states, and (2) deadlock-freedom outside the legitimate states. We also develop a sufficient condition for convergence in self-stabilizing systems. Since some of our cutoffs grow with the size of the local state space of processes, scalability of the synthesis procedure is still a problem. We address this problem by introducing a novel SMT-based technique for counterexample-guided synthesis of self-stabilizing algorithms in symmetric networks. We have fully implemented our technique and successfully synthesized solutions to maximal matching, three coloring, and maximal independent set problems for ring and line topologies.
Similar content being viewed by others
Notes
Note that a computation may be terminating in a state in \(\textit{LS}\).
One can see that it is possible to find such a sequence of length \(l^2\) by an induction on l.
Note that this property can be easily transformed to a property without the universal quantifier by introducing new variables that can take arbitrary values at the initialization and then keep their values.
For example, for a topology with \(l=3\) in a torus with \(|m|=3\), the cutoff for the first case will be 2187.
References
Alur, R., Raghothaman, M., Stergiou, C., Tripakis, S., Udupa, A.: Automatic completion of distributed protocols with symmetry. In International Conference on Computer Aided Verification, pp. 395–412. Springer (2015)
Alur, R., Tripakis, S.: Automatic synthesis of distributed protocols. SIGACT News 48(1), 55–90 (2017)
Attie, P.C., Emerson, E.A.: Synthesis of concurrent systems with many similar processes. ACM Trans. Program. Lang. Syst. 20(1), 51–115 (1998)
Außerlechner, S., Jacobs, S., Khalimov, A.: Tight cutoffs for guarded protocols with fairness. In International Conference on Verification, Model Checking, and Abstract Interpretation, pp. 476–494 (2016)
Basu, S., Ramakrishnan, C.: Compositional analysis for verification of parameterized systems. In International Conference on Tools and Algorithms for the Construction and Analysis of Systems, pp. 315–330 (2003)
Bingham, B., Greenstreet, M., Bingham, J.: Parameterized verification of deadlock freedom in symmetric cache coherence protocols. In International Conference on Formal Methods in Computer-Aided Design, pp. 186–195 (2011)
Bloem, R., Braud-Santoni, N., Jacobs, S.: Synthesis of self-stabilising and byzantine-resilient distributed systems. In: Chaudhuri, S., Farzan, A. (eds.) Computer Aided Verification. Lecture Notes in Computer Science, vol. 9779, pp. 157–176. Springer, Cham (2016)
Bloem, R., Jacobs, S., Khalimov, A.: Parameterized synthesis case study: AMBA AHB. In Workshop on Synthesis, volume 157 of EPTCS, pp. 68–83 (2014)
Clarke, E.M., Grumberg, O., Jha, S.: Verifying parameterized networks. ACM Trans. Program. Lang. Syst. (TOPLAS) 19(5), 726–750 (1997)
Clarke, E.M., Talupur, M., Veith, H.: Environment abstraction for parameterized verification. In: Emerson, E.A., Namjoshi, K.S. (eds.) Verification, Model Checking, and Abstract Interpretation. Lecture Notes in Computer Science, vol 3855, pp. 126–141. Springer, Berlin, Heidelberg (2005)
Conchon, S., Goel, A., Krstić, S., Mebsout, A., Zaïdi, F.: Cubicle: A parallel SMT-based model checker for parameterized systems. In International Conference on Computer Aided Verification, pp. 718–724 (2012)
Devismes, S., Tixeuil, S., Yamashita, M.: Weak vs. self vs. probabilistic stabilization. In: Proceedings of the 28th IEEE International Conference on Distributed Computing Systems (ICDCS), pp. 681–688 (2008)
Dijkstra, E.W.: Self-stabilizing systems in spite of distributed control. Commun. ACM 17(11), 643–644 (1974)
Dijkstra, E.W.: A belated proof of self-stabilization. Distrib. Comput. 1(1), 5–6 (1986)
Dolev, D., Heljanko, K., Järvisalo, M., Korhonen, J., Lenzen, Ch., Rybicki, J., Suomela, J., Wieringa, S.: Synchronous counting and computational algorithm design. J. Comput. Syst. Sci. 82(2), 310–332 (2016)
Ebnenasir, A., Farahat, A.: A lightweight method for automated design of convergence. In IPDPS, pp. 219–230 (2011)
Ebnenasir, A., Klinkhamer, A.: Topology-specific synthesis of self-stabilizing parameterized systems with constant-space processes. IEEE Trans. Softw. Eng. (2019) (Available through Early Access)
Emerson, E.A., Namjoshi, K.S.: On reasoning about rings. Int. J. Found. Comput. Sci. 14(4), 527–550 (2003)
Cimatti et. al. A.: Nusmv 2: An opensource tool for symbolic model checking. In: Brinksma, E., Larsen, K.G. (eds.) Computer Aided Verification. Lecture Notes in Computer Science, vol. 2404, pp. 359–364. Springer, Berlin, Heidelberg (2002)
Faghih, F., Bonakdarpour, B.: SMT-based synthesis of distributed self-stabilizing systems. In: Felber, P., Garg, V. (eds.) Stabilization, Safety, and Security of Distributed Systems. Lecture Notes in Computer Science, vol. 8756, pp. 165–179. Springer, Cham (2014)
Faghih, F., Bonakdarpour, B.: SMT-based synthesis of distributed self-stabilizing systems. ACM Trans. Auton. Adapt. Syst. (TAAS) 10(3), 21 (2015)
Faghih, F., Bonakdarpour, B.: ASSESS: A tool for automated synthesis of distributed self-stabilizing algorithms. In: SSS, pp. 219–233 (2017)
Faghih, F., Bonakdarpour, B., Tixeuil, S., Kulkarni, S.: Specification-based synthesis of distributed self-stabilizing protocols. In: International Conference on Formal Techniques for Distributed Objects, Components, and Systems (FORTE), pp. 124–141 (2016)
Faghih, F., Bonakdarpour, B., Tixeuil, S., Kulkarni, S.: Specification-based synthesis of distributed self-stabilizing protocols. In: Logical Methods in Computer Science (to appear)
Farahat, A.: Automated design of self-stabilization. PhD thesis, Michigan Technological University, (2012)
Farahat, A., Ebnenasir, A.: Local reasoning for global convergence of parameterized rings. In: International Conference on Distributed Computing Systems, pp. 496–505 (2012)
Finkbeiner, B., Jacobs, S.: Lazy synthesis. In: Kuncak, V., Rybalchenko, A. (eds.) Verification, Model Checking, and Abstract Interpretation. Lecture Notes in Computer Science, vol. 7148, pp. 219–234. Springer, Berlin, Heidelberg (2012)
Finkbeiner, B., Schewe, S.: Bounded synthesis. Int. J. Softw. Tools Technol. Transf. (STTT) 15(5–6), 519–539 (2013)
Gascón, A., Tiwari, A.: Synthesis of a simple self-stabilizing system (2014). arXiv preprint arXiv:1407.5392
Gouda, M. G., Acharya, H. B.: Nash equilibria in stabilizing systems. In: Guerraoui, R., Petit, F. (eds.) Stabilization, Safety, and Security of Distributed Systems. Lecture Notes in Computer Science, vol. 5873, pp. 311–324. Springer, Berlin, Heidelberg (2009)
Hanna, Y., Samuelson, D., Basu, S., Rajan, H.: Automating cut-off for multi-parameterized systems. In: International Conference on Formal Engineering Methods, pp. 338–354 (2010)
Jackson, D.: Software Abstractions: Logic, Language, and Analysis. MIT Press, Cambridge (2012)
Jacobs, S., Bloem, R.: Parameterized synthesis. In: Logical Methods in Computer Science, vol. 10, No. 1 (2014)
Jacobs, S., Sakr, M.: A symbolic algorithm for lazy synthesis of eager strategies. In Automated Technology for Verification and Analysis (ATVA) (2018)
Jacobs, S., Sakr, M.: Analyzing guarded protocols: Better cutoffs, more systems, more expressivity. In: Dillig, I., Palsberg, J. (eds.) Verification, Model Checking, and Abstract Interpretation. Lecture Notes in Computer Science, vol. 10747, pp. 247–268. Springer, Cham (2018)
Khalimov, A., Jacobs, S., Bloem, R.: Towards efficient parameterized synthesis. In: Giacobazzi, R., Berdine, J., Mastroeni, I. (eds.) Verification, Model Checking, and Abstract Interpretation. Lecture Notes in Computer Science, vol. 7737, pp. 108–127. Springer, Berlin, Heidelberg (2013)
Klinkhamer, A., Ebnenasir, A.: On the complexity of adding convergence. In: Arbab, F., Sirjani, M. (eds.) Fundamentals of Software Engineering. Lecture Notes in Computer Science, vol. 8161, pp. 17–33. Springer, Berlin, Heidelberg (2013)
Klinkhamer, A., Ebnenasir, A.: Verifying livelock freedom on parameterized rings and chains. In: Higashino, T., Katayama, Y., Masuzawa, T., Potop-Butucaru, M., Yamashita, M. (eds.) Stabilization, Safety, and Security of Distributed Systems. Lecture Notes in Computer Science, vol. 8255, pp. 163–177. Springer, Cham (2013)
Klinkhamer, A., Ebnenasir, A.: Synthesizing self-stabilization through superposition and backtracking. In: SSS, pp. 252–267 (2014)
Klinkhamer, A., Ebnenasir, A.: Shadow/puppet synthesis: a stepwise method for the design of self-stabilization. IEEE Trans. Parallel Distrib. Syst. 27(11), 3338–3350 (2016)
Klinkhamer, A., Ebnenasir, A.: Synthesizing parameterized self-stabilizing rings with constant-space processes. In Fundamentals of Software Engineering (FSEN), pp. 100–115 (2017)
Lazic, M., Konnov, I., Widder, J., Bloem, R.: Synthesis of distributed algorithms with parameterized threshold guards. In: On Principles of Distributed Systems (OPODIS) (2017)
Manne, F., Mjelde, M., Pilard, L., Tixeuil, S.: A new self-stabilizing maximal matching algorithm. Theor. Comput. Sci. 410(14), 1336–1345 (2009)
McMillan, K.: Parameterized verification of the flash cache coherence protocol by compositional model checking. In: Advanced Research Working Conference on Correct Hardware Design and Verification Methods, pp. 179–195 (2001)
Raymond, Kerry: A tree-based algorithm for distributed mutual exclusion. ACM Trans. Comput. Syst. 7(1), 61–77 (1989)
Siirtola, A., Heljanko, K.: Dynamic cut-off algorithm for parameterised refinement checking. In: International Conference on Formal Aspects of Component Software, pp. 256–276 (2018)
Solar-Lezama, A.: Program sketching. STTT 15(5–6), 475–495 (2013)
Weise, T., Tang, K.: Evolving distributed algorithms with genetic programming. IEEE Trans. Evol. Comput. 16(2), 242–265 (2011)
Wolper, P., Lovinfosse, V.: Verifying properties of large sets of processes with network invariants. In: International Conference on Computer Aided Verification, pp. 68–80. Springer (1989)
Author information
Authors and Affiliations
Corresponding author
Additional information
Publisher's Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Rights and permissions
About this article
Cite this article
Mirzaie, N., Faghih, F., Jacobs, S. et al. Parameterized synthesis of self-stabilizing protocols in symmetric networks. Acta Informatica 57, 271–304 (2020). https://doi.org/10.1007/s00236-019-00361-7
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00236-019-00361-7