Automated and Foundational Verification of Low-Level Programs
Michael Sammler
MPI-SWS
04 Dec 2023, 5:00 pm - 6:00 pm
Saarbrücken building E1 5, room 029
simultaneous videocast to Kaiserslautern building G26, room 113
simultaneous videocast to Kaiserslautern building G26, room 113
SWS Student Defense Talks - Thesis Defense
Formal verification is a promising technique to ensure the reliability of
low-level programs like operating systems and hypervisors, since it can show
the absence of whole classes of bugs and prevent critical vulnerabilities.
To realize the full potential of formal verification for real-world low-level
programs, however one has to overcome several challenges, including:
(1) dealing with the complexities of realistic models of real-world programming
languages;
(2) ensuring the trustworthiness of the verification, ideally by providing
foundational proofs (i.e., ...
Formal verification is a promising technique to ensure the reliability of
low-level programs like operating systems and hypervisors, since it can show
the absence of whole classes of bugs and prevent critical vulnerabilities.
To realize the full potential of formal verification for real-world low-level
programs, however one has to overcome several challenges, including:
(1) dealing with the complexities of realistic models of real-world programming
languages;
(2) ensuring the trustworthiness of the verification, ideally by providing
foundational proofs (i.e., proofs that can be checked by a general-purpose
proof assistant);
and (3) minimizing the manual effort required for verification by providing a
high degree of automation.
This dissertation presents multiple projects that advance formal verification along these three axes: RefinedC provides the first approach for verifying C code that combines foundational proofs with a high degree of automation via a novel refinement and ownership type system. Islaris shows how to scale verification of assembly code to realistic models of modern instruction set architectures-in particular, Armv8-A and RISC-V. DimSum develops a decentralized approach for reasoning about programs that consist of components written in multiple different languages (e.g., assembly and C), as is common for low-level programs. RefinedC and Islaris rest on Lithium, a novel proof engine for separation logic that combines automation with foundational proofs.
Read more
This dissertation presents multiple projects that advance formal verification along these three axes: RefinedC provides the first approach for verifying C code that combines foundational proofs with a high degree of automation via a novel refinement and ownership type system. Islaris shows how to scale verification of assembly code to realistic models of modern instruction set architectures-in particular, Armv8-A and RISC-V. DimSum develops a decentralized approach for reasoning about programs that consist of components written in multiple different languages (e.g., assembly and C), as is common for low-level programs. RefinedC and Islaris rest on Lithium, a novel proof engine for separation logic that combines automation with foundational proofs.