From 37bdf38167dfb5efc55f4a37b08aac835a348486 Mon Sep 17 00:00:00 2001
From: "David A. Madore" <david+git@madore.org>
Date: Mon, 30 Oct 2023 08:45:58 +0100
Subject: Representation of functions by terms of the lambda-calculus.

---
 transp-inf110-01-calc.tex | 40 ++++++++++++++++++++++++++++++++++++++--
 1 file changed, 38 insertions(+), 2 deletions(-)

(limited to 'transp-inf110-01-calc.tex')

diff --git a/transp-inf110-01-calc.tex b/transp-inf110-01-calc.tex
index 15f5e79..a7504a0 100644
--- a/transp-inf110-01-calc.tex
+++ b/transp-inf110-01-calc.tex
@@ -1901,8 +1901,8 @@ machine de Turing qui, pour tous $x_1,\ldots,x_k$ :
 (suivi d'une infinité de $0$), c'est-à-dire $\beta(0)=0$, $\beta(j)=1$
 si $1\leq j\leq x_1$, $\beta(1+x_1)=0$, $\beta(j)=1$ si $2+x_1\leq
 j\leq 1+x_1+x_2$, etc.,
-\item si $f(x_1,\ldots,f_k)\uparrow$, la machine ne s'arrête pas,
-\item si $f(x_1,\ldots,f_k){\downarrow} = y$, la machine s'arrête avec
+\item si $f(x_1,\ldots,x_k)\uparrow$, la machine ne s'arrête pas,
+\item si $f(x_1,\ldots,x_k){\downarrow} = y$, la machine s'arrête avec
   la tête à l'emplacement $0$ (le même qu'au départ), le ruban
   $\beta(j)$ non modifié pour $j<0$, et
 \item les symboles $\beta(j)$ pour $j\geq 0$ du ruban final forment
@@ -2763,6 +2763,42 @@ x.f(f^{(n)}(x)) = \lambda f.\lambda x.f^{(n+1)}(x) = \underline{n+1}
 \end{aligned}
 \]
 
+\end{frame}
+%
+\begin{frame}
+\frametitle{Calculs dans le $\lambda$-calcul : une convention}
+
+On dira qu'une fonction $f\colon \mathbb{N}^k \dasharrow \mathbb{N}$
+est \textbf{représentable par un $\lambda$-terme} lorsqu'il existe un
+terme clos $t$ tel que, pour tous $x_1,\ldots,x_k \in \mathbb{N}$ :
+\begin{itemize}
+\item si $f(x_1,\ldots,x_k){\downarrow}=y$ alors
+  $t\underline{x_1}\cdots\underline{x_k}
+  \twoheadrightarrow_{\mathsf{lft}} \underline{y}$,
+\item si $f(x_1,\ldots,x_k){\uparrow}$ alors
+  $t\underline{x_1}\cdots\underline{x_k} \rightarrow_{\mathsf{lft}}
+  \cdots$ ne termine pas,
+\end{itemize}
+où $\underline{z}$ désigne l'entier de Church associé
+à $z\in\mathbb{N}$.
+
+\bigskip
+
+Exemples :
+\begin{itemize}
+\item $\lambda mfx.f(mfx)$ représente $m \mapsto m+1$
+  (transp. précédent),
+\item $\lambda mnfx.nf(mfx)$ représente $(m,n) \mapsto m+n$,
+\item $\lambda mnf.n(mf)$ représente $(m,n) \mapsto mn$ {\footnotesize
+  (itérer $n$ fois l'itérée $m$-ième)},
+\item $\lambda mn.nm$ représente $(m,n) \mapsto m^n$ {\footnotesize
+  (itérer $n$ fois l'itération $m$-ième)}.
+\item $\lambda mnp.p(\lambda y.n)m$ représente $(m,n,p) \mapsto
+  \left\{\begin{array}{ll}m&\text{~si~}p=0\\n&\text{~si~}p\geq
+  1\end{array}\right.$\\{\footnotesize (itérer $p$ fois « remplacer
+    par $n$ »)}.
+\end{itemize}
+
 \end{frame}
 %
 % Add somewhere:
-- 
cgit v1.2.3

