March 2025
·
7 Reads
·
1 Citation
Theoretical Computer Science
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.
March 2025
·
7 Reads
·
1 Citation
Theoretical Computer Science
December 2024
·
24 Reads
Formal Methods in System Design
Morgan and McIver’s weakest pre-expectation framework is one of the most well-established methods for deductive verification of probabilistic programs. Roughly, the idea is to generalize binary state assertions to real-valued expectations, which can measure expected values of probabilistic program quantities. While loop-free programs can be analyzed by mechanically transforming expectations, verifying loops usually requires finding an invariant expectation, a difficult task. We propose a new view of invariant expectation synthesis as a regression problem: given an input state, predict the average value of the post-expectation in the output distribution. Guided by this perspective, we develop the first data-driven invariant synthesis method for probabilistic programs. Unlike prior work on probabilistic invariant inference, our approach can learn piecewise continuous invariants without relying on template expectations. We also develop a data-driven approach to learn sub-invariants from data, which can be used to upper- or lower-bound expected values. We implement our approaches and demonstrate their effectiveness on a variety of benchmarks from the probabilistic programming literature.
August 2023
·
2 Reads
The weakest pre-expectation framework from Morgan and McIver for deductive verification of probabilistic programs generalizes binary state assertions to real-valued expectations to measure expected values of expressions over probabilistic program variables. While loop-free programs can be analyzed by mechanically transforming expectations, verifying programs with loops requires finding an invariant expectation. We view invariant expectation synthesis as a regression problem: given an input state, predict the average value of the post-expectation in the output distribution. With this perspective, we develop the first data-driven invariant synthesis method for probabilistic programs. Unlike prior work on probabilistic invariant inference, our approach learns piecewise continuous invariants without relying on template expectations. We also develop a data-driven approach to learn sub-invariants from data, which can be used to upper- or lower-bound expected values. We implement our approaches and demonstrate their effectiveness on a variety of benchmarks from the probabilistic programming literature.
July 2023
·
42 Reads
·
1 Citation
·
·
·
[...]
·
Morgan and McIver’s weakest pre-expectation framework is one of the most well-established methods for deductive verification of probabilistic programs. Roughly,the idea is to generalize binary state assertions to real-valued expectations, whichcan measure expected values of probabilistic program quantities. While loop-freeprograms can be analyzed by mechanically transforming expectations, verifyingloops usually requires finding an invariant expectation, a difficult task.We propose a new view of invariant expectation synthesis as a regression prob-lem: given an input state, predict the average value of the post-expectation inthe output distribution. Guided by this perspective, we develop the first data-driven invariant synthesis method for probabilistic programs. Unlike prior workon probabilistic invariant inference, our approach can learn piecewise continuousinvariants without relying on template expectations. We also develop a data-driven approach to learn sub-invariants from data, which can be used to upper-or lower-bound expected values. We implement our approaches and demonstratetheir effectiveness on a variety of benchmarks from the probabilistic programmingliterature.
October 2022
·
41 Reads
·
10 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.
August 2022
·
33 Reads
·
21 Citations
Lecture Notes in Computer Science
Morgan and McIver’s weakest pre-expectation framework is one of the most well-established methods for deductive verification of probabilistic programs. Roughly, the idea is to generalize binary state assertions to real-valued expectations , which can measure expected values of probabilistic program quantities. While loop-free programs can be analyzed by mechanically transforming expectations, verifying loops usually requires finding an invariant expectation , a difficult task. We propose a new view of invariant expectation synthesis as a regression problem: given an input state, predict the average value of the post-expectation in the output distribution. Guided by this perspective, we develop the first data-driven invariant synthesis method for probabilistic programs. Unlike prior work on probabilistic invariant inference, our approach can learn piecewise continuous invariants without relying on template expectations. We also develop a data-driven approach to learn sub-invariants from data, which can be used to upper- or lower-bound expected values. We implement our approaches and demonstrate their effectiveness on a variety of benchmarks from the probabilistic programming literature.
January 2022
·
15 Reads
·
20 Citations
Proceedings of the ACM on Programming Languages
Formal reasoning about hashing-based probabilistic data structures often requires reasoning about random variables where when one variable gets larger (such as the number of elements hashed into one bucket), the others tend to be smaller (like the number of elements hashed into the other buckets). This is an example of negative dependence , a generalization of probabilistic independence that has recently found interesting applications in algorithm design and machine learning. Despite the usefulness of negative dependence for the analyses of probabilistic data structures, existing verification methods cannot establish this property for randomized programs. To fill this gap, we design LINA, a probabilistic separation logic for reasoning about negative dependence. Following recent works on probabilistic separation logic using separating conjunction to reason about the probabilistic independence of random variables, we use separating conjunction to reason about negative dependence. Our assertion logic features two separating conjunctions, one for independence and one for negative dependence. We generalize the logic of bunched implications (BI) to support multiple separating conjunctions, and provide a sound and complete proof system. Notably, the semantics for separating conjunction relies on a non-deterministic , rather than partial, operation for combining resources. By drawing on closure properties for negative dependence, our program logic supports a Frame-like rule for negative dependence and monotone operations. We demonstrate how LINA can verify probabilistic properties of hash-based data structures and balls-into-bins processes.
November 2021
·
24 Reads
Formal reasoning about hashing-based probabilistic data structures often requires reasoning about random variables where when one variable gets larger (such as the number of elements hashed into one bucket), the others tend to be smaller (like the number of elements hashed into the other buckets). This is an example of negative dependence, a generalization of probabilistic independence that has recently found interesting applications in algorithm design and machine learning. Despite the usefulness of negative dependence for the analyses of probabilistic data structures, existing verification methods cannot establish this property for randomized programs. To fill this gap, we design LINA, a probabilistic separation logic for reasoning about negative dependence. Following recent works on probabilistic separation logic using separating conjunction to reason about the probabilistic independence of random variables, we use separating conjunction to reason about negative dependence. Our assertion logic features two separating conjunctions, one for independence and one for negative dependence. We generalize the logic of bunched implications (BI) to support multiple separating conjunctions, and provide a sound and complete proof system. Notably, the semantics for separating conjunction relies on a non-deterministic, rather than partial, operation for combining resources. By drawing on closure properties for negative dependence, our program logic supports a Frame-like rule for negative dependence and monotone operations. We demonstrate how LINA can verify probabilistic properties of hash-based data structures and balls-into-bins processes.
June 2021
·
17 Reads
·
21 Citations
... [11,13]). New equivalences keep appearing in the literature, such as the recently introduced convex language semantics of nondeterministic probabilistic automata [37]. ...
March 2025
Theoretical Computer Science
... Key focus areas for future research include the integration of LLMs, improving tool usability, adapting security analysis methods, and fostering the development of the Solana security ecosystem. [32] The use of artificial intelligence, especially generative AI tools like OpenAI's GPT-4.5, holds great promise for smart contract security analysis. These tools are capable of identifying vulnerabilities and suggesting corrections. ...
October 2022
Proceedings of the ACM on Programming Languages
... The weakest pre-expectation transformer [McIver and Morgan 2005;Olmedo et al. 2016] is a generalisation of the weakest precondition transformer [Dijkstra 1975]. This notion is used to verify properties such as termination probabilities and probabilistic invariants [Bao et al. 2022;Batz et al. 2023] for imperative probabilistic programming languages. The expected runtime transformer ] is a similar notion proposed for verification of expected costs. ...
August 2022
Lecture Notes in Computer Science
... Originally [46], the resources were data structures in memory, and the separating conjunction guaranteed the absence of aliasing. In modern versions of the logic, this has been generalized to cover other types of resources, such as the state of a concurrent protocol [29] or sources of randomness [9,7,37]. ...
January 2022
Proceedings of the ACM on Programming Languages
... While the mathematical semantics of such programs is fairly well-understood [1], verification methods remain an active area of research. Existing automated techniques are either limited to specific properties (e.g., [2][3][4][5]), or target simpler computational models [6][7][8]. ...
May 2021
... Capturing probabilistic independence in separation logic was first explored by Barthe et al. [2019], however the resulting Probabilistic Separation Logic (PSL) was limited in its ability to reason about control flow, and the frame rule had stringent side conditions. DIBI later extended the PSL model to include conditioning, but did not include a full program logic [Bao et al. 2021]. Lilac built on the two aforementioned logics and used conditioning to improve on PSL's handling of control flow, although without mutable state [Li et al. 2023]. ...
June 2021
... Kozen and Tseng [2008] showed that the same three control flow operations are not sufficient to capture all deterministic regular computations without the use of variables. More formally, their result can be interpreted to mean that the expressivity of Guarded Kleene Algebra with Tests (GKAT) [Smolka et al. 2020] is strictly contained in the deterministic fragment of Kleene Algebra with Tests (KAT) [Kozen 1997]. We will show that this remains true when GKAT is extended with finitely many additional regular control flow operations. ...
December 2019
Proceedings of the ACM on Programming Languages
... The goal is to query for various properties about the network's behavior: for instance, the probability of a packet reaching the end of the network, or of a packet queue overflowing. This example task is inspired by prior work on using probabilistic programming languages to perform network verification [18,53]. The situation in Fig. 1 is a small illustrative example of packet arrival, but programs like it are extremely challenging for today's PPLs because they mix different kinds of program structure. ...
Reference:
Multi-Language Probabilistic Programming
April 2019
... There are also many domain-specific automated analyses for specific probabilistic properties, such as termination and resource analysis [Chatterjee et al. 2016;Moosbrugger et al. 2021;Wang et al. 2021], accuracy Smith et al. 2019], reliability [Carbin et al. 2012], differential privacy [Albarghouthi and Hsu 2018b;Barthe et al. 2021] and other relational properties [Albarghouthi and Hsu 2018a;Farina et al. 2021], and long-run properties of probabilistic loops [Bartocci et al. 2019[Bartocci et al. , 2020. Our approach aims to create a general-purpose analysis. ...
July 2018
Lecture Notes in Computer Science