Synthesizing proofs from programs in the Calculus of Inductive Constructions

C Parent - International Conference on Mathematics of Program …, 1995 - Springer
C Parent
International Conference on Mathematics of Program Construction, 1995Springer
We want to prove “automatically” that a program is correct with respect to a set of given
properties that is a specification. Proofs of specifications contain logical parts and
computational parts. Programs can be seen as computational parts of proofs. They can then
be extracted from proofs and be certified to be correct. We focus on the inverse problem: is it
possible to reconstruct proof obligations from a program and its specification? The
framework is the type theory where a proof can be represented as a typed λ-term [Con86 …
Abstract
We want to prove “automatically” that a program is correct with respect to a set of given properties that is a specification. Proofs of specifications contain logical parts and computational parts. Programs can be seen as computational parts of proofs. They can then be extracted from proofs and be certified to be correct. We focus on the inverse problem: is it possible to reconstruct proof obligations from a program and its specification ? The framework is the type theory where a proof can be represented as a typed λ-term [Con86, NPS90] and particularly the Calculus of Inductive Constructions [Coq85]. A notion of coherence is introduced between a specification and a program containing annotations as in the Hoare sense. This notion is based on the definition of an extraction function called the weak extraction. Such an annotated program can give a method to reconstruct a set of proof obligations needed to have a proof of the initial specification. This can be seen either as a method of proving programs or as a method of synthetically describing proofs.
Springer
Showing the best result for this search. See all results