Roulette: A Language for Expressive, Exact, and Efficient Discrete Probabilistic(…)
summary
Roulette claims to be the first discrete PPL that pairs exact, scalable inference with a large subset of Racket features (data structures, first‑class functions, mutation, modules, macros). It implements a generalized Rosette→probabilities symbolic evaluator that produces guarded concrete values, compiles guards to BDDs for weighted model counting, and proves soundness; benchmarks show competitive performance with Dice and a working Racket demo and single‑command install, limited to finitely supported discrete distributions.
AI-written summary · about
chapters (15)
- 0:00Roulette introduction
- 0:25Another probabilistic language?
- 1:51Goals of inference
- 2:32Unreliable hardware example
- 4:39Rosette background
- 6:45Symbolic execution
- 10:42Merging and lifting operations
- 12:27Symbolic to probabilistic evaluation
- 13:54Weighted model counting
- 15:41Compiling to BDDs
- 16:46Expressivity with slideshow
- 17:48Limitations and future work
- 18:52Benchmarks and theory
- 19:57How to try Roulette
- 20:18Q&A
related talks
05mOn Iteration in Discrete Probabilistic Programming
20mData-oriented Design for Differentiable, Probabilistic Programming
45mLanguage-Oriented Programming with Racket
15mScaling Optimization Over Uncertainty via Compilation
24mCompiling with Generating Functions
51mSynthesis and Verification for All
24mAn Intrinsically-typed Probabilistic Programming Language in Coq (Extended Abstr...
22mDSLs in Racket: You Want It How, Now?
