OOPSLA 2026 · Probabilistic programming

Type-Directed Discretization of Probabilistic Programs

Katherine Wu, Jules Jacobs, Kevin Batz, Alexandra Silva. When a program only ever compares its real-valued samples against constants, only finitely many intervals matter. Slice infers those intervals with a type system and turns the program into a discrete one that fast exact-inference engines can solve. This is the conference talk as animated slides, with the full narration as text.

Slide 1

Keys: → or Space next step · ← back · ↑↓ previous / next slide · O overview · S speaker mode (only the slide; again for practice mode) · F full screen · N presenter window with notes and timer · C captions · P auto-advance · ? all keys. Click the right of the slide to advance, the left edge to go back. Open with ?mode=speaker to start in speaker mode.

The talk, slide by slide

    The paper

    Katherine Wu (Cornell University), Jules Jacobs (ETH Zurich; Jane Street), Kevin Batz (University of Münster), Alexandra Silva (Cornell University). Type-Directed Discretization of Probabilistic Programs. OOPSLA 2026.

    In one sentence

    Types carry the cuts: every real-valued type records the thresholds its values will be compared against, type inference finds them across closures, data structures and recursion, and the types direct a source-to-source discretization whose Boolean query probabilities equal the original's.

    Presenting

    • Press N for the presenter window (current and next narration, a timer and the clock; it also takes the arrow keys). Captions on the main screen switch off while it is open; C brings them back.
    • Speaker mode (S, or open the page with ?mode=speaker) shows only the slide, filling the window, without captions or controls; F makes it full screen. Practice mode (S again, or ?mode=practice) is this page, with captions and the timeline. The last mode is remembered.
    • O shows every slide in a grid: click one, or type its number and Enter (that also works without the grid).
    • Every number on the slides is recomputed independently in dev/verify.py or quoted from the camera-ready.