summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid A. Madore <david+git@madore.org>2023-12-12 16:52:14 +0100
committerDavid A. Madore <david+git@madore.org>2023-12-12 16:52:14 +0100
commit4291138334c208ab48c0209cf384a91a6d74058d (patch)
tree0f87067ac722c9c594e124fb6891dc5461845cf8
parent780b9727734736cef1d86393511f3978ab1ae46c (diff)
downloadinf110-lfi-4291138334c208ab48c0209cf384a91a6d74058d.tar.gz
inf110-lfi-4291138334c208ab48c0209cf384a91a6d74058d.tar.bz2
inf110-lfi-4291138334c208ab48c0209cf384a91a6d74058d.zip
Slightly expand slide on Hilbert system.
-rw-r--r--transp-inf110-02-typage.tex15
1 files changed, 13 insertions, 2 deletions
diff --git a/transp-inf110-02-typage.tex b/transp-inf110-02-typage.tex
index 5ccb6f6..fef2c93 100644
--- a/transp-inf110-02-typage.tex
+++ b/transp-inf110-02-typage.tex
@@ -3193,8 +3193,8 @@ $A,B,C,\ldots$ sont \alert{remplacés par des formules qcqes} :
{\footnotesize
\begin{itemize}
\item $(\mathsf{I}): A\Rightarrow A$
-\item $(\mathsf{K}): A\Rightarrow B\Rightarrow A$
-\item $(\mathsf{S}): (A\Rightarrow B\Rightarrow C) \Rightarrow
+\quad\itempoint $(\mathsf{K}): A\Rightarrow B\Rightarrow A$
+\quad\itempoint $(\mathsf{S}): (A\Rightarrow B\Rightarrow C) \Rightarrow
(A\Rightarrow B) \Rightarrow (A \Rightarrow C)$
\item $A\land B \Rightarrow A$
\quad \itempoint $A\land B \Rightarrow B$
@@ -3222,6 +3222,17 @@ non typé comme simplement typé. {\footnotesize (On n'a même pas besoin de
$\mathsf{S}(\lambda x.u)(\lambda x.v)$ et $\lambda x.y$ par
$\mathsf{K}y$.
+{\footnotesize P.ex. : $\lambda f.\lambda x.f(fx)$ se réécrit $\lambda
+ f. \mathsf{S}(\mathsf{K}f)f$ donc
+ $\mathsf{S}(\mathsf{S}(\mathsf{K}\mathsf{S})\mathsf{K})\mathsf{I}$.\par}
+
+\smallskip
+
+{\footnotesize\itempoint On peut donc en théorie imaginer un langage
+ de programmation fonctionnel Turing-complet sans variables, basé sur
+ les seules fonctions $\mathsf{S}$, $\mathsf{K}$, $\mathsf{I}$.
+ {\tiny(Mais personne ne serait assez fou pour faire ça.)}\par}
+
\end{frame}
%
% TODO: