• Home
  • Search
  • Modular development of certified program verifiers with a proof assistant
  • Open Access IconOpen Access
  • Cite Icon21
  • https://doi.org/10.1145/1159803.1159825Copy DOI Icon

Modular development of certified program verifiers with a proof assistant

  • Sep 16, 2006
  • Adam Chlipala
Show More
  • Abstract
  • Literature Map
  • References
  • Citations
  • Similar Papers
Abstract

I report on an experience using the Coq proof assistant to develop a program verification tool with a machine-checkable 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. I take advantage of Coq's support for programming with dependent types and modules in the structure of my 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's 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.

Similar Papers
  • Conference Article
  • Citations42

Safe functional reactive programming through dependent types

  • Aug 31, 2009
  • Neil Sculthorpe +1
  • Research Article
  • Citations5

Dynamic optimization for functional reactive programming using generalized algebraic data types

  • Sep 12, 2005
  • ACM SIGPLAN Notices
  • Henrik Nilsson
  • PDF
  • Research Article
  • Citations16

Scala step-by-step: soundness for DOT with step-indexed logical relations in Iris

  • Aug 02, 2020
  • Proceedings of the ACM on Programming Languages
  • Paolo G Giarrusso +4
  • PDF
  • Research Article
  • Citations8

A Formalization of Core Why3 in Coq

  • Jan 02, 2024
  • Proceedings of the ACM on Programming Languages
  • Joshua M Cohen +1
  • Research Article

Touring the MetaCoq Project (Invited Paper)

  • Jul 16, 2021
  • Electronic Proceedings in Theoretical Computer Science
  • Matthieu Sozeau
  • PDF
  • Research Article
  • Citations3

ANF preserves dependent types up to extensional equality

  • Jan 01, 2022
  • Journal of Functional Programming
  • Paulette Koronkevich +3
  • Conference Article
  • Citations39

Verifying haskell programs using constructive type theory

  • Sep 30, 2005
  • Andreas Abel +4
  • Research Article
  • Citations10

Dependent Information Flow Types

  • Jan 14, 2015
  • ACM SIGPLAN Notices
  • Luísa Lourenço +1
  • Research Article
  • Citations2

Bringing extensibility to verified compilers

  • Jun 05, 2010
  • ACM SIGPLAN Notices
  • Zachary Tatlock +1
  • Conference Article
  • Citations18

Deciding and Interpolating Algebraic Data Types by Reduction

  • Sep 01, 2017
  • Hossein Hojjat +1
  • Research Article
  • Citations31

Programming with binders and indexed data-types

  • Jan 18, 2012
  • ACM SIGPLAN Notices
  • Andrew Cave +1
  • Conference Article
  • Citations2

Imperative objects with dependent types

  • Jul 07, 2015
  • Joana Campos +1
  • Conference Article
  • Citations11

System f-omega with equirecursive types for datatype-generic programming

  • Jan 11, 2016
  • Yufei Cai +2
  • Conference Article
  • Citations218

Almost all primes can be quickly certified

  • Jan 01, 1986
  • S Goldwasser +1
  • Research Article
  • Citations13

The Open Calculus of Constructions (Part I): An Equational Type Theory with Dependent Types for Programming, Specification, and Interactive Theorem Proving

  • Jan 01, 2005
  • Fundamenta Informaticae
  • Mark-Oliver Stehr
Cactus Communications logo

Copyright 2026 Cactus Communications. All rights reserved.