Understanding Probabilistic Programs

  • Joost-Pieter KatoenEmail author
  • Friedrich Gretz
  • Nils Jansen
  • Benjamin Lucien Kaminski
  • Federico Olmedo
Part of the Lecture Notes in Computer Science book series (LNCS, volume 9360)


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)CrossRefzbMATHGoogle 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)MathSciNetCrossRefzbMATHGoogle 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)MathSciNetCrossRefzbMATHGoogle 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)MathSciNetCrossRefzbMATHGoogle 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
    Email author
  • Friedrich Gretz
    • 1
  • Nils Jansen
    • 1
  • Benjamin Lucien Kaminski
    • 1
  • Federico Olmedo
    • 1
  1. 1.RWTH Aachen UniversityAachenGermany

Personalised recommendations