DM: Quelques modèles de graphes du 𝜆-calcul
DM de $𝜆$-calcul
Younesse Kaddar.
I. Les modèles de graphes
1.
Soit $(B_i)_{i∈I} ∈ ℙ(D)^I$ une famille dirigée telle que
\[B ≝ \bigcup\limits_{i∈I} B_i\]et $E ≝ \lbrace e_j \rbrace_{j∈⟦1,n⟧}⊆B$ une partie finie de $D$.
Comme $E⊆B$, pour tout $j∈⟦1,n⟧$, il existe $i_j∈I$ tel que
\[e_j ∈ B_{i_j}\]Or comme $(B_i)_{i∈I}$ est dirigée et $\lbrace B_{i_j} \rbrace_{j∈⟦1,n⟧}$ est finie, il existe $i∈I$ tel que
\[B_i \; \text{ majore } \; \lbrace B_{i_j} \rbrace_{j∈⟦1,n⟧}\]i.e :
\[∀j∈⟦1, n⟧, \; B_{i_j} ⊆ B_i\]Par suite :
\[E ≝ \lbrace e_j \rbrace_{j∈⟦1,n⟧} ⊆ \bigcup\limits_{j∈⟦1, n⟧} B_{i_j} ⊆ B_i\]On a donc montré que :
Il existe un $i∈I$ tel que
\[E⊆B_i\]
2.
Soit $A∈ℙ(D)$.
Montrons que
$i_D(A) : ℙ(D) ⟶ ℙ(D)$ est Scott-continue
-
Elle est monotone :
Si $B, B’ ∈ ℙ(D)$ sont telles que $B ⊆ B’$ :
\[\begin{align*} i_D(A)(B) &≝ \; \lbrace d ∈ D \mid ∃E ∈ ℙ_{fin}(D); \; E ⊆ B \text{ et } (E ⟶_D d) ∈ A\rbrace \\ &⊆ \lbrace d ∈ D \mid ∃E ∈ ℙ_{fin}(D); \; E ⊆ B' \supseteq B \text{ et } (E ⟶_D d) ∈ A\rbrace = i_D(A)(B') \end{align*}\] -
Elle préserve les sups dirigés :
Soit $(B_i)_{i∈I} ∈ ℙ(D)^I$ une famille dirigée.
-
\(\bigcup\limits_{i∈I} i_D(A)(B_i) ≤ i_D(A) \Big(\bigcup\limits_{i∈I} B_i\Big)\) vient du fait que : $∀i∈I, \; i_D(A)(B_i) ≤ i_D(A)(\bigcup\limits_{i∈I} B_i)$, par monotonie de $i_D(A)$
-
\[\begin{align*}
i_D(A) \Big(\bigcup\limits_{i∈I} B_i\Big) & = \Big\lbrace d ∈ D \mid ∃E ∈ ℙ_{fin}(D); \; E ⊆ \bigcup\limits_{i∈I} B_i \text{ et } (E ⟶_D d) ∈ A\Big\rbrace \\
& = \Big\lbrace d ∈ D \mid ∃E ∈ ℙ_{fin}(D); \; ∃i∈I; \; E ⊆ B_i \text{ et } (E ⟶_D d) ∈ A\Big\rbrace &&\text{(par I.1))}\\
& = \Big\lbrace d ∈ D \mid∃i∈I; \; ∃E ∈ ℙ_{fin}(D); \; E ⊆ B_i \text{ et } (E ⟶_D d) ∈ A\Big\rbrace \\
& ⊆ \bigcup\limits_{i∈I} \Big\lbrace d ∈ D \mid ∃E ∈ ℙ_{fin}(D); \; E ⊆ B_i \text{ et } (E ⟶_D d) ∈ A\Big\rbrace \\
& = \bigcup\limits_{i∈I} i_D(A)(B_i)
\end{align*}\]
Donc \(\bigcup\limits_{i∈I} i_D(A)(B_i) = i_D(A) \Big(\bigcup\limits_{i∈I} B_i\Big)\)
-
-
$i_D$ elle-même est Scott-continue de $ℙ(D)$ vers $[ℙ(D) ⟶ ℙ(D)]$
-
$r_D$ est Scott-continue
-
$i_D \circ r_D = id_{ℙ(D)}$
-
$D⟦x⟧𝜌 = 𝜌(x)$
-
$D⟦uv⟧𝜌 = i_D(D⟦u⟧𝜌)(D⟦v⟧𝜌)$
-
$D⟦𝜆x. u⟧𝜌 = r_D(A \mapsto D⟦u⟧(𝜌[x := A]))$
-
pour tous $𝜆$-termes $u, v$ $𝛽$-équivalents, pour tout environnement $𝜌$, $D⟦u⟧𝜌 = D⟦v⟧𝜌$
-
$ℙ_{fin}(D) ∋ A \mapsto D ⟦u⟧ (𝜌[x := A])$, pour n’importe quel terme $u$ et n’importe quel environnement $𝜌$, est Scott-continue.
3.
Soient $x, y$ deux variables distinctes.
\[\begin{align*} D⟦𝜆x.x⟧ & = r_D(A \mapsto \underbrace{D⟦x⟧(x\mapsto A)}_{ = A}) \\ & = \lbrace E ⟶_D d \mid E∈ℙ_{fin}(D), \; d∈ E \rbrace \\ \end{align*}\] \[\begin{align*} D⟦𝜆x, y.xy⟧ & = r_D\Big(A \mapsto \underbrace{D⟦𝜆y. xy⟧(x\mapsto A)}_{ = \; r_D\big(B \mapsto D ⟦xy⟧ (x \mapsto A, \, y \mapsto B)\big)}\Big) \\ & = r_D\Big(A \mapsto r_D\big(B \mapsto \underbrace{D ⟦xy⟧ (x \mapsto A, \, y \mapsto B)}_{ =\; i_D(A)(B)} \big)\Big) \\ & = r_D (A \mapsto r_D \circ i_D(A)) \\ & = \lbrace E ⟶_D d \mid E∈ℙ_{fin}(D), \; d∈ r_D\circ i_D (E) \rbrace \end{align*}\]Or, $∀E∈ℙ_{fin}(D)$ :
\[\begin{align*} r\circ i_D (E) & = \lbrace E' ⟶_D d' \mid E'∈ℙ_{fin}(D), \; d'∈ i_D(E)(E') \rbrace \\ & = \Big\lbrace E' ⟶_D d' \mid E'∈ℙ_{fin}(D), \; d'∈ \lbrace d'' ∈ D \mid ∃E'' ∈ ℙ_{fin}(D); \; E'' ⊆ E' \text{ et } (E'' ⟶_D d'') ∈ E\rbrace \Big\rbrace \\ & = \Big\lbrace E' ⟶_D d' \mid E'∈ℙ_{fin}(D), \; d'∈ D; \;∃E'' ⊆ E' ;\; (E'' ⟶_D d') ∈ E \Big\rbrace \\ \end{align*}\]Donc
\[\begin{align*} D⟦𝜆x, y.xy⟧ & = \Big\lbrace E ⟶_D (E' ⟶_D d') \mid E, E'∈ℙ_{fin}(D), \; d'∈ D; \;∃E'' ⊆ E' \text{ et } (E'' ⟶_D d') ∈ E \Big\rbrace \\ \end{align*}\]Comme $⟶_D : ℙ_{fin}(D) × D ⟶ D$ est injective et $D$ est non vide, $D$ est infini, et il existe deux élément $d, d’∈D$ tels que $d ≠ d’$.
Il vient alors que :
\[\big\lbrace \lbrace d \rbrace ⟶_D d \big\rbrace ⟶_D (\lbrace d, d' \rbrace ⟶_D d) ∈ D⟦𝜆x, y.xy⟧ \backslash D⟦𝜆x.x⟧\]puisque
- $\lbrace d \rbrace ⊆ \lbrace d, d’ \rbrace$ et $\lbrace d \rbrace ⟶_D d ∈ \big\lbrace \lbrace d \rbrace ⟶_D d \big\rbrace$
- mais $\lbrace d, d’ \rbrace ⟶_D d ∉ \big\lbrace \lbrace d \rbrace ⟶_D d \big\rbrace$
On a donc montré que
aucun modèle de graphe $(D, ⟶_D)$ ne valide la $𝜂$-règle
4.
\[\begin{align*} D⟦𝜆x. xx⟧ & = r_D\Big(A \mapsto \underbrace{D⟦xx⟧(x\mapsto A)}_{ = \; i_D(A)(A)}\Big) \\ & = \lbrace E' ⟶_D d' \mid E'∈ℙ_{fin}(D), \; d'∈ i_D (E')(E') \rbrace \\ & = \Big\lbrace E' ⟶_D d' \mid E'∈ℙ_{fin}(D), \; d'∈ \lbrace d'' ∈ D \mid ∃E'' ⊆ E' \text{ et } (E'' ⟶_D d'') ∈ E'\rbrace \Big\rbrace \\ & = \lbrace E' ⟶_D d' \mid E'∈ℙ_{fin}(D), \; d'∈ D; \; ∃E'' ⊆ E' \text{ et } (E'' ⟶_D d') ∈ E' \rbrace \\ \end{align*}\]Et
\[\begin{align*} D⟦𝛺⟧ & = i_D(D⟦𝜆x. xx⟧)(D⟦𝜆x. xx⟧) \\ & = \lbrace d ∈ D \mid ∃E ∈ℙ_{fin}(D);\; E⊆ D⟦𝜆x. xx⟧ \text{ et } (E ⟶_D d) ∈ D⟦𝜆x. xx⟧\rbrace \end{align*}\]Supposons qu’il existe $d∈D⟦𝛺⟧$.
Il existe alors $E_0 ∈ℙ_{fin}(D)$ tel que
$E_0⊆ D⟦𝜆x. xx⟧$ et
\[\hspace{15em}\underbrace{(E_0 ⟶_D d) ∈ D⟦𝜆x. xx⟧}_{\large{\text{d'où l'existence d'un } E_1⊆E_0⊆D⟦𝜆x. xx⟧ \text{ tel que } \underbrace{(E_1 ⟶_D d) ∈ E_0⊆ D⟦𝜆x. xx⟧}_{\llap{\LARGE{\text{d'où l'existence d'un } E_2⊆E_1⊆D⟦𝜆x. xx⟧ \text{ tel que } \underbrace{(E_2 ⟶_D d) ∈ E_1⊆D⟦𝜆x. xx⟧}_{\llap{\LARGE{\text{ d'où l'existence d'un } E_3⊆E_2⊆D⟦𝜆x. xx⟧ \text{ tel que } \underbrace{(E_3 ⟶_D d) ∈ E_2⊆ D⟦𝜆x. xx⟧}_{\hspace{4.9em}\vdots \\\hspace{10em}\llap{\text{d'où l'existence d'un } E_{n+1}⊆E_n⊆D⟦𝜆x. xx⟧ \text{ tel que } (E_{n+1} ⟶_D d) ∈ E_n⊆ D⟦𝜆x. xx⟧}}}}}}}}}}\]On peut ainsi construire une suite décroissante $(E_n)_{n∈ℕ} ∈ D⟦𝜆x. xx⟧^ℕ$ tel que $∀n∈ℕ$ :
\[(E_{n+1} ⟶_D d) ∈ E_n \qquad ⊛\]Comme $(E_n)_{n∈ℕ}$ décroît et $E_0$ est finie, $(E_n)_{n∈ℕ}$ stationne en une partie $E_∞ ⊆ E_0∈ℙ_{fin}(D)$ qui vérifie, par $⊛$ :
\[(E_∞ ⟶_D d) ∈ E_∞\]On a donc montré que :
si $d∈d∈D⟦𝛺⟧$, alors il existe $E_∞ ∈ℙ_{fin}(D)$ tel que
\[(E_∞ ⟶_D d) ∈ E_∞\]
5.
NB : Pour tout arbre $d∈{\cal E}_C$, on notera $size(d)$ la taille de $d$, c’est-à-dire son nombre de noeuds (noeuds internes et feuilles).
S'il existait $d∈{\cal E}_C ⟦𝛺⟧≠∅$, par I.4), il existerait un $E∈ℙ_{fin}({\cal E}_C)$ tel que l’arbre fini $E ⟶ d$ appartiendrait à son fils gauche $E$, ce qui est absurde puisqu’alors :
\[\begin{align*} size(E ⟶ d) & = 1 + size(d) + \sum\limits_{ d' ∈ E } size(d') \\ & = 1 + \underbrace{size(d) + \sum\limits_{ d' ∈ E\backslash \lbrace E ⟶ d \rbrace } size(d')}_{≥0} + size(E ⟶ d)\\ \end{align*}\]On a donc montré que
\[{\cal E}_C ⟦𝛺⟧=∅\]
6.
Supposons qu’il existe un test de normalisabilité de tête $t$.
Par II.5) :
\[{\cal E}_C ⟦𝛺⟧ = ∅ ⊆ {\cal E}_C⟦𝜆x.x⟧\]donc par monotonie de $i_{ {\cal E}_C}({\cal E}_C ⟦t⟧)$ :
\[{\cal E}_C ⟦t𝛺⟧ = i_{ {\cal E}_C}({\cal E}_C ⟦t⟧)({\cal E}_C ⟦𝛺⟧) ⊆ i_{ {\cal E}_C}({\cal E}_C ⟦t⟧)({\cal E}_C⟦𝜆x.x⟧) = {\cal E}_C ⟦t(𝜆x.x)⟧ \quad⊛\]Or, $𝛺$ n’a pas de forme normale de tête.
-
en effet : on a vu en cours qu’on peut écrire tout $𝜆$-terme $u$ de façon unique sous la forme de tête
\[𝜆x_1,\ldots, x_n . \underbrace{h}_{\text{tête de } u} u_1 ⋯ u_m\]où
- $h u_1 \ldots u_m$ n’est pas une abstraction
- $h$ n’est pas une application
- $n, m≥0$
Or, la forme de tête de $𝛺$ :
\[\underbrace{\underbrace{(𝜆x. xx)}_{\text{tête de } 𝛺}(𝜆x. xx)}_{\text{rédex de tête de } u}\]n’est pas une forme normale de tête (le tête n’est pas une variable).
Par suite,
-
comme $t𝛺$ et $\mathbf{F}$ sont $𝛽$-équivalents, ${\cal E}_C ⟦t𝛺⟧ = {\cal E}_C ⟦\mathbf{F}⟧$
-
de même, ${\cal E}_C ⟦t(𝜆x.x)⟧ = {\cal E}_C ⟦\mathbf{V}⟧$ ($𝜆x.x$ est déjà en forme normale de tête)
Donc, par $⊛$ :
\[{\cal E}_C ⟦\mathbf{F}⟧ ⊆ {\cal E}_C ⟦\mathbf{V}⟧\]On a montré que :
S’il existe un test de normalisabilité de tête $t$, alors
\[{\cal E}_C ⟦\mathbf{F}⟧ ⊆ {\cal E}_C ⟦\mathbf{V}⟧\]
7.
Supposons qu’il existe un test de normalisabilité de tête, ce qui implique, par II.6), que ${\cal E}_C ⟦\mathbf{F}⟧ ⊆ {\cal E}_C ⟦\mathbf{V}⟧$.
Alors pour toutes variables $x$ et $y$ :
\[{\cal E}_C ⟦\mathbf{F}x⟧ = i_{ {\cal E}_C}({\cal E}_C ⟦\mathbf{F}⟧)(⟦x⟧) ⊆ i_{ {\cal E}_C}({\cal E}_C ⟦\mathbf{V}⟧)(⟦x⟧) = {\cal E}_C ⟦\mathbf{V}x⟧ \\ ⟹ {\cal E}_C ⟦\mathbf{F}xy⟧ = i_{ {\cal E}_C}({\cal E}_C ⟦\mathbf{F}x⟧)(⟦y⟧) ⊆ i_{ {\cal E}_C}({\cal E}_C ⟦\mathbf{V}x⟧)(⟦y⟧) = {\cal E}_C ⟦\mathbf{V}xy⟧ \quad ⊛\]par monotonie de $i_{ {\cal E}_C}$ (l’ordre sur $[ℙ({\cal E}_C) ⟶ ℙ({\cal E}_C)]$ étant l’ordre point à point).
Or, pour tout environnement $𝜌$ non constant, il existe deux variables $x$ et $y$ telles que :
\[\left.\begin{cases} 𝜌(y) \not⊆ 𝜌(x) \\ {\cal E}_C ⟦\mathbf{F}xy⟧ = {\cal E}_C ⟦y⟧ = 𝜌(y) &&\text{(car } \mathbf{F}xy =_𝛽 y \text{ )}\\ {\cal E}_C ⟦\mathbf{V}xy⟧ = {\cal E}_C ⟦x⟧ = 𝜌(x) &&\text{(car } \mathbf{V}xy =_𝛽 x \text{ )} \end{cases}\right)⊛⊛\]Et comme il existe un environnement non constant (car ${\cal E}_C$ est infini, comme on l’a vu en I.3)), $⊛⊛$ contredit $⊛$.
On a donc montré qu’il n’existe pas de test de normalisabilité de tête.
8.
Soit $t$ un terme qui a une forme normale de tête.
\[t =_𝛽 \underbrace{𝜆x_1,\ldots, x_n . \underbrace{h}_{\text{variable de tête}} u_1 ⋯ u_m}_{\text{forme normale de tête}}\]Remarquons que si $t$ n’est pas clos, le terme $𝜆y_1, \ldots, y_k. t$, où $\lbrace y_1 , ⋯, y_k \rbrace = fv(t)$, a encore une forme normale de tête :
\[𝜆y_1, \ldots, y_k t =_𝛽 𝜆y_1, \ldots, y_k, x_1,\ldots, x_n . h u_1 ⋯ u_m\]Donc quitte à considérer $𝜆y_1, \ldots, y_k. t$ (d’après la définition de la résolubilité d’un terme non clos), on peut supposer que $t$ est clos.
Comme $t$ est clos, $𝜆 x_1,\ldots, x_n . h u_1 ⋯ u_m$ est clos, puisque les $𝛽$-réductions ne font pas apparaître de nouvelles variables libres.
-
en effet :
Si
- $(𝜆x. u)v ⟶_𝛽 u[x := v]$
- et $fv\big((𝜆x. u)v\big) ≝ \big(fv(u)\backslash \lbrace x \rbrace\big) ∪ fv(v) = ∅$
alors $fv(u[x := v]) = ∅$
Preuve : par induction structurelle sur $u$ :
-
si $u = x$ :
$u[x := v] = v$ et on a bien $fv(u[x := v]) = fv(v) = ∅$
-
si $u$ est une variable $y≠x$ :
$u[x := v] = y = u$, d’où
\[\begin{align*} fv(u[x := v]) & = fv(u) \\ & = \lbrace y \rbrace \\ & = \lbrace y \rbrace \backslash \lbrace x \rbrace \\ & = fv(u)\backslash \lbrace x \rbrace \\ & = ∅ \end{align*}\] -
si $u = u_1 u_2$
$\underbrace{fv(u)}_{\rlap{= \, fv(u_1) ∪ fv(u_2)}}\backslash \lbrace x \rbrace = ∅$ implique que
- $fv(u_1)\backslash \lbrace x \rbrace=∅$
- $fv(u_2)\backslash \lbrace x \rbrace=∅$
donc, comme $fv(v)=∅$ :
- $\big(fv(u_1)\backslash \lbrace x \rbrace \big)∪ fv(v)=∅$
- $\big(fv(u_2)\backslash \lbrace x \rbrace \big) ∪ fv(v)=∅$
et par hypothèse de récurrence sur $u_1$ et $u_2$ :
\[fv(u_1 [x := v]) = ∅ = fv(u_2 [x := v])\]donc, comme $u[x := v] = (u_1 [x := v])(u_2 [x := v])$ :
\[fv(u[x := v]) = fv(u_1 [x := v]) ∪ fv(u_2 [x := v]) = ∅\] -
si $u = 𝜆y. u’$ :
$u[x := v] = 𝜆y. (u’ [x := v])$, et :
\[fv(u[x := v]) = fv(u' [x := v])\backslash \lbrace y \rbrace = ∅\]par hypothèse de récurrence sur $u’$, puisque
\[\big(\underbrace{fv(u')}_{⊆ fv(u)}\backslash \lbrace x \rbrace \big) ∪ fv(v) ⊆ \big(fv(u)\backslash \lbrace x \rbrace \big) ∪ fv(v) = ∅\]
Donc $h$ est nécessairement l’un des $x_i$ : $h ≝ x_i$
Il vient alors que
\[\begin{align*} t \; \underbrace{x_1 ⋯ x_{i-1} (𝜆y_1, \ldots, y_m. \mathbf{I}) x_{i+1} ⋯ x_n}_{≝ \, \overrightarrow{u}} & =_𝛽 \overbrace{\bigg( \Big( 𝜆 x_1. \big(𝜆 x_2, \ldots, x_n . x_i u_1 ⋯ u_m \big) \Big) x_1 \bigg)}^{⟶_𝛽 \; 𝜆 x_2, \ldots, x_n . \; x_i u_1 ⋯ u_m} \; x_2 ⋯ x_{i-1} (𝜆y_1, \ldots, y_m. \mathbf{I}) x_{i+1} ⋯ x_n \\ & =_𝛽 \overbrace{\bigg( \Big( 𝜆 x_2. \big(𝜆 x_3, \ldots, x_n . x_i u_1 ⋯ u_m \big) \Big) x_2 \bigg)}^{⟶_𝛽 \; 𝜆 x_3, \ldots, x_n . \; x_i u_1 ⋯ u_m} \; x_3 ⋯ x_{i-1} (𝜆y_1, \ldots, y_m. \mathbf{I}) x_{i+1} ⋯ x_n \\ & \vdots \\ & =_𝛽 \overbrace{\bigg( \Big( 𝜆 x_{i-2}. \big(𝜆 x_{i-1}, \ldots, x_n . x_i u_1 ⋯ u_m \big) \Big) x_{i-2} \bigg)}^{⟶_𝛽 \; 𝜆 x_{i-1}, \ldots, x_n . \; x_i u_1 ⋯ u_m} \; x_{i-1} (𝜆y_1, \ldots, y_m. \mathbf{I}) x_{i+1} ⋯ x_n \\ & =_𝛽 \overbrace{\bigg( \Big( 𝜆 x_{i-1}. \big(𝜆 x_i, \ldots, x_n . x_i u_1 ⋯ u_m \big) \Big) x_{i-1} \bigg)}^{⟶_𝛽 \; 𝜆 x_{i}, \ldots, x_n . \; x_i u_1 ⋯ u_m} \; (𝜆y_1, \ldots, y_m. \mathbf{I}) x_{i+1} ⋯ x_n \\ & =_𝛽 \bigg( \Big( 𝜆 x_{i}. \big(𝜆 x_{i+1}, \ldots, x_n . x_i u_1 ⋯ u_m \big) \Big) (𝜆y_1, \ldots, y_m. \mathbf{I}) \bigg) \; x_{i+1} ⋯ x_n \\ & =_𝛽 \bigg(𝜆 x_{i+1}, \ldots, x_n . \; \underbrace{(𝜆y_1, \ldots, y_m. \mathbf{I}) \big(u_1 [x_i := 𝜆y_1, \ldots, y_m. \mathbf{I}]\big) ⋯ \big(u_m [x_i := 𝜆y_1, \ldots, y_m. \mathbf{I}]\big)}_{⟶^m_𝛽 \; \mathbf{I}}\bigg) \; x_{i+1} ⋯ x_n \\ & =_𝛽 \Big(𝜆 x_{i+1}, \ldots, x_n . \; \mathbf{I} \Big) \; x_{i+1} ⋯ x_n \\ & =_𝛽 \; \mathbf{I} \end{align*}\]On a donc montré que
Si un terme $t$ a une forme normale de tête, il est résoluble.
9.
Soit $t$ un terme clos résoluble, i.e il existe une suite $\overrightarrow{u}$ telle que $t \overrightarrow{u} =_𝛽 \mathbf{I}$.
Par l’absurde : Supposons que $D⟦t⟧=∅$.
Alors
\[i_D(D⟦t⟧) = i_D(∅) = \begin{cases} ℙ(D) &⟶ ℙ(D) \\ B &\mapsto \; \lbrace d ∈ D \mid ∃E ∈ ℙ_{fin}(D); \; E ⊆ B \text{ et } (E ⟶_D d) ∈ ∅\rbrace \\ & \qquad = ∅ \end{cases}\]i.e :
\[i_D(D⟦t⟧) = ℙ(D) ⟶ ℙ(D), B \mapsto ∅ \qquad ⊛\]Par ailleurs :
\[D⟦t \overrightarrow{u}⟧ = \begin{cases} D⟦\,\mathbf{I}\,⟧ = \lbrace E ⟶_D d \mid E∈ℙ_{fin}(D), \; d∈ E \rbrace\\ i_D(D⟦t⟧)(D⟦\overrightarrow{u}⟧) = ∅ &&\text{(par } ⊛ \text{)} \end{cases}\]Donc $\lbrace E ⟶_D d \mid E∈ℙ_{fin}(D), \; d∈ E \rbrace = ∅ \quad ⊛⊛$.
Or, comme $D$ est non vide, il existe $d∈D$, d’où :
\[\lbrace d \rbrace ⟶ d ∈ \lbrace E ⟶_D d \mid E∈ℙ_{fin}(D), \; d∈ E \rbrace ≠ ∅\]ce qui contredit $⊛⊛$.
On a donc montré que :
tout terme $t$ clos et résoluble vérifie
\[D⟦t⟧=∅\]
10.
$𝛺 ≝ (𝜆x. xx)(𝜆x. xx)$ n’est pas résoluble.
en effet :
Méthode 1 :
On a montré en III. 9) que, pour tout terme $t$ : si $t$ est résoluble, alors pour tout modèle de graphes $(D, ⟶_D)$, $D⟦t⟧≠∅$.
Par contraposée, pour tout terme $t$ : s’il existe un modèle de graphes $(D, ⟶_D)$ tel que $D⟦t⟧=∅$, alors $t$ n’est pas résoluble.
Or, par II.5) : ${\cal E}_C⟦𝛺⟧ = ∅$. Donc $𝛺$ n’est pas résoluble.
Méthode 2 :
S'il existait une suite $\overrightarrow{u}$ telle que $𝛺 \overrightarrow{u} =_𝛽 \mathbf{I}$, alors $𝛺 \overrightarrow{u}$ serait faiblement normalisant, et d’après le théorème de standardisation, la réduction gauche $⟶_{g}^\ast$ calculerait la forme normale de $𝛺 \overrightarrow{u}$ (c’est-à-dire $\mathbf{I}$) par une réduction finie.
Or, elle boucle indéfiniment :
\[\underline{(𝜆x. xx)(𝜆x. xx)} \overrightarrow{u} ⟶_{\text{lm}} \underline{(𝜆x. xx)(𝜆x. xx)} \overrightarrow{u} ⟶_{\text{lm}} ⋯\]11.
Soit $S’$ un ensemble saturé.
Montrons que, pour tout ensemble $S$, $S⟹S’$ est saturé.
Soit $S$ un ensemble, soit $u[x := t]v_1 v_2 ⋯ v_n ∈ S⟹S’$.
Montrons que $(𝜆x. u) t v_1 v_2 ⋯ v_n ∈ S⟹S’$, i.e que pour tout $v∈S$, $(𝜆x. u) t v_1 v_2 ⋯ v_n v ∈ S’$.
Soit $v∈S$.
Comme $u[x := t]v_1 v_2 ⋯ v_n ∈ S⟹S’$ :
\[u[x := t]v_1 v_2 ⋯ v_n v ∈ S'\]et comme $S’$ est saturé :
\[(𝜆x. u) t v_1 v_2 ⋯ v_n v ∈ S'\]Le résultat est acquis.
On a montré que
Si $S’$ est saturé, $S⟹S’$ le reste pour tout ensemble $S$.
12.
Soient $t$ un $𝜆$-terme dont la réduction de tête
\[t ⟶_t t_1 ⟶_t t_2 ⟶_t ⋯\]ne termine pas, et $x$ une variable.
Par l’absurde : supposons que la réduction de tête de $tx$ termine.
Alors nécessairement, l’un des $t_i$ est une $𝜆$-abstraction.
-
car sinon : $tx$ a une réduction de tête infinie :
\[tx ⟶_t t_1 x ⟶_t t_2 x ⟶_t ⋯\]puisqu’aucun $t_i x$ n’est un rédex qui se contracte.
Notons $i$ le plus petit indice tel que $t_i$ est une $𝜆$-abstraction :
\[t_i ≝ 𝜆 y. u\]Alors
\[tx ⟶_t t_1 x ⟶_t ⋯ ⟶_t \underbrace{t_i}_{= 𝜆y. u} x ⟶_t u[y:=x]\]où $u[y:=x]$ a une réduction de tête finie (puisque c’est le cas de $tx$).
Montrons que
le fait que $u[y:=x]$ ait une réduction de tête finie implique que $u$ a une réduction de tête finie.
Preuve :
Par l’absurde, si $u$ avait une réduction de tête infinie :
\[u ⟶_t u_1 ⟶_t u_2 ⟶_t ⋯\]montrons que $u[y:=x]$ aurait la réduction de tête infinie :
\[u[y:=x] ⟶_t u_1[y:=x] ⟶_t u_2[y:=x] ⟶_t ⋯\]-
En effet : il suffit (le reste s’ensuit de manière immédiate) de montrer que :
si $u ⟶_t u_1$, alors $u[y:=x] ⟶_t u_1[y:=x]$
Preuve : supposons que
\[u ≝ 𝜆x_1, \ldots, x_n. \underbrace{(𝜆z. v) u'_1}_{\text{rédex de tête}} ⋯ u'_m ⟶_t 𝜆x_1, \ldots, x_n. v[z := u'_1] u'_2 ⋯ u'_m ≝ u_1\]NB : $u$ n’est pas en forme normale de tête car sinon la réduction de tête s’arrête.
Alors
\[\begin{cases} u[y:=x] &= 𝜆x_1, \ldots, x_n. \overbrace{\big((𝜆z. v)[y:=x]\big)}^{≝ \, 𝜆z. (v[y:=x]) \quad ⊛} \, (u'_1[y:=x]) (u'_1[y:=x]) ⋯ (u'_m[y:=x]) \\ &⟶_t 𝜆x_1, \ldots, x_n. (v[y:=x])\Big[z:= u'_1[y:=x]\Big] \, (u'_2[y:=x]) ⋯ (u'_m[y:=x])\\ \\ u_1[y:=x] &= 𝜆x_1, \ldots, x_n. \big(v[z := u'_1] [y:=x]\big) \, (u'_2[y:=x]) ⋯ (u'_m[y:=x]) \end{cases}\]Or :
\[v[y:=x]\big[z:= u'_1[y:=x]\big] = v[z := u'_1] [y:=x]\]-
en effet : on suppose, modulo $𝛼$-renommage, que
-
$y$ est substituable par $x$ dans $𝜆z. v$ ($⊛$), i.e
\[y, x∉ bv(v)∪ \lbrace z \rbrace\] -
$y$ est substituable par $x$ dans $u’_1$, i.e
\[y, x∉ bv(u'_1)\] -
$z$ est substituable par $u’_1[y:=x]$ dans $v[y:=x]$, i.e
\[z, fv(u'_1[y:=x])∉ bv(v[y:=x])\] -
$z$ est substituable par $u’_1$ dans $v$, i.e
\[z, fv(u'_1)∉ bv(v)\] -
$y$ est substituable par $x$ dans $v[z := u’_1]$, i.e
\[y, x∉ bv(v[z := u'_1])\]
et on le montre par induction structurelle sur $v$ :
-
si $v$ est une variable $x’∉ \lbrace y, z \rbrace$ :
\[\begin{cases} x'[y:=x]\big[z:= u'_1[y:=x]\big] = x' \\ x'[z := u'_1] [y:=x] = x' \end{cases}\] -
si $v = y$ :
\[\begin{cases} y[y:=x]\big[z:= u'_1[y:=x]\big] = x\big[z:= u'_1[y:=x]\big] = x &&\text{( } x≠z \text{)}\\ y[z := u'_1] [y:=x] = y[y:=x] = x &&\text{( } y≠z \text{)}\\ \end{cases}\] -
si $v = z$ :
\[\begin{cases} z[y:=x]\big[z:= u'_1[y:=x]\big] = z\big[z:= u'_1[y:=x]\big] = u'_1[y:=x] &&\text{( } z≠y \text{)}\\ z[z := u'_1] [y:=x] = u'_1[y:=x] \end{cases}\] -
si $v = v_1 v_2$ :
\[\begin{cases} (v_1 v_2)[y:=x]\big[z:= u'_1[y:=x]\big] = \Big(v_1[y:=x]\big[z:= u'_1[y:=x]\big]\Big) \Big(v_2[y:=x]\big[z:= u'_1[y:=x]\big]\Big) \\ (v_1 v_2)[z := u'_1] [y:=x] = \Big(v_1 [z := u'_1] [y:=x]\Big) \Big(v_2 [z := u'_1] [y:=x]\Big)\\ \end{cases}\]et on conclut avec
\[\begin{cases} v_1[y:=x]\big[z:= u'_1[y:=x]\big] = v_1 [z := u'_1] [y:=x]\\ v_2[y:=x]\big[z:= u'_1[y:=x]\big] = v_2 [z := u'_1] [y:=x]\\ \end{cases}\]par hypothèse de récurrence, puisque
\[\begin{cases} bv(v) = bv(v_1)∪bv(v_2) \\ bv(v[y:=x]) = bv(v_1[y:=x])∪ bv(v_2[y:=x])\\ bv(v[z := u'_1]) = bv(v_1[z := u'_1]) ∪ bv(v_2[z := u'_1]) \end{cases}\]d’où le fait que les hypothèses de “substituabilité” restent vérifiées
-
si $v = 𝜆z_1. v_1$ :
\[\begin{cases} v[y:=x]\big[z:= u'_1[y:=x]\big] = 𝜆z_1. \Big(v_1[y:=x]\big[z:= u'_1[y:=x]\big]\Big) \\ v[z := u'_1] [y:=x] = 𝜆z_1. \Big(v_1 [z := u'_1] [y:=x]\Big)\\ \end{cases}\]et on conclut avec
\[v_1[y:=x]\big[z:= u'_1[y:=x]\big] = v_1 [z := u'_1] [y:=x]\]par hypothèse de récurrence, puisque
\[\begin{cases} bv(v) = bv(v_1)∪ \lbrace z \rbrace \\ bv(v[y:=x]) = bv(v_1[y:=x])∪ \lbrace z \rbrace\\ bv(v[z := u'_1]) = bv(v_1[z := u'_1]) ∪ \lbrace z \rbrace \end{cases}\]d’où le fait que les hypothèses de “substituabilité” restent vérifiées
-
Donc
\[\begin{align*} u[y:=x] &⟶_t 𝜆x_1, \ldots, x_n. \underline{(v[y:=x])\Big[z:= u'_1[y:=x]\Big]} \, (u'_2[y:=x]) ⋯ (u'_m[y:=x])\\ & \; = \; 𝜆x_1, \ldots, x_n. \underline{\big(v[z := u'_1] [y:=x]\big)} \, (u'_2[y:=x]) ⋯ (u'_m[y:=x]) \\ & \; = \; u_1[y:=x] \end{align*}\]et le résultat est acquis.
-
Comme $u[y:=x]$ a une réduction de tête finie, il vient donc que $u$ a une réduction de tête finie.
Par suite, $𝜆y. u = t_i$ a une réduction de tête finie.
-
en effet : comme $u$ a une réduction de tête finie de la forme :
\[u ⟶_t u_1 ⟶_t ⋯ ⟶_t u_n\]il s’ensuit que $𝜆y. u$ a la réduction de tête finie :
\[𝜆y. u ⟶_t 𝜆y. u_1 ⟶_t ⋯ ⟶_t 𝜆y. u_n\]
Or, cela contredit le fait que $t$ ait une réduction de tête infinie, puisque
\[t ⟶_t t_1 ⟶_t t_2 ⟶_t t_i = 𝜆y.u\]On a donc montré que
Si $t$ est un $𝜆$-terme dont la réduction de tête ne termine pas, et $x$ une variable, alors la réduction de tête de $tx$ ne termine pas non plus.
13.
Soit $S’$ un $K$-candidat, et $S$ un ensemble de $𝜆$-termes contenant au moins une variable.
Montrons que $S ⟹ S’$ est un $K$-candidat.
1. $S ⟹ S’$ est saturé
En effet : on applique IV. 11), puisque $S’$ est saturé (car $S’$ est un $K$-candidat).
2. $S_0 ⊆ S ⟹ S’$
Si $x \overrightarrow{u} ∈ S_0$, montrons que $x \overrightarrow{u} ∈ S ⟹ S’$.
Soit $v∈S$.
Montrons que $x \overrightarrow{u} v ∈ S’$.
C’est le cas puisque $S_0 ⊆ S’$ (car $S’$ est un $K$-candidat) et :
\[x \overrightarrow{u} v ∈ S_0 ⊆ S'\]Donc $x \overrightarrow{u} ∈ S ⟹ S’$, et
\[S_0 ⊆ S ⟹ S'\]3. $S ⟹ S’ ⊆ S_h$
Si $u∈S ⟹ S’$, montrons que $u∈S_h$.
Comme $u∈S ⟹ S’$ et $S’ ⊆ S_h$ (car $S’$ est un $K$-candidat) :
\[∀v∈S, uv∈S' ⊆ S_h\]Par conséquent, pour toute variable $x∈S$ : $ux$ a une réduction de tête finie, ce qui implique, par contraposée de IV. 12), que $u$ aussi, c’est-à-dire que $u∈S_h$.
Or, il existe une variable $x∈S$ par hypothèse : donc
\[u∈S_h\]et il en résulte que
\[S ⟹ S' ⊆ S_h\]On a donc montré que
Si $S’$ est un $K$-candidat, et $S$ un ensemble de $𝜆$-termes contenant au moins une variable, $S ⟹ S’$ reste un $K$-candidat.
14.
Montrons, par induction structurelle sur le $𝜆$-terme $t$, que
Si $t$ est un $𝜆$-terme, et $𝜌, 𝜃, d$ tels que :
$𝜌 : \overbrace{Var}^{\text{variables}} ⟶ ℙ({\cal E}_C)$
$𝜃 ≝ [x_1 := v_1, ⋯ , x_n := v_n]$ est une substitution telle que $dom(𝜃) ≝ \lbrace x_1, \ldots, x_n \rbrace \supseteq fv(t)$
$∀i∈⟦1,n⟧, v_i ∈ I(𝜌(x_i))$
$d ∈ {\cal E}_C ⟦t⟧𝜌$
alors
\[t𝜃 ∈ I(d)\]
Si $t=x_1∈Var$
alors
- $d∈{\cal E}_C ⟦x_1⟧𝜌 = 𝜌(x_1)$
- $𝜃 ≝ [x_1 := v_1]$
- $v_1 ∈ I(𝜌(x_1))$
d’où :
\[\begin{align*} t𝜃 = v_1 & ∈ I(𝜌(x_1)) \\ & = \bigcap\limits_{d'∈𝜌(x_1)} I(d') \\ & = \bigcap\limits_{d'∈𝜌(x_1)\backslash \lbrace d \rbrace} I(d') ∩ I(d) \\ & ⊆ I(d) \end{align*}\]et le résultat est acquis.
Si $t=uv$
Alors
-
comme
\[d∈{\cal E}_C ⟦uv⟧𝜌 = i_{\cal E_c}({\cal E}_C ⟦u⟧𝜌)({\cal E}_C ⟦v⟧𝜌) \\ = \big\lbrace d'∈ {\cal E}_C \mid ∃ E ∈ ℙ_{fin}({\cal E}_C); \; E⊆{\cal E}_C ⟦v⟧𝜌 \text{ et } E ⟶_{ {\cal E}_C} d'∈{\cal E}_C ⟦u⟧𝜌 \big\rbrace\]il existe $E ≝ \lbrace e_i \rbrace_{i∈⟦1, N⟧}∈ ℙ_{fin}({\cal E}_C)$ telle que
- $E⊆{\cal E}_C ⟦v⟧𝜌$
- et $E ⟶_{ {\cal E}_C} d∈{\cal E}_C ⟦u⟧𝜌$
-
pour tout $i∈⟦1, N⟧$, $v𝜃 ∈ I(e_i)$ par hypothèse de récurrence sur $v$
- qu’il est loisible d’appliquer puisque les conditions d’application 1., 2. et 3. restent vérifiées (comme $fv(v)⊆fv(t)$) et $e_i∈E⊆{\cal E}_C ⟦v⟧𝜌$
Donc
\[v𝜃 ∈ \bigcap\limits_{i=1}^N I(e_i) = I(E)\] -
comme
- $E ⟶_{ {\cal E}_C} d∈{\cal E}_C ⟦u⟧𝜌$
- les conditions d’application 1., 2. et 3. sont vérifiées pour $u$ (comme $fv(u)⊆fv(t)$)
alors par hypothèse de récurrence sur $u$ :
\[u𝜃 ∈ I(E⟶_{ {\cal E}_C} d) = I(E) ⟹ I(d)\]
Par suite :
\[t𝜃 = (u𝜃)(v𝜃) ∈ I(d)\]puisque $u𝜃 ∈ I(E) ⟹ I(d)$ et $v𝜃 ∈ I(E)$.
Le résultat est acquis.
Si $t = 𝜆x.u$
Alors
-
comme
\[d∈{\cal E}_C ⟦𝜆x.u⟧𝜌 = r_{\cal E_c}(A \mapsto {\cal E}_C ⟦u⟧𝜌[x:=A])\\ = \big\lbrace E ⟶_{\cal E_c} d' \mid E ∈ ℙ_{fin}({\cal E}_C), \; d'∈{\cal E}_C ⟦u⟧𝜌[x:=E] \big\rbrace\]il existe $E∈ ℙ_{fin}({\cal E}_C), \; d’∈{\cal E}_C ⟦u⟧\overbrace{𝜌[x:=E]}^{≝ \, 𝜌’}$ tels que
\[d = E ⟶_{\cal E_c} d'\] -
pour tout $e∈I(E)$, comme
- $𝜌’ ≝ 𝜌[x:=E] : Var ⟶ ℙ({\cal E}_C)$
- $𝜃_e ≝ 𝜃[x:=e]$ est une substitution telle que
-
$e∈I(\overbrace{E}^{= \, 𝜌’(x)}) = I(𝜌’(x))$ et $∀i∈⟦1,n⟧, v_i ∈ I(𝜌(x_i))$
-
$d’∈{\cal E}_C ⟦u⟧𝜌’$
alors par hypothèse de récurrence sur $u$ :
\[u (𝜃 [x:=e]) = u 𝜃_e ∈ I(d') \quad ⊛\]
Montrons que
\[t𝜃 = 𝜆x. (u𝜃) ∈ I(d) = I(E)⟹I(d')\]Soit $e∈I(E)$.
\[(t𝜃)e = (𝜆x. (u𝜃))e ⟶_t (u𝜃)[x:=e] = \underbrace{u(𝜃[x:=e])}_{∈ I(d') \text{ par } ⊛}\]la dernière égalité venant du fait que $x ∉ \lbrace x_1, \ldots, x_n \rbrace ⊆ fv(t)$ et que $x$ n’est libre dans aucun $v_i$, modulo $𝛼$-renommage (cf. bas de la page 9 du cours, dans la démonstration de la terminaison de la $𝛽^\ast$-réduction).
Or, $I(d’)$ est clos par réduction de tête faible inverse (en tant que $K$-candidat), donc comme $(u𝜃)[x:=e] ∈ I(d’)$ :
\[(t𝜃)e = (𝜆x.(u𝜃))e ∈I(d')\]Donc $t𝜃 ∈ I(E)⟹I(d’) = I(d)$, et le résultat est acquis.
15.
Soit $t$ un $𝜆$-terme tel qu’il existe un environnement $𝜌$ tel que ${\cal E}_C⟦t⟧ 𝜌 ≠ ∅$.
Montrons que la réduction de tête partant de $t$ termine, c’est-à-dire que $t∈S_h$.
On va utiliser le résultat de la question IV. 14) :
-
il existe $d∈ {\cal E}_C⟦t⟧ 𝜌 ≠ ∅$, par hypothèse
-
on peut prendre $𝜃 ≝ [x_1 := x’_1, ⋯ , x_n := x’_n]$
- avec $\lbrace x_1, \ldots, x_n \rbrace = fv(t)$ et où les $x’_i$ sont des variables deux à deux distinctes, différentes des $x_i$ et n’apparaissant pas dans $t$
puisque
-
$dom(𝜃) \supseteq fv(t)$
-
$∀i∈⟦1, n⟧, x’_i ∈ S_0 ⊆ I(𝜌(x_i))$ puisque $I(𝜌(x_i))$ est un $K$-candidat (d’où $S_0 ⊆I(𝜌(x_i))$).
-
en effet :
- si $𝜌(x_i)≠∅$ : $I(𝜌(x_i)) = \bigcap\limits_{d’∈𝜌(x_i)≠∅} I(d’)$, et les $K$-candidats sont clos par intersection non vide
- si $𝜌(x_i)=∅$ : $I(𝜌(x_i)) = \bigcap\limits_{d’∈∅} I(d’) = S_h$ est un $K$-candidat
-
donc, par IV. 14) :
\[t =_𝛼 t𝜃 ∈ I(d) ⊆ S_h\]la dernière inclusion venant du fait que $I(d)$ est un $K$-candidat (d’où $I(d)⊆S_h$).
On a donc montré que :
Si $t$ est un $𝜆$-terme tel que ${\cal E}_C⟦t⟧ 𝜌 ≠ ∅$ pour un environnement $𝜌$, alors la réduction de tête partant de $t$ termine.
16.
- Eléments stricts de ${\cal E}_C$ :
-
- $c ∈ C$
- ou $E ⟶ d$ où $E≠∅$ ne contient que des éléments stricts et $d$ est strict.
Montrons que, pour tout terme clos $t$ :
-
$t$ a une forme normale
-
${\cal E}_C ⟦t⟧$ contient un élément strict
-
$t$ est normalisable par la gauche
sont des propriétés équivalentes.
$1. ⟹ 2.$
On prouve par induction structurelle sur $t∈𝛬$ :
Lemme : Si $t$ a une forme normale, il existe un environnement $𝜌$ tel que
- pour toute variable $x$, $𝜌(x)$ est fini et strict
- ${\cal E}_C ⟦t⟧𝜌$ contient un élément strict
-
Cas de base : si $t=x∈Var$ :
c’est trivial, en prenant $𝜌(y)≝ \lbrace c \rbrace$ pour toute variable $y$, et pour un $c∈C$ (il en existe un car $C≠∅$).
-
Hérédité : si $t=uv$ ou $t = 𝜆x. u$ :
On écrit $t$ sous la forme de tête
\[t ≝ 𝜆x_1,\ldots, x_n . \underbrace{h}_{\text{tête de } t} u_1 ⋯ u_m\]Quitte à considérer la forme normale de $t’$ de $t$, qui vérifie ${\cal E}_C ⟦t’⟧𝜌 = {\cal E}_C ⟦t⟧𝜌$ pour tout environnement $𝜌$, on peut supposer que $t$ est sous forme normale, ce qui implique que $h$ est une variable de tête.
En outre, pour tout $𝜌$ :
\[\begin{align*} {\cal E}_C ⟦t⟧𝜌 &= r_{ {\cal E}_C}\big(A_1 \mapsto {\cal E}_C ⟦𝜆x_2,\ldots, x_n . h u_1 ⋯ u_m⟧𝜌[x_1 \mapsto A_1]\big) \\ & = \Big\lbrace E_1 ⟶ d_1 \mid E_1∈ℙ_{fin}({\cal E}_C), \; d_1∈ {\cal E}_C ⟦𝜆x_2,\ldots, x_n . h u_1 ⋯ u_m⟧𝜌[x_1 \mapsto E_1] \Big\rbrace \\ & = \bigg\lbrace E_1 ⟶ d_1 \mid E_1∈ℙ_{fin}({\cal E}_C), \; d_1∈ \Big\lbrace E_2 ⟶ d_2 \mid E_2∈ℙ_{fin}({\cal E}_C), \; d_2∈ {\cal E}_C ⟦𝜆x_3,\ldots, x_n . h u_1 ⋯ u_m⟧𝜌[x_1 \mapsto E_1, x_2 \mapsto E_2] \Big\rbrace \bigg\rbrace \\ & = \Big\lbrace E_1 ⟶ d_1 \mid E_1∈ℙ_{fin}({\cal E}_C), \; d_1∈ {\cal E}_C ⟦𝜆x_2,\ldots, x_n . h u_1 ⋯ u_m⟧𝜌[x_1 \mapsto E_1] \Big\rbrace \\ & = \bigg\lbrace E_1 ⟶ (E_2 ⟶ d_2) \mid E_1, E_2∈ℙ_{fin}({\cal E}_C), \; d_2∈ {\cal E}_C ⟦𝜆x_3,\ldots, x_n . h u_1 ⋯ u_m⟧𝜌[x_1 \mapsto E_1, x_2 \mapsto E_2] \Big\rbrace \\ & \vdots \\ & = \bigg\lbrace E_1 ⟶ (E_2 ⟶ ⋯ (E_n ⟶ d_n)⋯) \mid E_1, \ldots, E_n ∈ℙ_{fin}({\cal E}_C), \; d_n∈ \underbrace{ {\cal E}_C ⟦h u_1 ⋯ u_m⟧𝜌[x_1 \mapsto E_1, \ldots, x_n \mapsto E_n]}_{\llap{ = \; \lbrace d'_m ∈ D \; \mid \; ∃E'_m ∈ ℙ_{fin}(D); \; E'_m ⊆ {\cal E}_C⟦u_m⟧𝜌[x_1 \mapsto E_1, \ldots, x_n \mapsto E_n] \text{ et } (E'_m ⟶ d'_m) ∈{\cal E}_C⟦h u_1 ⋯ u_m⟧𝜌[x_1 \mapsto E_1, \ldots, x_n \mapsto E_n]\rbrace}} \Big\rbrace \\ & \vdots \\ & = \bigg\lbrace E_1 ⟶ ⋯ ⟶ E_n ⟶ d_n \mid E_1,\ldots, E_n ∈ℙ_{fin}({\cal E}_C), ∃ E'_m, \ldots, E'_1 ∈ℙ_{fin}({\cal E}_C); \; \\ & \qquad \; \quad \; ∀i∈⟦1, m⟧, \; E'_i ⊆ {\cal E}_C⟦u_i⟧𝜌[x_i \mapsto E_i]_{1≤i≤n} \\ & \qquad \; \text{ et } E'_1 ⟶ ⋯ ⟶ E'_m ⟶ d_n ∈ \underbrace{ {\cal E}_C ⟦h⟧𝜌[x_i \mapsto E_i]_{1≤i≤n}}_{ = 𝜌[x_i \mapsto E_i]_{1≤i≤n}(h)} \Big\rbrace \\ \end{align*}\]On veut construire un $𝜌$ pour lequel ${\cal E}_C ⟦t⟧𝜌$ contient un élément strict.
Or, l’hypothèse d’induction appliquée aux $u_i$ nous fournit, pour tout $i∈⟦1, m⟧$, un environnement $𝜌_i$ tel que ${\cal E}_C ⟦u_i⟧𝜌_i$ contient un élément strict $d_i$.
Soit $c∈C≠∅$.
En notant $𝜌$ l’environnement défini par :
\[\begin{cases} ∀x∈Var\backslash \lbrace h \rbrace, \; 𝜌(x) &≝ \bigcup\limits_{1≤i≤m} 𝜌_i (x) \\ 𝜌(h) &= \bigcup\limits_{1≤i≤m} 𝜌_i (h) \; ∪ \; \big\lbrace \underbrace{\lbrace d_1 \rbrace ⟶ ⋯ ⟶ \lbrace d_m \rbrace ⟶ c}_{\text{ strict}} \big\rbrace \end{cases}\]Pour tout $i∈⟦1, m⟧, 𝜌_i ≤ 𝜌$, donc par monotonie de $D⟦u’⟧(ρ’[x := \bullet])$ (pour tout $u’$ et $𝜌’$) :
\[∀i∈⟦1, m⟧, \, d_i ∈ {\cal E}_C ⟦u_i⟧𝜌\]d’où
\[∀i∈⟦1, m⟧, \, \lbrace d'_i \rbrace ⊆ {\cal E}_C ⟦u_i⟧𝜌\]Par conséquent :
\[𝜌(x_1) ⟶ ⋯ ⟶ 𝜌(x_n) ⟶ c ∈ {\cal E}_C ⟦t⟧𝜌\](avec $E’_i = \lbrace d’_i \rbrace$ dans la définition ensembliste précédente)
Or, par hypothèse d’induction, pour tout $(i, j)∈⟦1, m⟧×⟦1, n⟧$, $𝜌_i(x_j)$ est fini et strict, donc par définition de $𝜌$, les $𝜌(x_j)$ sont finis et stricts, d’où :
\[𝜌(x_1) ⟶ ⋯ ⟶ 𝜌(x_n) ⟶ c ∈ {\cal E}_C ⟦t⟧𝜌 \text{ est strict}\]Le résultat est acquis.
Enfin, si $t$ est un terme clos, on lui applique le lemme précédent : il existe un environnement $𝜌$ tel que ${\cal E}_C ⟦t⟧𝜌 = {\cal E}_C ⟦t⟧$ contient un élément strict, ce qui conclut.
$2. ⟹ 3.$
NB :
- la saturation est dès à présent entendue pour la réduction gauche.
- on notera $⟶_g$ la réduction gauche (et $⟶_g^\ast$ sa clôture réflexive transitive).
- notons que la réduction de tête est un cas particulier de réduction gauche.
Comme $S’_0$ est trivialement saturé et contient les variables, on a les mêmes résultats concernant l’ensemble des $K’$-candidats qu’en IV) (les démonstrations sont les quasiment les mêmes pour les résultats analogues aux questions 11) et 13) : les éléments nouveaux/modifiés y sont mis en gras) :
Résultat analogue à IV. 11) pour les $K’$-candidats :
Si $S’$ est saturé, $S⟹S’$ le reste pour tout ensemble $S$.
Soit $S’$ un ensemble saturé.
Montrons que, pour tout ensemble $S$, $S⟹S’$ est saturé.
Soit $S$ un ensemble, soient $u ∈ S⟹S’$ et $u’$ tel que $u’ ⟶_g u$.
Montrons que $u’ ∈ S⟹S’$, i.e que pour tout $v∈S$, $u’ v ∈ S’$.
Soit $v∈S$.
Comme $u ∈ S⟹S’$ :
\[u v ∈ S'\]et comme $S’$ est saturé :
\[u' v ∈ S'\]Résultat analogue à IV. 12) pour les $K’$-candidats :
Si $t$ est un $𝜆$-terme dont la réduction gauche ne termine pas, et $x$ une variable, alors la réduction gauche de $tx$ ne termine pas non plus.
Soient $t$ un $𝜆$-terme dont la réduction gauche ne termine pas, et $x$ une variable.
Par l’absurde : supposons que la réduction gauche de $tx$ termine.
Comme la réduction de tête est un cas particulier de réduction gauche, la réduction de tête de $t$ ne termine pas non plus.
Donc, par IV.12), la réduction de tête de $tx$ ne termine pas.
Or, comme la réduction gauche de $tx$ termine, $tx$ a une forme normale de tête.
- car sinon : en notant $t_n$ le dernier terme produit par la réduction gauche de $tx$, la forme normale de $t_n$ a un rédex de tête (puisqu’elle n’est pas normale de tête), lequel peut être contracté par réduction gauche (ce qui contredit la définition de $t_n$).
Cela contredit le fait que la réduction de tête de $tx$ ne termine pas, d’après les équivalences montrées à la fin de la partie IV) $\big( b) ⟹ a) \big)$.
Résultat analogue à IV. 13) pour les $K’$-candidats :
Si $S$ et $S’$ sont des $K’$-candidats, $S ⟹ S’$ reste un $K’$-candidat.
Soient $S$ et $S’$ des $K’$-candidats. Montrons que $S ⟹ S’$ est un $K’$-candidat.
1. $S ⟹ S’$ est saturé
En effet : on applique l’analogue de la question 11, puisque $S’$ est saturé (car $S’$ est un $K’$-candidat).
2. $S’_0 ⊆ S ⟹ S’$
Si $x u_1 ⋯ u_n ∈ S’_0$, montrons que $x u_1 ⋯ u_n ∈ S ⟹ S’$.
Soit $v∈S$.
Comme $S ⊆ S_l$ (car $S$ est un $K’$-candidat), $v$ est normalisable par la gauche.
En outre, $x u_1 ⋯ u_n ∈ S’_0$ implique que tous les $u_i$ le sont aussi, donc $x u_1 ⋯ u_n v ∈ S_0$.
Montrons que $x u_1 ⋯ u_n v ∈ S’$.
C’est le cas puisque $S_0 ⊆ S’$ (car $S’$ est un $K’$-candidat) et :
\[x u_1 ⋯ u_n v ∈ S_0 ⊆ S'\]3. $S ⟹ S’ ⊆ S_l$
Si $u∈S ⟹ S’$, montrons que $u∈S_l$.
Comme $u∈S ⟹ S’$ et $S’ ⊆ S_l$ (car $S’$ est un $K’$-candidat) :
\[∀v∈S, uv∈S' ⊆ S_l\]Par conséquent, pour toute variable $x∈S$ : $ux$ a une réduction gauche finie, ce qui implique, par contraposée de l’analogue de la question 12, que $u$ aussi, c’est-à-dire que $u∈S_l$.
Or, il existe une variable $x∈S$ puisque $\underbrace{S \supseteq S'_0 }_{\rlap{\text{car } S \text{ est un } K'\text{-candidat}}} \supseteq Var$ : donc
\[u∈S_l\]Les $K’$-candidats sont donc clos par $⟹$ et par intersection (trivialement, puisque les conditions à vérifier sont quantifiées universellement).
Ces résultats de stabilité nous permettent dès lors de définir $I’(d)$ de la même manière que dans la partie IV., et les résultats analogues à ceux des questions IV.14) et IV.15) s’ensuivent (en remplaçant “${\cal E}_C ⟦t⟧𝜌 ≠ ∅$” par “${\cal E}_C ⟦t⟧𝜌$ contient un élément strict” dans IV.15)).
$3. ⟹ 1.$
C’est immédiat.
Leave a comment