Tag. probabilistic
References (32)
Type-Directed Discretization of Probabilistic Programs (Extended Version) wu-2026-type
Oblivious Probabilistic Outcome Logic: Verifying Probabilistic Programs with an Oblivious Adversary chen-2026-oblivious
Modular Verification of Differential Privacy in Probabilistic Higher-Order Separation Logic haselwarter-2026-modular
Categorical Semantics of Probabilistic Symbolic Execution li-2026-categorical
Contextual Refinement of Higher-Order Concurrent Probabilistic Programs li-2026-contextual
Probabilistic Floating-Point Round-Off Analysis via Concentration Inequalities tao-2026-probabilistic
Modular Specifications and Implementations of Random Samplers in Higher-Order Separation Logic marionneau-2026-modular
Probabilistic Concurrent Reasoning in Outcome Logic: Independence, Conditioning, and Invariants zilberstein-2026-probabilistic
Verifying Exact Samplers for Continuous Distributions with a Discrete Program Logic demedeiros-2026-verifying
A Complete Diagrammatic Calculus for Conditional Gaussian Mixtures torresruiz-2026-a
Modular Reasoning about Error Bounds for Concurrent Probabilistic Programs li-2025-modular
Verified Foundations for Differential Privacy demedeiros-2025-verified
Roulette: A Language for Expressive, Exact, and Efficient Discrete Probabilistic Programming moy-2025-roulette
Multi-Language Probabilistic Programming stites-2025-multi
Modelling Recursion and Probabilistic Choice in Guarded Type Theory stassen-2025-modelling
A Demonic Outcome Logic for Randomized Nondeterminism zilberstein-2025-a
Denotational Foundations for Expected Cost Analysis amorim_2025_oopsla
Reasoning about the cost of executing programs is one of the fundamental questions in computer science. In the context of programming with probabilities, however, the notion of cost stops being deterministic, since it depends on the probabilistic samples made throughout the execution of the program. This interaction is further complicated by the non-trivial interaction between cost, recursion and evaluation strategy.
In this work we introduce cert: a Call-By-Push-Value (CBPV) metalanguage for reasoning about probabilistic cost. We equip cert with an operational cost semantics and define two denotational semantics — a cost semantics and an expected-cost semantics. We prove operational soundness and adequacy for the denotational cost semantics and a cost adequacy theorem for the expected-cost semantics.
We formally relate both denotational semantics by stating and proving a novel effect simulation property for CBPV. We also prove a canonicity property of the expected-cost semantics as the minimal semantics for expected cost and probability by building on recent advances on monadic probabilistic semantics.
Finally, we illustrate the expressivity of cert and the expected-cost semantics by presenting case-studies ranging from randomized algorithms to stochastic processes and show how our semantics capture their intended expected cost.
Denotational Semantics for Probabilistic and Concurrent Programs zilberstein-2025-denotational
Tachis: Higher-Order Separation Logic with Credits for Expected Costs haselwarter-2024-tachis
Error Credits: Resourceful Reasoning about Error Bounds for Higher-Order Probabilistic Programs aguirre-2024-error
Bayesian open games bolt-2023-bayesian
Lilac: A Modal Separation Logic for Conditional Probability li-2023-lilac
A Higher-Order Language for Markov Kernels and Linear Operators amorim_2023_fossacs
Much work has been done to give semantics to probabilistic programming languages. In recent years, most of the semantics used to reason about probabilistic programs fall in two categories: semantics based on Markov kernels and semantics based on linear operators.
Both styles of semantics have found numerous applications in reasoning about probabilistic programs, but they each have their strengths and weaknesses. Though it is believed that there is a connection between them there are no languages that can handle both styles of programming.
In this work we address these questions by defining a two-level calculus and its categorical semantics which makes it possible to program with both kinds of semantics. From the logical side of things we see this language as an alternative resource interpretation of linear logic, where the resource being kept track of is sampling instead of variable use.