arrow
Return

Incremental Certified Programming

delete2025-10-01
delete0
PRE
AI
T
Tomás Díaz *
K
Kenji Maillard
N
Nicolas Tabareau
É
Éric Tanter
DOI:10.1145/3763068delete
deleteOriginal
deleteOriginal request for help
deleteShare
deleteSave
Abstract

Abstract

En 中文
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.
Keywords:
incremental programming
program verification
theorem proving

Journal

P
Proceedings of the ACM on Programming Languages-PACMPL
IF:
2.8
Papers:
308
Citations:
4.7K

Organization

I
Inria
Scholars:
3.5K
Papers: 2.5K
Citations: 343
U
universidad de chile
Scholars:
2.1W
Papers: 1.4W
Citations: 18
Cited Papers

Cited Papers

First-Class Type Classes
err2008-01-01
err0
PREAI
errSozeau,Matthieu; Oury,Nicolas
errShare
errSave
Certified Programming with Dependent Types
err
IF0
err2013-12-06
err0
PREAI
errAdam Chlipala
errShare
errSave
err
IF0
err
err0
PREAI
err
errShare
errSave
errShare
errSave
A reasonably gradual type theory
err2022-08-29
err0
PREAI
errMaillard,Kenji; Lennon-Bertrand,Meven; Tabareau,Nicolas; Tanter,Éric
errShare
errSave
Total Type Error Localization and Recovery with Holes
err2024-01-02
err0
PREAI
errZhao,Eric; Maroof,Raef; Dukkipati,Anand; Blinn,Andrew; Pan,Zhiyi; Omar,Cyrus
errShare
errSave
The MetaCoq Project
err2020-02-18
err0
errOAAI
errMatthieu Sozeau; Abhishek Anand; Simon Boulier; Cyril Cohen; Yannick Forster; Fabian Kunze; Gregory Malecha; Nicolas Tabareau; Théo Winterhalter
errShare
errSave
err
IF0
err
err0
PREAI
err
errShare
errSave
errShare
errSave
researcher View more