In the first part of this thesis, we present a case study on successfully verifying the Linux USB BP keyboard driver. Our verification approach is (a) sound, (b) takes into account dynamic memory allocation, complex API rules and concurrency, and (c) is applied on a real kernel driver which was not written with verification in mind. We employ VeriFast, a software verifier based on separation logic. Besides showing that it is possible to verify this device driver, we identify the parts where the verification went smoothly and the parts where the verification approach requires further research to be carried out. In the second part of this thesis, we present a program verification approach that uses an input/output style of reasoning. It can...
This work presents a modular approach to temporal logic model checking of software. Model checking i...
We use Iris, an implementation of concurrent separation logic in the Coq proof assistant, to verify ...
The Slam toolkit demonstrates that predicate abstraction enables automated verification of real worl...
In the first part of this thesis, we present a case study on successfully verifying the Linux USB BP...
Case studies for formal software verification can be divided into two categories: while (i) unsound ...
In our increasingly computer-oriented society, the computer programs we rely on tend to increase in ...
We present a sound verification approach for verifying input/output properties of programs. Our appr...
Thesis (Ph.D.)--University of Washington, 2020Systems software interfaces with hardware, multiplexes...
We recently proposed an approach for the specification and modular formal verification of the intera...
For software development projects with very high correctness requirements (including safety requirem...
Many of the systems that we rely on, and interact with on a daily basis, are driven by software. Unf...
The foundational goal of this work is the development of mechanizable proof rules and a verification...
The increasing availability of information technology in today’s life is a challenge for users as we...
With the increasing power of computers and advances in constraint solving technologies, formal and s...
Software has become an integral part of our everyday lives, and so is our reliance on his correct fu...
This work presents a modular approach to temporal logic model checking of software. Model checking i...
We use Iris, an implementation of concurrent separation logic in the Coq proof assistant, to verify ...
The Slam toolkit demonstrates that predicate abstraction enables automated verification of real worl...
In the first part of this thesis, we present a case study on successfully verifying the Linux USB BP...
Case studies for formal software verification can be divided into two categories: while (i) unsound ...
In our increasingly computer-oriented society, the computer programs we rely on tend to increase in ...
We present a sound verification approach for verifying input/output properties of programs. Our appr...
Thesis (Ph.D.)--University of Washington, 2020Systems software interfaces with hardware, multiplexes...
We recently proposed an approach for the specification and modular formal verification of the intera...
For software development projects with very high correctness requirements (including safety requirem...
Many of the systems that we rely on, and interact with on a daily basis, are driven by software. Unf...
The foundational goal of this work is the development of mechanizable proof rules and a verification...
The increasing availability of information technology in today’s life is a challenge for users as we...
With the increasing power of computers and advances in constraint solving technologies, formal and s...
Software has become an integral part of our everyday lives, and so is our reliance on his correct fu...
This work presents a modular approach to temporal logic model checking of software. Model checking i...
We use Iris, an implementation of concurrent separation logic in the Coq proof assistant, to verify ...
The Slam toolkit demonstrates that predicate abstraction enables automated verification of real worl...