diff options
author | David A. Madore <david+git@madore.org> | 2023-11-22 11:33:16 +0100 |
---|---|---|
committer | David A. Madore <david+git@madore.org> | 2023-11-22 11:33:16 +0100 |
commit | b3fbc6cb78e34001790a9dec937eeda0758d42f9 (patch) | |
tree | f1eea9a85b5d95c7261934830b1b0b85bcf6ab8c | |
parent | 2e5991760ea27bc61a51f2497036e08bec3a3c17 (diff) | |
download | inf110-lfi-b3fbc6cb78e34001790a9dec937eeda0758d42f9.tar.gz inf110-lfi-b3fbc6cb78e34001790a9dec937eeda0758d42f9.tar.bz2 inf110-lfi-b3fbc6cb78e34001790a9dec937eeda0758d42f9.zip |
A first taste of the Curry-Howard correspondence.
-rw-r--r-- | transp-inf110-02-typage.tex | 35 |
1 files changed, 34 insertions, 1 deletions
diff --git a/transp-inf110-02-typage.tex b/transp-inf110-02-typage.tex index 55c5de1..9040312 100644 --- a/transp-inf110-02-typage.tex +++ b/transp-inf110-02-typage.tex @@ -170,7 +170,7 @@ sont \emph{souvent} proposées par les systèmes de typage : \bigskip -\itempoint Types \textbf{produits} (= paires, triplets, $k$-uplets). +\itempoint Types \textbf{produits} (= couples, triplets, $k$-uplets). P.ex. $\texttt{Nat} \times \texttt{Bool}$ = type des paires formées d'un entier et d'un booléen. @@ -580,6 +580,39 @@ restrictions : \end{frame} % \begin{frame} +\frametitle{La correspondance de Curry-Howard (premier aperçu)} + +{\footnotesize\textcolor{gray}{Divulgâchis pour la suite !}\par} + +\smallskip + +La correspondance de Curry-Howard fait notamment correspondre : +\begin{itemize} +\item type \textbf{fonction} $A \to B$ avec \textbf{implication} + logique $A \Rightarrow B$, +\item \textbf{application} d'une fonction ($A \to B$ à un argument de + type $A$) avec \textbf{\textit{modus ponens}} (si $A \Rightarrow B$ + et $A$, alors $B$), +\item \textbf{abstraction} (= création d'une fonction) avec ouverture + d'une \textbf{hypothèse} (« supposons $A$ : alors (…) donc $B$ ; + ceci prouve $A \Rightarrow B$ »), +\item type \textbf{produit} (= couples) $A \times B$ avec + \textbf{conjonction} (« et ») logique $A \land B$, +\item type \textbf{somme} $A + B$ avec \textbf{disjonction} (« ou ») + logique $A \lor B$, +\item types \textbf{trivial} ($\texttt{Unit}$) et \textbf{vide} avec + \textbf{vrai} $\top$ et \textbf{faux} $\bot$ logiques, +\item mais pour la \textbf{négation}… c'est plus délicat. +\end{itemize} + +\bigskip + +{\footnotesize Les détails demandent un système de typage et un + système logique précisément définis.\par} + +\end{frame} +% +\begin{frame} \frametitle{Paradoxe de Curry (interlude distrayant)} {\footnotesize Variante plus sophistiquée de « cette phrase est |