Foundational Verification of Low-Level Code: RefinedC and Beyond
Deepak Garg
Max Planck Institute for Software Systems
03 Jul 2024, 12:15 pm - 1:15 pm
Saarbrücken building E1 5, room 002
Joint Lecture Series
Low-level code written in languages like C forms the bedrock of most computer
systems today. Establishing the correctness of this code is important for the
safety and security of our systems. The gold standard for code correctness is
foundational verification -- the construction of mathematical proofs of program
correctness verified in a proof assistant like Coq. However, foundational
verification of low-level code is a tedious task that has, so far, largely
relied on adapting code to suit the constraints of the verification framework, ...
Low-level code written in languages like C forms the bedrock of most computer
systems today. Establishing the correctness of this code is important for the
safety and security of our systems. The gold standard for code correctness is
foundational verification -- the construction of mathematical proofs of program
correctness verified in a proof assistant like Coq. However, foundational
verification of low-level code is a tedious task that has, so far, largely
relied on adapting code to suit the constraints of the verification framework,
e.g., the programming idioms that are supported.
In this talk, I will present RefinedC, a new Coq-based C verification framework that aims to address the above limitation. By design, RefinedC is foundational (all proofs are mechanically verified within Coq), extensible (it can be extended to support new program properties, programming idioms and even new languages) and automation-friendly. Time permitting, I will also discuss projects that extend RefinedC's capabilities to reason about code written in other low-level languages like assembly, and code written in more than one language.
(This talk is based on joint work with several other research groups, notably the group of Derek Dreyer at MPI-SWS.)
Read more
In this talk, I will present RefinedC, a new Coq-based C verification framework that aims to address the above limitation. By design, RefinedC is foundational (all proofs are mechanically verified within Coq), extensible (it can be extended to support new program properties, programming idioms and even new languages) and automation-friendly. Time permitting, I will also discuss projects that extend RefinedC's capabilities to reason about code written in other low-level languages like assembly, and code written in more than one language.
(This talk is based on joint work with several other research groups, notably the group of Derek Dreyer at MPI-SWS.)