Roulette: A Language for Expressive, Exact, and Efficient Discrete Probabilistic Programming
Cameron Moy, Jack Czenszak, John M. Li, Brianna Marshall, Steven Holtzen
Abstract
Exact probabilistic inference is a requirement for many applications of probabilistic programming languages (PPLs) such as in high-consequence settings or verification. However, designing and implementing a PPL with scalable high-performance exact inference is difficult: exact inference engines, much like SAT solvers, are intricate low-level programs that are hard to implement. Due to this implementation challenge, PPLs that support scalable exact inference are restrictive and lack many features of general-purpose languages. This paper presents Roulette, the first discrete probabilistic programming language that combines high-performance exact inference with general-purpose language features. Roulette supports a significant subset of Racket, including data structures, first-class functions, surely-terminating recursion, mutable state, modules, and macros, along with probabilistic features such as finitely supported discrete random variables, conditioning, and top-level inference. The key insight is that there is a close connection between exact probabilistic inference and the symbolic evaluation strategy of Rosette. Building on this connection, Roulette generalizes and extends the Rosette solver-aided programming system to reason about probabilistic rather than symbolic quantities. We prove Roulette sound by generalizing a proof of correctness for Rosette to handle probabilities, and demonstrate its scalability and expressivity on a number of examples.
Ask about this paper
Your agent reads all of it.
Lune indexed this paper to the last equation, along with the top-tier papers that cite it. Ask a question and the answer quotes them.
Your agent calls
Luneget_paper_fulltext
Free to start. No credit card required.
Terminal
Install the CLIlune papers fulltext 62490fc2-1b97-4c41-96e0-c61fda635785Cited by top-tier papers2
- Type-Directed Discretization of Probabilistic ProgramsKatherine Wu, Jules Jacobs, Kevin Batz, Alexandra SilvaOOPSLA 2026
- Lazy Intermediate Representations for Algebraic EffectsSimon Castellan, Hugo PaquetLICS 2026
Builds on9
- Scaling exact inference for discrete probabilistic programsSteven Holtzen, Guy Van den Broeck, Todd D. MillsteinOOPSLA 2020 · 85 citations
- Specification and verification in the field: Applying formal methods to BPF just-in-time compilers in the Linux kernelLuke Nelson, Jacob Van Geffen, Emina Torlak, Xi WangOSDI 2020 · 72 citations
- SPPL: probabilistic programming with fast exact symbolic inferenceFeras A. Saad, Martin C. Rinard, Vikash K. MansinghkaPLDI 2021 · 38 citations
- λPSI: exact inference for higher-order probabilistic programsTimon Gehr, Samuel Steffen, Martin T. VechevPLDI 2020 · 29 citations
- Symbolic execution for randomized programsZachary Susag, Sumit Lahiri, Justin Hsu, Subhajit RoyOOPSLA 2022 · 17 citations
Related papers
- noDice: Inference for Discrete Probabilistic Programs with Nondeterminism and ConditioningTobias Gürtler, Benjamin Lucien KaminskiOOPSLA 2026 · 1 citation
- Multi-Language Probabilistic ProgrammingSam Stites, John M. Li, Steven HoltzenOOPSLA 2025 · 2 citations
- Exact Bayesian Inference on Discrete Models via Probability Generating Functions: A Probabilistic Programming ApproachFabian Zaiser, Andrzej S. Murawski, Chih-Hao Luke OngNeurIPS 2023 · 17 citations
- Stochastic Lazy Knowledge Compilation for Inference in Discrete Probabilistic ProgramsMaddy Bowers, Alexander K. Lew, Joshua B. Tenenbaum, Armando Solar-Lezama et al.PLDI 2025 · 2 citations
- Inference Plans for Hybrid Particle FilteringEllie Y. Cheng, Eric Atkinson, Guillaume Baudart, Louis Mandel et al.POPL 2025 · 2 citations
