Types récursifs.
Documents autorisés (en particulier le poly).
Les questions sont annotées par une estimation du temps de leur résolution en minutes. Les
questions les plus rapides sont aussi (généralement) celles qui rapportent le moins de points.
On se propose d’examiner une variante du système des types simples autorisant d’écrire des
types récursifs. C’est déjà ce que propose CaML, où un type défini peut être défini en fonction
de lui-même, par exemple :
type arbre = FEUILLE of int
| NOEUD of arbre *arbre;;
type paradox = P of paradox -> paradox;;
type nat = O
| S of nat;;
On va, pour représenter cette récursivité, ajouter au langage des types simples une construc-
tion µX ·f(X), qui dénote en gros l’unique type τque l’on définirait en CaML en écrivant
type τ=f(τ);;. Par exemple, on coderait les types ci-dessus sous la forme de arbre =
µX ·int + (X×X),paradox =µX ·XX,nat =µX ·unit +X.
Formellement, les types sont :
F::= b|X|FG|µX ·F
où les bsont des types de base, les Xdes variables de type et où la variable de type Xest liée
dans µX ·F. On supposera que l’α-renommage est appliqué aux types implicitement.
On note la plus petite congruence sur les types telle que µX ·FF[X:= µX ·F].
On rappelle qu’une congruence est une relation d’équivalence qui passe au contexte. On peut
caractériser comme la relation définie par les règles :
(F old)
µX ·FF[X:= µX ·F](Refl)
FF
FG(Sym)
GF
FG G H(T rans)
FH
FFGG
()
FGFG
FG(µ)
µX ·FµX ·G
1
Autrement dit, FGsi et seulement si on peut le déduire par une dérivation (finie) utilisant les
règles ci-dessus.
Les règles de typage sont celles des types simples plus une règle portant sur les types récur-
sifs. Appelons le système suivant système µ:
(V ar)
Γ, x :Fx:F
Γu:F1F2Γv:F1(App)
Γuv :F2
Γ, y :F1u[x:= y] : F2(Abs)
Γλx ·u:F1F2
Γu:F F G(T Eq)
Γu:G
On ne considérera que la règle β, pas η, comme règle de réduction du λ-calcul dans cette partie.
1. (5 min.) Soit Ple type µX ·XX(c’est le type paradox plus haut). Un P-contexte
est un contexte Γoù toutes les variables sont de type P, c’est-à-dire un contexte de la
forme x1:P,...,xn:P. Montrer que, dans n’importe quel P-contexte Γ, pour tout λ-
terme (non typé) udont les variables libres apparaissent toutes dans Γ, on peut dériver le
jugement Γu:P. dans le système µ.
2. (1 min.) En déduire qu’il existe des λ-termes non fortement normalisants, et même non
faiblement normalisants, dans le système µ. On exhibera un contre-exemple.
3. (15 min.) On va réparer ce défaut en considérant un sous-système µ+du système µ, où
dans µX ·Fla variable Xne peut avoir que des occurrences positives dans F. Informel-
lement, si l’on voit les types comme des formules, les occurrences positives sont celles
qui apparaissent sous un nombre pair de négations, chaque implication FGcomptant
comme une négation de F.
Formellement, on dit que Xapparaît positivement dans une variable de type Ysi et seule-
ment si X=Y; dans FGsi Xapparaît positivement dans Gou négativement dans F;
dans µY ·F(avec Y6=X) si Xapparaît positivement dans F. Et que, symétriquement, X
apparaît négativement dans un type si et seulement si : ce type est FGet Xapparaît
négativement dans Gou positivement dans F; ou ce type est µY ·F(avec Y6=X) et X
apparaît négativement dans F.
Le système µ+est la restriction du système µoù, dans tout type µX ·F,Xn’apparaît pas
négativement dans F.
Lister les variables apparaissant positivement, resp. négativement, dans les types suivants.
On rappelle que ABCsignifie A(BC), et que la portée de µ, comme celle
de λ, s’étend aussi loin à droite que possible.
(i)X(XY) (ii) (XX)Y(iii) (XY)X
(iv)XZY(v) (µY ·XZY)YX
(vi)µX ·(µY ·XZY)YX
2
Lesquels sont des types de µ+? Répondre sous forme d’un tableau :
Formule Apparaissant positivement Apparaissant négativement Dans µ+?
(i)
(ii)
(iii)
(iv)
(v)
(vi)
4. (5 min.) On rappelle qu’un candidat de réductibilité est un ensemble de λ-termes Stel
que :
(CR1) Si uS, alors uSN.
(CR2) Si uSet uu, alors uS.
(CR3) Si uest neutre et pour tout utel que uu,uS, alors uS.
On notera CRl’ensemble de tous les candidats de réductibilité, ordonné par l’ordre d’in-
clusion . Montrer qu’il existe un plus grand candidat de réductibilité S, c’est-à-dire un
candidat de réductibilité Stel que SSpour tout S∈ CR.
5. (10 min.) Montrer que CRest un treillis complet, c’est-à-dire que toute famille (Si)iIde
candidats de réductibilité, il existe un plus grand candidat de réductibilité Stel que SSi
pour tout iI— la borne inférieure de la famille (Si)iI. (Indication : S=TiISi
convient-il? Que se passe-t-il lorsque Iest vide?)
6. (10 min.) Vous avez déjà vu dans d’autres cours le théorème du point fixe de Tarski. Un
treillis complet est un ensemble ordonné L,tel que toute famille (zi)iId’éléments de
La une borne inférieure diIzidans L. Une fonction f:L L est dite monotone si et
seulement si f(z)f(z)pour tous zz. On a :
Théorème (Tarski) Soit L,un treillis complet, f:L L une fonction. Posons
lf p(f) = dz∈L,f (z)zz. Si fest monotone, alors lfp(f)est le plus petit point fixe de
f. (On rappelle qu’un point fixe zde fest un élément tel que f(z) = z.)
On définit alors une notion REDFadaptée à µ. Pour tout contexte de candidats Cqui à
chaque variable de type Xassocie un candidat de réductibilité, pour tout type Fde µ, on
définit REDC
Fpar :
REDC
bˆ= SN
(ensemble des termes fortement normalisants)
REDC
Xˆ= C(X)
REDC
FGˆ= {u| ∀vREDC
F·uv REDC
G}
REDC
µX·Fˆ= lfp(S∈ CR7→ REDC[X:=S]
F)
où la notation S∈ CR7→ REDC[X:=S]
Fdénote la fonction qui à tout candidat Sassocie
REDC[X:=S]
F.
Montrer que REDC
Fest bien défini et est un candidat de réductibilité pour tout contexte de
candidats Cet tout type Fde µ. (Certains des cas ont déjà été vus en cours. On pourra alors
3
s’économiser une démonstration à condition de citer précisément l’argument — numéro
de théorème, notammentx1.)
7. (15 min.) Montrer que, lorsque Fest un type de µ+:
(a) si Xn’apparaît pas négativement dans Falors REDC
Fest monotone en C(X), au
sens où pour tout Stel que C(X)S,REDC
FREDC[X:=S]
F;
(b) si Xn’apparaît pas positivement dans Falors REDC
Fest antitone en C(X), au sens
où pour tout Stel que C(X)S,REDC
FREDC[X:=S]
F.
On admettra le résultat (trivial) selon lequel : ()si fet gsont deux fonctions monotones
d’un treillis complet Lvers Ltelles que f(z)g(z)pour tout z∈ L, alors lf p(f)
lf p(g).
8. (20 min.) En déduire que tout terme typé dans le système µ+est fortement normalisant.
(Comme à la question 6, on pourra se référer à certaines preuves du cours pour les parties
de la preuve qui ne changent pas ici. Citer précisément l’argument.)
9. (10 min.) On étend l’algèbre de types par une quantification au second ordre, comme dans
le système F2:
F::= b|X|FG|µX ·F|∀X·F
La relation est étendue par la règle :
FG()
X·F∼ ∀X·G
On ajoute les deux règles de typage :
Γu:X·F(T App)
ΓuG :F[X:= G]
Γu:F(T Abs)
ΓλX ·u:X·F
(Xnon libre dans aucune formule de Γ)
Le système µest le système de typage ainsi obtenu. Le système µ+est le sous-système
où tous les sous-types de la forme µX ·Fsont tels que Xn’a aucune occurrence négative
dans F. (Xayant une occurrence positive, resp. négative, dans Y·Gsi et seulement si
X6=Yet Xa une occurrence positive, resp. négative, dans G.)
On considère désormais les règles de réduction :
(β) (λx ·u)vu[x:= v]
(Beta) (λX ·u)Fu[X:= F]
Montrer que tout terme typé dans le système µ+est fortement normalisant pour la réduc-
tion définie par (β)et (Beta).
4
1 / 4 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !