Abstract
Formal proofs of functional correctness and rigorous analyses of fault tolerance have, traditionally, been separate processes. In the former a programming logic (proof) or computational model (model checking) is used to establish that all the system’s behaviours satisfy some (specification) criteria. In the latter, techniques derived from engineering are used to determine quantitative properties such as probability of failure (given failure of some component) or expected performance (an average measure of execution time, for example).
To combine the formality and the rigour requires a quantitative approach within which functional correctness can be embedded. Programming logics for probability are capable in principle of doing so, and in this article we illustrate the use of the probabilistic guarded-command language (pGCL) and its logic for that purpose.
We take self-stabilisation as an example of fault tolerance, and present program-logical techniques for determining, on the one hand, that termination occurs with probability one and, on the other, the the expected time to termination is bounded above by some value. An interesting technical novelty required for this is the recognition of both “angelic” and “demonic” refinement, reflecting our simultaneous interest in both upper- and lower bounds.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Brassard, G., Bratley, P.: Fundamentals of Algorithmics. Prentice-Hall, Englewood Cliffs (1996)
Celiku, O., McIver, A.: Compositional specification and analysis of cost-based properties in probabilistic programs. In: Fitzgerald, J.S., Hayes, I.J., Tarlecki, A. (eds.) FM 2005. LNCS, vol. 3582, pp. 107–122. Springer, Heidelberg (2005)
Dijkstra, E.W.: A Discipline of Programming. Prentice Hall International, Englewood Cliffs (1976)
Hallerstede, S., Butler, M.: Performance analysis of probabilistic action systems. Formal Aspects of Computing 16(4), 313–331 (2004)
Herman, T.: Probabilistic self-stabilization. Inf. Proc. Lett. 35(2), 63–67 (1990)
Hillston, J.: A Compositional Approach to Performance Modelling. Cambridge University Press, Cambridge (1996)
Hoang, T.S., Jin, Z., Robinson, K., McIver, A.K., Morgan, C.: Development via refinement in probabilistic B — foundation and case study. In: Treharne, H., King, S., Henson, M.C., Schneider, S. (eds.) ZB 2005. LNCS, vol. 3455, pp. 355–373. Springer, Heidelberg (2005)
Katoen, J.-P., Meyer-Kayser, J., Siegle, M.: A Markov-chain model checker. In: Schwartzbach, M.I., Graf, S. (eds.) ETAPS 2000 and TACAS 2000. LNCS, vol. 1785, pp. 347–362. Springer, Heidelberg (2000)
McIver, A.K., Morgan, C.C., Sanders, J.W., Seidel, K.: Probabilistic Systems Group: Collected reports, web.comlab.ox.ac.uk/oucl/research/areas/probs
McIver, A., Morgan, C.: Annabelle McIver and Carroll Morgan. In: Technical Monographs in Computer Science. Springer, New York (2004)
Morgan, C.C., McIver, A.K.: pGCL: Formal reasoning for random algorithms. South African Computer Journal 22 (March 1999), available at: [9, key pGCL]
Morgan, C.C., McIver, A.K., Seidel, K.: Probabilistic predicate transformers. ACM Transactions on Programming Languages and Systems 18(3), 325–353 (1996), doi.acm.org/10.1145/229542.229547
PRISM. Probabilistic symbolic model checker, www.cs.bham.ac.uk/~dxp/prism
Rabin, M.O.: The choice-coordination problem. Acta Informatica 17(2), 121–134 (1982)
Sere, K., Troubitsyna, E.: Probabilities in action systems. In: Proc. of the 8th Nordic Workshop on Programming Theory (1996)
Stirzaker, D.: Elementary Probability. Cambridge University Press, Cambridge (1994)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2006 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
Morgan, C.C., McIver, A.K. (2006). Programming-Logic Analysis of Fault Tolerance: Expected Performance of Self-stabilisation. In: Butler, M., Jones, C.B., Romanovsky, A., Troubitsyna, E. (eds) Rigorous Development of Complex Fault-Tolerant Systems. Lecture Notes in Computer Science, vol 4157. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11916246_15
Download citation
DOI: https://doi.org/10.1007/11916246_15
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-48265-9
Online ISBN: 978-3-540-48267-3
eBook Packages: Computer ScienceComputer Science (R0)