Symbolic execution for randomized programs
Zachary Susag, Sumit Lahiri, Justin Hsu, Subhajit Roy
Abstract
We propose a symbolic execution method for programs that can draw random samples. In contrast to existing work, our method can verify randomized programs with unknown inputs and can prove probabilistic properties that universally quantify over all possible inputs. Our technique augments standard symbolic execution with a new class of probabilistic symbolic variables , which represent the results of random draws, and computes symbolic expressions representing the probability of taking individual paths. We implement our method on top of the KLEE symbolic execution engine alongside multiple optimizations and use it to prove properties about probabilities and expected values for a range of challenging case studies written in C++, including Freivalds’ algorithm, randomized quicksort, and a randomized property-testing algorithm for monotonicity. We evaluate our method against Psi, an exact probabilistic symbolic inference engine, and Storm, a probabilistic model checker, and show that our method significantly outperforms both tools.
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 7cccf9f6-e56b-4df1-ad93-61ee00f7f9e1Cited by top-tier papers5
- A Deductive Verification Infrastructure for Probabilistic ProgramsPhilipp Schröer, Kevin Batz, Benjamin Lucien Kaminski, Joost-Pieter Katoen et al.OOPSLA 2023 · 22 citations
- Symbolic Execution for Quantum Error Correction ProgramsWang Fang, Mingsheng YingPLDI 2024 · 16 citations
- Roulette: A Language for Expressive, Exact, and Efficient Discrete Probabilistic ProgrammingCameron Moy, Jack Czenszak, John M. Li, Brianna Marshall et al.PLDI 2025 · 3 citations
- A Unifying Approach to Product Constructions for Quantitative Temporal InferenceKazuki Watanabe, Sebastian Junges, Jurriaan Rot, Ichiro HasuoOOPSLA 2025 · 1 citation
- Empc: Effective Path Prioritization for Symbolic Execution with Path CoverShuangjie Yao, Dongdong SheS&P 2025
Builds on6
- Scaling exact inference for discrete probabilistic programsSteven Holtzen, Guy Van den Broeck, Todd D. MillsteinOOPSLA 2020 · 85 citations
- λPSI: exact inference for higher-order probabilistic programsTimon Gehr, Samuel Steffen, Martin T. VechevPLDI 2020 · 29 citations
- Probabilistic profiling of stateful data planes for adversarial testingQiao Kang, Jiarong Xing, Yiming Qiu, Ang ChenASPLOS 2021 · 21 citations
- Data-Driven Invariant Learning for Probabilistic ProgramsJialu Bao, Nitesh Trivedi, Drashti Pathak, Justin Hsu et al.CAV 2022 · 20 citations
- Central moment analysis for cost accumulators in probabilistic programsDi Wang, Jan Hoffmann, Thomas W. RepsPLDI 2021 · 18 citations
Related papers
- Symbolic Partial-Order Execution for Testing Multi-Threaded ProgramsDaniel Schemmel, Julian Büning, César Rodríguez, David Laprell et al.CAV 2020 · 12 citations
- SYMTUNER: Maximizing the Power of Symbolic Execution by Adaptively Tuning External ParametersSooyoung Cha, Myungho Lee, Seokhyun Lee, Hakjoo OhICSE 2022 · 4 citations
- Enhancing Symbolic Execution with Self-Configuring ParametersMinjong Kim, Sooyoung ChaICSE 2026
- Multiplex Symbolic Execution: Exploring Multiple Paths by Solving OnceYufeng Zhang, Zhenbang Chen, Ziqi Shuai, Tianqi Zhang et al.ASE 2020 · 17 citations
- Verifying SystemC TLM peripherals using modern C++ symbolic execution toolsPascal Pieper, Vladimir Herdt, Daniel Große, Rolf DrechslerDAC 2022 · 9 citations
