Adloun

Curryfication, dans les deux sens

Exercice · niveau 2 · informatique (MP2I/MPI), chapitre 28 — Déduction naturelle

Énoncé

Démontrer les deux séquents

Corrigé

Premier sens. Posons et .

Second sens. Posons et .

Les deux arbres ont été vérifiés règle par règle : nœuds pour le premier, pour le second.

Ce que dit cette équivalence. « Prendre deux arguments à la fois » et « prendre le premier, puis le second » sont la même chose. C'est trivial en logique, et c'est un mécanisme central en OCaml : la fonction fun (a, b) -> ... et la fonction fun a b -> ... portent la même information, et le passage de l'une à l'autre porte le nom de Haskell Curry. Le problème 28.3 montre que ce n'est pas une analogie : les deux arbres ci-dessus sont, à l'écriture près, les fonctions curry et decurry du chapitre chap:langage-ocaml.

Le détail qui compte dans le second arbre : l'hypothèse est utilisée deux fois, une fois par et une fois par . Rien ne l'interdit — le contexte est un ensemble, pas une réserve qu'on épuise. Des logiques linéaires interdisent au contraire de réutiliser une hypothèse, et servent à décrire les ressources ; elles sont hors programme.

Les autres exercices de ce chapitre Le cours du chapitre

Un blocage sur cet exercice ? Le tuteur d'Adloun guide par questions, sans donner la réponse.