Author:
FILLIÂTRE JEAN-CHRISTOPHE
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.
Publisher
Cambridge University Press (CUP)
Cited by
45 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Generalized Arrays for Stainless Frames;Lecture Notes in Computer Science;2022
2. Controlled execution with explicit model;Programming and Computer Software;2014-11
3. Function extraction;Science of Computer Programming;2012-04
4. A Certified Multi-prover Verification Condition Generator;Verified Software: Theories, Tools, Experiments;2012
5. Characteristic formulae for the verification of imperative programs;Proceedings of the 16th ACM SIGPLAN international conference on Functional programming;2011-09-19