• Aucun résultat trouvé

Le lambda−calcul

N/A
N/A
Protected

Academic year: 2021

Partager "Le lambda−calcul"

Copied!
3
0
0

Texte intégral

(1)

HAL Id: hal-03155381

https://hal-univ-rennes1.archives-ouvertes.fr/hal-03155381

Submitted on 1 Mar 2021

HAL is a multi-disciplinary open access

archive for the deposit and dissemination of

sci-entific research documents, whether they are

pub-lished or not. The documents may come from

teaching and research institutions in France or

abroad, or from public or private research centers.

L’archive ouverte pluridisciplinaire HAL, est

destinée au dépôt et à la diffusion de documents

scientifiques de niveau recherche, publiés ou non,

émanant des établissements d’enseignement et de

recherche français ou étrangers, des laboratoires

publics ou privés.

Le lambda–calcul

Olivier Ridoux

To cite this version:

(2)

Les

var

ian

tes

typ

ées

Deva nt l'é che cdu l-calc ulc omme rép ons eau par adoxe deR usse ll, Cur ry

aeu squi type es ntd duisa ntro eni ue logiq dela tion fica trati unes er orc def ée l'id dét erm ine ntsi unl -te rm ee stune fon ction ,une fon ction defon ction ,e tc.Il yeu

t . hurch deC le cel utôt stpl icie ite écr std quie le cel ,et tes arian esv eus mbr deno Lelan gag ed es type ssi mpl es est lesu ivan t: E T::= (les typ es é lém ent aire

s) nnels nctio s fo type les ) ( ⟶T (T ∣

) ⟶ ⟶ o) ⟶ ⟶ ((i et o)) ⟶ ⟶ (i ⟶ ⟶ (i i, , res tai émen sél type des sont o et i Ex.si o)

sont

des ,ex ite dro usà spl etle nes ter sex èse nth are sp ele mettr d'o ient conv s.On type .s cule minus es ard esp iqu énér sg type des note o.On ⟶ ⟶ o) ⟶ ⟶ (i et o ⟶ ⟶ i ⟶ ⟶ i

grec ques éven tuel lem ent ind icé es oup rim ées, ex. t t ',et des type sé lém ent

aires o. et i ex. es, main sro cule minus des par liers ticu par Lelan gag ed es l l -te rm ess im ple men tty pés est lesu ivan t: pour tous type s t t et t t ', L t ::=V t (les var iable s) (L ∣ t'⟶ t L t' ) (les appl ica tio ns) L t'⟶ t ::= l l V t' L t (les abs tra ctio ns ) Cette for malis atio nc aptur ea ssez bie nla faç on dont fonc tio nnent les type

sen es odag sc rle rise cté ara dec pas met per llene ,e ndant Cepe ion. mat gram pro pré

- des ente rés rep equi rm l-te e,un empl rex ).Pa ité siv res Exp n ctio (se e4 pag tés sen entier spe uta ussi bie nê tre dety pe ( i i⟶⟶ i i ) ⟶ ⟶ii ⟶ ⟶ii que (( i i⟶⟶ o o ) ⟶ ⟶ii ⟶ ⟶oo ) ⟶ ⟶ i i⟶⟶ ( o o ) ⟶ ⟶ii ⟶ ⟶oo .P ire enco re, iln 'es tp asp ossi ble ded éfin irde com binateur

de s. sive cur nsré tio fonc tles exi e; cadr ce dans fixe point Laré pon se prag mat ique des langag esde pro gram mat ion est d'enr ichi rle langag

e sdu ation opér les set aleur sv tle enten eprés quir ées typ es tant ons dec jeu d'un dom aine decalc ul.Un eré pon se plus fonda ment ale est prop osée par le cal cul

des e,c eus oni harm tion enta rés unep ose prop egt ndr are eB ed Cub ns.Le tio truc cons - se squi ple im ss type es ed èm syst sdu ation ific ram que,de euni cadr nsun .da à-d com binent etculm inent avec lecalc uld esc ons truc tio ns. Des langag es dep rog ram mat ion comme ML ou Scal a offr ent lap oss ibilit

éde sé dele nse dispe la .Ce érer inf s dele ,et a a a a⟶⟶ . ∀ ∀aa . ,ex hes orp olym sp type crire aire str d'ab met per pe ety ed hism orp om d'is otion Lan es. mm gra pro les dans les sont pes ainsty ert quec ant erv obs lleen nne sio xten ne ctio dire nsune sda type

inte r-c onv ertib les par des fon ction ss im ple s.Ex .une fon ction quipr end enp ara

- ara 2p end quipr ction unefon comme vue tre nê bie ussi uta epe pair eune mètr - . uits fort dage deco étails ded chir affran des' met per la .Ce rsa -ve vice ,et res mèt

6

Confluence et convergence du ll-calcul

Le Théorème de confluence de Church−Rosser

montre que le l-calcul vérifie la pro-priété de confluence (2⃣ au verso) ; ⊳⊳**⊲⊲bb est donc une relation d'équivalence. Des paires de l-termes ne sont pas bien traitées par la b-équivalence. Les membres de ces paires se comportent toujours identiquement quand on les applique aux mêmes l-termes, mais ils ne sont pas l-équivalents. Ex. llx.(a x) et a. En effet, quel que soit E, (llx.(a x) E) ≡≡bb (a E), mais llx.(a x) et a sont l-normaux et différents ;

ils ne sont donc pas l-équivalents. Une nouvelle règle de réduction tient compte de ces paires de l-termes : l x. (E x) ⊳ E (𝛈𝛈-réduction) Ici, on impose que x ne soit pas libre dans E, et contrairement aux autres règles, si la restriction n'est pas satisfaite aucune a-conversion ne peut la satisfaire. Le l-calcul avec h-réduction jouit des mêmes propriétés de confluence que sans. Le théorème de confluence a pour conséquence que lorsqu'elles convergent, toutes les réductions d'un même l-terme convergent vers le même point. C'est bien, mais peut-on décider si un l-terme a une réduction qui converge ? La réponse est non, car cela reviendrait à résoudre le problème de l'arrêt. Tant pis, mais existe-t-il des stratégies pour trouver une réduction qui converge si il en existe une ? La réponse est oui ; la stratégie de réduction à gauche a cette propriété. Elle consiste à toujours réduire le b-rédex le plus à gauche. Enfin, si plusieurs réductions d'un même l- terme convergent, convergent-elles toutes aussi efficacement ? La réponse est en-core non : ex. (llxy.x a (llsz.(sn z) llx.x b)) peut converger en 1, 2, ..., n++1 coups.

Ces observations conduisent à la définition et à la comparaison de stratégies qui dictent dans quel ordre sont faites les réductions. Ex. ces stratégies sont utilisées pour spécifier comment sont passés les paramètres dans les langages de program-mation. Ex. soit un l-terme (llxyz.E X Y Z), on peut :

• réduire d'abord les X, Y et Z. C'est la stratégie par valeur, qui a l'avantage que même si il y a beaucoup d'occurrences de x dans E, on ne réduira X qu'une seule fois, et l'inconvénient que si x n'a pas d'occurrence dans E, on aura réduit X pour rien, y-compris si la réduction de X ne converge pas ; ce n'est pas une réduction à gauche, mais elle est très largement adoptée dans les langages de programmation ! • réduire d'abord (llxyz.E X), puis (llyz.E[X/x] Y), etc. C'est la stratégie paresseuse,

qui a les avantages et inconvénients duaux de la première. On arrive à mitiger les inconvénients en représentant les l-termes par des graphes qui partagent les occurrences de variables. C'est la stratégie d'un langage comme Haskell . Cette stra-tégie est liée à la curryfication qui considère une fonction à n paramètres comme une fonction à 1 paramètre qui retourne une fonction à 1 paramètre, etc.

3

Définitions

Le l-calcul est défini par une notation, celle des ll-termes (ou ll-expressions), et par des règles de réduction qui portent sur celle-ci. La grammaire suivante donne une présentation assez standard de la notation des l-termes :

L ::= V (les variables) ∣ ll V. L (les abstractions) ∣ (L L) (les applications)

Ex. si x, y et z sont des variables, llx.x et llx.lly.(y (z x)) sont des l-termes. On convient des raccourcis suivants : (1) omettre les parenthèses imbriquées à gauche, ex. (x y z) pour ((x y) z) ; (2) fusionner les cascades d'abstractions, ex.llxy.(x y) pour llx.lly.(x y) ; (3) noter par un exposant les applications répétées d'un même l-terme, ex. (x3 y) pour (x (x (x y))). On note les méta-variables par

des majuscules, E, F, G, etc., et les variables par des minuscules, x, y, z, etc. L'abstraction est un quantificateur (1⃣ au verso), c-à-d. llx.E lie x dansE. Ex. dans

llx.(x lly.(y x)), x est libre dans la partie soulignée et liée dans la partie surlignée, de même y est liée dans la partie soulignée. On appelle combinateur un l-terme où toutes les occurrences de variables sont liées. On donne aux combinateurs des noms selon leur fonction, ou selon la tradition, ex. ww == llx.(x x) et 𝛀𝛀 == (ww ww). Les règles de réduction (2⃣ au verso) sont les suivantes :

l x. E ⊳ l y. E[y/x] (aa-conversion)

(l x. E F) ⊳ E[F/x] (bb-réduction)

La a-conversion est le renommage des variables quantifiées. La b-réduction expri-me que lorsque une abstraction lx.E est appliquée à un l-terme F (un bb-rédex), cela se réduit en E où on a substitué F à la variable x. On appelle ll le système qu'elles forment, et la ll-réduction par passage au contexte comme en 2⃣. Comme pour toute quantification, des restrictions imposent que ne sont substi-tuées que les occurrences libres de x dans E, et que ni y ni aucune variable libre de F ne doit se trouver liée par la substitution. Il est toujours possible de satisfaire ces restrictions en appliquant des a-conversions à lx.E. Ex. (llxa.(x a) a) ne peut pas se b-réduire car la variable a libre se trouverait liée indument, mais la a-conversion [b/a] produit (llxb.(x b) a) qui se b-réduit en llb.(a b).

Une l-réduction peut s'arrêter sur un l-terme l-normal, comme ci-dessus, et on dit qu'elle converge, ou bien produire indéfiniment des l-termes non l-normaux, ex. 𝛀𝛀 ⟶⟶ 𝛀𝛀 ⟶⟶ ... . Un même l-terme peut être le point de départ d'une l-réduc-tion qui converge et d'une autre qui ne converge pas, ex. (llxy.x a 𝛀𝛀𝛀𝛀).

2

Conc

lusi

on

Lel -calc ulc ons titu eun dom aine d'ét udequi vade lalo giq ue aux langag es dep

ro- vec sia ,et type ans ous avec s: iante var es eus mbr deno te sen pré n.Il tio gramma , uc- réd sde gie até str les s; elle squ ,le avec etsi es, nstant sco ousan avec s; type quels

tion ;le ur mise enœu vre algor ithm ique ;le ur com pila tio n,e tc.Il pré sen te

même ants. munic com es èm syst es nd atio élis mod sla ver es nté rie uso spl iante var des Il ue. atiq rm info nce scie dela artie nnep unebo ainsi se ver tra Ile stp rés ent dans deno mbr eux langag esde pro gram mat ion. Onpe utmê mep ens

er nsle ésda por cor ein 'êtr rsd jou »tou ndent tte «a ulqui -calc dul aits estr ted res qu'il s qui eau niv haut sde type esde stèm ssy rle ulie artic enp ion, mat gram pro esde langag per met ten td 'ex prim er des trai tsde pol ym orp hism eou dep aram étr icité quima

n- ion. mat gram pro esde gag slan nsle lesda rab amélio ent em arg ntl ouso quent Lafo rm alisat ion dela logiq ue mode rne audé butdu XX e siè cle dem andait led

éve- ism mal for es àd onduit ac la .Ce alcul dec melle for ion not d'une ment loppe es l.Le Göde sde ive curs sré ction fon des elui ouc ing Tur sde achine esm uid cel comme dév elo ppe men tdu l-calc ulse mble plus rel ever du« pas decô té» (lir eB runo Lat

our alis rm unfo comme conçu été rd d'abo ula -calc lel sque )pui ôté dec pas es surl me om- ac is ,ma bles ensem es ed naïv rie théo dela ls écuei les rait vite quié ue logiq menc ép aréc hou erda nsce rôle avan td 'y arr ive rb ien plus tard .

Bib

lio

gra

phi

e

•« Hig hlight son the Histo ry ofth eLam bda-C alculu s »,J .B ark ley Rosse r(A nna lso

f me orè thé edu preuv rla onssu lexi réf des ient Cont 1984). ng, puti om ofC ory Hist the de Chu rch -Ro sse r,et uned esc rip tio ntr èsvi vant ed esi nsta nts oùC hurch, Rosse

ret . lcul -ca l l du ité ssiv pre l'ex ent rai couv edé Kleen •« The Lam bdaC alculu s: Its Syn tax and Sem ant ics », Henk Bar endr egt (No

rth ul. l-calc ndu tatio sen pré dela sique clas ).Un d,1984 Hollan •« Log ique ,r édu ctio n,r éso lut ion »,R ené Lalem ent( Masso n,1990 ).Un es

omme ul. calc etle ue logiq surla

•« Int rodu ctio nto gen eral ized type syste ms »,Hen kB arendr egt (Jo urnal ofFu

nc- tive nta ste ieur plus ede ant élég tion truc ons rec Une ). ,1991 ming gram Pro al tion s . ués tiq phis sso type esde èm syst ulde l-calc rle dote pour

•« Iso mor phism sof Typ es:fr om l l -ca lcu lus toinf orm ation ret riev ala ndlan

guage conc ndu tatio sen pré belle Une 1995). er, khaüs (Bir Cosmo oDi ert »,Rob ign des

ept . pe ety ed hism orp om d'is

•« Lam ach ine enlo gique »,P ierre Wag ner (PUF ,1998 ).Un ep rés enta tion pré

cise omme icic té sen pré oward y-H urr deC ndance espo orr lac quede ophi los etphi la . es hin mac des celle , lle ificie art ence tellig l'in de elle rm nfo initio déf

8

Le théorème de Böhm

Les combinateurs présentés page 4 (sectionExpressivité) suggèrent de nombreu-ses variantes. Ex.INCR'== llnsz. (s (n s z))qui ajoute un bâton au début de la représentation d'un entier plutôt qu'à la fin, ouADD'== lln1n2. (n2INCR n1). On

peut alors se demander si on peut étendre la b-équivalence en posant que ces variantes sont équivalentes, un peu comme on l'a fait en ajoutant la h-réduction pour rendre équivalents des l-termes qui se comportaient partout pareil. Le théorème de Böhm répond par la négative et de façon spectaculaire.

Böhm s'est demandé si étant donnés deux l-termesUetV, normaux et distincts, il est toujours possible de construire un l-termeDDUVqui les discrimine : c-à-d. tel que(DDUVU)≡≡Tet(DDUVV)≡≡F. On dit queDDUVsépare UetV. Ex.EQZsépare0de n'importe quel autre entier de Church. Böhm (1968) montre que deux l-termes b-normaux séparables ne peuvent être h-équivalents, et réciproquement. Il n'y a pas deux l-termes normaux pas h-équivalents et pas séparables.

Ce théorème montre que, parce qu'ils sont séparables,INCRetINCR', ouADDet

ADD', ex.DDINCR INCR'== lli.(illuv.Tllw.F i), ne peuvent pas être posés comme équi-valents. Le faire rendraitTetFéquivalents par passage au contexte du nouvel axiome, et par conséquence n'importe quels l-termesXetY équivalents. En effet, on aurait(T X Y)≡≡(F X Y),(T X Y)⊳⊳Xet(F X Y)⊳⊳Y, doncX≡≡Y.

En fait, les combinateursINCRetINCR', ouADDetADD', produisent des résultats équivalents quand ils sont appliqués à des entiers de Church, mais ils se compor-tent différemment pour d'autres l-termes. Au contraire, deux l-termes h-équi-valents se comportent vraiment partout pareil.

On peut voir la propriété de séparabilité comme le dual de la propriété de conflu-ence. La confluence dit que d'un même l-terme des réductions différentes peuvent toujours confluer, et si convergence, converger vers la même forme normale, alors que la séparabilité dit que pour deux formes normales distinctes il existe toujours une fonction du l-calcul qui les distingue.

Plus fondamentalement, le Théorème de Böhm démontre une forme de maxima-lité de la théorie du l-calcul.

5

Le

l l

−ca

lcul

x –

idou

ier R

Oliv

2021

Onn efai tjam ais rien seul .M onin tér êtpo urle l-c alcul vien tde rec her ches

surla risse alB Pasc avec 1980−90 nnées sa dansle ngagées ge olo lPr nde tio pila com tau 2010 mai (23 vite trop bien partis sont deux Tous rs. Bekke Yves pede équi del' sein

et7 oct obr e2020 ),m aisso ntto ujour spr ése ntsdans mon paysage dul -cal cul .OR

Int

rod

uct

ion

Le l l--cal cul est und espl usim por tants mod èles thé orique sem plo yés enin for

ma- om dud que tifi ien tsc men ppe elo dév nsle alda ment fonda le unrô uant ,jo tique ai- ion mat ram rog dep es langag es nsd tda emen crèt con ès ttr sen pré aussi is ne,ma

aussi peu fonda ment alis tes que Pyt hon ou Java Scr ipt . Comme sou venten scien ce, ilc ont ient sap art de sér end ipi puisqu' ila d'abo

rd ier rem sp téle té son eur ent sinv etse té, ven téin aé quoiil pour ce uéà écho s que ce ede empl elex èsb untr aussi est .Il ent raim itv metta per qu'il ce risde surp l'in for mat ique n'e st pas unique ment gou ver née par unp rog rès tec hnolo

gique res est ation ific péc sas etque de1930 date ption once sac puisque nétique fré tée . ate tted sce depui ée utilis ent ém ens int mais ée, hang inc Outr esa mise enœu vre dans des langag es comme Pyth on ouJ ava Scrip t,il

est dès LISP comme és iplin disc plus ion mat ram rog dep es gag delan ine orig àl' aussi 1958 etle slan gag esde lafam ille ML àp artir des ann ées 70.Pl usg énér alem ent,

le phéno ede mbr dno gran très urun npo ommu ifc licat exp le modè stun ule l-calc - pa- lety té, ivi curs laré dure, océ n/pr nctio defo pel l'ap ion, mat gram pro esde mèn ge,l es str uctu res dedo nnées ,e tc.D 'une cer taine faç on, tous les langag es

de ul. l-calc seau cho quelque ent doiv ion mat gram pro Lel -calc ule sta ussi uneth éor ie très bel le ,tr ès sim ple dans son exp ressi

on par e.En eus ctu fru ès nctr s,do ation ific am esr eus mbr deno onnu ac ,qui initiale ti- ue, giq lalo avec es rich très liens es td nen etien entr ées typ tes arian sv ,se ier cul

fai sant dec ette théo rie unep asse relle entr e prog ram mat ion et dém ons tra tio

n, . me am rogr ep nd atio tific cer de me for àune voie làla par rant ouv 1

Expressivité

Le l-calcul a été conçu initialement pour résoudre des difficultés logiques de la théorie des ensembles, et ça n'a pas réussit. Cependant, en « jouant » avec les l-termes, Church et ses collaborateurs d'alors, Rosser et Kleene, se sont progressi-vement rendu compte qu'ils arrivaient à coder de plus en plus de domaines de valeurs et de fonctions avec des l-termes.

Voici quelques exemples du codage en l-termes de valeurs ou opérateurs usuels. Ces codages sont souvent appeléscodage de Church.

ID== llx.xreprésente la fonction identité.

T== llxy.xetF== llxy.yreprésentent les valeurs de véritéTrueetFalse. De cette façonIF== llbxy.(b x y)(≡≡hhID) représente une conditionnelle qui retournexouy selon que best T ouF, etNOT == llbxy.(b y x)et AND == llb1b2.(IF b1 b2 F)

(≡≡bbllb1b2.(b1b2F)) représentent les connecteurs logiques¬¬et⋀⋀.

0== llsz.z(≡≡aaF),1== llsz.(s z),2== llsz.(s (s z))etn== llsz.(snz)représentent les entiers. Le l-calcul compte avec des bâtons, less. Ajouter 1 revient à ajouter un bâton ;INCR== llnsz.(n s (s z))l'ajoute à la fin.FOR= ll= nfi.(n f i)(≡≡hhID) itèref

n fois à partir d'une valeur initiale i. Ex. ADD == lln1n2.(FOR n1 INCR n2)

(≡≡bblln1.(n1INCR)) etMUL== lln1n2.(FOR n1(ADD n2) 0). EtEQZ== lln.(n (llx. F) T)

représente le test à 0.

• Retirer 1 à un entier a représenté un challenge pour les premiers explorateurs du l-calcul. Une des façons d'y arriver est de passer par la représentation des cons-tructeurs de donnée.CONS== llxyc.(c x y)représente la paire(x, y), et les combina-teurspp1== llp.(p T)etpp2== llp.(p F)représentent ses deux projections.

DECR== lln.(pp1(llf. (n f (CONS 0 0)) llp.(CONS (pp2p) (INCR (pp2p)))))représente alors la décrémentation.DECRappliquenfois à la paire(0, 0)la fonctionfqui trans-forme la paire(x, y)en(y, y++1), produisant ainsi(n−−1, n), puis projette la partie gauche de la paire résultante.

Y =llf.(llx.(f (x x))llx.(f (x x)))est un combinateur depoint-fixe. Il a la propriété

que(Y F)≡≡bb((F((Y F)))), c-à-d.Ycalcule un point fixe deF.

Ex.FAC==(Y llf.lln.(IF (EQZ n) 1 (MUL n (f (DECR n)))))est une définition récursive de la fonction factorielle. Remarquer queYoccupe essentiellement la position du

letrecde la programmation fonctionnelle.

Finalement, en 1936 Church publie que tout ce qui peut être calculé peut l'être dans le l-calcul, presque en même temps que Turing publie que ses machines cal-culent tout ce qui peut être calculé. Très vite, ils démontrent que les deux formalis-mes sont équivalents, et postulent que machines de Turing et l-calcul identifient une notion absolue dece qui peut être calculé. C'est laThèse de Church-Turing.

4 U . . . U U . . . .(DDUVU) T X ⟹ W W ⟹ c-à-d U ≡≡V V . . . ..V V . . . (DDUVV) F ⊳ ⊳** ⊳ ⊳**

Gen

èse

: u

ne

déb

âcle

pr

odu

ctiv

e

Lep ara doxe deR usse llm ont rait unefaille dans lac ons truc tion dela théo rie naïv

e oùle es fié trati ss iante var des osa rop mep i-mê lllu usse .R ege deFr bles ensem des s sont ble ensem d'un ts men élé es oùl s,et lasse enc nnés ordo sont bles ensem

tou jou rs d'une cla ssein fér ieu re àc elle del' ens em ble .De cette faç on, laque stio

n la is ,ma plus même pose nese ient ont sec es mbl nse d'e ble sem unen rsi voi desa logiq ue obt enue est trop cont raint epo urê tre utilis able . Chur ch rec her chait uner épo nse enc hangeant delan gag e,et ildé vel oppa le l l

- ni- Défi n ctio (se e2 pag dela alcul dec les règ set tion nota ux but.A ce dans cul cal tion ),C hurch avait rajo uté quele sl -te rm esd eva ien ts' int erpr éter log ique ment

,et tune nai eve nd tio duc b-ré .La érité dev urs vale les ait erv rés ep alenc uiv b-éq quela for me dedé ductio n. Àc etef fet ,le ss ymb ole s ¬ ¬ , ⟹ ⟹ et ∃ ∃ était prédé fini sda nsle syst èm e . . Ex., unl

- vait pou ) AB ¬ ¬ ( e rm -te unl alors ,et nA tu Bes erque nifi sig vait pou B) (A e term sig nifi erque Bn 'es tp asu nA .R osse ret Kleen eo bse rve ntque lel -calc ulp erm

etde ≡ ≡ k) (k que rs ),alo xx ¬ ¬ x.( = =ll k mer for

b b ( ¬ ¬ kk) ,c equi est inco nsis tan t.

À éren réf auto cés énon es ed crir d'é met per tion ica atif str anquede unm eau, nouv - ! e âcl déb d'une arle rp osse s.R doxe ara esp àd nduisent quico ls tie

Cepe ndant ,une rel ation réu ssie entr ec alcul etlo giq ue s'é tab lira très pro gre ssiv

e- -calc sl nsle dda ten s'en -ci elle .C ard -How Curry de nce ponda res cor la avec ment ul l l les t,et par d'une s ique log es mul for les set type les s -vi s-à envi met s,et typé - est T e rm -te lel e,si pondanc res cor cette lon t.Se par re d'aut s uve pre etles mes ter

dety pe t t ,c 'est qu'il peut êtr ein terp rété comme unepr euv ede lafo rm ule logiq

ue Ex.la ité. hab est t t pe lety eque euv lapr enfait est T e rm l-te .Le t t à ond rresp quico cor res pondanc ee ntr ele modus pone nset larè gle dety pag ed esap plic atio ns: A A ⟹ ⟹ B (m odus pone ns) X : a a F : a a⟶⟶ b b B (F X ) : b b Cette cor res pondanc ea été rec onn ue pro gre ssive men tpo urd est héo rie sde type

s s- corre 1930,qui es nné sa nsle sda ple sim pes sty :le es iqué hist sop plus usen depl ponde ntà unc alcul des prop ositi onsin tuit ionn iste s,j usque dans les ann ées

1960− s,pui dicat pré des alcul unc ntà pondaie res cor squi type sde orie thé des vec 70a sà popu très ation rel cette ndra quire en1980 ard How iam Will ar np atio ublic unep - per equi preuv sde ent nnem iro env des ssus nti eso pondanc res cor ette Dec laire. - . Coq e èm syst .le :ex mes ram rog esp erd tifi cer ntde mette

(3)

Mathématiques et éléments de contexte : mathématiques et éléments de contexte − lire, apprendre, comprendre.

Pliage : recto visible (autre face), traits

gris

rentrants et traits

rouges

saillants. Découper selon le trait rouge entre les deux , puis achever le pliage.

1

1⃣⃣

Les quantificateurs et leur portée

Le concept de quantificateur évoque le plus souvent celui des quantificateurs du calcul des prédicats, ∀∀ et ∃∃. Au delà de leur sens logique, ces quantificateurs ont un sens purement syntaxique. Ils lient des variables et leur donnent une portée. Dans une formule ∀∀x. ff ou ∃∃ x. ff, on dit que le quantificateur lie la variable x dans la sous-formule ff. Cela signifie que les occurrences libres (c-à-d. pas sous une autre quantification) de x dans ff sont indépendantes d'autres occurrences qui seraient liées par un autre quantificateur.

Les noms des variables liées par un quantificateur sont tellement anecdotiques qu'on peut les changer arbitrairement, mais dans la limite de ne pas confondre les instances de quantificateur. Le renommage est formalisé par une substitution, notée [y/x], qui exprime que les occurrences libres de x peuvent être remplacées par y, mais seulement si ça ne cause pas une liaison accidentelle de y. Ex.∀∀x.∃∃y. x++y == 0 peut subir la substitution [z/x] mais pas la substitution [y/x] car l'occurrence de x dans x ++ y se trouverait liée par la quantification dey.

Les quantifications logiques ne sont absolument pas les seules à montrer ce comportement. Les som-mations, ex. SSi∈∈[1, n] xi, les produits, ex. PPj∈∈[1, n] xj, les intégrales, ex. ∫∫ f(x). dx, les dérivées, ex.

∂∂f(y)// ∂∂y, les notations d'ensemble en compréhension, ex. { 2××n||n∈∈ ℕℕ}, ont toutes le même type de

comportement. Ce sont toutes des quantifications qui lient respectivement i, j, x, y et n . Les déclara-tions des paramètres de fonction dans les langages de programmation se comportent elles-aussi comme des quantifications ; les déclarations tout court, les boucles FOR aussi. Dans tous les cas, le sens d'une variable de programme est déterminé par qui la quantifie. Les requêtes SQL aussi montrent ces phénomènes, et ça se manifeste de façon critique dans la construction des requêtes imbriquées. Toutes les quantifications introduisent des noms, les variables sont en fait des noms de quantification, et on peut les renommer en leur appliquant une substitution à condition de ne pas utiliser le nom d'une quantification qui englobe les occurrences de la variable à renommer. En appliquant une substi-tution [E/x] (qui généralise une substitution [y/x]) dans un contexte K, soit K[E/x], aucune occurrence de

variable libre dans E ne doit être liée accidentellement par une quantification qui englobe une occur-rence de x dansK. On ne peut pas changer les noms des occurrences de variables libres de E car ils référencent des quantifications qu'on ne voit pas. Par contre, on peut toujours changer les noms des quantification englobant x dansK.

Cela donne l'idée de scinder une quantification en d'une part son rôle strictement syntaxique, le même pour toutes les quantifications imaginables, et son rôle sémantique, très différent d'une quantification à une autre. Il faut disposer pour cela d'une quantification neutre, qu'on pourrait noter ll, comme un

individu ll, et de symboles distincts pour chaque sorte de quantification. On écrirait alors ∀∀(llx. ff),

∃∃(llx. ff), ∫∫(llx. f(x)), {}(lln. (2××n | n∈∈ ℕℕ)), ∂∂(lly. f(y)) et SS(lli. (xi | i ∈∈ [1, n])). C'est d'ailleurs ce qu'on ferait en Python si on n'y disposait pas déjà de listes en compréhension, ex. [2*x for x in range(10)] ; on écrirait list(map(lambda x: 2*x, range(10))).

Conclusion : les quantifications sont beaucoup plus variées que les seules quantifications du calcul des prédicats, mais présentent toutes un aspect syntaxique commun, celui de lier des variables à des contextes nommés. Les noms des contextes n'importent pas, du moment qu'on ne crée pas de confu-sion entre contextes. On peut donc imaginer une quantification neutre, llx. ... , sans sémantique parti-culière si ce n'est de créer un contexte, avec pour seule opération la possibilité de substituer quelque chose aux variables liées, [E/x], en respectant les contraintes des contextes.

2

2⃣⃣⃣⃣

Réduction, passage au contexte, équivalence, confluence, convergence

Considérons LL un langage d'arbres finis, soit sous forme graphique, soit sous forme textuelle non-ambiguë, ex. le langage des expressions arithmétiques. On appellera schéma d'arbre une notation d'arbre compor-tant des méta-variables qui représentent n'importe quel arbre qu'il serait légal de placer là. Les arbres représentés par un schéma sont appelés les instances du schéma d'arbre. Ex. A ++ B est le schéma des expres-sions arithmétiques qui sont des sommes, et 2 ++ 3 est une instance de ce schéma. Dans un schéma les multiples occurrences d'une même méta-variable sont significatives de ce que toutes ces occurrences repré-sentent strictement le même arbre (au contraire des multiples occurrences d'un même non-terminal dans une règle de grammaire algébrique qui n'indiquent pas autant d'arbres identiques, mais autant d'arbres de même catégorie syntaxique). Ex. A ++ A est le schéma des expressions arithmétiques qui sont des sommes d'une expression et d'elle-même. Par extension, un arbre est un schéma d'arbre qui ne comporte pas de méta-variable. On appellera contexte d'une ou plusieurs occurrences dans un arbre cet arbre où les positions de ces occurrences ont été relevées. On notera K[A]

un contexte qui contient une ou plusieurs occur-rences de AA peut être un schéma d'arbre : ex. K[A++B] serait le contexte des sommes dans une expression. Cette notation est ambiguë, ex. si il a des sommes dans des sommes, et on devra préciser le cas échéant

les occurrences qui sont visées. On notera K[B/A] le contexte K[A] où on a remplacé les occurrences de A par autant deB.

On définit des règles de réduction, c-à-d. des règles qui expriment le remplacement d'un arbre, le rédex, par un autre, le réduit. Une règle de réduction sera notée schéma de rédex ⊳⊳ schéma de réduit où toutes les méta-variables du schéma de réduit doivent être des méta-variables du schéma de rédex ; c'est donc en fait un schéma de règle. Comme pour les schémas d'arbre, les multiples occurrences d'une même méta-variable dans un schéma de règle représente strictement le même arbre, ex. A ++ A ⊳⊳ 2 ×× A qui exprime une sorte de factorisation. On peut assortir une règle de réduction de conditions annexes pour exprimer des contraintes d'application, ex. A ++ B ⊳⊳ B ++ A, si ||||A|||| >> ||||B|||| où ||||..|||| représente le nombre de nœuds d'un arbre.

Finalement, on définit une relation de réduction entre 2 arbres X et Y, notée X ⊳⊳ Y, par passage au contexte(on dit aussi par congruence) : X⊳⊳ Y ssi X == K[U] et Y == K[V/U] et U ⊳⊳ V est une instance d'une règle de

réduction et U représente une occurrence unique dans K[U]. Ex. (1) (5 ++ 5) ++ (5 ++ 5) ⊳⊳ (5++5)++ (2 ×× 5) ⊳⊳ (2 ×× 5) ++ (2 ×× 5) ⊳⊳ 2 ×× (2 ×× 5), et (2) (5 ++ 5) ++ (5 ++ 5) ⊳⊳ 2 ×× (5 ++ 5) ⊳⊳ 2 ×× (2 ×× 5). On note ⊳⊳** un

enchaînement de réductions, y compris aucune (fermeture réflexive-transitive), ex. (5 ++ 5) ++ (5 ++ 5) ⊳⊳** 2××(2××5) et 2 ×× 5 ⊳⊳** 2 ×× 5. Si il y a plusieurs règles de réduction, et en l'absence de précision, ⊳⊳ désigne l'une d'entre elles.

On dit d'un arbre qui ne contient pas de rédex qu'il est irréductible ou normal, et on se demande alors si toutes les réductions convergent vers des arbres normaux ; c'est la propriété de normalisation forte. Cela dépend encore du système de règles de réduction. Ex. la règle de réduction A++B⊳⊳B++ A sans condition annexe permet d'entretenir indéfiniment une réduction qui ne converge pas. On peut alors se demander si pour chaque arbre au moins une réduction converge, c'est la normalisation faible. Le fait que des réductions convergent et d'autres non mène à se demander si des stratégies permettent de toujours trouver une convergence si elle existe, et à quel prix.

Il est courant de donner des noms aux règles de réduction et aux systèmes qu'elles forment. On pourra alors en préfixer les mots réduction, équivalence, normal, etc. et en indicer les symboles ⊳⊳, ⊳⊳**, ≡≡, etc. : ex. xx

-réduction pour réduction selon la règle ou le systèmexx, ou ≡≡xx pour équivalence selon la règle ou le système xx.

∀∀ x.

.. .. ..

∀∀ x. ∀∀ y.

ff(x, y) yy(x, y)

En fait, plutôt que de dire que∀∀liexdansff, on ferait mieux de dire quexest le nom d'une instance du quantificateur∀∀, et que les occurrences dexdansffdésignent l'instance du quantificateur qui les lie (flèches pointillées dans le diagram-me). De cette façon, une variable désigne simplement la première instance de quantification englobante qui porte le même nom, d'où une notion deportée. Et tout autre moyen qu'un nom, ex. un rang, rendrait ce service de désigner une instance englobante particulière.

On définit ensuite une relation qu'on voudrait être d'équivalence :X⊳⊳**⊲⊲Yssi il existeUtel queX⊳⊳**UetY⊳⊳**U. Pour que ce soit une relation d'équivalence, il faudrait que ce soit une relation transitive, et cette définition ne le garantit pas. Ex. on peut avoirX⊳⊳**Uet

Y⊳⊳**U, etY⊳⊳**VetZ⊳⊳**V, doncX⊳⊳**⊲⊲YetY⊳⊳**⊲⊲Z, mais si on n'a pasU⊳⊳**⊲⊲Von risque de ne pas avoirX⊳⊳**⊲⊲Z. On appelleconfluence

la propriété que siX⊳⊳**UetX⊳⊳**ValorsU⊳⊳**⊲⊲V. La confluence est ditefaible(on dit parfois locale) si les⊳⊳**partant deXsont remplacés par des⊳⊳. Cette propriété dépend du système de règles de réduction adopté, et elle est suffisante pour que⊳⊳**⊲⊲soit une relation d'équi-valence, et on la notera alors≡≡. On aurait pu construire une relation d'équivalence par fermetureréflexive-transitive-symétriquede⊳⊳, mais des règles de réduction comme0××A⊳⊳0ne se prêtent pas à être lues symétriquement car toutes les méta-variables de ce que serait le réduit ne sont pas des méta-variables de ce que serait le rédex. En fait, la littérature offre beaucoup de variations sur ce thème : (1) définir une relation d'équivalence puis se demander si une relation de convergence la représente bien, (2) définir une relation de co-convergence puis se demander si elle est une relation d'équivalence, et de nombreuses variantes entre les deux.

Si entraîne alors ⊳⊳**⊲⊲est transitive. X U V U ⊳⊳**⊲⊲ V W X ⊳⊳**⊲⊲ Y ⊳⊳**⊲⊲ Z U V X ⊳⊳**⊲⊲ Z W Est-ce que entraîne ?

3

3⃣⃣⃣⃣

Le paradoxe de Russell

Gottlob Frege publie en 1879 (puis 1884, 1893 et 1903) la première présentation d'une logique avec quantificateurs. Il propose au passage une première théorie des ensembles qui fondent les quantifications. Mais cet édifice est sapé par Bertrand Russell qui présente un paradoxe qui rend cette logique inconsistante.

Le paradoxe repose sur la possibilité d'un ensemble de tous les ensembles et de caractériser des ensembles d'ensembles en compréhension . L'ensemble de tous les ensembles est forcément un élément de lui-même. Mais tous les ensembles ne sont pas éléments d'eux-mêmes. Ex. l'ensemble des entiers n'est pas un entier. Le prédicat « s'appartenir » partitionne donc l'ensemble de tous les ensembles en deux sous-ensembles. Question : que dire du sous-ensemble des ensembles qui ne s'appartiennent pas ? S'appartient-il, ou non ?

On perçoit facilement que le paradoxe vient de la trop grande facilité avec laquelle on a formé des ensembles d'ensembles en utilisant le principe de compréhension. Ce principe dit qu'il suffit qu'un prédicat soit défini sur un ensemble pour que cela caractérise deux sous-ensembles, celui des éléments pour qui le prédicat est vrai, et les autres. D'où de nombreuses tentatives de restreindre cette faculté, en particulier en stratifiant le langage des ensembles, des ensembles d'ensembles, etc.

Si il s'appartient, il n'est pas un ensemble qui ne s'appartient pas, donc il ne s'appartient pas. Si il ne s'appartient pas, il appartient à l'ensemble des ensembles qui ne s'appartiennent pas, donc à lui-même. D'où uneinconsistance.

4

4⃣⃣⃣⃣

Gottlob, Bertrand, Haskell, et les autres

Gottlob Frege (1848−1925, Allemagne) : depuis son Begriffschrift (1879), Die Grundlagen der Arithmetik (1884), jusqu'à Die Grundgesetze der Arithmetik (1893−1903), Frege consacre sa carrière à une première présentation d'un calcul des prédicats, son idéographie, et d'une théorie des ensembles.

Bertrand Russel (1872−1970, Royaume-Unis) : on lui doit directement peu de chose, mais il a été un des grands animateurs des travaux de fondation de la logique moderne, ex. dans son travail avec Alfred North Whitehead. Il est aussi Prix Nobel de Littérature et un pacifiste.

Haskell Curry (1900−1982, États-Unis) : co-inventeur, avec Moses Schönfinkel, du modèle de calcul des combinateurs. Ce calcul peut être entièrement simulé par le l-calcul, et vice-versa.

Alonzo Church (1903−1995, États-Unis) : inventeur du l-calcul pour contrer les inconsistance que Russell, et d'autres, avait exhibées dans la théorie des ensembles de Frege, puis découvreur avec Kleene et Rosser de la puissance calculatoire insoupçonnée de ce calcul. J. Barkley Rosser (1907−1989, États-Unis) : étudiant puis collaborateur de Church à l'occasion des premiers travaux sur le l-calcul.

Stephen Cole Kleene (1909−1994, États-Unis) : étudiant de Church à l'occasion des premiers travaux sur le l-calcul. On lui doit des présentations consolidées de beaucoup des systèmes utilisés aujourd'hui en informatique : ex. en théorie des langages ou en théorie de la calculabilité.

Corrado Böhm (1923−2017, Italie) : grand explorateur des capacités du l-calcul en programmation, compilation, etc.

Références

Documents relatifs

Donc cette dernière somme est atteinte, ce qui entraîne l’égalité

Cet algorithme sera réalisé dans une fonction qui aura un certain nombre de paramètres dont le nom de la fonction mathématique dont on cherche le 0.. Testez sur

[r]

Pour montrer que cette conjecture est toujours vraie, on désigne le premier des quatre entiers par la lettre n.. Exprime alors les

Pour montrer que cette conjecture est toujours vraie, on désigne le premier des quatre entiers par la lettre n.. Exprime alors les

Démontre que tout entier impair peut s'écrire comme la différence des carrés de deux entiers naturels consécutifsb. Trouve tous les triplets

On considère l’expérience aléatoire suivante : on lance une pièce équilibrée et on prend une boule au hasard dans l’urne.. Représenter grâce à un tableau l’ensemble des

Montrer que les points M 1 et M 2 varient sur un même cercle dont on précisera le centre et le rayon.. Etudier la dérivabilité de f à droite en 0 et interpréter graphiquement