Probabilistic Guarded Commands Mechanized in HOL

The probabilistic guarded-command language pGCL [Carroll Morgan, Annabelle McIver. pGCL: formal reasoning for random algorithms. South African Computer Journal (1999)] contains both demonic and probabilistic nondeterminism, which makes it suitable for reasoning about distributed random algorithms [Carroll Morgan. Proof rules for probabilistic loops. In Proceedings of the BCS-FACS 7th Refinement Workshop. He Jifeng, John Cooke and Peter Wallis (eds). Springer Verlag Workshops in Computing, 1996]. Proofs are based on weakest precondition semantics, using an underlying logic of real- (rather than Boolean-) valued functions. We present a mechanization of the quantitative logic for pGCL [Carroll Morgan, Annabelle McIver, and Karen Seidel, Probabilistic predicate transformers. ACM Transactions on Programming Languages and Systems, 18(3): 325-353, May 1996] using the HOL theorem prover [M.J.C. Gordon and T.F. Melham. Introduction to HOL (A theorem-proving environment for higher order logic). Cambridge University Press, 1993], including a proof that all pGCL commands satisfy the new condition sublinearity, the quantitative generalization of conjunctivity for standard GCL [E.W. Dijkstra. A Discipline of Programming. Prentice Hall, 1976]. The mechanized theory also supports the creation of an automatic proof tool which takes as input an annotated pGCL program and its partial correctness specification, and derives from that a sufficient set of verification conditions. This is employed to verify the partial correctness of the probabilistic voting stage in Rabin's mutual-exclusion algorithm [Eyal Kushilevitz and Michael O. Rabin. Randomized mutual exclusion algorithms revisited. In Maurice Herlihy, editor, Proceedings of the 11th Annual Symposium on Principles of Distributed Computing, pages 275-283, Vancouver, BC, Canada, August 1992. ACM Press].

[1]  Edsger W. Dijkstra,et al.  A Discipline of Programming , 1976 .

[2]  T. Nipkow Hoare Logics in Isabelle/HOL , 2002 .

[3]  J. Grundy,et al.  Theorem Proving in Higher Order Logics: 11th International Conference, TPHOLs'98, Canberra, Australia, September 27 - October 1, 1998, Proceedings , 1998 .

[4]  Michael J. C. Gordon,et al.  Mechanizing programming logics in higher order logic , 1989 .

[5]  Michael Huth The Interval Domain: A Matchmaker for aCTL and aPCTL , 1998, Electron. Notes Theor. Comput. Sci..

[6]  Annabelle McIver,et al.  Partial correctness for probabilistic demonic programs , 2001, Theor. Comput. Sci..

[7]  Dexter Kozen,et al.  A probabilistic PDL , 1983, J. Comput. Syst. Sci..

[8]  Graham Birtwistle,et al.  Current Trends in Hardware Verification and Automated Theorem Proving , 1989, Springer New York.

[9]  Richard J. Boulton,et al.  Theorem Proving in Higher Order Logics , 2003, Lecture Notes in Computer Science.

[10]  Annabelle McIver,et al.  Abstraction, Refinement and Proof for Probabilistic Systems , 2004, Monographs in Computer Science.

[11]  Annabelle McIver,et al.  Probabilistic Invariants for Probabilistic Machines , 2003, ZB.

[12]  Robin Milner,et al.  Edinburgh LCF , 1979, Lecture Notes in Computer Science.

[13]  M. Gordon,et al.  Introduction to HOL: a theorem proving environment for higher order logic , 1993 .

[14]  Carroll Morgan,et al.  pGCL: formal reasoning for random algorithms , 1998 .

[15]  Joe Hurd,et al.  Formal verification of probabilistic algorithms , 2003 .

[16]  Annabelle McIver,et al.  Probabilistic predicate transformers , 1996, TOPL.

[17]  Eyal Kushilevitz,et al.  Randomized mutual exclusion algorithms revisited , 1992, PODC '92.

[18]  Alan Bundy,et al.  Constructing Induction Rules for Deductive Synthesis Proofs , 2006, CLASE.

[19]  Marta Z. Kwiatkowska,et al.  PRISM: Probabilistic Symbolic Model Checker , 2002, Computer Performance Evaluation / TOOLS.

[20]  H. Schwichtenberg,et al.  Proof and System-Reliability , 2002 .

[21]  Carroll Morgan,et al.  Proof rules for probabilistic loops , 1996 .

[22]  John Harrison,et al.  Formalizing Dijkstra , 1998, TPHOLs.

[23]  David Carrington,et al.  Using Theory Interpretation to Mechanise the Reals in a Theorem Prover , 2001, Electron. Notes Theor. Comput. Sci..