Probabilistic termination in B

  • Authors:
  • Annabelle McIver;Carroll Morgan;Thai Son Hoang

  • Affiliations:
  • Dept. of Computing, Macquarie University, NSW, Australia;Dept. Comp. Sci. & Eng., University of New South Wales, NSW, Australia;Dept. Comp. Sci. & Eng., University of New South Wales, NSW, Australia

  • Venue:
  • ZB'03 Proceedings of the 3rd international conference on Formal specification and development in Z and B
  • Year:
  • 2003

Quantified Score

Hi-index 0.00

Visualization

Abstract

The B Method [1] does not currently handle probability. We add it in a limited form, concentrating on "almost-certain" properties which hold with probability one; and we address briefly the implied modifications to the programs that support B. The Generalised Substitution Language is extended with a binary operator ⊕ representing "abstract probabilistic choice", so that the substitution prog1 ⊕ prog2 means roughly "choose between prog1 and prog2 with some probability neither one nor zero". We then adjust B's proof rule for loops -- specifically, the variant rule -- so that in many cases it is possible to prove "probability-one" correctness of programs containing the new operator, which was not possible in B before, while remaining almost entirely within the original Boolean logic. Applications include probabilistic algorithms such as the IEEE 1394 Root Contention Protocol ("FireWire") [9] in which a probabilistic "symmetry-breaking" strategy forms a key component of the design.