• Aucun résultat trouvé

Point-fixe sur un ensemble restreint

N/A
N/A
Protected

Academic year: 2022

Partager "Point-fixe sur un ensemble restreint"

Copied!
13
0
0

Texte intégral

(1)

I

C HOUN T ONG L IEU

Point-fixe sur un ensemble restreint

Informatique théorique et applications, tome 20, no4 (1986), p. 383-394

<http://www.numdam.org/item?id=ITA_1986__20_4_383_0>

© AFCET, 1986, tous droits réservés.

L’accès aux archives de la revue « Informatique théorique et applications » im- plique l’accord avec les conditions générales d’utilisation (http://www.numdam.

org/conditions). Toute utilisation commerciale ou impression systématique est constitutive d’une infraction pénale. Toute copie ou impression de ce fichier doit contenir la présente mention de copyright.

Article numérisé dans le cadre du programme Numérisation de documents anciens mathématiques

http://www.numdam.org/

(2)

(vol 20, n°4, 1986, p. 383 à 394)

POINT-FIXE SUR UN ENSEMBLE RESTREINT (•)

par Choun Tong LIEU (*)

Communiqué par J. E. PIN

Résumé. - Dans cet article, nous présentons une preuve constructive de F existence d'opérateurs de point-fixes normalisateurs sur des sous-classes de Vensemble des X-termes. Le domaine d'applica- tion de ce résultat couvre en particulier les objets couramment manipulés en Programmation Fonctionnelle.

Abstract. - This article présents a constructive proof o f the existence ofnormalizing fixed-point operators restricted to X-terms subclasses. Domains where fixed-point operators can be defined cover usual areas of Functional Programming applications.

INTRODUCTION

L'étude des point-fixeurs, appelés aussi opérateurs paradoxaux, présente toujours un grand intérêt aussi bien en Lambda-Calcul qu'en Logique Combi- natoire. Ces opérateurs possèdent, comme leurs noms l'indiquent, une pro- priété de point-fixe qui est la suivante : (YF):=: (F(YF)) où F est un terme quelconque et où « : =: » est le signe d'égalité faible.

Citons Yc que Curry [6] appelle le Combinateur Paradoxal et Yt de Turing [9] définis de la manière suivante :

Yc = A, ƒ (kx. ( ƒ (x x)) Xx. ( ƒ (x x))) Yt = Xxf.(f(xxf))Xxf.(f(xxf)).

Mais ces deux point-fixeurs, appliqués à un terme F quelconque, ne possè- dent pas en général de forme normale. Cela pose de sérieux problèmes lors de l'implémentation des systèmes se réclamant du Lambda-Calcul ou de la

(*) Reçu juin 1985, révisé mai 1986.

H L.I.T.P., Université Paris-VI, Aile 45-55, 2e étage, porte 9, 4, place Jussieu, 75230 Paris Cedex 05.

Informatique théorique et Applications/Theoretical Informaties and Applications 0296-1598 86/04 383 12/S3.20/© Gauthier-Villars

(3)

Logique Combinatoire, car l'existence de forme normale y est, en général, la condition première de la terminaison d'un processus de calcul.

Pour répondre à ce problème, certains auteurs proposent de choisir des types bien particuliers de réduction permettant ainsi à(YF) d'être implémenta- ble.

En Logique Combinatoire, Bellot [2] a proposé l'utilisation d'un point- fixeur extentionnel « Yb » construit en utilisant un algorithme particulier d'abstraction. Le terme « (Yb F) » a une forme normale pour la réduction faible. Malheureusement, il n'a pas d'équivalent en Lambda-Calcul (Mezghiche [8]).

Dans un travail précédent, nous avions proposé d'y construire directement et « a la LISP » certaines fonctions récursives ayant toutes une forme normale, ce qui permit de suggérer l'utilisation possible d'un « point-fixeur » pour notre ensemble de listes et de nombres [7].

Afin de conserver les procédés usuels d'abstraction et de réduction, nous proposons ici de nous limiter à des ensembles restreints du Lambda-Calcul, en particulier à un système n'incluant que des listes et des nombres.

Dans cet article, nous construisons un « point-fixeur » unique, noté « Yl », travaillant sur ces ensembles. C'est-à-dire que pour tout élément p apparte- nant à ces deux ensembles, on a :

- YlFp: = : F(YlF)p;

— si F a une forme normale, alors {Yl F) a aussi une forme normale.

PRÉLIMINAIRES ET NOTATIONS

Dans cet article, nous utilisons uniquement le Lambda-Calcul muni de la P-réduction [1] dénotée par « : = » et de sa notion de forme normale.

L'égalité dénotée par « : = : » est déduite de cette réduction.

Le symbole « = » dénote l'égalité syntactique.

Le symbole « A » représente l'ensemble des termes du Lambda-Calcul.

1. DÉFINITION : Soit g c À, on dit que Q est uniformément soluble si : 3M1S ...,MneA/VqeQ, qM1... Mn:=:Xx. (x).

(les MJL, ..., Mn sont appelés solvants de Q).

Informatique théorique et Applications/Theoreticai Informaties and Applications

(4)

2. THÉORÈME : Soit Q c= A, avec Q uniformément soluble : (a) 3YQeAtelqueVFeA,VqeQ9 YQ F q: = : F (YQF) q;

(b) si F et les Mi ont des formes normales, alors (YQF) a aussi une forme normale.

Preuve : Prenons x, y et z n'appartenant pas aux Mu . . . , Mn et définissons :

a = Xxy. (y(xx y));

x = Xxyz, (z M1... Mnaxyz)

où les Mls ..., Mn sont des solvants de Q.

Prenons YQ ~ T T.

On a : T T : = Xyz. (z M1... Mn a x y z) : (a) Vgeg, VFeA, nous avons :

YQFq:= qMl...MnaxFq : — : OLxFq

:=:F(xxF)q

(b) Si F et les Mu ..., Mn ont des formes normales, on a : 7QF : = Xz. (zM1... MnOLxFz).

On en déduit que ( YQ F) a aussi une forme normale.

On trouvera chez Berarducci [3] un résultat analogue : l'énoncé est ici précisé, afin de tenir compte des contraintes sur les Ml3 ..., Mn pour la partie (b) du théorème.

Nous nous intéressons maintenant à des ensembles uniformément solubles particuliers permettant de modéliser des listes et des nombres. Nous y construisons des solvants, et en appliquant le théorème, nous donnons la À-expression correspondant à « YQ ».

3. DÉFINITION :VmeN, VneN*, Soit Qm n l'ensemble défini par :

- e«... = { ^ i - - - xt. ( xJT1 ...Tp),

avec 1 Sk ^ n, 0 ^ / > ^ m et 1 Sj^k et Tu ..., TpeA}.

Il est important de remarquer que chaque élément de Qm „ est en forme normale de tête en raison de la variable xr

vol. 20, n°4, 1986

(5)

Soient K^ et I des termes définis par :

— ^Sn S *-Xl ' * * Xm+l'\Xm + l)

- I = Aa. (x).

4. PROPOSITION : (a) 3 YmtDeA/VFe A, VqeQmtn, YMtHFq: =: F(YmtnF)q;

(b) si F a une forme normale, alors (Ym nF) a aussi une forme normale.

Preuve : (obtenue par l'application du théorème 2.)

Nous nous proposons ici de construire les solvants de Qm%n et ensuite Ym n. Pour tout élément q de Qmn, considérons le terme {qK^... K^I.. I) où K^

apparaît n fois et Im fois.

Nous savons que q est de la forme Xx1 ...xk. (xj Tt... TP) où ky j et p sont bornés d'après la définition de Qmn.

Nous avons :

où V u e [ l . . .pi Ru = [XJXi, . . . , K J x J Tu. si (n — k) S (m — j) :

: = / si (n —fc) > (m —j) :

. KMJ . . . / : = l ^ . . . ( n - f c - m + 7 ) f o i s . . . Xm/ . . . ( m ) f o i s . . . 7

:=Km...{{n — k — m +j) modulo m) fois... i ^ ƒ . . . (m) fois... ƒ

— si (n — k — m+j) est divisible par m + 1, alors on a :

* * „ . . . ^ J . . . / : = ƒ . . .(m + l ) f o i s . . . ƒ : = J

— si (n — /c — m + ƒ) n'est pas divisible par m + 1 et soit r le reste de cette division, on a :

qK»... KnI. . . ƒ : = / . . . (r)fois... ƒ

: = ƒ

Construction de 7

m n

a = A-xj. O(xx,y))

V„ = Xxyz.(zKm...KmI...Iaxyz)

Informatique théorique et Applications/Theoretical Informaties and Applications

(6)

où KM et / apparaissent respectivement n et m fois.

Et prenons : Ymn = Tm<nvm,n.

Nous avons :

(a) ym,B := •kyz.(zKm...KmI...l0LTm,myz) Ym,nFq

:= qKm...KmI...l0LTminFq

: = :F(Ym<nF)q

(b) Ym,nF:=Xz. (zKm...KmI...Iaxm,mFz).

On en déduit que si F a une forme normale, alors (Ym nF) a aussi une forme normale.

5. APPLICATION AUX LISTES ET AUX NOMBRES

(1) DÉFINITION : L'ensemble des listes L est modélisé de la manière suivante :

— NIL = Xxy. (y), NILeL (pour la liste vide);

— soient qeA et leL (avec x^q et x$l), alors Xx.(xql)eL (présentée sous forme de doublet).

Nous remarquons que Xx.(xqï) peut être construit à partir des termes D, q et / où D est défini par Xxyz. (zxy) et utilisé comme combinateur du couple abstrait par Boehm [4].

(2) DÉFINITION : L'ensemble numérique N est défini de la manière suivante :

— 0 = Xxy.(y),0eN;

— soit n e N, alors n + 1 = Xxy, (x (nxy)\ n -h 1 G N, C'est le classique système d'énumération de Church [5],

Pour manipuler ces objets, nous donnons en Annexe de cet article les définitions de quelques fonctions primitives.

(3) PROPOSITION : (à) 3 72 ) 26A/VfeA, V^

Y2t2Fq:=:F(Y2i2F)q.

(b) si F a une forme normale, alors (Y2 2 F) a aussi une forme normale.

Nous savons que l'union de ces deux ensembles est incluse dans

6 2 , 2 = {Xx1...xk.(xjT1...Tpl avec l ^ / c ^ 2 , 0 ^ p ^2 et 1 Sj S k}.

vol. 20, n° 4, 1986

(7)

En effet, le lecteur remarquera que tous les éléments appartenant à L ou à N appartiennent aussi à Q2 2-

Nous avons donc Y2 2 comme point-fixeur sur L et AT par application de la proposition 4.

(4) Construction 72 2

Posons :

K2 = Xxyz. (z) oc = Xxy.(y(xxy))

x2 2 = 'kxyz. (z K2K2II(xxyz)

^ =, 2 = T T2 22 , 2TT2 , 2

On a :

Y2t2F:=Xz.(zKzKzIIaT2>2Fz)

Y2,2 FXxy. (y): = Xxy. (y) K2 K211OCT2J 2 FXxy. (y) : - K2IIax2t2F\xy.(y)

: = :F(Y2t2F)kxy.(y).

Ce qui veut dire que :

2( 2 FNIL: =: F(72 j 2

Y2t2F0:=:F(Y2t2F)0

Y22FXx.(xpï):= Xx.(xpl)K2K2Il0LX22FXx.(xpî) := K2IIax22FXx.(xpl)

Informatique théorique et Applications/Theoretical Informaties and Applications

(8)

:= F(Y2t2F)Xx.(xpl) := n+1 K2K2II&T22Fn+l := K2(nK2K2)IIaLT2t2Fn±]_

:= I<XT22Fn+\

6. EXEMPLES D'APPLICATION A LA PROGRAMMATION FONCTIONNELLE

Nous allons donner deux exemples de son utilisation avec des fonctions définies récursivement (« a la LISP ») :

APPEND = Def Xxy. ((NULL x)

y

(CONS (CAR x) (APPEND (CDR x) y))).

Il est aisé de démontrer que la fonction « APPEND » fait la concaténation de deux listes.

Grâce à la fonctionnelle suivante : A-Xfxy.

y

(CONS (CAR x) (/(CDR x)y)))9

définissons :

ce qui donne :

APPEN : = Xz. (z K2 K2 IIax2> 2 A z).

Comme A a une forme normale, on en déduit que APPEN a aussi une forme normale.

Et on a :

(APPEN NIL/>) : =(NILK2 K211ax2> 2 A NIL/?)

vol. 20, n° 4, 1986

(9)

: = ( ^ 2 , 2 X 2 , 2 - 4 ) NIL/7)

{AI>PENXx.(xql)p):=(kx.(xql)K2K2II

:= (ax2t2AXx.(xq])p)

: = (A (x2i 2 T2 J 2 A) AJC. (X q l)p)

:=:{CONSq(APPENlp)) FACTORIELLE = Def AJC. ((ZEROx)

1

(* x (FACTORIELLE (PRED x)))).

Grâce à la fonctionnelle suivante : F = A/x. ((ZEROx)

1

(•x(/"(PREDx)))), définissons :

Ce qui donne :

FACT: = Xz. (zK2K211 ax2) 2 Fz).

Comme F a une forme normale, on en déduit que FACT a aussi une forme normale (d'après 5.3).

Donc :

( F A C T 0 ) : = ( 0 K2K2/ / C X T2 ) 2F 0 )

(FACTn+l):=

Informatique théorique et Applications/Theoretical Informaties and Applications

(10)

:=:(*n+l(FACTn))

7. THÉORÈME : Soit 6 un ensemble uniformément soluble avec des solvants normalisables et pour tout q appartenant à Q, il existe un terme Yq construit à partir de YQ tel que :

V F E A , (YqF):=:(F(YqF)).

Preuve : Définissons : Yq = Xf (YQXxyt (f(x y)) q) Pour tout F, on a alors :

(YqF):=(YQXxy.(F(xy))q)

': = : (Xxy. (F(xy)) (YQXxy. (F(xy))) q) :=:(F(YQXxy.(F(xy))q))

:=:(F(YqF)\

II est important de remarquer que pour un F quelconque, (YqF) n'a pas en général de forme normale.

Cette proposition nous permet de passer de notre point-fixeur dans un ensemble restreint à un point-fixeur général.

vol. 20, n° 4, 1986

(11)

ANNEXE

Modèle des fonctions primitives sur N et L en Lambda Calcul.

I = Xx. (x).

0, NIL = Xxy. (y).

ï = Xxy. (x y).

VRAI = Xxy. (x).

FAUX = Xxy. (y).

NON == Xx. (x FAUX VRAI) négation.

CONS = Xxyz. (z x y) construction d'une liste.

NULL = Xx. (x Xxyzuv. (v) Xxy. (x)) test d'égalité à NIL pour L.

car = Xx. (x Xyz. (y)), crd = Xx. (x Xyz. (z)).

CAR = Xx. ((NULL x) x (car x)) donne le premier élément d'une liste.

CDR = Xx. ((NULL x) x (cdr x)) donne la liste sans son premier élé- ment.

NZERO = Xxy. (x Xz. (y)) test de différence avec 0.

ZERO = Xx. (NON (NZERO x)) test d'égalité avec 0.

+ = Xxyzv. (xz(yz v)) l'addition pour N.

* = Xxyz. (x (y z)) la multiplication pour N.

SUCC = Xx. ( + J_x) la fonction successeur pour JV.

PPRED = 'Xxy. ((ZEROy) (x 1) ( + 1 (x 1))).

PRED = Xx. (x PPRED Xxyz. (z) Xxy~(y)) prédécesseur pour N.

Preuves du modèle proposé

(NON FAUX) : ={Xxy. (y) F A U X VRAI) :-VRAI

(NON VRAI) : ={Xxy. (x) FAUX VRAI) :=FAUX

(CONS ql):=Xz.(zql)

(NULL NIL) : = (NIL Xxyzuv. (v) Xxy. (x)) : = Xxy.(x)

:=VRAI

(NULL Xx. (x q /)) : = (Xx. (x q l) Xxyzuv. (v) Xxy. (x)) : = (Xxyzuv. (v) q l Xxy. (x))

Informatique théorique et Applications/Theoretical Informaties and Applications

(12)

: = Xuv. (v) :=FAUX (carXx. (xql)): = (X(xq/). Xyz. (y))

(cdr Xx. (x qt));= (Xx, (x q l) Xyz. (z)) : = /

(CAR NIL) := (NULLNILNIL-) :=NIL

(CARXx.(xqP}):=(NVLLXx.(xql)-{carXx.(xqï))) :=(FA\JX-q)

: = «

(CDR NIL) : = (NULL NIL NIL - ) :=NIL

(CDR Xx. (xql)):= (NULL Xx. (xql)~ (cdr Xx. (x q /))) : = ( F A U X - 0

: = /

(NZERO 0) : = Xy. (0 Xz. (y)) :=Xy.(Xv.(v)) :=FAUX

(NZERO n-M: = ^ . (n±\Xz. (y))

: = Xy.(Xv.(Xz.(y)(nXz.(y)v)

:-VRAI : = Xzv. (mz(nzv)) :=Xzv.(z(z(...(zv)...

(*mri): = Xz. (m (n z))

: = lz.(\y.(nz(nz(...(nzy)...

: = Xz.(Xy.(z(z(...(z ƒ)...))))

vol. 20, n° 4, 1986

(13)

; =m * n (SUCCm):=(+ lm)

(PRED 0) : = (0 PPRED AJCJZ. (z) Àjcy. (y)) : = ( ^ j z . (z) ~ )

\=\yz.(z) : = 0

(PREDm+1) : - ( m + 1 PPRED^xjz. (z)XJCJ/. 0)) : = (PPRED (PPRED...

(PPRED taj/z. (z))... ) Xxy. (y)) : - ( P P R E D (PPRED...

(PPRED Xxyz. (z))... ) 1) (avec m fois PPRED) : = ( + 1 (PPRED...

(PPRED Xxyz. (z))... 1)) m - 1 fois PPRED : = ( + 1 ( + 1 ( + . . . (+l~0)...) (avec m fois 1) : =m

BIBLIOGRAPHIE

1. H. P. BARENDREGT, The Lambda Calculus, Its Syntax and Semantics. Studies in Logic and Foundations of Mathematics, vol. 103, North-Holland Publishing Compagny.

2. P. BELLOT, Propriétés logico-combinatoires des Systèmes de programmation sans variables, Thèse de 3e cycle, Paris-VI, L.I.T.P., 84-30, 1984.

3. A. BERARDUCCI, Programmazione Funzionale e Rappresentabilità in alcuni Sistemi di Logica Combinatoria, Tesi di laurea in Matematica, Roma, 1983.

4. C. BOEHM, Modèle arithmétique de la Logique Combinatoire, Lambda-Calcul et sémantique formelle des langages de programmation, L.I.T.P.-E.N.S.T.A., 1979, p. 97, 108.

5. A. CHURCH, The Calculi of Lambda conversion, Annals of Math. Studies, 6, Prince- ton University Press, 1941.

6. H. B. CURRY, Combinatory Logic, vol. I, North Holland, Amsterdam, 1958.

7. C. T. LIEU, Étude d'une Extension Combinatoire des Entiers naturels. Application à la Programmation fonctionnelle. Thèse de 3e cycle, Paris-VI, L.I.T.P., 84-27, 1984.

8. M. MEZGHICHE, Intertraduction entre le Lambea-Calcul et la Logique Combinatoire, Thèse de 3e cycle, Paris-VII, L.I.T.P., 83-25, 1983.

9. A. M. TURING, The p-functions in X-K-conversion, J. Symbolic Logic, vol. 2, 1937, p. 164.

Informatique théorique et Applications/Theoretical Informaties and Applications

Références

Documents relatifs

Ces compétences, même si nous avons du mal à nous les recon- naître, il est nécessaire de les transmettre à de nouveaux venus à la pédagogie Freinet et à bien

Les tours de Hanoï sont un jeu de réflexion consistant à déplacer des disques de diamètres différents d’une tour de « départ » (tour 1) à une tour d’ « arrivée » (tour 3)

Écrire une fonction exponentiationRapide(a,n) qui prend en entré un réel a et un entier n et qui renvoie a n en utilisant l’égalité précédente2. On utilisera une

Taper = (Pour signifier que nous effectuons un calcul ) puis la formule 2×A4+3 (Au lieu de taper A4 nous pouvons cliquer sur la cellule avec la souris).. 4 Procéder de

Montrer que tout sous-ensemble récursivement énumérable infini de N est l’image d’une fonction récursive totale injective.. Peut-on demander en plus que cette fonction soit

Donner une définition récursive primitive de la fonction qui à un entier n associe le code de la suite de diviseurs premiers de n dans l’ordre croissant..

PROPOSITION 2.^. 2 ) Œ(^T) est souvent appelé le nombre de Godet de la suite JT, pour la raison historique suivante : c'est dans la démonstration du théorème d'incomplétude de

AXIOME.. 1) Soit E la catégorie dont les objets sont les en- sembles de la forme IN , pour p G IN, les sous-ensembles de ces ensembles et ]N U {u*}.. Les flèches de E sont les