diff options
author | David A. Madore <david+git@madore.org> | 2023-12-15 17:39:27 +0100 |
---|---|---|
committer | David A. Madore <david+git@madore.org> | 2023-12-15 17:39:27 +0100 |
commit | 88c2c12c57568de9edac5ff2775aab7bb0ebf287 (patch) | |
tree | 9edaff2a65f9d19344b3d547d37ab11fe14018f6 | |
parent | e8dc0e623b6836c0d68a574fba4d58bbc16b17cb (diff) | |
download | inf110-lfi-88c2c12c57568de9edac5ff2775aab7bb0ebf287.tar.gz inf110-lfi-88c2c12c57568de9edac5ff2775aab7bb0ebf287.tar.bz2 inf110-lfi-88c2c12c57568de9edac5ff2775aab7bb0ebf287.zip |
Try to make description of S,K,I combinators slightly less confusing.
-rw-r--r-- | transp-inf110-02-typage.tex | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/transp-inf110-02-typage.tex b/transp-inf110-02-typage.tex index 188b7eb..19bc7ae 100644 --- a/transp-inf110-02-typage.tex +++ b/transp-inf110-02-typage.tex @@ -3207,12 +3207,12 @@ $A,B,C,\ldots$ sont \alert{remplacés par des formules qcqes} : \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$ -\quad \itempoint $A\Rightarrow B \Rightarrow A\land B$ +\quad\itempoint $A\land B \Rightarrow B$ +\quad\itempoint $A\Rightarrow B \Rightarrow A\land B$ +\quad\itempoint $\top$ \quad\itempoint $\bot \Rightarrow C$ \item $A \Rightarrow A \lor B$ -\quad \itempoint $B \Rightarrow A \lor B$ -\quad \itempoint $(A\Rightarrow C)\Rightarrow(B\Rightarrow C)\Rightarrow (A\lor B\Rightarrow C)$ -\item $\top$ \quad\itempoint $\bot \Rightarrow C$ +\quad\itempoint $B \Rightarrow A \lor B$ +\quad\itempoint $(A\Rightarrow C)\Rightarrow(B\Rightarrow C)\Rightarrow (A\lor B\Rightarrow C)$ \end{itemize} \par} @@ -3228,9 +3228,11 @@ non typé comme simplement typé. {\footnotesize (On n'a même pas besoin de \medskip -\itempoint Idée de la conversion : remplacer $\lambda x.uv$ par -$\mathsf{S}(\lambda x.u)(\lambda x.v)$ et $\lambda x.y$ par -$\mathsf{K}y$. +\itempoint Idée de la conversion : remplacer $\lambda x.x$ par +$\mathsf{I}$, $\lambda x.y$ par $\mathsf{K}y$ (si $x$ n'apparaît pas +dans $y$) et $\lambda x.uv$ par $\mathsf{S}(\lambda x.u)(\lambda +x.v)$. {\footnotesize (On peut aussi « $\eta$-convertir » $\lambda + x.fx$ en $f$.)} {\footnotesize P.ex. : $\lambda f.\lambda x.f(fx)$ se réécrit $\lambda f. \mathsf{S}(\mathsf{K}f)f$ donc |