Verification of non-functional programs using interpretations in type theory
The work
| Authors | Jean-Christophe Filliâtre |
|---|---|
| Editors | |
| Type | article |
| Year | 2003 |
| Citekey | filliatre2003verification |
Where it appeared
| Published in | Journal of Functional Programming |
|---|---|
| Publisher | Cambridge University Press |
| Volume | 13 |
| Issue | 4 |
| Pages | 709--745 |
Identifiers
| DOI | 10.1017/s095679680200446x |
|---|---|
| OpenAlex | W2141236940 |
Access
From OpenAlex, which stores abstracts as an index of words and their positions: what is shown is rebuilt from that, and reads fluently whether or not it is what the author wrote.
Abstract
We study the problem of certifying programs combining imperative and functional features within the general framework of type theory. Type theory is a powerful specification language which is naturally suited for the proof of purely functional programs. To deal with imperative programs, we propose a logical interpretation of an annotated program as a partial proof of its specification. The construction of the corresponding partial proof term is based on a static analysis of the effects of the program which excludes aliases. The missing subterms in the partial proof term are seen as proof obligations, whose actual proofs are left to the user. We show that the validity of those proof obligations implies the total correctness of the program. This work has been implemented in the Coq proof assistant. It appears as a tactic taking an annotated program as argument and generating a set of proof obligations. Several nontrivial algorithms have been certified using this tactic.
How it got here
| How it got here | agent via openalex |
|---|---|
| Added | 2026-10-25 14:14 UTC |
| Not denied by | a person 2026-10-29 17:12 UTC |
Cite it as
@article{filliatre2003verification,
title = {Verification of non-functional programs using interpretations in type theory},
author = {Jean-Christophe Filliâtre},
year = {2003},
journal = {Journal of Functional Programming},
publisher = {Cambridge University Press},
volume = {13},
number = {4},
pages = {709--745},
doi = {10.1017/s095679680200446x},
}
This record lives at https://refs.drheap.org/filliatre2003verification/ and will keep doing so.