Correct System Design pp 15-32

Part of the Lecture Notes in Computer Science book series (LNCS, volume 9360) | Cite as

Understanding Probabilistic Programs

  • Joost-Pieter Katoen
  • Friedrich Gretz
  • Nils Jansen
  • Benjamin Lucien Kaminski
  • Federico Olmedo


We present two views of probabilistic programs and their relationship. An operational interpretation as well as a weakest pre-condition semantics are provided for an elementary probabilistic guarded command language. Our study treats important features such as sampling, conditioning, loop divergence, and non-determinism.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Barthe, G., Kopf, B., Olmedo, F., Béguelin, S.Z.: Probabilistic relational reasoning for differential privacy. ACM Trans. Program. Lang. Syst. 35(3), 9 (2013)CrossRefMATHGoogle Scholar
  2. 2.
    Chakarov, A., Sankaranarayanan, S.: Expectation invariants for probabilistic program loops as fixed points. In: Müller-Olm, M., Seidl, H. (eds.) Static Analysis. LNCS, vol. 8723, pp. 85–100. Springer, Heidelberg (2014) Google Scholar
  3. 3.
    Cock, D.: Verifying probabilistic correctness in Isabelle with pGCL. El. Proc. in Th. Comp. Sc. 102, 167–178 (2012)CrossRefGoogle Scholar
  4. 4.
    Dijkstra, E.W.: A Discipline of Programming. Prentice Hall (1976)Google Scholar
  5. 5.
    Feldman, Y.A., Harel, D.: A probabilistic dynamic logic. In: Proc. of STOC, pp. 181–195. ACM (1982)Google Scholar
  6. 6.
    Gordon, A.D.: An agenda for probabilistic programming: Usable, portable, and ubiquitous (2013).
  7. 7.
    Gordon, A.D., Graepel, T., Rolland, N., Russo, C.V., Borgström, J., Guiver, J.: Tabular: a schema-driven probabilistic programming language. In: Proc. of POPL, pp. 321–334. ACM Press (2014)Google Scholar
  8. 8.
    Gordon, A.D., Henzinger, T.A., Nori, A.V., Rajamani, S.K.: Probabilistic programming. In: Proc. of FOSE, pp. 167–181. ACM Press (2014)Google Scholar
  9. 9.
    Gretz, F., Jansen, N., Kaminski, B.L., Katoen, J.P., McIver, A., Olmedo, F.: Conditioning in probabilistic programming. In: Proc. of MFPS, p. 12 (2015)Google Scholar
  10. 10.
    Gretz, F., Jansen, N., Kaminski, B.L., Katoen, J.P., McIver, A., Olmedo, F.: Conditioning in probabilistic programming. CoRR (2015)Google Scholar
  11. 11.
    Gretz, F., Katoen, J.P., McIver, A.: Operational versus weakest pre-expectation semantics for the probabilistic guarded command language. Perform. Eval. 73, 110–132 (2014)CrossRefGoogle Scholar
  12. 12.
    Hur, C.K., Nori, A.V., Rajamani, S.K., Samuel, S.: Slicing probabilistic programs. In: Proc. of PLDI, pp. 133–144. ACM Press (2014)Google Scholar
  13. 13.
    Hurd, J., McIver, A., Morgan, C.: Probabilistic guarded commands mechanized in HOL. Theor. Comput. Sci. 346(1), 96–112 (2005)MathSciNetCrossRefMATHGoogle Scholar
  14. 14.
    Kaminski, B.L., Katoen, J.-P.: On the hardness of almost–sure termination. In: Italiano, G.F., Pighizzini, G., Sannella, D.T. (eds.) MFCS 2015. LNCS, vol. 9234, pp. 307–318. Springer, Heidelberg (2015) CrossRefGoogle Scholar
  15. 15.
    Katoen, J.-P., McIver, A.K., Meinicke, L.A., Morgan, C.C.: Linear-invariant generation for probabilistic programs. In: Cousot, R., Martel, M. (eds.) SAS 2010. LNCS, vol. 6337, pp. 390–406. Springer, Heidelberg (2010) CrossRefGoogle Scholar
  16. 16.
    Kozen, D.: Semantics of probabilistic programs. J. Comput. Syst. Sci. 22(3), 328–350 (1981)MathSciNetCrossRefMATHGoogle Scholar
  17. 17.
    McIver, A., Morgan, C.: Abstraction, Refinement and Proof for Probabilistic Systems. Springer (2004)Google Scholar
  18. 18.
    Motwani, R., Raghavan, P.: Randomized Algorithms. Cambridge University Press (1995)Google Scholar
  19. 19.
    Nori, A.V., Hur, C.K., Rajamani, S.K., Samuel, S.: R2: An efficient MCMC sampler for probabilistic programs. In: Proc. of AAAI. AAAI Press (July 2014)Google Scholar
  20. 20.
    Olderog, E.R.: Nets, Terms and Formulas: Three Views of Concurrent Processes and their Relationship. Cambridge Tracts in Theoretical Computer Science. Cambridge University Press (1990)Google Scholar
  21. 21.
    Paige, B., Wood, F.: A compilation target for probabilistic programming languages. In: Proc. of ICML. JMLR Proceedings, vol. 32, pp. 1935–1943. (2014)Google Scholar
  22. 22.
    Pfeffer, A.: Figaro: An object-oriented probabilistic programming language. Technical report, Charles River Analytics (2000)Google Scholar
  23. 23.
    Puterman, M.: Markov Decision Processes: Discrete Stochastic Dynamic Programming. John Wiley and Sons (1994)Google Scholar
  24. 24.
    Sampson, A., Panchekha, P., Mytkowicz, T., McKinley, K.S., Grossman, D., Ceze, L.: Expressing and verifying probabilistic assertions. In: Proc. of PLDI, p. 14. ACM (2014)Google Scholar
  25. 25.
    Sharir, M., Pnueli, A., Hart, S.: Verification of probabilistic programs. SIAM Journal on Computing 13(2), 292–314 (1984)MathSciNetCrossRefMATHGoogle Scholar
  26. 26.
    Shoup, V.: A Computational Introduction to Number Theory and Algebra. Cambridge University Press (2009)Google Scholar

Copyright information

© Springer International Publishing Switzerland 2015

Authors and Affiliations

  • Joost-Pieter Katoen
    • 1
  • Friedrich Gretz
    • 1
  • Nils Jansen
    • 1
  • Benjamin Lucien Kaminski
    • 1
  • Federico Olmedo
    • 1
  1. 1.RWTH Aachen UniversityAachenGermany

Personalised recommendations