Hostname: page-component-77c78cf97d-lphnv Total loading time: 0 Render date: 2026-05-02T02:43:22.545Z Has data issue: false hasContentIssue false

Modular development of certified program verifiers with a proof assistant1,2

Published online by Cambridge University Press:  15 August 2008

ADAM CHLIPALA*
Affiliation:
University of California, Berkeley, CA, USA (e-mail: adamc@cs.berkeley.edu)
Rights & Permissions [Opens in a new window]

Abstract

Core share and HTML view are not available for this content. However, as you have access to this content, a full PDF is available via the 'Save PDF' action button.

We report on an experience using the Coq proof assistant to develop a program verification tool with a machine-checked proof of full correctness. The verifier is able to prove memory safety of x86 machine code programs compiled from code that uses algebraic datatypes. The tool's soundness theorem is expressed in terms of the bit-level semantics of x86 programs, so its correctness depends on very few assumptions. We take advantage of Coq's support for programming with dependent types and modules in the structure of the development. The approach is based on developing a library of reusable functors for transforming a verifier at one level of abstraction into a verifier at a lower level. Using this library, it is possible to prototype a verifier based on a new type system with a minimal amount of work, while obtaining a very strong soundness theorem about the final product.

Information

Type
Articles
Copyright
Copyright © Cambridge University Press 2008
Supplementary material: File

Chlipala Supplementary Material

Supplementary.zip

Download Chlipala Supplementary Material(File)
File 532.3 KB
Submit a response

Discussions

No Discussions have been published for this article.