Publications

Stats

View publication

Title Incremental Certified Programming
Authors Tomás Diaz, Kenji Maillard, Nicolas Tabareau, Éric Tanter
Publication date October 2025
Abstract Certified programming, as carried out in proof assistants
and
dependently-typed programming languages, ensures that a software meets its
requirements by supporting the definition of both specifications and proofs.
However, proofs easily break with partial definitions and incremental
changes because specifications are not designed to account for the
intermediate incomplete states of programs. We advocate for proper support
for incremental certified programming by analyzing its objectives and
inherent challenges, and propose a formal framework for achieving
incremental certified programming in a principled manner. The key idea is to
define appropriate notions of completion refinement and completeness to
capture incrementality, and to systematically produce specifications that
are valid at every stage of development while preserving the intent of the
original statements. We provide a prototype implementation in the Rocq
Prover, called IncRease, which exploits typeclasses for automation and
extensibility, and is independent of any specific mechanism used to handle
incompleteness. We illustrate its use with both an incremental textbook
formalization of the simply-typed lambda-calculus, and a more complex case study
of incremental certified programming for an existing dead-code elimination
optimization pass of the CompCert project. We show that the approach is
compatible with randomized property-based testing as provided by QuickChick.
Finally we study how to combine incremental certified programming with
deductive synthesis, using a novel incrementality-friendly adaptation of the
Fiat library. This work provides theoretical and practical foundations
towards systematic support for incremental certified programming,
highlighting challenges and perspectives for future developments.
Pages 499-526
Volume 9
Journal name Proceedings of the ACM Programming Languages
Publisher ACM Press (New York, NY, USA)
Reference URL View reference page