skip to main content
research-article
Open Access

PλωNK: functional probabilistic NetKAT

Published:20 December 2019Publication History
Skip Abstract Section

Abstract

This work presents PλωNK, a functional probabilistic network programming language that extends Probabilistic NetKAT (PNK). Like PNK, it enables probabilistic modelling of network behaviour, by providing probabilistic choice and infinite iteration (to simulate looping network packets). Yet, unlike PNK, it also offers abstraction and higher-order functions to make programming much more convenient.

The formalisation of PλωNK is challenging for two reasons: Firstly, network programming induces multiple side effects (in particular, parallelism and probabilistic choice) which need to be carefully controlled in a functional setting. Our system uses an explicit syntax for thunks and sequencing which makes the interplay of these effects explicit. Secondly, measure theory, the standard domain for formalisations of (continuous) probablistic languages, does not admit higher-order functions. We address this by leveraging ω-Quasi Borel Spaces (ωQBSes), a recent advancement in the domain theory of probabilistic programming languages.

We believe that our work is not only useful for bringing abstraction to PNK, but that—as part of our contribution—we have developed the meta-theory for a probabilistic language that combines advanced features like higher-order functions, iteration and parallelism, which may inform similar meta-theoretic efforts.

Skip Supplemental Material Section

Supplemental Material

a39-vandenbroucke.webm

References

  1. Bram Aerts, Toon Goedemé, and Joost Vennekens. 2016. A Probabilistic Logic Programming Approach to Automatic Video Montage. In Proceedings of the Twenty-second European Conference on Artificial Intelligence (ECAI’16). IOS Press, Amsterdam, The Netherlands, The Netherlands, 234–242. Google ScholarGoogle Scholar
  2. Carolyn Jane Anderson, Nate Foster, Arjun Guha, Jean-Baptiste Jeannin, Dexter Kozen, Cole Schlesinger, and David Walker. 2014. NetkAT: semantic foundations for networks. In POPL. ACM, 113–126.Google ScholarGoogle Scholar
  3. Robert J Aumann et al. 1961. Borel structures for function spaces. Illinois Journal of Mathematics 5, 4 (1961), 614–630.Google ScholarGoogle Scholar
  4. Giorgio Bacci, Robert Furber, Dexter Kozen, Radu Mardare, Prakash Panangaden, and Dana Scott. 2018. Boolean-Valued Semantics for the Stochastic 𝜆-Calculus. In LICS. ACM, 669–678.Google ScholarGoogle Scholar
  5. Ingo Battenfeld, Matthias Schröder, and Alex Simpson. 2007. A Convenient Category of Domains. Electr. Notes Theor. Comput. Sci. 172 (2007), 69–99.Google ScholarGoogle Scholar
  6. Bob Carpenter, Andrew Gelman, Matthew D Hoffman, Daniel Lee, Ben Goodrich, Michael Betancourt, Marcus Brubaker, Jiqiang Guo, Peter Li, and Allen Riddell. 2017. Stan: A probabilistic programming language. Journal of statistical software 76, 1 (2017).Google ScholarGoogle Scholar
  7. Marco F. Cusumano-Towner, Feras A. Saad, Alexander K. Lew, and Vikash K. Mansinghka. 2019. Gen: a general-purpose probabilistic programming system with programmable inference. In PLDI. ACM, 221–236.Google ScholarGoogle Scholar
  8. Vincent Danos and Thomas Ehrhard. 2011. Probabilistic coherence spaces as a model of higher-order probabilistic computation. Inf. Comput. 209, 6 (2011), 966–991.Google ScholarGoogle Scholar
  9. Olivier Danvy and Lasse R. Nielsen. 2001. Defunctionalization at Work. In PPDP. ACM, 162–174.Google ScholarGoogle Scholar
  10. Dries De Maeyer, Joris Renkens, Lore Cloots, Luc De Raedt, and Kathleen Marchal. 2013. PheNetic: network-based interpretation of unstructured gene lists in E. coli. Molecular BioSystems 9, 7 (2013), 1594–1603.Google ScholarGoogle Scholar
  11. Thomas Ehrhard and Christine Tasson. 2019. Probabilistic call by push value. Logical Methods in Computer Science 15, 1 (2019).Google ScholarGoogle Scholar
  12. Daan Fierens, Guy Van den Broeck, Joris Renkens, Dimitar Sht. Shterionov, Bernd Gutmann, Ingo Thon, Gerda Janssens, and Luc De Raedt. 2015. Inference and learning in probabilistic logic programs using weighted Boolean formulas. TPLP 15, 3 (2015), 358–401.Google ScholarGoogle Scholar
  13. Nate Foster, Arjun Guha, Mark Reitblatt, Alec Story, Michael J Freedman, Naga Praveen Katta, Christopher Monsanto, Joshua Reich, Jennifer Rexford, Cole Schlesinger, et al. 2013. Languages for software-defined networks. IEEE Communications Magazine 51, 2 (2013), 128–134.Google ScholarGoogle Scholar
  14. Nate Foster, Dexter Kozen, Konstantinos Mamouras, Mark Reitblatt, and Alexandra Silva. 2016. Probabilistic NetKAT. In Programming Languages and Systems - 25th European Symposium on Programming, ESOP 2016, Held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2016, Eindhoven, The Netherlands, April 2-8, 2016, Proceedings (Lecture Notes in Computer Science), Peter Thiemann (Ed.), Vol. 9632. Springer, 282–309. Google ScholarGoogle Scholar
  15. Andrew Gacek. 2008. The Abella Interactive Theorem Prover (System Description). In IJCAR (Lecture Notes in Computer Science), Vol. 5195. Springer, 154–161.Google ScholarGoogle Scholar
  16. Hong Ge, Kai Xu, and Zoubin Ghahramani. 2018. Turing: A language for flexible probabilistic inference. In International Conference on Artificial Intelligence and Statistics. 1682–1690.Google ScholarGoogle Scholar
  17. Noah D. Goodman. 2013. The principles and practice of probabilistic programming. In POPL. ACM, 399–402.Google ScholarGoogle Scholar
  18. Noah D. Goodman, Vikash K. Mansinghka, Daniel M. Roy, Keith Bonawitz, and Joshua B. Tenenbaum. 2012. Church: a language for generative models. CoRR abs/1206.3255 (2012).Google ScholarGoogle Scholar
  19. Jean Goubault-Larrecq. 2019. A Probabilistic and Non-Deterministic Call-by-Push-Value Language. In Thirty-Fourth Annual ACM/IEEE Symposium on Logic in Computer Science, LICS 2019, Vancouver, Canada, June 2427, 2019, Proceedings. To appear. https://arxiv.org/pdf/1812.11573.pdfGoogle ScholarGoogle Scholar
  20. Jean Goubault-Larrecq and Daniele Varacca. 2011. Continuous Random Variables. In LICS. IEEE Computer Society, 97–106.Google ScholarGoogle Scholar
  21. Chris Heunen, Ohad Kammar, Sam Staton, and Hongseok Yang. 2017. A convenient category for higher-order probability theory. In LICS. IEEE Computer Society, 1–12.Google ScholarGoogle Scholar
  22. Claire Jones and Gordon D Plotkin. 1989. A probabilistic powerdomain of evaluations. In Proceedings. Fourth Annual Symposium on Logic in Computer Science. IEEE, 186–195.Google ScholarGoogle Scholar
  23. Achim Jung and Regina Tix. 1998. The troublesome probabilistic powerdomain. Electr. Notes Theor. Comput. Sci. 13 (1998), 70–91.Google ScholarGoogle Scholar
  24. Doga Kisa, Guy Van den Broeck, Arthur Choi, and Adnan Darwiche. 2014. Probabilistic Sentential Decision Diagrams. In KR. AAAI Press.Google ScholarGoogle Scholar
  25. Dexter Kozen. 1981. Semantics of Probabilistic Programs. J. Comput. Syst. Sci. 22, 3 (1981), 328–350.Google ScholarGoogle Scholar
  26. Paul Blain Levy. 2001. Call-by-push-value. Ph.D. Dissertation. Queen Mary University of London, UK.Google ScholarGoogle Scholar
  27. Anthony Lu. 2016. Venture: An extensible platform for probabilistic meta-programming. Master’s thesis. Massachusetts Institute of Technology.Google ScholarGoogle Scholar
  28. Eugenio Moggi. 1991. Notions of Computation and Monads. Inf. Comput. 93, 1 (1991), 55–92.Google ScholarGoogle Scholar
  29. Benjamin C. Pierce. 2002. Types and programming languages. MIT Press.Google ScholarGoogle Scholar
  30. Joshua Reich, Christopher Monsanto, Nate Foster, Jennifer Rexford, and David Walker. 2013. Modular SDN programming with Pyretic. Technical Report of USENIX (2013).Google ScholarGoogle Scholar
  31. John C. Reynolds. 1998. Definitional Interpreters for Higher-Order Programming Languages. Higher-Order and Symbolic Computation 11, 4 (1998), 363–397.Google ScholarGoogle Scholar
  32. Nasser Saheb-Djahromi. 1980. CPO’s of measures for nondeterminism. Theoretical Computer Science 12, 1 (1980), 19–37.Google ScholarGoogle Scholar
  33. Adam Scibior, Ohad Kammar, and Zoubin Ghahramani. 2018. Functional programming for modular Bayesian inference. PACMPL 2, ICFP (2018), 83:1–83:29.Google ScholarGoogle Scholar
  34. Steffen Smolka, Spiridon Aristides Eliopoulos, Nate Foster, and Arjun Guha. 2015. A fast compiler for NetKAT. In ICFP. ACM, 328–341.Google ScholarGoogle Scholar
  35. Steffen Smolka, David M. Kahn, Praveen Kumar, Nate Foster, Dexter Kozen, and Alexandra Silva. 2017a. Deciding Probabilistic Program Equivalence in NetKAT. CoRR abs/1707.02772 (2017). arXiv: 1707.02772 http://arxiv.org/abs/1707.02772Google ScholarGoogle Scholar
  36. Steffen Smolka, Praveen Kumar, Nate Foster, Dexter Kozen, and Alexandra Silva. 2017b. Cantor meets Scott: semantic foundations for probabilistic networks. In POPL. ACM, 557–571.Google ScholarGoogle Scholar
  37. Steffen Smolka, Praveen Kumar, David M. Kahn, Nate Foster, Justin Hsu, Dexter Kozen, and Alexandra Silva. 2019. Scalable verification of probabilistic networks. In PLDI. ACM, 190–203.Google ScholarGoogle Scholar
  38. Sam Staton. 2017. Commutative Semantics for Probabilistic Programming. In ESOP (Lecture Notes in Computer Science), Vol. 10201. Springer, 855–879.Google ScholarGoogle Scholar
  39. William W. Tait. 1967. Intensional Interpretations of Functionals of Finite Type I. J. Symb. Log. 32, 2 (1967), 198–212.Google ScholarGoogle Scholar
  40. Matthijs Vákár, Ohad Kammar, and Sam Staton. 2019. A domain theory for statistical probabilistic programming. PACMPL 3, POPL (2019), 36:1–36:29. https://dl.acm.org/citation.cfm?id=3290349Google ScholarGoogle Scholar
  41. Frank D. Wood, Jan-Willem van de Meent, and Vikash Mansinghka. 2014. A New Approach to Probabilistic Programming Inference. In AISTATS (JMLR Workshop and Conference Proceedings), Vol. 33. JMLR.org, 1024–1032.Google ScholarGoogle Scholar

Index Terms

  1. PλωNK: functional probabilistic NetKAT

        Recommendations

        Comments

        Login options

        Check if you have access through your login credentials or your institution to get full access on this article.

        Sign in

        Full Access

        • Article Metrics

          • Downloads (Last 12 months)55
          • Downloads (Last 6 weeks)6

          Other Metrics

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader
        About Cookies On This Site

        We use cookies to ensure that we give you the best experience on our website.

        Learn more

        Got it!