Abstract
We focus on the verification of stabilizing programs using SMT solvers. SMT solvers have the potential to convert the verification problem into a satisfiability problem of a Boolean formula and utilize efficient techniques to determine whether it is satisfiable. We focus on utilizing techniques from bounded model checking to determine whether the given program is stabilizing. We illustrate our approach using three case studies. We also identify tradeoffs between verification with SMT solvers and existing approaches.
This work is sponsored in part by AFOSR FA9550-10-1-0178 and NSF CNS Grant 0914913.
Part of this work is accepted as a brief announcement in SSS 2012.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Arora, A., Gouda, M.: Closure and convergence: A foundation of fault-tolerant computing. IEEE Transactions on Software Engineering 19(11) (1993)
Biere, A., Cimatti, A., Clarke, E., Zhu, Y.: Symbolic model checking without bdds. In: Proc. of the Workshop on Tools and Algorithms for the Construction and Analysis of Systems (1999)
Bryant, R.E.: Graph-based algorithms for boolean function manipulation. IEEE Transactions on Computers 35(8) (1986)
Chen, J., Abujarad, F., Kulkarni, S.: Effect of Fairness in Model Checking of Self-stabilizing Programs. In: Lu, C., Masuzawa, T., Mosbah, M. (eds.) OPODIS 2010. LNCS, vol. 6490, pp. 135–138. Springer, Heidelberg (2010)
Chen, J., Kulkarni, S.: Smt-based model checking for stabilizing programs. Technical Report MSU-CSE-12-13, Computer Science and Engineering, Michigan State University, East Lansing, Michigan (October 2012)
Clarke, E., Biere, A., Raimi, R., Zhu, Y.: Bounded model checking using satisfiability solving. Journal of Form. Methods Syst. Des. (2001)
Copty, F., Fix, L., Fraer, R., Giunchiglia, E., Kamhi, G., Tacchella, A., Vardi, M.Y.: Benefits of Bounded Model Checking at an Industrial Setting. In: Berry, G., Comon, H., Finkel, A. (eds.) CAV 2001. LNCS, vol. 2102, pp. 436–453. Springer, Heidelberg (2001)
de Moura, L., Bjørner, N.S.: Z3: An Efficient SMT Solver. In: Ramakrishnan, C.R., Rehof, J. (eds.) TACAS 2008. LNCS, vol. 4963, pp. 337–340. Springer, Heidelberg (2008)
Dijkstra, E.W.: Self stabilizing systems in spite of distributed control. Communications of the ACMÂ 17(11) (1974)
Dolev, S.: Self-stabilizing routing and related protocols. Journal of Parallel and Distributed Computing 42(2) (1997)
Dolev, S.: Self-Stabilization. MIT Press (2000)
Dutertre, B., De Moura, L.: The yices smt solver. Technical report, Computer Science Laboratory, SRI International (2006)
Grumberg, O., Clarke, E.M., Peled, D.A.: Model Checking. The MIT Press (2000)
Eén, N., Sörensson, N.: An Extensible SAT-solver. In: Giunchiglia, E., Tacchella, A. (eds.) SAT 2003. LNCS, vol. 2919, pp. 502–518. Springer, Heidelberg (2004)
Ghosh, S.: Binary self-stabilization in distributed systems. Information Processing Letter 40(3) (1991)
Ghosh, S.: Distributed Systems: An Algorithmic Approach. CRC Press (2006)
Ghosh, S., Gupta, A.: An exercise in fault-containment: Self-stabilizing leader election. Information Processing Letters (1996)
Goldberg, E., Novikov, Y.: Berkmin: A fast and robust sat-solver. In: Proceedings of the Conference on Design, Automation and Test in Europe, DATE 2002 (2002)
Gouda, M.G., Multari, N.: Stabilizing communication protocols. IEEE Trans. Comput. 40(4), 448–458 (1991)
Kulkarni, S.S., Bolen, C., Oleszkiewicz, J., Robinson, A.: Alternator in read/write model. Information Processing Letters (2005)
Kulkarni, S.S., Rushby, J.M., Natarajan, S.: A case-study in component-based mechanical verification of fault-tolerant programs. In: Workshop on Self-stabilizing System, pp. 33–40 (1999)
McMillan, K.L.: Symbolic Model Checking. Kluwer Academic Publishers (1993)
McMillan, K.L.: The smv system for smv version 2.5.4. Technical report, Carnegie Mellon University (2000)
Moskewicz, M.W., Madigan, C.F., Zhao, Y., Zhang, L., Malik, S.: Chaff: engineering an efficient sat solver. In: Proceedings of the 38th Annual Design Automation Conference, DAC 2001 (2001)
Prasetya, I.S.W.B.: Mechanically verified self-stabilizing hierarchical algorithms. In: Proceedings of the Third International Workshop on Tools and Algorithms for Construction and Analysis of Systems, pp. 399–415 (1997)
Qadeer, S., Shankar, N.: Verifying a self-stabilizing mutual exclusion algorithm. In: IFIP International Conference on Programming Concepts and Methods, PROCOMET 1998 (1998)
Rabinovitz, I., Grumberg, O.: Bounded Model Checking of Concurrent Programs. In: Etessami, K., Rajamani, S.K. (eds.) CAV 2005. LNCS, vol. 3576, pp. 82–97. Springer, Heidelberg (2005)
Raymond, K.: A tree-based algorithm for distributed mutual exclusion. ACM Transactions on Computer Systems (TOCS) 7, 61–77 (1989)
Tsuchiya, T., Nagano, S., Paidi, R.B., Kikuno, T.: Symbolic model checking for self-stabilizing algorithms. IEEE Trans. Parallel Distrib. Syst. 12, 81–95 (2001)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2013 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Chen, J., Kulkarni, S. (2013). SMT-Based Model Checking for Stabilizing Programs, . In: Frey, D., Raynal, M., Sarkar, S., Shyamasundar, R.K., Sinha, P. (eds) Distributed Computing and Networking. ICDCN 2013. Lecture Notes in Computer Science, vol 7730. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-35668-1_27
Download citation
DOI: https://doi.org/10.1007/978-3-642-35668-1_27
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-35667-4
Online ISBN: 978-3-642-35668-1
eBook Packages: Computer ScienceComputer Science (R0)