This thesis considers the challenge of fully formal software verification in the demanding and foundational context of mechanical proof assistants. While this approach offers the strongest guarantees for software correctness, it has traditionally imposed tremendous costs to manually construct proofs. In this work, I explore techniques to mitigate this proof burden through careful system design. In particular, I demonstrate how formal shim verification and extensible compiler techniques can radically reduce the proof burden for realistic implementations of critical modern infrastructur
Automatic program verification is a computationally intense task. When a verifier declares a program...
For software development projects with very high correctness requirements (including safety requirem...
We present recent work on building and scaling trustworthy systems with formal, machine-checkable pr...
AbstractWe present lessons learned from using mechanical theorem proving for proof support in softwa...
The functional correctness of safety- and security-critical software is of utmost importance. Nowada...
We propose a grand challenge for the formal methods community: build and mechanically verify a prac...
Developing a verifying compiler---a compiler that proves that components are correct with respect to...
Formal proofs, interactively developed and machine-checked, are a means to achieve the highest level...
Software controls many aspects of our daily lives, thus, software correctness is of utmost importanc...
The function of software used to be calculation; mechanising what was previously done by hand. Now i...
Two main kinds of tools available for formal software verification are point tools and general-purpo...
We present a method for formal verification of transcendental hardware and software algorithms that ...
This thesis presents a practical approach to verifying real-time properties of V L S I designs. A s...
Thesis (Ph.D.)--University of Washington, 2018Modern computer systems rely on the correctness of at ...
textComputers have become central components of nearly every facet of modern life. Advances in hard...
Automatic program verification is a computationally intense task. When a verifier declares a program...
For software development projects with very high correctness requirements (including safety requirem...
We present recent work on building and scaling trustworthy systems with formal, machine-checkable pr...
AbstractWe present lessons learned from using mechanical theorem proving for proof support in softwa...
The functional correctness of safety- and security-critical software is of utmost importance. Nowada...
We propose a grand challenge for the formal methods community: build and mechanically verify a prac...
Developing a verifying compiler---a compiler that proves that components are correct with respect to...
Formal proofs, interactively developed and machine-checked, are a means to achieve the highest level...
Software controls many aspects of our daily lives, thus, software correctness is of utmost importanc...
The function of software used to be calculation; mechanising what was previously done by hand. Now i...
Two main kinds of tools available for formal software verification are point tools and general-purpo...
We present a method for formal verification of transcendental hardware and software algorithms that ...
This thesis presents a practical approach to verifying real-time properties of V L S I designs. A s...
Thesis (Ph.D.)--University of Washington, 2018Modern computer systems rely on the correctness of at ...
textComputers have become central components of nearly every facet of modern life. Advances in hard...
Automatic program verification is a computationally intense task. When a verifier declares a program...
For software development projects with very high correctness requirements (including safety requirem...
We present recent work on building and scaling trustworthy systems with formal, machine-checkable pr...