• Aucun résultat trouvé

La correspondance de Curry-Howard

N/A
N/A
Protected

Academic year: 2022

Partager "La correspondance de Curry-Howard"

Copied!
10
0
0

Texte intégral

(1)

Théorèmes et spécifications

Jean-Louis Krivine

Equipe PPS, Université Paris 7, CNRS

Comité d’évaluation

14 nov. 2003

(2)

La correspondance de Curry-Howard

C’est le schéma :

Démonstration 7→ Programme Théorème 7→ Spécification

Le programme associé à une démonstration sera écrit dans un λ-calcul étendu avec de nouvelles instructions.

La spécification associée à un théorème est le comportement commun des programmes associés à toutes les preuves de ce théorème.

(3)

F A Q

S’applique-t-elle à toutes les démonstrations mathématiques ? Oui. Système d’axiomes le plus étendu utilisable actuellement :

ZF classique avec choix dépendant.

L’axiome du choix complet est encore un problème ouvert . . .

L’énoncé d’un théorème permet-il de trouver simplement la spécification associée ? Non. Cette idée est très répandue,

pourtant les contre-exemples sont déjà au niveau propositionnel :

la loi de Peirce (¬A → A) → A

Ã

instruction de contrôle la formule de Gödel (A → B) ∨ (B → A)

Ã

schéma de communication asynchrone entre deux threads

(4)

On veut :

• Transformer les preuves mathématiques usuelles en programmes.

Comprendre ce que font ces programmes.

Le système formel le plus courant pour écrire des mathématiques s’appelle

L’analyse

Il est constitué de :

1. La logique intuitionniste du second ordre et des axiomes suivants :

2. La loi de Peirce ou raisonnement par l’absurde (¬A → A) → A pour passer à la logique classique.

3. L’axiome de récurrence

pour passer à l’arithmétique du second ordre.

(5)

1. Une preuve en logique intuitionniste du second ordre fournit un programme écrit en λ-calcul. Exemple :

` ∀A∀B∀C∀x[(Ax → Bx) → ((Bx → Cx) → (Ax → Cx))]

donne le programme λfλgλxf.gx (qui compose ses deux arguments).

Ceci est connu depuis fort longtemps (Curry, Howard).

2. En 1990, T. Griffin découvre l’interprétation de la loi de Peirce par l’instruction call/cc du langage SCHEME.

Les logiciens ont alors pu construire beaucoup de prolongements de la correspondance de Curry-Howard à la logique classique.

Le λµ-calcul de M. Parigot est un des systèmes les plus populaires.

Dans ces systèmes, en appel par nom ou en appel par valeur, on a le choix de la stratégie d’exécution et il y a confluence.

(6)

3. L’axiome de récurrence est interprété au moyen de λ-termes appelés opérateurs de mise en mémoire (o.m. en abrégé).

Il n’y a pas besoin d’introduire une nouvelle instruction, mais . . . Des contraintes apparaissent au niveau de l’exécution :

l’appel par nom devient obligatoire

Un o.m. simule l’appel par valeur au moyen de l’appel par nom mais uniquement pour les entiers.

(donc, rien à voir avec les traductions bien connues de G. Plotkin).

Ici, les valeurs sont les λ-termes de la forme sn0.

(7)

4. L’axiome du choix dépendant (ACD) est fondamental pour l’analyse : si (∀r ∈ R)(∃r0 ∈ R)F(r, r0) alors il existe une suite rn

telle que (∀n ∈ N)F(rn, rn+1) avec r0 arbitraire.

Pour l’interpréter, on ajoute une nouvelle instruction : l’horloge, notée ~. Sa règle de réduction est :

~ t  tn

n étant l’entier de Church qui est l’heure courante.

Noter que cette instruction est incompatible avec la β-réduction !

Sont imposés maintenant, l’appel par nom et la stratégie de réduction : la réduction de tête faible.

Le type de ~ est un axiome ACD’ plus faible que ACD en logique intuitionniste mais équivalent en logique classique.

(8)

Exemples : deux théorèmes simples d’analyse

Le théorème de Rolle. Si f[0,1] → R est dérivable et f(0) = f(1) = 0, alors f0(c) = 0 pour un c ∈]0, 1[.

ACD est utilisé pour montrer que f a un extremum.

On obtient donc des programmes qui utilisent call/cc et ~.

Quelle est la spécification associée au théorème de Rolle ? Problème ouvert (comme pour pratiquement tous les théorèmes d’analyse).

Les programmes ne calculent certainement pas une approximation de c.

(9)

Un théorème d’Euler. 1

12 + 1

22 + 1

32 + · · · = 8 3(1

1 − 1

3 + 1

5 − · · ·)2. Il exprime qu’une suite de rationnels un → 0.

Il s’écrit donc ∀M∃N∀n(n > N → |un| < M1).

La preuve la plus simple utilise les séries de Fourier, donc ACD.

Le programme utilise donc call/cc et ~.

Il ne peut calculer N en fonction de M (fonction non récursive en général).

Comportement interactif : le programme attend un entier M. Il fournit alors un entier N0, puis attend n0 > N0.

Si |un0| < M1, il s’arrête ; sinon : Il fournit un entier N1 et ainsi de suite.

Le programme s’arrête toujours, mais l’entier N obtenu alors

(10)

Conclusion

Les retombées en informatique

Les preuves mathématiques sont des objets syntaxiques très complexes, tout à fait comparables aux grands logiciels développés dans l’industrie.

Les mathématiciens ont développé un savoir-faire remarquable pour manipuler ces objets de façon à la fois sûre et intuitive.

Le transfert de cette expertise vers l’informatique est très important, tout particulièrement dans le domaine de la fiabilité des logiciels.

Références

Documents relatifs

La démonstration présentée ici se divise en deux parties, l’une (§ 2) de caractère plus algébrique consiste à montrer que dans les calculs contenant le fragment

Le second membre de cette équation sera, d'après (6), l'expression du rayon de courbure au point de coordonnées x ely 7 exprimé en fonction de l'angle de la tangente à la courbe

Après avoir deviné la fonction du programme suivant, prouver que la boucle s’arrête et que le programme remplit bien son rôle. Recherche par dichotomie du zéro d’une

C’est que la correspondance de Curry-Howard ne donne un programme à partir d’une preuve qu’en logique pure c’est-à-dire sans axiome.. Il faut la compléter par des

En fait c’est un cours sur la r´ ecursivit´ e, les r´ ef´ erences, et la preuve de programmes, revisit´ ees dans les langages fonctionnels!. C’est aussi l’occasion de voir

logic focuses on propositions (types) type theory focuses on programs (proofs). non-trivial type systems allow non-terminating programs such terms can be

After completing the proofs of our current conjectures, we want to extend our language to linear combinations of terms and coinductive constructions in order to study purely

On s'intéresse dans cette section aux formules propositionnelles, c'est à dire sans quantica- teurs. On peut dénir inductivement l'interprétation d'une formule propositionnelle