Skip navigation
Please use this identifier to cite or link to this item:
Title: Separation-Logic-Based Program Verification in Coq
Authors: Cao, Qinxiang
Advisors: Appel, Andrew W
Contributors: Computer Science Department
Keywords: Hoare logic
interactive theorem proving
program verification
Separation logic
Subjects: Computer science
Issue Date: 2018
Publisher: Princeton, NJ : Princeton University
Abstract: In our interconnected world, software bugs can seriously compromise our safety and security. To provide adequate safety or protection, security-critical kernels (of large systems) must be functionally correct. To ensure functional correctness of C programs, we can use Hoare logic and its extensions such as separation logic. But such correctness proofs are large and complex enough that we cannot trust them unless they are machine-checked. This dissertation shows how we can construct machine-checked proofs of program correctness using separation logic. I answer three questions: How shall we specify our programs? How shall we prove our programs correct with respect to their specifications? How shall we mechanize such correctness proofs? I present practical techniques for separation-logic-based program verification and demonstrate them on several examples. I introduce VST-Floyd, a tool for users to build formal C program correctness proofs in Coq using separation logic. VST-Floyd is built based on Verifiable C, a proved sound separation logic; I show how to reformulate its rules to make them practical for use in verification.
Alternate format: The Mudd Manuscript Library retains one bound copy of each dissertation. Search for these copies in the library's main catalog:
Type of Material: Academic dissertations (Ph.D.)
Language: en
Appears in Collections:Computer Science

Files in This Item:
File Description SizeFormat 
Cao_princeton_0181D_12718.pdf3.97 MBAdobe PDFView/Download

Items in Dataspace are protected by copyright, with all rights reserved, unless otherwise indicated.