Abstract
A certifying program produces in addition to each output a witness that certifies the output’s correctness. An accompanying checker program checks whether the computed witness is correct. Such a checker is usually simpler than the original program, and its verification is often feasible while the verification of the original program is too costly. By verifying the checker and by giving a machine-checked proof that the witness certifies the output’s correctness, we get formal instance correctness, i.e. a machine-checked proof that a particular input-output pair is correct. This verification method was demonstrated on sequential programs. In contrast, we are concerned with the correctness of distributed programs which behave fundamentally differently. In this paper, we present a verification method to obtain formal instance correctness for one class of certifying distributed programs. Moreover, we demonstrate our method on the leader election problem using the theorem prover Coq.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Blin, L., Fraigniaud, P., Patt-Shamir, B.: On proof-labeling schemes versus silent self-stabilizing algorithms. In: Felber, P., Garg, V. (eds.) SSS 2014. LNCS, vol. 8756, pp. 18–32. Springer, Cham (2014). doi:10.1007/978-3-319-11764-5_2
Claret, G.: Pluto: a first concurrent web server in Gallina. http://coq-blog.clarus.me/pluto-a-first-concurrent-web-server-in-gallina.html
Duprat, J.: A coq toolkit for graph theory (2011). rapport de recherche. Ecole Normale Superieur de Lyon
INRIA: The coq proof assistant. http://coq.inria.fr/
Korman, A., Kutten, S., Peleg, D.: Proof labeling schemes. Distrib. Comput. 22(4), 215–233 (2010)
Lynch, N.A.: Distributed Algorithms. Morgan Kaufmann Publishers Inc., San Francisco (1996)
McConnell, R.M., Mehlhorn, K., Näher, S., Schweitzer, P.: Certifying algorithms. Comput. Sci. Rev. 5, 119–161 (2011)
Mehlhorn, K., Näher, S.: LEDA: A Platform for Combinatorial and Geometric Computing. Cambridge University Press, Cambridge (1999)
Peleg, D.: Distributed Computing: A Locality-Sensitive Approach. Society for Industrial and Applied Mathematics, Philadelphia (2000)
Raynal, M.: Distributed Algorithms for Message-Passing Systems. Springer, Heidelberg (2013)
Rizkallah, C.: Verification of program computations. Ph.D. thesis (2015)
Völlinger, K., Reisig, W.: Certification of distributed algorithms solving problems with optimal substructure. In: Calinescu, R., Rumpe, B. (eds.) SEFM 2015. LNCS, vol. 9276, pp. 190–195. Springer, Cham (2015). doi:10.1007/978-3-319-22969-0_14
Weitz, K., Woos, D., Torlak, E., Ernst, M.D., Krishnamurthy, A., Tatlock, Z.: Formal semantics and automated verification for the border gateway protocol. In: ACM SIGCOMM Workshop on Networking and Programming Languages (NetPL 2016), Florianopolis, Brazil (2016)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2017 Springer International Publishing AG
About this paper
Cite this paper
Völlinger, K., Akili, S. (2017). Verifying a Class of Certifying Distributed Programs. In: Barrett, C., Davies, M., Kahsai, T. (eds) NASA Formal Methods. NFM 2017. Lecture Notes in Computer Science(), vol 10227. Springer, Cham. https://doi.org/10.1007/978-3-319-57288-8_27
Download citation
DOI: https://doi.org/10.1007/978-3-319-57288-8_27
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-57287-1
Online ISBN: 978-3-319-57288-8
eBook Packages: Computer ScienceComputer Science (R0)