October 2024
·
2 Reads
This page lists works of an author who doesn't have a ResearchGate profile or hasn't added the works to their profile yet. It is automatically generated from public (personal) data to further our legitimate goal of comprehensive and accurate scientific recordkeeping. If you are this author and want this page removed, please let us know.
October 2024
·
2 Reads
September 2023
·
29 Reads
·
2 Citations
November 2022
·
6 Reads
October 2022
·
41 Reads
·
8 Citations
Proceedings of the ACM on Programming Languages
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.
September 2022
·
46 Reads
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 \emph{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 \textsc{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 \textsc{Psi}, an exact probabilistic symbolic inference engine, and \textsc{Storm}, a probabilistic model checker, and show that our method significantly outperforms both tools.
July 2022
·
14 Reads
·
38 Citations
... The research presented in this paper aims to bridge this gap by proposing a unified approach that leverages the strengths of GPT models and software engineering metrics. This is a continuation of the trend towards more intelligent and context-aware tools in software development, as seen in the works exploring machine learning models for code completion, defect prediction, and automated software testing [15]. ...
September 2023
... [Barthe et al. 2020;van de Meent et al. 2018]). Exact alternatives typically reflect a weighted model counting approach whose performance relies on the effective aggregation of such paths [Filieri et al. 2014;Holtzen et al. 2020;Susag et al. 2022]. Program calculi for verification of probabilistic programs instead rely on marginalizing the paths out and reasoning using fuzzy state predicates [Kaminski 2019;Kozen 1985;McIver and Morgan 2005]. ...
October 2022
Proceedings of the ACM on Programming Languages
... These systems perform classification, while our work uses regression. Data from fuzzing has been used for almost correct inductive invariants for programs with closed-box operations [45]. ...
July 2022