paperbot · PL 论文追踪

RSS

Symbolic execution for randomized programs

OOPSLA 6(OOPSLA2)2022
Zachary Susag, Sumit Lahiri, Justin Hsu, Subhajit Roy

尚未生成 AI 速览(可能缺少 API key 或等待下次运行补跑)。

原文摘要(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.

链接与引用

DOI 原文 ·

BibTeX
@article{paperbot1449,
  title = {Symbolic execution for randomized programs},
  author = {Zachary Susag and Sumit Lahiri and Justin Hsu and Subhajit Roy},
  journal = {Proceedings of the ACM on Programming Languages},
  volume = {6},
  number = {OOPSLA2},
  year = {2022},
  doi = {10.1145/3563344}
}