Using proof assistants to perform formal, mechanical software verification is a powerful technique for producing correct software. However, the verification is time-consuming and limited to software written in the language of the proof assistant. As an approach to mitigating this tradeoff, this dissertation presents hs-to-coq, a tool for translating programs written in the Haskell programming language into the Coq proof assistant, along with its applications and a general methodology for using it to verify programs. By introducing edit files containing programmatic descriptions of code transformations, we provide the ability to flexibly adapt our verification goals to exist anywhere on the spectrum between “increased confidence” and “full f...
Formal verification of software is a largely underrepresented discipline in practice. While it is no...
Thesis (Ph.D.)--University of Washington, 2021The days of verifying only toy programs are long gone....
Most software systems are described in high-level model or programming languages. Their runtime beha...
Using proof assistants to perform formal, mechanical software verification is a powerful technique f...
Code deficiencies and bugs constitute an unavoidable part of software systems. In safety-critical sy...
HAHA is a tool that helps in teaching and learning Hoare logic. It is targeted at an introductory co...
Abstract. The goal of this lecture is to show how modern theorem provers—in this case, the Coq proof...
Thesis (Ph.D.)--University of Washington, 2018Modern computer systems rely on the correctness of at ...
Abstract. We compare Haskell with Standard ML as programming languages for verification tools based ...
Software controls many aspects of our daily lives, thus, software correctness is of utmost importanc...
The Coq proof assistant mechanically checks the consistency of the logical reasoning in a proof. It ...
Formal verification of a compiler is a long-standing problem in computer science and,although recent...
A handbook to the Coq software for writing and checking mathematical proofs, with a practical engine...
I report on an experience using the Coq proof assistant to develop a program verification tool with ...
International audienceThe Coq Platform is a continuously developed distribution of the Coq proof ass...
Formal verification of software is a largely underrepresented discipline in practice. While it is no...
Thesis (Ph.D.)--University of Washington, 2021The days of verifying only toy programs are long gone....
Most software systems are described in high-level model or programming languages. Their runtime beha...
Using proof assistants to perform formal, mechanical software verification is a powerful technique f...
Code deficiencies and bugs constitute an unavoidable part of software systems. In safety-critical sy...
HAHA is a tool that helps in teaching and learning Hoare logic. It is targeted at an introductory co...
Abstract. The goal of this lecture is to show how modern theorem provers—in this case, the Coq proof...
Thesis (Ph.D.)--University of Washington, 2018Modern computer systems rely on the correctness of at ...
Abstract. We compare Haskell with Standard ML as programming languages for verification tools based ...
Software controls many aspects of our daily lives, thus, software correctness is of utmost importanc...
The Coq proof assistant mechanically checks the consistency of the logical reasoning in a proof. It ...
Formal verification of a compiler is a long-standing problem in computer science and,although recent...
A handbook to the Coq software for writing and checking mathematical proofs, with a practical engine...
I report on an experience using the Coq proof assistant to develop a program verification tool with ...
International audienceThe Coq Platform is a continuously developed distribution of the Coq proof ass...
Formal verification of software is a largely underrepresented discipline in practice. While it is no...
Thesis (Ph.D.)--University of Washington, 2021The days of verifying only toy programs are long gone....
Most software systems are described in high-level model or programming languages. Their runtime beha...