Mots clés : isomorphisme de
Curry-Howard, réalisabilité, logique intuitionniste, calcul
des constructions inductives .
La principale originalité du Calcul des Constructions
Inductives est que les démonstrations y sont des objets au
même titre que les nombres, les fonctions ou les ensembles.
Ainsi un entier pair est représenté par un couple formé d'un
entier et d'une démonstration que cet entier est pair. Une
autre originalité de ce formalisme est que chaque terme
exprimant un objet d'un type de données, peut se réduire sur
une valeur de ce type de données. Par exemple, le terme
2 + 5 se réduit sur la valeur
7.
Ces propriétés combinées permettent de concevoir la
spécification d'un programme comme une relation liant la
valeur d'entrée et la valeur de sortie de ce programme. En
effet, si Q(x,
y) est une telle relation, une démonstration
dans le Calcul des Constructions
Inductives de la totalité de cette relation
(c'est-à-dire de la proposition
x
yQ(x, y)) est en
fait une fonction qui, à tout objet a associe un objet b et une démonstration de Q(a, b). À partir de cette
démonstration, il est possible d'exprimer dans le calcul à la
fois un programme fonctionnel et sa démonstration de
correction. La fonction f
appliquée à l'entrée a se
réduira pour fournir la sortie b.
Mais les démonstrations ne sont pas, en général, des
programmes efficaces, et il est nécessaire, en pratique,
d'éliminer certaines parties de ces démonstrations non
pertinentes pour le calcul : cette étape s'appelle
l'extraction de programme. Les programmes extraits peuvent
alors être traduits dans un langage de programmation
ordinaire tel que ML, puis compilés en langage machine.
Dans cette approche, la spécification du programme est vue
comme une formule mathématique et le programme certifié est
obtenu à partir de la démonstration de cette formule.
Cette interprétation est particulièrement adaptée à la
programmation fonctionnelle mais fournit également des
techniques de démonstration de programmes impératifs.