Formal verification of real-world software systems remains challenging for a number of reasons, including lack of automation, friction in specifying properties, and limited support for the diverse programming paradigms used in industry. In this thesis we m ...
We study discretizations of polynomial processes using finite state Markov processes satisfying suitable moment matching conditions. The states of these Markov processes together with their transition probabilities can be interpreted as Markov cubature rul ...
As of today, programming has never been so accessible. Yet, it remains a challenge for end-users: students, non-technical employees, experts in their domains outside of computer science, and so on. With its forecast potential for solving problems by only o ...
In this thesis, we explore techniques for the development and verification of programs in a high-level, expressive, and safe programming language. Our programs can express problems over unbounded domains and over recursive and mutable data structures. We p ...
Let R be a semilocal principal ideal domain. Two algebraic objects over R in which scalar extension makes sense (e.g. quadratic spaces) are said to be of the same genus if they become isomorphic after extending scalars to all completions of R and its fract ...
A large part of software written today is reactive. In contrast to batch mode systems, a reactive program continuously adapts itself to new input which often requires a substantial amount of engineering. Traditionally, reactive programs are implemented in ...
This thesis explores the use of specifications for the construction of correct programs. We go beyond their standard use as run-time assertions, and present algorithms, techniques and implementations for the tasks of 1) program verification, 2) declarative ...
We present an approach to program repair and its application to programs with recursive functions over unbounded data types. Our approach formulates program repair in the framework of deductive synthesis that uses existing program structure as a hint to gu ...
Ahlswede et al. in the seminal paper [1] have shown that in data transfer over networks, processing the data at the nodes can significantly improve the throughput. As proved by Li et al. in [2], even with a simple type of operation, namely linear operation ...
Automated synthesis of program fragments from specifications can make programs easier to write and easier to reason about. To integrate synthesis into programming languages, software synthesis algorithms should behave in a predictable way: they should succ ...