Abstract
We see reversible computing as a generalisation of sequential computation obtained by revoking the law of the excluded miracle. Our execution language includes naked guarded commands and non-deterministic choice. Choices which lead to miraculous continuations invoke reverse computation, and non-deterministic choice plays the rôle of provisional choice within a backtracking context. We require probabilistic choice for symmetry breaking and sampling large search spaces, but must formulate it differently from previous approaches to obtain the required interactions between probabilistic choice and non-deterministic choice and between probabilistic choice and feasibility. Our formulation allows us to derive the post-distributions which characterise a program, and we use these to construct a relational model. We consider refinement as containment of convex closures within distribution space, qualified with additional conditions to avoid over-refinement. We link the non-probabilistic and probabilistic versions of the model with a Galois connection and show that classical designs are a retract of our probabilistic designs. We consider the interaction between probabilistic and non-deterministic choice and find the same initially counter-intuitive results that have been noted by other investigators. We provide an alternative formulation, within the same model, of oblivious non-determinism, which allows all non-deterministic choices to be moved to the start of a computation. We consider the interaction between probabilistic choice and feasibility that is required to match an operational interpretation in which infeasible commands provoke reverse execution, and we present a small case study to show how the interaction between probabilistic choice and feasibility can be exploited in a practical program. All programming structures described here are supported by our implementation platform, the Reversible Virtual Machine, whose development has accompanied our theoretical investigations.
Article PDF
Similar content being viewed by others
Avoid common mistakes on your manuscript.
References
Abrial J-R, Mussat WJ (2002) On using conditional definitions in formal theories. In: ZB 2002: Formal Specification and Development in Z and B, Vol 2272. Lecture Notes in Computer Science. Springer, Heidelberg
Bennett C (1973) The logical reversibility of computation. IBM J Res Dev 6
Bennett C (1982) The thermodynamics of computation. Int J Theor Phys 21:905–940
den Hartog J (2001) Probabilistic extensions of semantic models. PhD thesis, IPA, Amsterdam
Feynman RP (1996) Lectures on computation. Westview, Boulder
Floyd RW (1967) Nondeterministic algorithms. J ACM 14(4):636–644
Hehner ECR (1981) Bunch theory: a simple set theory for computer science. Inf Process Lett 12(1):26–30
Hehner ECR (1993) A practical theory of programming. Texts and Monographs in Computer Science. Springer, Heidelberg
He J, Sanders JW (2006) Unifying probability. In: First international symposium on unifying theories of programming, UTP 2006, Vol 4010. Lecture Notes in Computer Science. Springer, Heidelberg, pp 173–199
He J, Seidel K, McIver A (1997) Probabilistic models for the guarded command language. Sci Comput Program 28(2–3):171–192
Landauer R (1961) Irreversibility and heat generated in the computing process. IBM J R D 5
McIver A, Morgan CC (2004) Abstraction, refinement and proof for probabilistic systems. Springer, Heidelberg
Morgan CC (1988) The specification statement. ACM Trans Program Lang Syst 10(3):403–419
Nelson G (1989) A generalization of Dijkstra’s calculus. ACM Trans Program Lang Syst 11(4):517–561
Stoddart WJ, Dunne SE, Galloway AJ (1999) Undefined expressions and logic in Z and B. Form Methods Syst Des 15(3)
Stoddart WJ (2006) The reversible virtual machine. User and technical manuals, University of Teesside, UK
Stoddart WJ, Zeyda F, Lynas AR (2006) A design-based model of reversible computation. In: UTP 2006, First international symposium on unifying theories of programming, Vol 4010. Lecture Notes in Computer Science, Springer, Heidelberg, pp 63–83
Varacca D, Winskel G (2007) Distributing probability over nondeterminism. Mathematical Structures in Computer Science (in press)
Zeyda F (2007) Reversible computation in B. PhD thesis, University of Teesside
Zeyda F, Stoddart WJ, Dunne S (2003) The refinement of reversible computations. In: RCS’03: 2nd International workshop on refinement of critical systems: methods, tools and developments
Zeyda F, Stoddart WJ, Dunne S (2005) A prospective-value semantics for the GSL. In: ZB 2005: Formal specification and development in Z and B, Vol 3455. Lecture Notes in Computer Science, Springer, Heidelberg, pp 187–202
Zuliani P (2001) Logical reversibility. IBM J R D 45(6)
Author information
Authors and Affiliations
Corresponding author
Additional information
Communicated by T.S.E. Maibaum
Rights and permissions
About this article
Cite this article
Stoddart, B., Zeyda, F. A unification of probabilistic choice within a design-based model of reversible computation. Form Asp Comp 25, 107–131 (2013). https://doi.org/10.1007/s00165-007-0048-1
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00165-007-0048-1