la theorie des types

54
λ λ - calcul λ - terme β β - normale . β β- . ω λ λ β β - ´ equivalance . β ω . ω

Upload: wafa-boukellouz

Post on 27-Jul-2015

65 views

Category:

Software


4 download

TRANSCRIPT

Table des matières

Introduction générale 1

1 Introduction des types simples dans les systèmes λ et CL - Church-style 21.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.2 λ− calcul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.2.1 Dénition ( λ− terme) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.2.2 Dénition ( Variables libres et variables liées ) . . . . . . . . . . . . . . . . 31.2.3 Dénition ( Substitution ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.2.4 Dénition ( β-réduction ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.2.5 Dénition ( Forme β − normale ) . . . . . . . . . . . . . . . . . . . . . . . . 41.2.6 Unicité de la forme normale ( Théorème de Church Rosser pour .β ) . . . . 41.2.7 Dénition ( β−équivalence ) . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

1.3 Logique combinatoire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61.3.1 Dénition ( CL-termes ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61.3.2 Algébre des CL-termes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

1.3.2.1 Dénition ( Substitution ) . . . . . . . . . . . . . . . . . . . . . . 61.3.2.2 Dénition ( Faible Réduction ) . . . . . . . . . . . . . . . . . . . . 71.3.2.3 Dénition ( Forme normale faible ) . . . . . . . . . . . . . . . . . 71.3.2.4 Thèoréme de Church Rosser ( Unicité de la forme normale faible

.ω ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71.3.2.5 Dénition ( Abstraction ) . . . . . . . . . . . . . . . . . . . . . . . 71.3.2.6 Dénition ( Faible équivalence ou faible convertible ) . . . . . . . 7

1.3.3 Dénitions ( Représentation des fonctions) . . . . . . . . . . . . . . . . . . 81.3.4 Dénition ( Chires de Church ) . . . . . . . . . . . . . . . . . . . . . . . . 8

1.4 Types simples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91.5 λ-calcul typé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

1.5.1 Dénition ( Variables typées ) . . . . . . . . . . . . . . . . . . . . . . . . . . 91.5.2 Dénition ( λ-termes simplement typés ) . . . . . . . . . . . . . . . . . . . . 91.5.3 Dénition ( Substitution ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111.5.4 Dénition (β-réduction et équivalence simplement typés ) . . . . . . . . . . 11

1.5.4.1 Dénition (β − equivalance) . . . . . . . . . . . . . . . . . . . . . 111.5.4.2 Dénition ( Normalisation WN, SN) . . . . . . . . . . . . . . . . . 121.5.4.3 Thèorème ( SN pour .β simplement typé ) . . . . . . . . . . . . . 12

1.6 CL-termes typés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141.6.1 Dénition (CL-termes typés) . . . . . . . . . . . . . . . . . . . . . . . . . . 141.6.2 Dénition ( Substitution ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141.6.3 Dénition ( Faible équivalence simplement typé et réduction CLω→) . . . . 141.6.4 Dénition ( Abstraction ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141.6.5 Thèoréme ( SN pour .ω simplement typé ) . . . . . . . . . . . . . . . . . . 14

1.7 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2 Types simples, Curry en CL et en λ 162.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162.2 Types simples, Curry en CL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

2.2.1 Dénition ( Types Paramétrés) . . . . . . . . . . . . . . . . . . . . . . . . . 162.2.2 Dénition ( Système TAc

→) . . . . . . . . . . . . . . . . . . . . . . . . . . . 172.2.3 Dénition ( Aectation des types dans le système TAc

→) . . . . . . . . . . 172.2.3.1 Axiomes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172.2.3.2 Lemme ( Fermeture sous-types de substitutions) . . . . . . . . . . 18

2.2.4 Construction de sujet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182.2.5 Abstraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

2.2.5.1 Théorème ( Types et Abstraction ) . . . . . . . . . . . . . . . . . 192.2.5.2 Réduction de sujet . . . . . . . . . . . . . . . . . . . . . . . . . . . 192.2.5.3 Dénition (Hypothèses inertes) . . . . . . . . . . . . . . . . . . . . 192.2.5.4 Théorème (Réduction de sujet ) . . . . . . . . . . . . . . . . . . . 20

2.2.6 CL-termes typés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212.2.6.1 Dénition (contexte du Type ) . . . . . . . . . . . . . . . . . . . . 212.2.6.2 Dénition ( Terme pur Typable ) . . . . . . . . . . . . . . . . . . 212.2.6.3 Théorème (Typabilité de Décidabilité) . . . . . . . . . . . . . . . 212.2.6.4 Théorème ( SN pour .ω) . . . . . . . . . . . . . . . . . . . . . . . 21

2.2.7 Lien avec l'approche de Church . . . . . . . . . . . . . . . . . . . . . . . . 222.2.7.1 Dénition ( Analogue typé) . . . . . . . . . . . . . . . . . . . . . . 22

2.2.8 Types principaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222.2.8.1 Dénition ( Type principal p.t.) . . . . . . . . . . . . . . . . . . . 222.2.8.2 Théoréme ( Types principaux ) . . . . . . . . . . . . . . . . . . . . 23

2.2.9 Ajout de nouveaux axiomes . . . . . . . . . . . . . . . . . . . . . . . . . . . 252.2.9.1 Dénition ( Bases mono-schématiques ) . . . . . . . . . . . . . . . 252.2.9.2 Dénition ( Typabilité relative ) . . . . . . . . . . . . . . . . . . . 26

2.2.10 Propositions-comme-types et normalisation . . . . . . . . . . . . . . . . . . 262.2.10.1 Dénition ( Type habité ) . . . . . . . . . . . . . . . . . . . . . . . 272.2.10.2 Dénition ( Aectation des termes typés à des déductions ) . . . . 282.2.10.3 Théorème ( SN pour les déductions ) . . . . . . . . . . . . . . . . 29

2.2.11 Régle d'équivalance Eq′ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302.2.11.1 Dénition (Systèmes TA→C=) . . . . . . . . . . . . . . . . . . . . . 302.2.11.2 Théorème ( Report-Eq′) . . . . . . . . . . . . . . . . . . . . . . . . 302.2.11.3 Dénition ( Typabilité dans TA→C=) . . . . . . . . . . . . . . . . . 312.2.11.4 Théorème . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312.2.11.5 Théorème ( Type principaux dans TA→C= ) . . . . . . . . . . . . . 31

2.3 Typage simple, Curry style dans λ . . . . . . . . . . . . . . . . . . . . . . . . . . . 322.3.1 Système d'aectation de type TA→λ . . . . . . . . . . . . . . . . . . . . . . . 332.3.2 Propriétées de base de TA→λ . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

2.3.2.1 Types d'ensemble d'hypothéses . . . . . . . . . . . . . . . . . . . . 342.3.2.2 Fermeture sous la substitutions de types . . . . . . . . . . . . . . 342.3.2.3 Propriété de construction de sujet . . . . . . . . . . . . . . . . . . 342.3.2.4 Theoréme ( Réduction de sujet ) . . . . . . . . . . . . . . . . . . . 35

2.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

TABLE DES MATIÈRES

3 Généralisations de typage 373.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373.2 Types de fonctions dépendantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373.3 Typage de base généralisé , Curry en λ . . . . . . . . . . . . . . . . . . . . . . . . . 38

3.3.1 Dénition ( terme ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383.3.2 Dénition ( Fontions de type et types ) . . . . . . . . . . . . . . . . . . . . 393.3.3 Théorème . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393.3.4 Dénition ( Système d'aectation de type TAGλ) . . . . . . . . . . . . . . . 393.3.5 Dénition ( Contexte ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403.3.6 Dénition ( Système TAGaλ) . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

3.4 Régles déductives pour dénir des types . . . . . . . . . . . . . . . . . . . . . . . . 413.4.1 Dénition ( Système de typage λ→) . . . . . . . . . . . . . . . . . . . . . 413.4.2 Dénition ( Sorte ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423.4.3 Dénition ( Contexte légal ) . . . . . . . . . . . . . . . . . . . . . . . . . . . 423.4.4 Dénition ( Système λ→a ) . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

3.5 Typage , Church en λ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433.5.1 Dénition ( Pseudoterme ) . . . . . . . . . . . . . . . . . . . . . . . . . . . 433.5.2 Dénition (λ− cube ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443.5.3 Dénition ( Type èche →) . . . . . . . . . . . . . . . . . . . . . . . . . . . 453.5.4 Dénition ( Systèmes de type pur ) . . . . . . . . . . . . . . . . . . . . . . . 46

3.6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

3

Table des gures

1.1 Théorème de Church Rosser pour .β . . . . . . . . . . . . . . . . . . . . . . . . . 5

3.1 λ− Cube . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

4

Table des symboles

λ lambda

α alpha

β beta

ζ zeta

µ mu

ξ xi

σ sigma

τ tau

υ upsilon

π pi

ν nu

θ theta

Π Pi

Γ Gamma

Introduction générale

Les premiers problèmes non calculables d'être découvert ont été à l'origine décrit, non pas entermes d'ordinateurs idéalisées tels que les machines de Turing, mais dans le lambda-calcul et lalogique combinatoire à n de formaliser la notion de calculabilité (également connu sous le nomconstructibilité et la calculabilité eective), il s'agit d'une formalisation de la notion de fonctionsque les règles (par opposition aux fonctions comme tuples).

Le lambda-calcul et la logique combinatoire constituent le fondement de la science informa-tique. Outre leurs rôle historique dans la théorie de la calculabilité, ils sont eu une inuenceimportante sur la conception et la mise en ÷uvre du langage de programmation, ils sont deuxsystèmes de la logique qui peuvent également servir comme langages de programmation abstraits.Ils visent tous deux à décrire des propriétés très générales des programmes qui peuvent modierd'autres programmes d'une maniére abstraite générale pas encombrée par des détails.

Le λ-calcul 1 a été inventé vers les années 1930s par un logicien américain Alonzo Church, dansle cadre d'un système logique complet qui inclus les opérateurs d'ordre supérieur (opérateurs quiagissent sur d'autres opérateurs). en fait le language de λ-calcul est un élément clé de la plupartdes languages d'ordre supérieur, que ce soit pour la logique ou pour la programmation informa-tique, le lambda-calcul est un langage simple avec peu de constructions et une sémantique simple.Mais, il est expressif ; il est susamment puissant pour exprimer toutes les fonctions calculables.

La logique combinatoire a les mêmes objectifs que λ-calcul, et peut exprimer les mêmes conceptsde calcul, mais sa grammaire est beaucoup plus simple. sa idée de base est due à deux per-sonnes Moïse Schonnkel, qui a d'abord pensé en 1920, et Haskell Curry, qui indépendammentre-découvert sept ans plus tard.

Le but de ce projet est d'introduire l'un des concepts basiques des deux systèmes λ et CL 2 :La théorie des types et son inuence sur les systèmes logiques, à n d'atteindre ce but le travailest organisé dans les chapitres ci-dessous :

Chapitre 1 : Décrit les notions de base des systèmes lambda et CL, ensuite l'introduction des typesapellés aussi types simples suivant la méthode de Church en citant les changements àaborder sur ces deux systèmes.

Chapitre 2 : a le méme but que le chapitre 1 avec la diérence qu'il présente les types simplesavec la méthode de Curry qui diére totallement de celle de Church.

Chapitre 3 : Son but est de généraliser les deux chapitres qui lui précédent, à n de donner unevue plus précise sur la procédure de typage.

1. λ : lambda2. CL : Combinatory Logic Logique Combinatoire.

1

Chapitre 1

Introduction des types simples dans

les systèmes λ et CL - Church-style

1.1 Introduction

Dans les années 1930, Alonzo Church a introduit un systéme formel basé sur une certainenotation désignée pour former des opérateurs obtenus par la combinaison des autre opérateurs etfonctions.

Un autre systéme a été introduit pour pallier le probléme des variables liées du systéme λ,qui est le systéme des combinateurs noté CL (Combinatory Logic), comme son nom l'indique, cesystéme est basé sur un ensemble de combinateurs permettant d'exprimer des fonctions mathé-matiques.

Ces dérnieres incluent généralement un ensemble de départ et un ensemble d'arrivée, quipeuvent être représentées sous une forme spécique dans le but de les rendre compréhensiblepar la machine.

Une maniére possible est de dénir les fonctions arithmétiques dans les systèmes λ et CL.Cette dénition est faite en attachant des expréssions appelées types aux termes pour dénoterleurs ensembles de départ et d'arrivé.

Deux approches sont présentés pour l'introduction des types dans ces systémes, la premiéreest appellée l'approche de Church décrite dans le chapitre courant, qui signie qu' un type d'unterme est construit dans le terme lui même, plutôt comme une empreinte d'une personne qui estune partie du corps humain. la deuxième est celle de Curry qui est diérente, le type d'un termeest assigné après que le terme est construit, plutôt comme un passport.

Le but de ce chapitre est de dénir des expressions appelées 'types' ou 'types simples' 1 et leurspropriétés.

On introduira d'abord les notions de base sur les systèmes CL et λ.

1. Les types attachés aux termes sont dits types simples pour les distinguer aux d'autre types.

2

Chapitre 1. Introduction des types simples dans les systèmes λ et CL - Church-style

1.2 λ− calculLes expressions mathématiques usuelles peuvent êre representées en utilisant la notation λPar exemple la fonction f (x ) = x − y ,ou bien f : x 7−→ x− y.La notation deChurch permet de construire pour chaque expréssion qui inclut x , une notation

pour la fonction correspendante de x (de même pour y). Ainsi il a introduit le 'λ′comme unsymbole auxiliaire pour désigner la fonction.

On aurra :

f = λx .x − yalors les expressionsf (0 ) = 0 − y ,etf (1 ) = 1 − y .devienent dans la notation λ :(λx .x − y)(0)=0-y, et(λx .x − y)(1)=1-y.

La notation λ peut être étendue à des fonctions de plusieurs paramétres :h(x , y) = x − y .=⇒λxy .x − y .

1.2.1 Dénition ( λ− terme)Supposons qu'il existe une séquence innie d'expressions v0,v00,v000,... appellée variables, et

une séquence nie, innie ou vide d'expressions appelées constantes atomiques qui sont diérentesdes variables.

L'ensemble des expressions appelées λ− termes est dénie comme suit :

1. Toutes les variables et les constantes atomiques sont des λ− termes.2. Si M et N sont des λ− termes, alors (MN) est un λ− terme (appelé une application).

3. Si M est un λ− terme et x une variable, alors (λx.M) est un λ− terme (appelé abstraction).

Exemples (λv0. (v0v00)) est un λ− terme.

Si x , y , z sont des variables distinctes, les expressions suivantes sont des λ− termes : (λx. (xy)) . ((λy.y) (λx. (xy))). (x (λx. (λx.x))). (λx. (yz)) .

1.2.2 Dénition ( Variables libres et variables liées )

Les variables libres d'une expression sont dénies par :Si x ∈ V (V l'ensemble des variables) alors libres(x) = x, libres(λxu) = libres(u) - x,

libres(uv) = libres(u)∪ libres(v)Une variable ayant une occurrence non libre dans une expression est dite liée dans cette ex-

pression.Une expression est dite close si elle n'a pas de variables libres.[2]

Exemple On considére le terme P≡xv(λyz .yv)w qui est aussi (((xv) (λy. (λz.yv)))w).

FV(P)=x, v, w

3

Chapitre 1. Introduction des types simples dans les systèmes λ et CL - Church-style

1.2.3 Dénition ( Substitution )

Pour tous M ,N,x ,on dit que [N /x ]M est le résultat de la substitution de toutes les occurenceslibres de x dans M par N , en prennant en considération le changement des noms des variablesliées pour éviter les conis.

1. [N/x]x ≡ N .

2. [N/x] a ≡ a avec a 6= x .

3. [N/x] (PQ)≡ ([N/x]P [N/x]Q).

4. [N/x] (λx.P ) ≡ (λx.P ).

5. [N/x] (λy.P ) ≡ (λy.P ) si x /∈ FV (P ).

6. [N/x] (λy.P ) ≡(λy. [N/x]P ) si x∈ FV (P ) et y /∈FV (N).

7. [N/x] (λy.P )≡ λz.[N/x] [z/y]P si x∈FV (P ) et y ∈FV (N).

1.2.4 Dénition ( β-réduction )

Un terme de la forme (λx.M)N représente un opérateur (λx.M) appliqué sur un argumentN . Le résultat est le processus de substitustion de toutes les occurences libres de x présentes dansM par N , (λx.M)N est simplié en ecrivant [N/x]M .

Tout terme de la forme (λx.M)N est appelé un β− redex et le terme correspondant [N/x]Mest appelé sa contraction.

On note : P .1β P ′ avec P se réduit à P ′par la contraction de toutes les occurences β − redexde P .

Exemples (λx.x (xy))N.1βN (Ny) . (λx. (λy.yx) z) v.1β [v/x] ((λy.yx) z) ≡ (λy.yv) z

[z/y] (yv) ≡ zv. (λx.xx)(λx.xx) .1β [(λx.xx) /x] (xx) ≡ (λx.xx) (λx.xx)

.1β [(λx.xx) /x] (xx) ≡ (λx.xx) (λx.xx)... etc.

Le dernier exemple montre que les β−reductions ne se terminent pas pour tous les termes.

1.2.5 Dénition ( Forme β − normale )Un terme Q qui ne contient aucunβ−redical est dit un terme dans sa forme β−normale(β−nf

) . Si un terme P se réduit à Q , alors Q est appelé la forme nomale de P .Dans les exemples précédents les résultats de la β−reduction des deux premiers exemples sont

les formes β − normales alors que le résultat de la β−reduction du troisième exemple est uneforme non normale.

1.2.6 Unicité de la forme normale ( Théorème de Church Rosser pour.β )

Si un terme peut être réduit en deux diérents termes, alors ces deux termes se réduisent aumême terme.

Si P .β M et P .β N , alors il exist un terme T tel que

M .β T et N . T

4

Chapitre 1. Introduction des types simples dans les systèmes λ et CL - Church-style

Une représentation graphique du théorème dans la gure suivante :

Figure 1.1 Théorème de Church Rosser pour .β

1.2.7 Dénition ( β−équivalence )On dit que P est β − equivalent ou β − convertible à Q (P =β Q)ssi Q peut être obtenu

depuis P par une série nie ( peut être vide ) de β − contractions, β − contraction inversée et lechangement des variables liées. C-à.d, (P =β Q) ssi ils existent P0, ...,Pn (n >= 0) tel que :

(∀i ≤ n − 1 ) ( P i.1β P i+1 ou P i+1.1β Pi ou Pi≡αPi+1 ), P0≡ P , Pn ≡ Q .

5

Chapitre 1. Introduction des types simples dans les systèmes λ et CL - Church-style

1.3 Logique combinatoire

Le système combinatoire est un système de fonctions comme le système de λ − calcul. Il estbasé sur un ensemble de combinateurs.

Ces derniers sont des opérateurs ou des facteurs qui représentent une opération bien dénie.Ils sont dénis comme suit :

Le combinateur de commutativité (C) :(C(f))(x, y) = f(y, x).Le combinateur de composition (B) :(B(f, g))(x) = f(g(x)).Le combinateur de composition inverse (B') : (B'(f, g))(x) = g(f(x)).Le combinateur d'identité (I) : I(f) = f.Le combinateur de la fonction de constant(K) : (K(a))(x) = a.Le combinateur de composition forte (S) :(S(f, g))(x) = f(x, g(x)).Le combinateur de la fonction de diagonal (W) : (W(f))(x) = f(x, x).

1.3.1 Dénition ( CL-termes )

Supposons qu'on a : Une séquence nie ou innie d'expressions v0 , v00, v000, . . . appelées variables. Une séquence nie ou innie d'expressions appelées les constantes atomiques contenant lescombinateurs de baseI , K ,....etc.

L'ensemble d'expressions appelées CL-termes est dénie comme suit : Toutes les variables et les constantes atomiques sont des termes. Si X et Y sont des CL-termes alors (XY) est un CL-terme.

Exemple

((S(KS))K) , ((S(Kv0 ))((SK)K)).

1.3.2 Algébre des CL-termes

L'évaluation d'une expression fonctionnelle dans la base de la logique combinatoire nécessitel'application d'un ensemble de règles sur une fonction an de construire une forme pour représenterle résultat d'évaluation.

On introduira dans ce qui suit les notions nécéssaires à cette évaluation.

1.3.2.1 Dénition ( Substitution )

La substitution [U/x] Y signie le remplacement des occurrences libres de x noté FV(x) 2 dansY par U selon les règles suivantes :

[U/x ] x = U. [U/x ] a =a si a 6= x . [U/x ] (VW) =([U/x ] V [U/x ] W).

La substituion de plusieurs termes est notée : [U1/x1 , . . . , Un/xn ]Y .

Exemples

1. Soit le terme T1=yxx avec FV(T1)=y , x , x la substitution [(SK)/x ](yxx ) donne y(SK)(SK).

2. Soit le terme T2=yxx avec FV(T2)=y , x , x la substitution [(SK)/x , (KI)/y ](y , x , x ) donneKI(SK)(SK).

2. Tous les variables de la logique combinatoire sont libres

6

Chapitre 1. Introduction des types simples dans les systèmes λ et CL - Church-style

1.3.2.2 Dénition ( Faible Réduction )

La relation de réduction permet de dénir le rôle des combinateurs S, K et I équivalents à ceuxde λ par les remplacements suivants :

U≡IX=⇒U'≡X, ou U≡KXY=⇒U' ≡ X, ou U ≡SXYZ =⇒ U' ≡ XZ (YZ).

On dit que U se réduit à U' ou bien U .ω U'.

Exemple Soit le terme BXYZ avec B = S(KS)K. Démonter que BXYZ .ωX(YZ)pour tout les termesX,Y et Z.

BXYZ ≡ S (KS) KXYZ.ωKSX (KX) YZ.ωS (KX) YZ.ωKXZ (YZ).ωX (YZ).

1.3.2.3 Dénition ( Forme normale faible )

C'est la forme composée du terme nal qui ne contient pas de radical. C'est le résultat deplusieurs réductions faibles.

On dit que x est une forme normale faible de terme U si x est le résultat de plusieurs réductionsfaibles appliquées sur U.

1.3.2.4 Thèoréme de Church Rosser ( Unicité de la forme normale faible .ω )

Si U .ω X et U .ω Y, alors il existe un terme T tel que : X .ω T et Y .ω T.

1.3.2.5 Dénition ( Abstraction )

Les fonctions dans la logique combinatoire sont représentées par l'abstraction [x] .M pour toutevariable x et tout CL terme M.

Tout CL terme appelé [x] .M est déni par induction sur M comme suit :

1. [x] .M≡ KM si x /∈ FV(M),

2. [x ] .x ≡I,3. [x] .Ux ≡ U if x /∈ FV(U),

4. [x] .UV ≡ S([x] .U)([x] .V) si (1)...ou (2) ne s'applique pas.

Exemple [x] .xy ≡S ([x ] .x ) ([x ] .y).................(4)SI (Ky)................(1).......(2).

1.3.2.6 Dénition ( Faible équivalence ou faible convertible )

On dit que X est égale faiblement à Y ou X =ω Y ,ssi Y est obtenu à partir de X par une suitenie de faibles réductions et faibles contractions inversées.

De façon formelle si il existe X0, ..., Xn (n >= 0) tel que :

(∀i ≤ n − 1 ) ( Xi.1ω Xi+1 ou Xi+1.1ω Xi ), X0≡ X, Xn ≡ Y.

7

Chapitre 1. Introduction des types simples dans les systèmes λ et CL - Church-style

1.3.3 Dénitions ( Représentation des fonctions)

Les fonctions arithmétiques considérées dans le λ− calcul sont comme suit : Une fonction à n − arguments est une fonction d'un sous ensemble Nn vers N( avec le cas

n = 0 inclus). Une fonction à 0 − argument est un nombre naturel. Toute fonction φ allant de Nn vers N est dite fonction partielle. Elle est dite totale ssiφ (m1,m2, ...,mn)existe pour tout m1 , .. .,mn ∈ N.

Toutes les fonctions récurssives peuvent être representées en λ− calcul. Toute fonction qui est représentée par un terme typé doit étre une fonction totale.

Chaque fonction peut être représenté par un terme X en λ ou en CL.

Exemple La fonction successeur σ est dénie par σ (n) = n+ 1 pour tout n ∈ N.Elle peut être représentée par un terme en λ noté σCh :

σCh≡ λuxy.x (uxy) .et un CL terme noté U :SB : N → N

Notation

⇒ X nY ≡ X (X (.........(XY )...)) si n ≥ 1 ,−′X ′ n fois−

⇒X 0Y ≡ Y .

1.3.4 Dénition ( Chires de Church )

Pour chaque n ∈ N, le chire de Church pour n est un term noté n ou nCh , il est déni commesuit :

En λ parnCh ≡ λxy.xny,En CL parnCh≡ (SB)

n(KI) (B ≡ S (KS)K)

Dans ce qui suit on introduit les types simples qui seront attribués aux deux systèmes.

8

Chapitre 1. Introduction des types simples dans les systèmes λ et CL - Church-style

1.4 Types simples

Supossons que nous avons une séquence ni ou inni des symboles appelés types atomiques ;on dénit les types comme suit :

1. Chaque type atomique est un type.

2. Si σ et τ sont des types, alors l'expression (σ τ) est un type, appelée type fonction.

Commentaires Un type atomique sert à dénoter un ensemble particulier, par exemple le type atomiqueN pour décrire l'ensemble des nombres naturels, et H pour décrire l'ensemble des valeursbooléens ′true′,′ false′.

Un type fonction (στ) sert à dénoter un ensemble donné de fonction de σ vers τ . c-à-.d, lesfonctions qui acceptent comme entrée des membres de l'ensemble décrit par σ, est produisentdes sorties dans l'ensemble décrit par τ .

Notation Les lettres grèques en minuscule dénotent des types arbitraires.On utilise les abréviations suivantes :

σ τ pour (σ τ ),

ρ σ τ pour (ρ ( σ τ )),

σ1... σn τ pour (σ1 (...( σn τ)... )).

1.5 λ-calcul typé

Le système λ− calcul peut être étendu en ajoutant des restrictions sur les types pour dénoterde nouvelles perspectives d'utilisation.

1.5.1 Dénition ( Variables typées )

Supposons qu'il existe un ensemble inni d'expressions v0, v00, v000, . . . appellées variablesnon-typées.

Les variables typées x τ sont créées en attachant un type à une variable non typée de telle sorteque :

Aucune variable non typée peut avoir plus d'un type (condition de consistance). En d'autrestermes, on ne peut pas avoir

x τ , xσ avec τ 6= σ. Chaque type τ est attaché à une séquence innie de variables.

Note x τ est dite une variable de type τ , elle sert à représenter un membre arbitraire de n'importequel ensemble dénoté par τ .

1.5.2 Dénition ( λ-termes simplement typés )

En plus des variables typées, nous avons un ensemble (peut être vide) ni ou inni d'uneséquence d'expressions chacune est attachée à un type,appelées constantes atomiques typées (cτ ).L'ensemble des λ-termes typés est déni comme suit :

1. Toutes les variables typées x τ et les constantes atomiques cτ sont des λ-termes de type τ .

9

Chapitre 1. Introduction des types simples dans les systèmes λ et CL - Church-style

2. Si Mσ→τ et Nτ sont des λ-termes de type σ → τ et τ respectivement, alors l'expressionsuivante est un λ-terme de type τ :

(Mσ→τNσ)τ ;

3. Si xσest une variable de type σ et Mτest un λ-terme de type τ , alors l'expression suivanteest un λ-terme de type σ → τ :

(λxσ.Mτ )σ→τ .

Note Le λ-terme Mσ→τ décrit une fonction φ de σ vers τ , et Nτ décrit un membre a de σ, alorsle terme (Mσ→τNσ)τ décrit φ (a), qui est dans τ .

Exemples

1. Pour chaque type σ, le terme suivant est un terme typé :

Iσ ≡ (λxσ.xσ)σ→σ.Peut être écrit informellement (λxσ.x )σ→σ ou (λx .x )σ→σ ou simplement λxσ.x .

2. Pour chaque paire de types σ et τ , le terme suivant est un terme typé :

Kσ,τ≡ (λxσ. (λyτ .xσ)τ→σ

)σ→(τ→σ)

.Peut être écrit informellement (λxσyτ .x)σ→(τ→σ) ou (λxy.x)σ→(τ→σ) ou sim-

plement λxσyτ .x.

3. Pour chaque triple de type ρ,σ et τ , le terme suivant est un terme typé :

Sρ,σ,τ≡(λxρ→σ→τ .

(λyρ→σ.

(λzρ. ((xρ→σ→τzρ)

σ→τ(yρ→σzρ))

τ)ρ→τ)δ)θavec δ ≡ (ρ→ σ)→ (ρ→ τ),

θ ≡ (ρ→ σ → τ)→ (ρ→ σ)→ ρ→ τ .

Remarque Chaque expression possède un arbre de construction an de montrer qu'elle vériela dénition des termes typés.

Dans l'exemple 3 précédent l'expression Sρ,σ,τ peut être reconstruite comme suit :

xρ→σ→τ zρ yρ→σ zρ

(xz)σ→τ

(yz)σ

(xz (yz))τ

(λzρ. (xz (yz))τ)ρ→τ

(λyρ→σ. (λz. (xz (yz)))ρ→τ

(λxρ→σ→τ . (λyz.xz (yz))

δ)θ.

10

Chapitre 1. Introduction des types simples dans les systèmes λ et CL - Church-style

1.5.3 Dénition ( Substitution )

Pour tout M τ ,Nσ,xσ,on dit que [N σ/xσ]Mτ est le résultat de la substitution de toutes lesoccurences libres de xσ dans M τ par N σ, en prennant en considération le changement des nomsdes variables liées pour eviter les conits.

1. [Nσ/xσ]xσ ≡ N σ.

2. [Nσ/xσ] aσ ≡ aσ avec aσ 6= xσ.

3. [Nσ/xσ](P θQδ

)≡([Nσ/xσ]P θ [Nσ/xσ]Qδ

).

4. [Nσ/xσ] (λxσ.P τ )σ→τ ≡ (λxσ.P τ )

σ→τ.

5. [Nσ/xσ] (λyρ.P τ )ρ→τ ≡ (λyρ.P τ )

ρ→τsi xσ /∈ FV (P τ ).

6. [Nσ/xσ] (λyρ.P τ )ρ→τ ≡(λyρ. [Nσ/xσ]P τ )

ρ→τsi xσ∈ FV (P τ ) et yρ /∈FV (Nσ).

7. [Nσ/xσ] (λyρ.P τ )ρ→τ≡ λzρ.[Nσ/xσ] [zρ/yρ]P τ si xσ∈ FV (P τ ) et yρ ∈FV (Nσ).

On remarque que la substitution [Nρ/xσ] (Mτ ) ne peut être dénie si ρ 6= σ.

Lemme

1. Dans un terme typé M τ , si on remplace une occurence d'un terme typé Pσ par un autreterme de type σ, alors le résultat est un terme de type τ.

2. Pour α−conversion si (λxσ.Mτ )σ→τ

est un terme typé, alors le terme (λyσ. [yσ/xσ]Mτ )σ→τ

estaussi un terme typé, et les deux termes ont le même type σ → τ .

3. Pour β−conversion si ((λyσ. [yσ/xσ]Mτ )σ→τ

Nσ)est un terme typé, alors le terme [Nσ/xσ]Mτ .en est aussi un.

1.5.4 Dénition (β-réduction et équivalence simplement typés )

La théorie formelle de la β-réduction simplement typée est notée λβ→. Ces axiomes et cesrègles sont dénis ci-dessous :

1. λxσ.Mτ= λyσ. [yσ/xσ]Mτ si yσ /∈FV(Mτ ).

2. ((λyσ. [yσ/xσ]Mτ )σ→τ

Nσ) = [Nσ/xσ]Mτ .

3. M σ = M σ.

4. M σ =Nσ ` Pσ→τM σ =Pσ→τNσ.

5. M σ→τ =Nσ→τ`M σ→τPσ =Nσ→τPσ.

6. M τ =Nτ`λxσ.Mτ= λxσ.Nτ .

7. M σ =Nσ, N σ =Pσ`M σ = Pσ.

La réduction est non symétrique, mais elle génère une relation symétrique appelée équivalence.

1.5.4.1 Dénition (β − equivalance)

La théorie formelle de la β − equivalance simplement typée est notée λβ→.Ces formules sont de la forme M σ =Nσet ses axiomes et régles sont identiques à ceux de

β − reduction on ajoutant la régle suivante : M σ =Nσ` N σ =Mσ.

On note λβ→ `Mσ = Nσ, λβ→ `Mσ. N σ , le '=' est remplacé par '.'.

On dit que Pα est β − equivalant ou β − convertible à Q (noté Pα =β Qα) ssi Qαpeut êtreobtenu depuis Pα par une serie nie (peut être vide) de β− contractions, β− contractions inver-sée et le changement des variable liées, C-à-d: (Pα =β Qα) ssi il existe Pα

0 , . . ., Pαn (n≥ 0) tel que:

11

Chapitre 1. Introduction des types simples dans les systèmes λ et CL - Church-style

(∀i ≤ n− 1)(Pα1 .1β P

αi+1ouP

αi+1 .1β P

α1 ouP

αi+1 =β P

α1

),

Pα0 ≡ Pα, Pα

n ≡ Qα.

Remarque Radical , contraction, reduction (.β), et la forme β-normale sont dénies pour lestermes typés exactement comme elles sont dénies pour les termes non typés an de montrer que :

M σ.βN τ =⇒σ ≡ τ , M σ.β N σ ⇐⇒λβ→ `M σ.Nσ.

β-Contraction, β-Réduction Tout terme de la forme ((λxσ.Mτ )σ→τ

)Nσest appelé un β −radical et le terme [Nσ/xσ]Mτest appelé sa contraction.

Exemple (λxσ.x (xyρ))Nσ.βN σ (N σyρ).

La forme β − normale Un terme Qσqui ne contient aucun β − radical est dans sa formeβ − normale (β − nf)

Exemple (λxρ. (λyρ.yx) zρ) vρ.1β [vρ/xρ] ((λyρ.yx) zρ) ≡ (λyρ.yvρ) zρ

.1β [zρ/yρ] (yρvρ) ≡ zρvρ.On dit que zρvρest la forme β − normale de (λxρ. (λyρ.yx) zρ) vρ.

1.5.4.2 Dénition ( Normalisation WN, SN)

Dans les λ− calcul typés, un terme M τest dit : Normalisable ou faiblement normalisable (WN) ssi il posséde une forme normale. Fortement normalisable(SN) ssi toutes les réductions ont une longeur nie (les réductionsse terminent).

On remarque que SN =⇒WN .Pour illustrer ceci on considère les termes non typés suivants :Ω≡(λx.xx)(λx.xx), T2≡(λx.y) Ω , T3≡ (λx.y)(λx.xx).Le premier terme a une réduction innie Ω .1 Ω.1etc., et ne posséde aucune forme normale,

alors il n'est ni SN ni WN.Le deuxiéme terme posséde au moins deux réductions, une est nie et l'autre est innie.(λx.y) Ω .1y , (λx.y) Ω.1(λx.y) Ω .1. . .alors T2 est WN mais non SN, et T3 est en même temp WN et SN.

1.5.4.3 Thèorème ( SN pour .β simplement typé )

Dans le λ − calcul simplement typé λβ→, tous les termes sont SN, c-à.-d il n'existe pas uneserie innie de β − reduction .

Corollaire ( WN pour .β simplement typé ) Chaque terme typé M τdans λβ→posséde uneforme normale M ?τ . De plus, tous les β− reductions de M τ qui possédent une longeur maximalese réduisent à M ?τ .

12

Chapitre 1. Introduction des types simples dans les systèmes λ et CL - Church-style

Note En λ, une réduction ρ est une série nie ou innie de contractions séparées par des α −conversions (peut être vide ), telle que :

X1 .β Y1 ≡α X2 .β Y2≡αX3 .β . . .

Le début de ρ est X1 , et la lengueur de ρ est le nombre de ces contractions (ni ou innie),sans compter les etapes − α. Si ρest ni (soit n), alors Xn+1 est appelé n de réduction outerminus.

Une réduction ρ a une longueur maximum ssi soit ρest innie ou son terminus ne contientaucun radical .

Corollaire Dans les λ− calcul typé la relation =β est décidive (decidable ), c-à-.d la réductiondes deux termes M τ , N τ tend vers la même forme normale , alors M τ =β N

τ .

13

Chapitre 1. Introduction des types simples dans les systèmes λ et CL - Church-style

1.6 CL-termes typés

Les types pour les CL-termes sont les mêmes que ceux des λ−termes.

1.6.1 Dénition (CL-termes typés)

Supossons qu'on à des variables typées, un nombre ni ou inni de constantes atomiques typéescontenant les combinateurs de base typés :

Iσ→σ ( une constante pour chaque type σ ) ;Kσ→τ→σ ( une constante pour chaque pair σ, τ ;S(ρ→σ→τ)→(ρ→σ)→ρ→τ (une constante pour chaque triple ρ, σ, τ .On dénie les CL-termes typés comme suit : Toutes les variables typées et les constantes atomiques typées sont des CL-termes typés. Si Xσ→τ et Yσ sont des CL-termes, alors ( Xσ→τYσ)τ est un CL terme typé.

1.6.2 Dénition ( Substitution )

C'est la même chose pour les CL-termes non typés sauf que les deux variables substituéesdoivent avoir le même type [Uσ/xσ ](Yτ ). mais on ne peut pas avoir cette substitution [ Uσ/xρ

](Yτ ).

1.6.3 Dénition ( Faible équivalence simplement typé et réduction CLω→)

L'équivalence faible simplement typé est dénie par la formule CLω→ ` Xσ = Yσ avec les règleset les expressions suivantes :

(I) IσXσ = Xσ ;

(K) Kσ,τXσYτ = Xσ ;

(S) Sρ,σ,τXρ→σ→τYρ→σZρ= Xρ→σ→τZρ (Yρ→σZρ) ;

(ρ) Xσ = Xσ ;(µ) Xσ = Yσ ` Zσ→τXσ = Zσ→τYσ ;(ν) Xσ→τ = Yσ→τ ` Xσ→τZσ = Yσ→τZσ ;(τ) Xσ = Yσ, Yσ = Zσ ` Xσ = Zσ ;(σ) Xσ = Yσ ` Yσ = Xσ.

Remarque La réduction et la faible forme normale typée est dénie de la même façon que celledes termes non typés.

1.6.4 Dénition ( Abstraction )

Pour tout terme Xτ et toute variable typée xσ, une abstraction [xσ].Xτ est dénie par inductionsur la langueur de Xτ comme suit :

1. [xσ].Xτ ≡ Kσ,τXτ si xσ /∈ FV(Xτ ) ;

2. [xσ].xσ ≡ Iσ ;

3. [xσ].(Uσ→τ xσ ) ≡Uσ→τ si xσ /∈ FV(Uσ→τ ) ;

4. [xσ].(Uσ→τVρ)≡Sσ,ρ,τ ([xσ].Uσ→τ )([xσ ].Vρ ) ....si (1) ou (3) ne s'applique pas.

1.6.5 Thèoréme ( SN pour .ω simplement typé )

Tous les CL-termes simplement typés ont des formes normales fortes, c-à-d il n'existe pasune réduction faible innie, donc on peut conclure que tous les CL-termes ont une faible formenormale.

14

Chapitre 1. Introduction des types simples dans les systèmes λ et CL - Church-style

1.7 Conclusion

Dans ce chapitre on a introduit les notions de base des deux systèmes λ et CL, à n d'aecterdes types simples aux termes suivant l'aproche de Church dont le terme recevra son type lors desa construction.

Le chapitre suivant va introduire la deuxième approche, celle de Curry utilisée pour attribuerdes types à des termes de façon implicite, c-à-d associer un type à un terme apres la constructionde ce dernier.

15

Chapitre 2

Types simples, Curry en CL et en λ

2.1 Introduction

Il parait boucoup plus mieux d'opter pour un formalimse dans lequel une opération est représen-tée par un seul terme, et attribuer à ce terme un nombre inni de types.

C'est ce qu'on traitera dans le chapitre présent, On prendra des termes non-typés commedonnés, et citerons un ensemble d'axiomes et de régles qui vont assigner certains types aux certainstermes. La plupart des termes reçoivent un ensemble de types inni, ces dérniers seront rassemblésdans un seul type dit principale.

Un système de type dans lequel un terme peut avoir plusieurs types est dit polymorphique,et aussi les types de ce terme ne font pas partie de sa structure, mais ils ont attribués apres quele terme est construit, ce système est dit de Curry , ou parfois implicite, en contradiction avec lechapitre précédent qui est dit explicite.

Le chapitre présent est dévisé en deux grandes parties, dans la premiére partie , on traitraque les termes CL. les régles pour les λ− termes sont plus compliqués est sont présentés dans ladeuxième partie.

On commencera en ettendant la dénition des types simples en ajoutant des types variablespour décrire un ensemble inni de types.

2.2 Types simples, Curry en CL

Commencant par l'introduction des types simple dans la logique combinatoire.

2.2.1 Dénition ( Types Paramétrés)

Supposons qu'on a une séquence innie des variables typées et une séquence nie, innie ouvide de constantes typées. On dénit les types paramétrés comme suit :

Toute constante typée et toute variable typée est un type paramétré (atome). Si α et τ sont des types paramétrés, alors α→τ est un type paramétré (fonction).

Notions les types de variables seront désignés par lettres 'a', 'b', 'c', 'd', 'e'..... Le types des constantes peuvent inclure le symbole N pour l'ensemble de tout les nombresnaturel et H pour des valeurs de vérité. Dans ce cas, des exemples de types seraient:

N →H , N → N , N →N → H. Un type fermé est un type ne contenant pas de types de variables.

16

Chapitre 2. Types simples, Curry en CL et en λ

Un type ouvert est un type contenant uniquement de type de variables. Un non-radical atome est un atome autre que S, K et I. Une constante non-radical est un constante autre que S, K et I. Un terme pur est un terme contenant seulement les atomes S, K, I, et les variables. Un combinateur est un terme dont les atomes sont S, K, I.

2.2.2 Dénition ( Système TAc

→)

Une formule de type session ou TAc→ formule est toute expression X: τ , où X est un CL-terme

et τ est un type. Nous appelons X son sujet et τ son prédicat.Une formule X: τ peut être lue de manière informelle comme suit: nous attribuons à X un type

τ .

2.2.3 Dénition ( Aectation des types dans le système TAc

→)

TAc→ est une théorie formelle. Ces axiomes sont donnés par trois axiomes-régimes, motivés

par les types Iα, Kσ,τ ,et Sρ,σ,τ comme suit :(→I) I : σ→σ.(→K) K : σ → τ → σ(→S) S : (ρ→ σ → τ)→(ρ→σ)→ρ→ τ .La seule règle de TAc

→ est appelée la règle d'élimination, ou (→ e). Elle est dénie commesuit:

Notation Soit Γ tout ensemble ni, inni ou vide de TAc→ formules. S'il existe une déduction

d'une formule X: τ dont les hypothèses non axiome dans Γ, nous écrivons Γ>TA→c

X: τ .Si Γest vide ont dit que TAc

→ est une preuve et on note:>TA→

c

X: τ .

Exemple Soit l'exemple suivant :>TA→c

SKK :σ→σ qui ce démontre comme suit:Dans le schéma d' axiome S on remplace ρ parσ, σ parσ→σ et τ parσ. On obtient:

S: (σ→(σ→σ)→σ )→(σ→σ→σ)→σ→σ.Et pour le schéma d'axiome K on remplace repectivemeny ρ par σ → σ et ρ par σ , on obtient:

K: (σ→(σ→σ)→σ) et σ→σ→σ.Par l'utilisation de la régle d'élimination on a:

2.2.3.1 Axiomes

Les trois axiomes-régimes pour TAc→ dans la dénition précédente ne sont pas des axiomes,

mais seulement des modèles. Les axiomes réels sont des cas particuliers de ces trois régimes. Parexemple, si le type-constantes comprennent N, les axiomes pour I sont:

I : a →a.I : N →N.I :(a→b)→(a→b).

17

Chapitre 2. Types simples, Curry en CL et en λ

I :(c→c)→(c→c)........etc

Remarque Il existe une innité des axiomes pour I nommées ensemble d'axiomes fermée parsubstitution.

2.2.3.2 Lemme ( Fermeture sous-types de substitutions)

Soit Γ être tout ensemble de TAc→formules, et soit : Γ>TA→

c

X: τ .Pour tous les types σ1.....σk et les variables a1......ak (distinct comme d'habitude). Soit [σ1/a1,

...,σK / ak] Γ le résultat de la substitutionσ1.....σk pour a1......ak simultanément dans tous lesprédicats Γ. Ensuite:

[σ1/a1, ...,σK / ak] Γ >TA→c

X: [σ1/a1, ...,σK / ak]τ

Note Tous les axiomes pour I sont des substitutions de l'axiome unique I: a→a. Cette axiomeest appelé l' axiome principal de I. De même pour K et S ont les principaux axiomes suivants:

K : a→b →a.S : (a→b→c)→(a→b)→a→c.

2.2.4 Construction de sujet

Soit D une Arbre de déduction pour la formule X: τ de certaines hypothèses:(a) U1:π1...........,Un:πn (n>=0)La construction de sujet X de la formule TAc

→ sert à construire l'arbre qui montre commentX est construit à l'aide des hypothéses de l'ensemble Γ sans l'aectation des types, et peut êtreaussi quelque occurence de I, K, et S.

Chaque occurence de Uidans X correspond à l'hypothése Ui dans Γ , et à chaque apparitionde I, K, et S dans X correspond à une axiome dans D .

Si Z est un sous-terme de X alors chaque occurence de Z dans X correspond à une formulede D avec le sujet Z .

Remarque si n = 0 alors X est un combinatoire.

Exemple Soit la déduction suivante(b):

Dans cette réduction on a X ≡UW(VW) avec les hypothéses suivantes:U:ρ→σ→τ , V: ρ→σ, W:ρ avec n=3 Si U,Vet W des atomes on obtient l'arbre suivante(c):

supposons que U1...Unne sont pas des atomes donc X sera un combinatoire applicatif deU1...Unet I,K,S. Chaque occurence de sous teme Z dans X est soit: une partie de l'élément Uid'un ensemble d'hypothése ui = πi.

18

Chapitre 2. Types simples, Curry en CL et en λ

un combinatoire applicatif de U1...Un,I,K,S et posséde une formule correspondonte dansD dont Z comme un sujet .

Dans l'exemple précédant si:

U ≡ V (VW ) et X ≡ V (VW )W (VW ); Z ≡ VW

alors il existe deux occuences de Z dans X , une est dans U est ne posséde aucune formulecorrespondante dans (b), mais la deuxième correspond à la formule VW : σ dans (b).

2.2.5 Abstraction

Le but de cette section est de montrer que le type de [x ]. X est exactement ce que on peuts'attendre de l'interprétation informelle de la fonction [x ]. X. Le théorème principal consiste àmontrer comment déduire le type de [x ]. X à partir des types de x et X.

2.2.5.1 Théorème ( Types et Abstraction )

Soit Γun ensemble quelconque de TAc→ formules. Si x ne se produit pas dans n'importe quel

sujet dansΓ , etΓ ,x:σ`TA→

c

X: τ alors Γ `TA→c

[x].X: σ →τ .

Corollaire Soit Γ un ensemble quelconque de formules TAc→ . Si aucun sujet dans Γ Contient

une des variables (distinctes) x1, ..., xn, et

Γ ,x1:σ1........xn : σn`TA→c

X: τ alorsΓ`TA→

c

[x1, ..., xn].X: σ1→ .......σn →τ .

2.2.5.2 Réduction de sujet

Le second théorème principal sur TAc→ montrera que les types sont conservés à la fois par la

réduction faible et forte.

2.2.5.3 Dénition (Hypothèses inertes)

Un CL-terme U sera appelé [faiblement ou fortement] inerte si et seulement il à une formenormale respectivement [faible ou forte] dont l'atome le plus à gauche est un atome non-radical.C'est à dire si et seulement si il est de la forme:

U≡qV1 ......Vk

où q est un atome 6= I, K, S, et V1......Vk sont des formes normales.Un ensemble Γ de formules U1:π1...........,Un:πn du système TAc

→ Sera appelé inerte si etseulement si tous les U1, U2, ..sont inertes.

Le lemme suivant dit, grosso modo, que si l'on remplace une partie V d'un terme X par unenouveau terme W terme avec le même type en tant que V, alors le type de X ne changera pas.

Lemme (Remplacement) Soit Γ1 etΓ deux ensembles du système TAc→ , et soit D une

déduction donnant

Γ1>TA→c

X: τ .

Soit V un terme qui occure dans le terme X, de sorte qu'il existe une formule V:ρ en D dans lamême position que V. Dans l'arbre de construction de X. Soit X∗ le résultat du remplacement deV par W de tell sorte que

Γ2>TA→c

W: ρ

alors

Γ1∪Γ2>TA→c

X∗: τ

19

Chapitre 2. Types simples, Curry en CL et en λ

2.2.5.4 Théorème (Réduction de sujet )

Soit Γ un ensemble faiblement [fortement] inerte de formules TAc→ . Si Γ>TA→

c

X: τ et

X.wX′

alors Γ>TA→c

X′: τ

Remarque ( Expansion ) Le théorème de réduction de sujet peut être inversé, autrementdit, si X se réduit à X′ , alors

Γ>TA→c

X′: τ =⇒Γ>TA→c

X: τ

Exemple de l'invalidité de l'expansion Soit le terme

X ≡SIII, X ′ ≡ II(II).

ici X .ωX′ et `TA→

CX ′ : σ → σ pour tout type σ,mais X ne posséde aucun type ( non-typable) 1

1. Voir l'exemple 2 des types principaux page 24

20

Chapitre 2. Types simples, Curry en CL et en λ

2.2.6 CL-termes typés

Dans cette section, nous allons étudier les termes purs, c'est à dire les termes dont les atomessont uniquement des combinateurs et variables.

2.2.6.1 Dénition (contexte du Type )

Un contexte du type est un ensemble ni ou inni de formules TAc→Γ= x1:ρ1, x2:ρ2, ... dont

les sujets sont des variables, et qui sont consistents dans le sens où aucune variable reçoit plusd'un type dans Γ, c'est-à-dire:

xi≡xj=⇒ρi≡ρj

2.2.6.2 Dénition ( Terme pur Typable )

Soit X un CL terme pur avec FV(X) = x1, . . . , xn (n >= 0). On dit que X est typable ssi:il existe un contexte x1 :ρ1, . . . ,xn :ρn et un type τ tel que:x1 :ρ1, . . . ,xn :ρn>TA→

c

X: τComme un cas particulier si n=0. X est typable ssi il existe un type τ telque:>TA→

c

X: τ

Exemple (a) Les termes fermés sont typable :

I, K, S, B, W, KK, SB, KI......etc (b) Les termes non fermés x et xz (yz )sont typables tel que :

x : a>TA→c

x : a,

x : a → b → c, y : a → b, z : a>TA→c

xz (yz ) : c.

Contrairement, le terme xx n'est pas un terme typable. une déduction >TA→c

qui attribueun type au terme xxdoit avoir la forme :

Lemme un terme CL pur X est typable ssi tous les sous types de X sont typables. un terme CL pur X est typable ssi il existe de types fermés ρ1, ..., ρn , τ respectant ladénition d'un terme pur typable.

2.2.6.3 Théorème (Typabilité de Décidabilité)

L'ensemble des CL termes typables est décidable.

2.2.6.4 Théorème ( SN pour .ω)

Tout CL-terme pur et typable est forttement normalizable. plus loin, si Γ est faiblement inerteet Γ`TA→

cX : τ , alors X est SN.

Corollaire (Théorème de WN pour .ω) Tous CL terme pur typable à une forme normalfaible.

21

Chapitre 2. Types simples, Curry en CL et en λ

2.2.7 Lien avec l'approche de Church

On suppose que les type-constantes dénies Précédemment sont les mêmes que les types ato-miques.

2.2.7.1 Dénition ( Analogue typé)

Pour chaque CL-terme typé Yτ , on déni |Yτ | le terme non-typé obtenu par la supression detous les types-exposants de Yτ . En particulier, on dénit

|S(ρ→σ→τ)→(ρ→σ)→ρ→τ | ≡S,|Kσ→τ→σ|≡K ,| Iσ→σ| ≡I ,|x τ | ≡ x .

Si X est non-typé et |Yτ |≡X , on dit que Yτ est l'analogue typé de X .Un seul terme non-typé peut avoir plusieurs analogues typés, par exemple

I≡|IN→N|≡|I(N→N)→(N→N)| ≡etc.

Remarque Un type fermé est un type qui ne contient aucune types variables, il est dit un type original .Chaque terme fermé,typé et pur 2 Yτ , peut étre réécrit sous forme d'une preuve TA→c .

x : ρ1 , . . .xn : ρn`TA→c

X : τ (avec X≡|Y τ | ).

Lemme Un CL-terme X typé et pur est typable ssi il a un analogue typé, c.-à-d il existe unterme |Y τ | ≡X .

2.2.8 Types principaux

Les axiomes et règles de TA→c permettent d'aecter plus d'un type à un terme ; ce qui soulèvela question naturelle de ce que l'ensemble des types attribués à un terme ressemble. Cette sectionmontrera que si un terme pur est typable, tous ses types s'avèrent être les instances de substitutiond'un type principal .

2.2.8.1 Dénition ( Type principal p.t. 3)

Soit X un CL-terme pur quelconque, avec FV (X )=x1 , ...., xn (n ≥ 0 ) . Si n = 0 : un type principal ou p.t de X est n'importe quel type π tel que `TA→

cX : π, et

Si `TA→c

X : τ alors τ est une instance de substitution de π. si n ≥ 0 : une paire [Γ, π] est une paire principale (p.p 4) de X , et π est le p.t de X , ssi Γ est un FV (X )− contexte et Γ `TA→

cX : π, et

Si Γ′ `TA→c

X : τ pour certain FV (X )− contexteΓ′et type τ , alors [Γ′, π] est une instancede substitutiton de [Γ, π].

Notation Dans la dénition ci-dessus une instance de substituttion d'une paire [Γ, π] est unepaire [Γ′, π] qui est le résultat d'une substitution simultanée

[ρ1/a1, ....., ρk/ak]

Pour les types variables dans π et les prédictas dans Γ, les objets dans Γ sont inchangés.

2. Termes dont les atomes sont que des combinateurs et variables.3. p.t : Principale type4. p.p principale pair

22

Chapitre 2. Types simples, Curry en CL et en λ

2.2.8.2 Théoréme ( Types principaux )

Chaque CL-terme typable et pur posséde un type principale et une paire principale.

Principe L'idée est de suivre la propriété de la construction d'objet, que la déduction arbrepour une formule X : τ doit suivre la structure de l'arbre de construction de X . Pour décider si unterme pur X est typable, on écrit en bas de l'arbre de construction de X et on essaye de remplirun type approprié à chaque étape, conforme aux modèles exigé par les axiomes et la règle (→e).Si il n'y a aucun moyen de remplir les types qui soit compatibles avec ces modèles, la tentativeconduira à une contradiction, et l'on peut conclure que X n'est pas typable.

Mais si les types appropriés peuvent être remplis dans tout l'arbre, le processus de remplissageen indiquera le type le plus général possible à chaque étape, et le type en bas de l'arbre est un typeprincipal pour X . Dans l'exemple ci-dessous, il sera appliqué à prouver qu'un terme particulierest typable, et un autre est non typable.

Exemple 1 Le terme SKK posséde un type principale a → a.

Preuve

(→ S) (→ K)

S :ρ→ σ → τ K :ρ

(→ e) (→ K) (2)

SK : σ → τ K : σ

(→ e)

SKK :τ .

Pour certains ρ, σ, τ . la formule K : σ doit être une instance de l'axiome-schéme (→ K). d'où σ doitavoir la forme µ→ ν → µ pour certains µ, ν. On aura l'équation suivante :

σ ≡ µ→ ν → µ. (3)

et la formule S :ρ→ σ → τ doit être (→ S)−axiome, et tous ces axiomes ont une forme

S : (ξ → η → ζ)→ (ξ → η)→ ξ → ζ ;

d'où, pour certains ξ, η, ζ,

ρ ≡ ξ → η → ζ, σ ≡ ξ → η, τ ≡ ξ → ζ. (4)

même pour la formule K : ρdoit être (→ K)−axiome, alors

ρ ≡ ξ → η → ξ. (5)

Un type peut être attribué à SKK ssi les cinq équations dans (3)− (5)peuvent être résolues simul-tanément, et le p.t. de SKK sera donné par la solution la plus générale de ces équations.

Les deux equations pour ρdans (4)et (5), et celles pour σ dans (3)et (4) , impliquent que

ζ ≡ ξ, ξ ≡ µ, η ≡ ν → µ. (6)

Ces equations peuvent être résolues en prennant des types quelconques µ, ν, on met

ρ ≡ µ→ (ν → µ)→ µ, τ ≡ µ→ µ. (7)

Pour obtenir la solution la plus générale, nous prenons µ, ν pour avoir les type-variables a, b.ce qui donne la preuve-TA→c suivante :

(→ S) (→ K)

S :(a→ (b→ a)→ a)→ (a→ b→ a)→ a→ a K :a→ (b→ a)→ a

(→ e) (→ K) (2)

SK : (a→ b→ a)→ a→ a K : a→ b→ a

(→ e)

SKK :a→ a.

23

Chapitre 2. Types simples, Curry en CL et en λ

Exemple 2 Le terme SII est non typable.

Preuve Une preuve TA→C de SII :τ a la forme suivante

(→ S) (→ K)

S :ρ→ σ → τ I :ρ

(→ e) (→ I)

SI : σ → τ I : σ

(→ e)

SII :τ .

La formule I : σ doit être un(→ I)−axiome, pour certain type ν,

σ ≡ ν → ν.

La formule I : ρ doit être un (→ I)−axiome, pour certain type µ,

ρ ≡ µ→ µ.

Et la formule S :ρ→ σ → τ doit être (→ S)−axiome, et tous ces axiomes ont une forme

S : (ξ → η → ζ)→ (ξ → η)→ ξ → ζ ;

d'où, pour certains ξ, η, ζ,

ρ ≡ ξ → η → ζ, σ ≡ ξ → η, τ ≡ ξ → ζ.

Ces équations impliquent que

µ ≡ ξ, µ ≡ η → ζ, ν ≡ ξ, ν ≡ η.d'oùη → ζ ≡ µ ≡ ξ ≡ ν ≡ η,ce qui est impossible car l'expression η→ ζ est plus long que l'expression η.

Remarque ( Pseudo-unicité de p.t ) L'exemple précedent montre que a → a est le typeprincipal de SKK. alors c → c et d → d , etc. sont aussi des p.t.s.

alors le type principal d'un terme n'est pas unique. Cependant, on voit que les p.t.s d'un termeX ne dièrent que par le remplacement de variables distinctes pour variables distinctes.

Résumé Nous donnons, dans ce qui suit, une table de certains termes purs et leurs principauxtypes.

Term Type principaleI a → aK a → b → aS (a → b → c)→ (a → b)→ a → cB (≡ S (KS) K) (b→ c)→ (a→ b)→ a→ cC (≡ S (BBS) (KK)) (a→ b→ c)→ b→ a→ cW (≡ SS (KI)) (a→ a→ b)→ a→ bCI a → (a → b)→ bCB (a→ b)→ (b→ c)→ a→ cSKSI (a → b)→ a → bσ (≡ SB) ((b→ c)→ a→ b)→ (b→ c)→ a→ c0 (≡ KI) a → b → bn (n ≥ 2) (a→ a)→ a→ a (≡Na)D (≡ [x; y; z] .z (Ky)x) a1 → a2 → ((b→ a2)→ a1 → c)→ c.

24

Chapitre 2. Types simples, Curry en CL et en λ

2.2.9 Ajout de nouveaux axiomes

Le système TA→c peut être étendu par l'ajout d'axiomes supplémentaires, soit en ajoutantde nouveaux termes atomiques avec des axiomes d'aectation de type appropriées pour chaquenouvel atome, ou en attribuant de nouveaux types des anciens termes pour exprimer certains rôlesparticuliers que ces termes peuvent avoir.

Nous appellerons l'ensemble des nouveaux axiomes proposés une base. Citons quelque exemplesde base :

Exemple1 ( Base arithmétique Bz) L'extension arithmétique des CL a été faite en ajoutanttrois nouveaux atomes 0,σ, Z pour la dénition de terme (pour zéro, successeur et itérateur) eten ajoutant les contractions suivantes à la dénition de la réduction faible :

Zn.ωZn (n ≡ (SB)n

(KI) , n = 0, 1, 2, ...) .

Correspondant à cela, soit la base arithmétique Bz soit l'ensemble suivant de formules :0 :N , σ :N → N, Z : N→ Nτ ,avec N est un type-constante et Nτ est (τ → τ)→ τ → τ , il existe une formule pour chaque

type τ . D'où Bz est un ensemble inni. mais toutes les formules Z : N→ Nτ sont des instancesde substitution de Z : N→ Na , alors ces formules peuvent être résumées par un seul 'axiomeprincipal'.

Exemple 2 ( Deux bases pour les chires de Church ) Supposons que nous avons lestermes purs, et un type constante N , et regardons les chires de Church. Il semble naturel devouloir ajouter des axiomes et attribuer les nouveaux types suivants pour les combinateurs pourzéro et successeur :

KI : N, SB : N → N .

Alternativement, la suivante pourrait être ajoutée comme un ensemble inni de nouveau axiomes :

(SB)n

(KI) : N (n = 0, 1, 2, 3, ....)

Exemple 3 ( Inclusions appropriées ) Un nouveau axiome sous la forme

I : µ→ ν

Pour certains types µ avec µ 6= ν, On dit intuitivement que l'opérateur µ 'mappe' en ν, c'est àdire que µ est un sous-ensemble de ν. Un tel axiome est appelé inclusion appropri ee. par la règle(→e),

X : µ, I :µ→ ν ` IX : ν.

2.2.9.1 Dénition ( Bases mono-schématiques )

Un ensemble de formules TA→c B=U1 : π1 , U2 : π2 , U3 : π3 , ... est dit Base mono-schématique ssi chaque Uiest non-radical constant et B contient un 'axime principal' pour chaqueUi comme les axiomes principaux pour I, K et S. Plus précisément B est mono-schématique ssichaque Uiest non-radical constant, et pour caque constante U se produisant en tant que sujet dansB (disant U ≡ Ui1 ≡ Ui2 ...),il exite un seul ij tel que πi1 , πi2 , πi3 , ...est exactement l'ensemblede toutes les instances de substitution de πij .

(La formule Uij : πij est dite l'axiome principal pour U dans B.)Un exemple d'une base mono-schématique est la base arithmétique Bzmais les exmples suivants ne sont pas mono-schématiques car leurs objets ne sont pas des

constantes non-radicales.

(SB)n

(KI) : NIX : ν

25

Chapitre 2. Types simples, Curry en CL et en λ

Remarque On dit qu'une base est mono-schématique, si elle possède de nombreuses propriétésavantageuses et les axiomes I, K et S. Par exemple, il est fermé par substitution, alors si Γest unebase mono-schématique nous pouvons remplacer '[σ1/a1, ....σk/ak] Γ' par Γ.

Chaque base mono-schématique est inerte (parce que ses objets sont non-radical constantes).

2.2.9.2 Dénition ( Typabilité relative )

SoitB un ensemble de formules TA→c . Soit X un CL-terme quelconque, avec FV (X )=x1 , ...., xn(n ≥ 0 ) .

On dit que X est typable relative à B ssi il existe un contexte x1 : ρ1, .........., xn : ρn etun type τ tel que

B,x1 : ρ1 , ......, xn : ρn`TA→c

X : τ .

On dit q'un type π est un type principal de X relativement à B, et une paire [Γ, π] (p.p) deX relativement à B, ssi Γ est FV(X )-contexte et B t Γ `TA→

cX : π, et

si B t Γ′ `TA→cX : τ, pour certain FV(X )-contexte Γ′ et type τ , alors [Γ′, π] est une

instance de substitution de [Γ, π] .

Remarque Supposons TA→c est étendu par l'ajout d'une base B, et supposons B est mono-schématique ou inerte.

Le théorème des types principaux est valable pour p.t et p.p. relativement à B, si B estmono-schématique.

La décidabilité de typabilité ne s'étend pas à la typabilité relative seulement si B satisfaitcertaines conditions de décidabilité.

Le théorème de normalisation forte tient toujours pour .ω si B est faiblement inerte. C'est-à-dire, chaque terme typable par rapport à un B faiblement inerte est SN par rapport à.ω.

2.2.10 Propositions-comme-types et normalisation

Un type comme a → b → a, qui est ouvert, c'est à dire ne contient pas de type-constantes,peut être interprété comme une formule de calcul propositionnel en lisant '→′ comme implication.

En outre, si D est une déduction TA→c dont les types sont tous ouverts, et nous retirons tousles sujets de D , alors le résultat sera une déduction dans le calcul propositionnel . C'est parce quela transformation ci-dessus change (→ e), qui dit

X : σ → τ Y : σ

XY : τ ,

à la règle propositionnelle de modus ponens, qui dit

σ → τ σ

τ,

Et aussi change les axiomes (→ I) , (→ K) et (→ S) aux formules démontrables du calcul propositionnel,c'est-à-dire

σ → σ, σ → τ → σ, (ρ→ σ → τ)→ (ρ→ σ)→ ρ→ τ.

Par exemple, si cette transformation est eectuée sur la déduction de SKK : σ → σ, le résultat estla déduction propositionnelle suivante σ → σ.

26

Chapitre 2. Types simples, Curry en CL et en λ

(σ → (σ → σ)→ σ)→ (σ → σ → σ)→ σ → σ σ → (σ → σ)→ σ

σ → (σ → σ)→ σ σ → σ → σ

σ → σ.

En outre, le terme SKK qui a été supprimé de la conclusion détermine l'arborescence de la déductionpropositionnelle. toute le déduction propositionnelle peut être codée comme un seul terme typé.

Sσ,σ→σ,σKσ,σ→σKσ,σ

Ainsi, grosso modo, les types ouverts correspondent à des formules propositionnelles, et les termestypés correspondent aux déductions propositionnelles.

2.2.10.1 Dénition ( Type habité )

Un type σ est dit habité si et seulement si il exist un terme fermé M tel que

`M : σ.

Selon la correspondance Propositions-comme-types, les types habités correspondent aux formulespropositionnelles démontrables, et les termes clos qui les habitent correspondent aux preuvespropositionnelles.

les termes non clos ( termes contenant des variables libres), ne correspondent pas aux preuves,mais à des retenues sur les hypothèses.

Dénition ( Réduction de déduction ) Une réduction d'une déduction à une autre consisteen une séquence de remplacement par les trois règles de réduction suivantes.

I−réductions pour déduction : une déduction de la forme

D1

I : τ → τ X : τ(→ e)

IX : τD2

Peut être réduite à

D1

X : τD ′2 ,

où D ′2 est obtenu à partir de D2 en remplaçant les occurrences appropriées deIX par X . K−réductions pour déduction : une déduction de la forme

D1

K : τ → σ → τ X : τ(→ e) D2

KX : σ → τ Y : σ(→ e)

KXY :τD3

Peut être réduit à

D1

X : τD ′3 ,

où D ′3 est obtenu à partir de D3 en remplaçant les occurrences appropriées de KXY par X .

27

Chapitre 2. Types simples, Curry en CL et en λ

S−réductions pour déduction : une déduction de la forme

D1

S :(ρ→ σ → τ)→ (ρ→ σ)→ ρ→ τ X : ρ→ σ → τD2

SX :(ρ→ σ)→ ρ→ τ Y : ρ→ σD3

SXY :ρ→ τ Z : ρ

SXY Z : τ.D4 .

peut être réduit à

D1 D3 D2 D3

X :ρ→ σ → τ Z : ρ Y : ρ→ σ Z : ρ

XZ : σ → τ YZ : σ

XZ (YZ ) : τ .D ′4 ,

où D ′4 est obtenu à partir de D4 en remplaçant les occurrences appropriées de SXY Z par XZ (YZ ).

Remarque Une des propriétés les plus importantes de réductions des déduction, c'est que ilsne peuvent pas durer éternellement (nie).

2.2.10.2 Dénition ( Aectation des termes typés à des déductions )

Pour chaque déduction D en TA→c , attribuer un terme typé T (D) . Ce T (D) codera justeassez de la structure de D pour servir dans la preuve du théorème de SN.

Tout d'abord, choisir un type atomique quelconque de la dénition des types (appelé c), etsubstitut c pour tous les types variables en D . le résultat est Appelé D ′.

Ensuite, pour chaque type τ , choisir un terme variable typé, appellé υτ .Assigner un terme typé à chacune des parties de D ′, ainsi : à une hypothèse x : ρ, assigner υρ ; à une hypothèse U : ρ avec Un'est pas une variable, assigner υρ ; à un axiome I : σ → σ, assigner Iσ ; à un axiome K : σ → τ → σ, assigner Kσ,τ ; à un axiome S : (ρ→ σ → τ)→ (ρ→ σ)→ ρ→ τ , assigner Sρ,σ,τ ; à la conclusion d'une application de la règle (→ e), disons

U : σ → τ V : σ(→ e)

UV : τ,assigner (Xσ→τY σ)

τ, avec X σ→τa été attribué à la prémisse U : σ → τ , et Y σ à

la prémisse V : σ.

Le terme typé T (D) contient une seule variable de chaque type (bien que cette variable peut seproduire plusieurs fois), et ne contient pas de constantes non-radical. Mais il contient toutes lesoccurrences de S, K et I qui ont été introduites dans D par des axiomes, ce qui donne le lemmesuivant.

Lemme Soit D , ξ des déductions TA→c , et soit D se réduit à ξ par l'une des remplacementsdans la dénition précédente. AlorsT (D) se réduit à ξ par une contraction faible.

28

Chapitre 2. Types simples, Curry en CL et en λ

2.2.10.3 Théorème ( SN pour les déductions )

Chaque réduction d'une déduction TA→c est nie.

Corollaire ( SN pour les termes CL ) Soit Γ faiblement inerte, et soit Γ`TA→cX : τ. Alors

toutes les faible réductions de X sont nies.

Remarque Si la condition d'inertie dans le corollaire ci-dessus est omise, le corollaire peutéchouer. En fait, nous pourrions avoir une déduction D :

Γ`TA→cX : τ,

Tel que D était normal mais X eu une réduction innie (WN).Par exemple, soit X≡YK où Y est un combinateur de point xe, et soit Γ= YK : τ pour

certains τ , puisΓ`TA→c

YK : τ, par une déduction normale en une seule étape ; mais YK a aucuneforme normale faible.

Cependant, il ya quelques ensembles d'hypothèses non-inertes pour lesquels la conclusion ducorollaire est vrai ou partiellement vrai. Deux de ces ensembles ont été utilisés dans la littératurecomme bases d'axiomes pour les extensions de TA→c ; ils sont discutés dans les deux remarquessuivantes.

Remarque ( Bases avec le type universel ) Supposons qu'il y ait un type-constante ω(pour repérer l'ensemble universel), et supposons une base B contient une formule X :ω pour toutterme X . alors B est clairement pas inerte.

Cependant, supposons que la partie de B reste après que toutes les formules X :ω ont étéenlevés est faiblement inerte. Ensuite, si D est une déduction normale donnant, par exemple,

B`TA→CY : τ ,

Tous les faibles radical dans Y vont être dans des composants qui recoivent le type ω dans D .

Remarque ( Base avec les inclusions appropriées ) Supossons une base contenant uneinclusion appropriée I : µ → ν. Alors B est clairement pas inerte. Cependant , si une hypothéseI : µ → ν est utilisée dans une déduction normale de la formule Y : τ , on trouvra facilement unradical dans Y .

Par exemple, soit a, b, c, d des type-variables, soit G et H des atomes non-radical, et soit

B = I : (a → b)→ c → d ,G : b, H : c .Alors, par l'axiome K : b→ a→ b, on peut déduire

B `TA→C

I (KG) H : dK : b→ a→ b G : b

K : (a→ b)→ c→ d (KG) :a → b

I (KG) : c→ d H : c

I (KG)H : d .︸ ︷︷ ︸un radical

Par une déduction normale, I (KG) est encore un radical ; de plus, si ce radical est contracté à KG ,alors le treme devient KGH , qui est aussi un radical.

Ceci montre que en contractant tous les radicaux de la forme IU ne mene pas nécéssairementà un terme dans la forme normale.

29

Chapitre 2. Types simples, Curry en CL et en λ

2.2.11 Régle d'équivalance Eq′

Comme nous l'avons vu déja, TA→C n'est pas invariant sous l'égalité combinatoire . Par exemple,SKSI ne possède pas tous les types que KI(SI) posséde ; En outre, même si II(II) a un p.t a → a.SIII est non-typable.Dans un système utilisant des combinateurs il s'agit d'un défaut, en raison de l'utilité des combina-teurs vient des transformations qui peuvent être réalisées en utilisant leurs propriétés de réduction.Pour remédier à ce défaut, nous pouvons ajouter la règle suivante :

X : τ X =? YRegle Eq′

Y : τ ,

où '=?' signie =ω ou =Cβ .

2.2.11.1 Dénition (Systèmes TA→C=)

Les systèmes TA→C=ω5, TA→C=β

6sont dénis en ajoutant les règles Eq′ω, Eq′β ci-dessus, respec-

tivement, à la dénition de TA→C .Le nom TA→C= signie tout ou partie de ces systèmes, selon contexte.

Exemple

D1

X : σ → τ X =? YEq′ D2

Y : σ → τ Z : σ(→ e)

YZ : τD3

Cette déduction peut être remplacée par

D1 D2

X : σ → τ Z : σ(→ e) (X =? Y )

XZ : τ XZ =? YZEq′

YZ : τD3

Remarque ( Indécidabilité ) Notez que la relation ` X : τ dans TA→C= est indécidable, à ladiérence que dans TA→C qui est décidable. La raison est que dans les systèmes avec la régle Eq′,les déductions ne doivent pas suivre les constructions des termes comme ils le font dans TA→C , caril est possible pour une déduction dans TA→C= de consister en une déduction TA→C suivie par uneconclusion par la règle Eq′. Depuis l'égalité combinatoire est indécidable, est donc TA→C=.

2.2.11.2 Théorème ( Report-Eq′)

Si =? est =ω ou =Cβ , et Γ est un ensemble quelconque de formules, et

Γ `TA→CX : τ ,

Alors il existe un terme Y tel que X =? Y et

Γ `TA→CY : τ .

5. La régle d'équivalence pour les CL termes.6. La régle d'équivalence pour les λ termes.

30

Chapitre 2. Types simples, Curry en CL et en λ

Corollaire ( WN pour TA→C=) Soit Γ faiblement ( ou fortement ) inerte. si Γ `TA→CX : τ

dans TA→C=ω, alors X posséde une faible (forte) forme normale.

Remarque Le corollaire précédent ne peut être renforcé pour conclure que X est SN. Pourle voir, prendre un terme X qui a une forme normale, mais a aussi un réduction innie, soitX ≡ Y(KI). Ce terme X a une forme normale, puisque

X .ω KIX .ω I;

Mais il a aussi une réduction innie

X .ω KIX .ω KI (KIX ) .ω KI(KI(KIX )).ωetc.

Donc I : a → a est démontrable dans TA→C , alors par la régle Eq′, X : a → a est démontrabledans TA→C=ω. mais X n'est pas SN.

2.2.11.3 Dénition ( Typabilité dans TA→C=)

Les dénitions de typable, p.t. et p.p. pour TA→C= sont exactement les même que pour TA→C ,mais avec `TA→

C=au lieu de `TA→

C.

Cependant, la classe des termes typables dans TA→C= dière de celle de TA→C . Le théorèmesuivant donne la relation entre les deux classes.

2.2.11.4 Théorème

Soit =? est =ω . Ensuite, un CL-terme pur X est typable dans TA→C= ssi X a une formenormale X ?, qui est typable dans TA→C .

En outre, les types que TA→C= attribués à X sont exactement ceux que TA→C attribue à X .

2.2.11.5 Théorème ( Type principaux dans TA→C= )

Soit =? est =ω ou =Cβ .

1. Chaque CL-terme pur qui est typable dans TA→C= posséde un p.t et une p.p dans TA→C=.

2. Si B est une base d'axiomes mono-schématiques, alors chaque terme typable relative à Bposséde un p.t et une p.p relative à B .

Remarque Un terme peut être typable dans les deux TA→C= et TA→C , mais posséde des typesprincipaux diérents dans les deux systèmes. Par exemple, SKSI est typable dans TA→C et son p.t.est (a → b)→a → b , mais SKSI.ωI, alors que dans TA

→C= son p.t. est a → a.

31

Chapitre 2. Types simples, Curry en CL et en λ

2.3 Typage simple, Curry style dans λ

Cette va faire pour les λ−termes la même chose qu'on a fait pour les CL-termes dans la partieprécédente. Il n'y a pas une grande diérence entre les deux parties soit dans le idées de base oules principaux résultats, mais il y a une complication technique majeur dans les preuves pour λ,causé par le fait que les λ-termes ont des variables liées tandis que CL-termes n'ont pas.

Dans ce chapitre, les termes sont les λ-Termes exactement tel que déni dans le chapitre 1 (pasles termes typés). On rappel les abréviations

I ≡ λx .x , K ≡λxy.x, S ≡λxyz.xz(yz).Les types sont dénis ici exactement comme dans la dénition de 2.2 (types paramétriques).

Formules de l'aectation des type sont tels que dénis dans la dénition de 2.3.2, à l'exceptionque maintenant leurs sujets sont λ-termes, pas des CL-termes.

La règle d'élimination → e sera également utilisé dans la partie présente ; pour λ-termes M etN, on dit que

M : σ → τ N : σ(→ e)

MN : τ .

Discussion ( Régle d'introduction → i) Une nouvelle régle qui correspond à la constructionde (λxσ.M τ )

σ→τ, ditte régle d'introduction (→ i)

si x /∈ FV (L1...Ln) et

L1 : ρ1, ..., Ln : ρn, x : σ `M : τ,

alors

L1 : ρ1, ..., Ln : ρn, x : σ ` (λx.M) : (σ → τ).

et on écrit :

[x : σ]M : τ

(→ i)(λx.M)(σ → τ).

Une déduction est un arbre de formules, mais certaines des hypothèses dans les branches en dessuspeuvent être des hypothèses temporaires, pour être utilisés lors d'une déduction, puis 'libéré' (ouannulé) ultérieurement. Après une hypothèse a été libéré, elle est marquée dans d'une certainefaçon ; nous enfermer entre crochets.

Dans un tel système, la règle (→ i) est lu 'Si x /∈ FV (L1 ... Ln), et la formule M : τ est laconclusion d'une déduction dont les hypothèses ne sont pas-encore-déchargées L1 : ρ1, ..., Ln :ρn,x : σ, alors on peut déduire

(λx.M) : (σ → τ) ,

Exemple Soit S ≡λxyz.xz(yz). dans un systéme quelconque dont ses régles incluent (→ e) et(→ i), on a pour tout type ρ, σ, τ,

` S := (ρ→ σ → τ)→ (ρ→ σ)→ ρ→ τ.

32

Chapitre 2. Types simples, Curry en CL et en λ

Preuve On suppose que x : ρ→ σ → τ , y : ρ→ σ, z : ρ,et opter pour construire une déductionpour xz (yz ), ( pour facilité, chaque hypothése est numérotée)

1 2 3 2x : ρ→ σ → τ z : ρ y : ρ→ σ z : ρ

(→e) (→e)

xz : σ → τ yz : σ(→e)

xz (yz ) : τ

Ensuite, on peut appliquer la régle (→ i) trois fois, le résultat est la déduction suivante. danslaquelle, chaque fois que (→ i) est utilisé, le nombre des hypothéses déchargées est montré, e.g '(i 2)'.

1 2 3 2[x : ρ→ σ → τ ] [z : ρ] [y : ρ→ σ] [z : ρ]

(→e) (→e)

xz : σ → τ yz : σ(→e)

xz (yz ) : τ(−i − 2)

λz.xz(yz) : ρ→ τ(−i − 3)

λyz .xz (yz ) : ρ→ σ → (ρ→ τ)(−i − 1)

λxyz .xz (yz ) : (ρ→ σ → τ)→ (ρ→ σ)→ ρ→ τ .

Remarque Seuls les formules de haut de branche peuvent être déchargées, jamais ceux le corps d'unedéduction.

La régle (→ i) décharge toute les occurence d'une régle.

Propriété ( α − invariance ) Une autre régle est dénie, pour α−conversion. Comme deuxtermes α−convertible sont destinés à représenter la même opération, deux de ces termes doiventêtre attribués exactement les mêmes types. Autrement dit, nous voulons une propriété α− inva-riance :

Γ `M : τ , M ≡α N =⇒ Γ ` N : τ

2.3.1 Système d'aectation de type TA→λ

TA→λ est un système de déduction. ces formules sont appellées formules-TA→λ , elles sont de laforme M : τ pour chaque λ−terme M et tous les types τ . (M est dit le sujet de la formule et τson prédicat.)

Le système TA→λ ne posséde aucun axiom mais il a ces trois régles :

(→ e) M : σ → τ N : σ

MN : τ(→ i) [x : σ]

M : τ

(λx.M) : σ → τ

33

Chapitre 2. Types simples, Curry en CL et en λ

Condition : [x : σ] est la seul hypothése non déchargée dont son sujet x se produit libre. Apres quela régle (→ i)est utilisée, toute les occurences de x : σen dessus de M : τ sont dites déchargées.

(≡′α) M : τ M ≡α N

N : τ avec M 6= N .

2.3.2 Propriétées de base de TA→λ

On présente ci-dessous quelque propriétées de base du système TA→λ qui vont servir à mieuxcomprendre ce système.

2.3.2.1 Types d'ensemble d'hypothéses

Soit Γ un ensemble de formules TA→λ U1 : π1, U2 : π2, ... .On dit que Γ est β − inerte ssichaque Ui est une β -forme normale qui ne commence pas par λ.

La dénition de la base mono-schématique est la même que pour les CL. Chaque base mono-schématique est β − inerte .

2.3.2.2 Fermeture sous la substitutions de types

Soit Γ un ensemble quelconque de formules TA→λ , et soit

Γ`TA→λM : τ .

alors, pour touts les types variables a1 , . . ., ak et types σ1,, . . , σk,

[σ1/a1 , . . ., σk/ak ] Γ`TA→λM : [σ1/a1 , . . ., σk/ak ] τ .

Substituant [σ1/a1 , . . ., σk/ak ] tout au long des prédicats dans la déduction donnée. Cette sub-stitution va changer une instance de règle (→e), (→i) ou (≡α) dans une nouvelle instance de lamême règle, donc le résultat est toujours une déduction originale.

Lemme (α− invariance) Soit Γ un ensemble quelconque de formules TA→λ , si

Γ`TA→λM : τ .

et M ≡α N , alors

Γ`TA→λN : τ .

2.3.2.3 Propriété de construction de sujet

De même pour TA→c , la déduction d'une formule M : τ dans TA→λ suit de près la constructionde M ; comme pour l'exemple précédent. La seule complication supplémentaire ici est la règle(≡′α), Et ceci ne peut être utilisé qu' aux branches au dessus d'un arbre de déduction .

Exemple Tout type attribué à B (≡ λxyz.x(yz)) en TA→λ est de la forme suivante

(σ → τ)→ (ρ→ σ)→ ρ→ τ

34

Chapitre 2. Types simples, Curry en CL et en λ

Preuve

1 3 2[x : σ → τ ] [y : ρ→ σ] [z : ρ]

(→e) (→e)

x : σ → τ yz : σ(→e)

x (yz ) : τ(−i − 2)

λz.x(yz) : ρ→ τ(−i − 3)

λyz .x (yz ) : σ → (ρ→ τ)(−i − 1)

λxyz .x (yz ) : (σ → τ)→ (ρ→ σ)→ ρ→ τ .

Lemme Soit Γ un ensemble de formules du système TA→λ de tel sort qu'une variable x nesurvient dans aucun terme de Γ. Soit

Γ,x : σ ` Y : τ. (1)

Alors pour chaque terme U ,

Γ,U : σ ` [U/x]Y : τ. (2)

Où le nombre d'étapes dans la déduction de (2) est le même que celui dans la déduction de (1).

2.3.2.4 Theoréme ( Réduction de sujet )

Soit Γ un ensemble inerte de formules TA→λ . If

Γ `TA→λX : τ

Et X .β X ′, alors

Γ `TA→λX ′ : τ .

L'inverse de ce théoréme n'est pas vrai ;

Γ `TA→λX : σ et X ′ .X n'implique pas Γ `TA→

λX ′ : σ .

Exemple Soit le terme X ≡ 0 ≡ λxy .y , X ′ ≡λxy.Ky(xy).On a ` X : τ → σ → σ, et ` X ′ : (σ → µ)→ σ → σ,

35

Chapitre 2. Types simples, Curry en CL et en λ

2.4 Conclusion

Le but principale de la méthode de Curry était d'attribuer des types à un terme apres quecelui-ci est construit, qui est lui attribué un type princpale parmi ces types,

Des proriétées on était introduites dans ce chapitre à n de montrer la diérence entre mesdeux approches, celle de Curch et l'autre de Curry, dans le chapitre suivant on va aller plus loinet on introduira la généralisation de théories du typage précédement présentées.

36

Chapitre 3

Généralisations de typage

3.1 Introduction

Dans les langages de programmation, il existe de nombreuses applications de typage qui exigentdes généralisations des théories que nous avons examinés jusqu'à présent. ces généralisations fontl'objet de ce chapitre.

Il est nécessaire d'introduire une opération de formation des types × et de postuler

D : α→ β → (α× β),D1 : (α× β)→ α,D2 : (α× β)→ β,

Avec

D ≡ λxyz.z(Ky)x,D1 ≡ λx.x0,D2 ≡ λx.x1.

Bien que l'extension comme celle-ci ajoute de nouveaux types et attribue de nouveaux types auxtermes, elle ne représente pas un changement majeur dans la façon dont fonctionne le typage.

Les extensions que nous allons considérer dans ce chapitre nécessitent des majeurs changementsdans les fondements des théories d'attributions des types.

La dénition des types des diérents systèmes sera plus compliqué que pour les systèmes deschapitres 1 et 2.

Dans ce chapitre, les termes et les types ne seront pas séparés ; un type sera juste un typeparticulier de terme.

3.2 Types de fonctions dépendantes

La principale nouveauté dans les systèmes de typage abordés dans ce chapitre est le rempla-cement du type de fonction σ → τ en tant que type principal composé par le type de la fonctiondépendante (Πx : σ.τ (x)), qui peut être lu de manière informelle ' pour tout x dans σ, on a τ (x)'.Ici, σ est un type, mais τ (x) est une fonction dont les valeurs sont des types pour les argumentsdu type x, de sorte qu'un terme de type (Πx : σ.τ (x)) représente une fonction dont les argumentssont de type σ Et dont la valeur d'un argument N est de type τ(N ).

De façon informelle, dans le cas particulier que τ(x ) est une fonction constante dont la valeurd'un argument est un type τ , (Πx : σ.τ (x)) est le type σ → τ .

Les systèmes de typage des chapitres 1 et 2 seront des sous-systèmes d'un grand nombre dessystèmes à prendre en considération ici.

37

Chapitre 3. Généralisations de typage

Pour exprimer l'idée de type des fontions dépondantes, nous allons utiliser des variantes desdeux règles suivantes, qui sont énoncés pour le typage de Curry en λ :

(Π e) M : (Πx : σ.τ (x )) N : σ

MN : τ (N ) ;

(Π e) [x : σ]M : τ (x )

(λx.M) : (Πx : σ.τ (x)) Condition : x : σ est la seul hypothèse non libéréedont objet x se produit librement, et x ne ne seproduira libre pas dansσ.

On dénit aussi la régle suivante :

(Eq′′) M : σ σ =β τ

M : τ

Notation le type (Πx : σ . τ (x)) a aussi apparu dans la littérature sous la notation (Πx : σ) τ (x),(Πx ∈ σ ) τ (x), et (∀x : σ) τ (x),

Pour permettre les types dépendants, la dénition des types devra être très diérente dela dénition des types dand le premier chapitre. Comme mentionné précédemment, l'une desprincipales diérences est que, tandis que la dénition des types de simples est complètementséparée de la dénition des termes, dans les systèmes avec le type de fonction dépendante,le typene peut pas être complètement séparée de termes, et pour de tels systèmes, tous les types serontles termes. En outre, la dénition devra permettre pour les variables de se produire librement dansces termes, de sorte nous allons parler non seulement sur les types, mais aussi sur les fonctionsdont leurs valeurs sont des types. Il existe deux approches alternatives à la dénition des types deces systèmes :

Approche 1 Dénition des types de telle sorte que si un terme T représente un type et contientun terme variable x , puis [N /x ]T représente un type aussi, peu importe ce que termeN est et quel type N posséde.

Approche 2 Dénition des types de sorte que [N /x ]T ne représente qu'un type si N a du mêmetype que x .

3.3 Typage de base généralisé , Curry en λ

On dénie maintenant un système des types dépondants en utilisant l'approche 1. ceci estappelé Typage de base generalise de Curry en λ. La dénition suppose qu'on un ensemble (peutêtre inni) des types constants atomiques. θni , chacun avec un degré n, chaque type constantatomique avec un degré n représentra une fonction de type supposé de prendre narguments, dontla valeur est un type.

On commence par a dénition des termes.

3.3.1 Dénition ( terme )

Les termes sont dénies comme suit

1. Chaque variable est un type.

38

Chapitre 3. Généralisations de typage

2. Chaque type constant atomique est un terme.

3. Si M et N sont des termes, alors (MN) est un terme.

4. Si x est une variable et M est un terme, alors (λx.M) est un terme.

5. Si M et N sont des termes, et x est une variable qui n'est pas libre dans M , alors (Πx : M . N)estun terme.

Remarque Dans les termes de la forme (Πx : M . N), le corps de Πx est N , est Πx relie touteslesoccurences libre de x dans N . Alors la dénition de la sustitution est la même que celle dénieen 1.2.3.

On dénie maintenant pour ce système les types et les fonction de type.

3.3.2 Dénition ( Fontions de type et types )

Un fonction de type d'un degré m représente une fonction de marguments qui accepte destypes en entrée est produit aussi des types en sortie. Le rang d'une fonction de type mésure lenombre des occurences de Π dnas la forme normale du terme qui la représente.

Les fonctions de type d'un degré donné et rangs sont dénies comme des fonctions de typesconvenables.

1. Un type constant atomique d'un degré n est une fonction de type constant convenable dedegré n est de rang 0 .

2. Si σ est une fonction de type convenable de degré m > 0 est rang k et M est un termequelconque, alors σM est une fonction de type convenable de degré m − 1 et rang k .

3. Si σ est une fonction de type convenable de degré m est rang k , alors λx.σ est une fonctionde type convenable de degré m + 1 et rang k .

4. Si σ et τ sont des fonctions de type convenable de degré 0 est rang k et l respectivement ,et si x /∈ FV (σ), alors (Πx : σ . τ) est une fonction de type convenable de degré 0 et rang1 + k + l.

Un type est fonction de type de degré 0 .

3.3.3 Théorème

Le degré et le rang d'une fonction de type sont uniques.

Corrolaire Si chaque type constant atomique a un degré 0 , alors chaque type est convertis enun type simple comme celui dans la dénition 1.4, où σ → τ est déni comme (Πx : σ.τ) quandx /∈ FV (τ).

3.3.4 Dénition ( Système d'aectation de type TAGλ)

Le système TAGλ (affectation de type generalise au λ− terme)est un système de déductiondont ces formules sont de la forme

M : σ

Pour les λ−termes M et des types λ. TAGλ ne posséde aucun axiomes. ces régles sont les suivant :

(Π e) M : (Πx : σ.τ (x )) N : σ

MN : [N /x ] τ ;

(Π e) [x : σ]

39

Chapitre 3. Généralisations de typage

M : τ (x )

(λx.M) : (Πx : σ.τ (x)) Condition : x : σ est la seul hypothèse non libéréedont objet x se produit librement, et x ne ne seproduira libre pas dansσ.

(Eq′′) M : σ σ =β τ

M : τ(≡′α) M : σ M ≡α N

Condition M n'est pas identique à N

3.3.5 Dénition ( Contexte )

Un contexte est une séquence nie de formules de la forme x1 : σ1 , ..., xn : σn , tel que x1 , ...xnsont tous distinctes . ce contexte est valable pour TAGλ ssi il satisfait

L1 Pour chaque i (1 ≤ i ≤ n), xin'occure pas libre dans n'importe des types σ1, ..., σi (mais peut occurer libre dans n'importe des σi+1, ..., σn).

On note que les contextes n'attribuent pas des types aux termes autre que les variables.

3.3.6 Dénition ( Système TAGaλ)

Le système TAGaλ , la formulation alternative du typage generalise, est un système avec desdé-clarations de la forme

Γ `M : σ,où M est un terme, σ est un type, et Γ est un contexte. Il peut avoir un ensemble

A d'axiomes pour le terme c : σ, avec c est une constant qtomique et σ est un type.les régles de TAGaλ sont comme suit :

40

Chapitre 3. Généralisations de typage

Note Avec ces régles, les hypothéses à gauche du symbole '` ' sont construit automatiquementen tant que des contexte légales.

3.4 Régles déductives pour dénir des types

Maintenant on traite les systèmes avec l'approche 2, des systèmes dans lesquels une instancede substitution d'un type est seulement un type si les termes substitués pour des variables sontles même que les types des variables. Dans tel systèmes, une déclaration qu'un terme est un typene fait pas partie de la syntaxe, mais doit être prouvée par les règles de typage déductives. Pourformuler adéquatement les règles, le système doit contenir au moins un type de types.

On modie le système TA→λ on ajoutant une nouvelle constante atomique ? pour représenterle type des types ( sans inclure ? lui même ) ; cela nous donne le système suivant, appelé λ→ .

3.4.1 Dénition ( Système de typage λ→)

Le système de typage λ→ on ajoutant à TA→λ la constante ?, les axiomes

θ : ?

Pour chaque constante de type dite θ , et la régle

(→ f) σ : ? τ : ?

(σ → τ) : ?

41

Chapitre 3. Généralisations de typage

et aussi modier la régle (→ i) comme suit :(→ i) [x : σ]

M : τ (σ → τ) : ?

(λx.M) : (σ → τ) Condition : x : σ est la seul hypothèse non libéréedont objet x se produit librement, et x ne ne seproduira libre pas dansσ.

3.4.2 Dénition ( Sorte )

Dans les systèmes d'aectation de type, avoir un type est déterminée par les axiomes et lesrègles déductives, les types dont leurs termes sont tous des types sont appelés sortes.

3.4.3 Dénition ( Contexte légal )

Un contexte l egal pour λ→ est un context ( c-à-d une séquence nie de formules de la formex1 : σ1 , ..., xn : σn , tel que x1 , ...xn sont tous distinctes ) .qui satisfait

L1 Pour chaque i (1 ≤ i ≤ n), xin'occure pas libre dans n'importe des types σ1, ..., σi (mais peut occurer libre dans n'importe des σi+1, ..., σn).

L2 Pour chaque i (1 ≤ i ≤ n), soit σi ≡ ? ou

x1 : σ1 , ..., xi−1 : σi−1 ` σi : ?.

Ensuite, la version alternative de λ→ correspondant à TAGaλ est déni comme suit.

3.4.4 Dénition ( Système λ→a )

Supposons qu'il existe une séquence et θ1,. . . , θn,,. . . , éventuellement inni, de typesatomiques, et supposons qu'il existe un symbole ?, appelé une sorte , distincte deθ1,. . . , θn,,. . ., Le système de typage λ →a, la formulation alternative de λ →, est un système de déclarationsde la forme

Γ `M : σ,

où M et σ sont des λ−termes, et Γ est un contexte. Il existe un ensemble A d'axiomes, et qui secompose deθn : ? pour chaque n. Les régles sont comme suit :

42

Chapitre 3. Généralisations de typage

3.5 Typage , Church en λ

Dans les systèmes généralisés que nous envisageons ici, où les types sont des termes qui peuventcontenir des variables et où les règles déduction déterminent lequel de ces termes sont vraimentdes types. Ainsi, dans ces systèmes, les termes d'abstraction sont écrits

λx : σ.M .

Pour les systèmes de la section présente , la dénition des termes sera soit en deux étapes :d'abord, des expressions appelés pseudotermes seront dénies, puis les règles de déduction dechaque système permettra de déterminer quand un pseudoterme est un terme approprié à cesystème. Par exemple, dans une abstractionλx : σ.M , σ peut être un pseudoterme ou un termequi n'est pas un type, et l'expression entière peut être juste un pseudoterme.

nous allons utiliser A, B, etc pourσ,τ . Lorsque les types sont des variables, nous utilisons leslettres minuscules romains, tels que x , y , z ,.etc.

3.5.1 Dénition ( Pseudoterme )

1. Chaque variable est un pseudoterme.

2. Chaque type constant atomique est un pseudoterme.

43

Chapitre 3. Généralisations de typage

3. Si M et N sont des pseudotermes, alors (MN) est un pseudoterme.

4. Si xest une variable M et N sont des pseudotermes, alors (Πx : M . N)est un pseudoterme.

5. Si M et N sont des pseudotermes, et x est une variable qui n'occure pas libre dans M , alors(Πx : M . N) est un pseudoterme.

On introduit huit systèmes de typage appelés λ−cube, tous basés sur le type de fonction dépondant,et sur deux sorte, ? et . Les règles sont comme ceux de λ→a. Voici la dénition formelle.

3.5.2 Dénition (λ− cube )Les huit systèmes de typage de λ-Cube sont tous basés sur pseudotermes. Les systèmes ont

tous deux constantes spéciques, ? Et , Qui sont appelés sortes. Chaque système a un axiome, àsavoir ? : . Chaque système est également doté d'un ensemble < de règles spéciales, dont chacunest de la forme (s1 , s2 ), où s1 et s2 sont des sortes ; à savoir, chacun dess1 et s2 est une ? et les règles de déduction du système sont les suivantes :

Un pseudo − contexte est une séquence nie de formules de la forme x1 : A1 , ..., xn : An , telque x1 , ...xn sont tous distinctes et A1 , ....,Ansont des pseudotermes.

44

Chapitre 3. Généralisations de typage

Un pseudocontexte est un contexte l egal ssi les deux conditions suivantes :

L1 La variable xi ne se produit pas libre en A1 , ....,An (bien qu'il peut se produire libredans Ai+1 ,. . . , An) ;

L2 Pour chaque i (1 ≤ i ≤ n), soit Ai ≡ s oux1 : A1 , ..., xi−1 : Ai−1 ` Ai : ?.

pour certains sorte s (en fonction de i).Un pseudoterme M est un terme si et seulement si il existe un contexte légale Γ et un pseudo-

terme A de telle sorte que

Γ `M : A.

Un pseudoterm A est un type ssi il ya un contexte légale Γ et un pseudoterme M tel que

Γ `M : A.

Les huit systèmes spéciques sont déterminés par l'ensemble < des règles spéciales, comme l'in-dique le tableau ci-après

Le λ-Cube est souvent représenté dans la gure suivante :

Figure 3.1 λ− Cube

3.5.3 Dénition ( Type èche →)

Le type fleche A→ B est déni comme étant (Π x : .A .B) où x /∈ FV (B).

45

Chapitre 3. Généralisations de typage

Remarque Compte tenu de la dénition ci-dessus de →, le système appellé λ →dans λ-cubeest vraiment le même que λ→a dans la dénition 3.3.7. ce c'est parce que, si Γ ` A : ? peut êtreprouvé dans la version λ-cube de λ →, alors A est construite à partir de l'ensemble de tous lestermes B tel que B :? se produit dans Γ, en utilisant seulement →.

Ce qui suit sont quelques exemples de ce qui peut peut être dérivé en λ→ :

Par exemple, le premier de ceux-ci peut être dérivée comme suit :

On note que la seule règle spéciale dans ce système est (?, ?), qui se produit dans tous les systèmesde λ-cube. Elle permet au système de dire que certaines termes sont des types.

3.5.4 Dénition ( Systèmes de type pur )

Syst emes de type pur(PTSs) sont dénis par la modication de la dénition de 3.5.2 commesuit : les constantes arbitraires diérent de tous les autres constantes dans le système sont main-tenant acceptés comme sortes, il existe un ensemble A d'axiomes de la forme s1 : s2 , où s1 et s2sont les sortes, la règle (axiome) a maintenant la forme

s1 : s2 ,

pour chaque axiome s1 : s2∈ A, les règles particulières en < sont maintenant à prendre dans laforme (s1 , s2 , s3 ), et la règle (produit) est maintenant a la forme suivante :

Condition x ∈ FV (Γ ,A), s1, s2, et s3 sont des sortes, et (s1 , s2 , s3 )∈ <.Dans ces systèmes s1 : s2 est pris pour une abréviation de le régles (s1 , s2 , s3 ).L'ensemble des sortes est désignée par S , et le système de type pur est dit déterminé par S ,

A, et <.Les systèmes de λ-Cube sont tous des systèmes de types purs.

46

Chapitre 3. Généralisations de typage

3.6 Conclusion

47

Conclusion générale

48

Bibliographie

[1] J. Roger Hindley, Jonathan P. Seldin - Lambda-Calculus and Combinators~ An Introduction- CUP 1

[2] Barendregt H.P. The lambda calculus, Its syntax and semantics, North Holland 1981 2

1. ce rapport a été rédigé à l'aide de ce document pour la raison de sa crédibilité et le fait qu'il couvre tous lessujets dans notre projet.

2. http ://www.ensiie.fr/~gacogne/lambda.pdf

49