Lambda kalkulus.

Slides:



Advertisements
Hasonló előadás
Deduktív adatbázisok.
Advertisements

A digitális számítás elmélete
Predikátumok Dr. György Anna BMF-NIK Szoftvertechnológia Intézet.
Készítette: Kosztyán Zsolt Tibor
Preferenciák, rendezések, reprezentálhatóság
Algebrai struktúrák.
Adatbázisrendszerek elméleti alapjai 2. előadás
Adatbázis rendszerek I Relációs kalkulus Általános Informatikai Tsz. Dr. Kovács László.
Függvények Egyenlőre csak valós-valós függvényekkel foglalkozunk.
Determinisztikus programok. Szintaxis: X : Pvalt program változók E : Kifkifejezések B : Lkiflogikai kifejezések C : Utsutasítások.
Kötelező alapkérdések
1 Előhang Világunk dolgainak leírásához gyakran használunk kijelentő mondatokat. Pl. Minden anya szereti gyerekeit. Júlia anya és Júlia gyereke Máté. Következmény:
Euklidészi gyűrűk Definíció.
Algebrai struktúrák 1.
4. VÉGES HALMAZOK 4.1 Alaptulajdonságok
Kocsisné Dr. Szilágyi Gyöngyi. Elérehet ő ség: aszt.inf.elte.hu/~szilagyi/ aszt.inf.elte.hu/~szilagyi Fogadó óra: hétf ő
Kocsisné Dr. Szilágyi Gyöngyi. Elérehet ő ség: aszt.inf.elte.hu/~szilagyi/ aszt.inf.elte.hu/~szilagyi Fogadó óra: hétf ő
Kocsisné Dr. Szilágyi Gyöngyi. Elérehet ő ség: aszt.inf.elte.hu/~szilagyi/ aszt.inf.elte.hu/~szilagyi Fogadó óra: hétf ő
Algebra a matematika egy ága
Programozáselmélet Logikák és módszerek a programhelyesség bizonyításához.
Halmazok, relációk, függvények
Programozáselmélet Logikák és módszerek a programhelyesség bizonyításához.
A digitális számítás elmélete
A digitális számítás elmélete
Determinisztikus véges automaták csukva nyitva m s kbsm csukva nyitva csukva nyitva csukvanyitva 1. Példa: Fotocellás ajtó s b m m= mindkét helyen k= kint.
Év eleji információk Előadó: Hosszú Ferenc II. em Konzultáció: Szerda 9:50 – 10:35 II. em
Differenciál számítás
Lineáris algebra Mátrixok, determinánsok, lineáris egyenletrendszerek
Integrálszámítás Mire fogjuk használni az integrálszámítást a matematikában, hova szeretnénk eljutni? Hol használható és mire az integrálszámítás? (már.
Bevezetés a matematikába I
Valós számok Def. Egy algebrai struktúra rendezett test, ha test és rendezett integritási tartomány. Def. Egy (T; +,  ;  ) rendezett test felső határ.
6. SZÁMELMÉLET 6.1. Oszthatóság
1.3 Relációk Def. (rendezett pár) (a1 , a2 ) := {{a1} , {a1 , a2 }} .
Reprezentációs függvény. Adva egy adattípus absztrakt és konkrét specifikációja: d a = ( A, F, E a ); d c = ( C, G, E c ); A = {A 0,..., A n };C = {C 0,...,
Alphabet is a type specification = sorts: alphabet oprs: a:  alphabet,...,z:  alphabet end alphabet; nat is a type specification = sorts:nat oprs:zerus:
A számfogalom bővítése
Halmazelmélet és matematikai logika
Lineáris programozás Definíció: Olyan matematikai programozási feladatot nevezünk lineáris programozási feladatnak, amelyekben az L halmazt meghatározó.
Természetes és formális nyelvek Jellemzők, szintaxis definiálása, Montague, extenzió - intenzió, kategóriákon alapuló gramatika, alkalmazások.
Gazdaságstatisztika 11. előadás.
Vektorterek Definíció. Legyen V Abel-csoport, F test, továbbá
Koncepció: Specifikáció: e par exp i = eb imp bod ib Specifikáció elemzése: tulajdonságok felírása a koncepció alapján + tulajdonságok bizonyítása.
1. MATEMATIKA ELŐADÁS Halmazok, Függvények.
Az informatika logikai alapjai
Kijelentések könyve: mindegyik oldalon egy kijelentés. Egyes igaz kijelentések axiómák. Az axiómákból bizonyítható kijelentések mind igazak, és a cáfolható.
Az informatika logikai alapjai
Algebrai struktúrák: csoport, gyűrű, test. RSA Cryptosystem/ Titkosítási rendszer Rivest, Shamir, Adelman (1978) RSA a neten leggyakrabban használt.
MI 2003/6 - 1 Elsőrendű predikátumkalkulus (elsőrendű logika) - alapvető különbség a kijelentéslogikához képest: alaphalmaz. Objektumok, relációk, tulajdonságok,
A MATEMATIKA FELÉPÍTÉSÉNEK ELEMEI
előadások, konzultációk
A folytonosság Digitális tananyag.
Valószínűségszámítás II.
előadások, konzultációk
Kiterjesztések szemantikája: Szemantikai tartomány : Adatoknak, vagy értékeknek egy nem üres halmazát szemantikai tartománynak nevezzük. Jelölése: D. Egy.
1 Relációs kalkulusok Tartománykalkulus (DRC) Sorkalkulus (TRC) - deklaratív lekérdezőnyelvek - elsőrendű logikát használnak - relációs algebra kifejezhető.
Félcsoport (semigroup) = ({s},{ *: s s  s [infix]}. semigroup is a type specification = sorts: s oprs: *: s s  s [infix] eqns: m 1, m 2, m 3  s (m 1.
2. gyakorlat INCK401 Előadó: Dr. Mihálydeák Tamás Sándor Gyakorlatvezető: Kovács Zita 2015/2016. I. félév AZ INFORMATIKA LOGIKAI ALAPJAI.
HÁLÓZAT Maximális folyam, minimális vágás
Az informatika logikai alapjai
Az informatika logikai alapjai
Analitikus fák kondicionálissal
Integrálszámítás.
II. konzultáció Analízis Sorozatok Egyváltozós valós függvények I.
Programozás C# -ban Elágazások.
Példa: Dinteger = {..., -1,0,1,...}; Dboolean = {true, false};
Algebrai struktúrák 1.
1.3 Relációk Def. (rendezett pár) (a1 , a2) := {{a1} , {a1 , a2 }} .
Bevezetés a matematikába I
Csoport, félcsoport, test
Absztrakt problémák Q  I  S, az absztrakt probléma kétváltozós reláció az esetek (I) és a megoldások (S) halmazán Példa: legrövidebb út Eset: gráf és.
Előadás másolata:

Lambda kalkulus

A -kifejezések nyelvének szimbólumait két halmazzal adhatjuk meg: C={c, c', c'', ...} konstansok végtelen ábécéje V={v, v', v'', ...} változók végtelen ábécéje. További szimbólumok a ( ) zárójelek és a  szimbólum.

A -kifejezések induktív definíciója : Ha x egy változó, M egy -kifejezés, akkor (xM) egy újabb -kifejezés. Ez a művelet az ún. (függvény)absztrakció, x a függvény paramétere, M a függvény törzse. Ez egyben egy kvantoros művelet, a (xM) kifejezésben  a kvantor, x a kvantoros előtag, és M a kvantoros előtag hatásköre. Ha M és N -kifejezések, akkor (MN) is az. Ez egy kétoperandusú művelet, az ún. (függvény) alkalmazás vagy (függvény) applikáció. Szokásos műveleti jele a pont (mint szorzásjel) vagy a szóköz, de legtöbbször a műveleti jelet elhagyják. Ezen utóbbit követjük mi is. Minden változó szimbólum egyben -kifejezés is. Minden konstans szimbólum egyben -kifejezés is. A -kifejezések halmazát -val jelöljük.

Ugyanez B-N-Formában : konstans :: c | konstans' változó :: v | változó' -kifejezés ::konstans | változó | -kifejezés -kifejezés | változó -kifejezés Ugyanez a definíció absztrakt szintaxist használva :   C | V |  | V

Egyszerűnek nevezünk egy -kifejezést, ha nem tartalmaz konstansokat. Egy -kifejezésben azt a változóelőfordulást, amely egy kvantoros előtagban vagy egy vele megegyező változójú kvantoros előtag hatáskörében van, kötött változóelőfordulásnak nevezzük. Mindazok a válto-zóelőfordulások, amelyek nem kötöttek, szabadok. Azokat a változókat, amelyeknek egy adott -kifeje-zésben van szabad előfordulása, a kifejezés paramé-tereinek nevezzük. Azt a -kifejezést, amelynek nincs paramétere, zárt -kifejezésnek vagy kombi-nátornak nevezzük.

Jelölési konvenciók: c, d, e, ... tetszőleges konstansokat jelölnek x, y, z, ... tetszőleges változókat jelölnek L, M, N, … tetszőleges -kifejezéseket jelölnek M1M2M3...Mm az (...((M1M2) M3)...Mm) kifejezést jelöli x1x2...xn.M az (x1(x2...(xnM))) kifejezést jelöli x1...xn.M1M2...Mm az (x1...(xn(...(M1M2)...Mm))) kifejezést jelöli A külső zárójelek elhagyhatók.

Például az első oszlopban lévő kifejezések a második oszlopban lévő -kifejezéseket jelölik: x x xc (xc) x.xc (x(xc)) yx.xc (y(x(xc))) (x.xc)y ((x(xc))y) x.xx.x (x(x(xx))) xyz.x(yz) (x(y(z(x(yz)))))

-kalkulus

A -kalkulus M=N alakú egyenlőségek kalkulusa. Axiómái: Kötött változók szabályos átjelölése (-helyettesítés): () x.M = y.M[xy] Azt mondjuk, hogy két kifejezés kongruens (jele: ), ha -konverzióval egymásba átvihetők. A -kalkulus alapaxiómája (-helyettesítés): () (x.M)N  M[xN], ahol a jobb oldal a változó szabályos helyettesítését jelöli.

Logikai axióma és levezetési szabályok (a szabá-lyokban a megszokott törtvonal helyett a  jel szerepel) : M=M M=N  N=M M=N, N=L  M=L M=N  ML=NL, LM=LN M=N  x.Mx.N Ha a -kalkulusban M=N levezethető, ennek jele  | M=N, vagy röviden M=N , akkor azt mondjuk, hogy M és N egymásba -kovertálhatóak.

Operációs szemantika

Ebben a szemantikában (a Herbrand-interpretáci-ókhoz hasonlóan) a formális kifejezések halmaza, azaz esetünkben a  halmaz az alaphalmaz. A változók és konstansok ebből a halmazból vehetik fel értéküket. Egy -n értelmezett  bináris reláció kompatibili-tási reláció, ha M  N  ML  NL, LM  LN, x.M  x.N kongruencia reláció, ha ekvivalencia és kompati-bilitási reláció, redukció reláció, ha reflexív, tranzitív és kompatibilitási reláció.

A -helyettesítés kompatibilis lezártját egylé-péses -redukciónak (jele ), a redukciós lezártját -redukciónak (jele ), a -redukció ekvivalencia lezártját -konvertál-hatósági relációnak (jele =) nevezzük.

-redexnek nevezzük a kifejezések (x. M)N alakú részkifejezéseit -redexnek nevezzük a kifejezések (x.M)N alakú részkifejezéseit. Ha egy kifejezés nem tartalmaz -redexet akkor -normál formájú-nak nevezzük. Ha M= N, és N -normál formájú, akkor N az M -normál formája. Tétel : Ha M -normál formájú, és M N, akkor MN. Tétel : (Church-Rosser) Ha M N1, M N2, akkor van olyan N3, hogy N1 N3, N2 N3 .

Következmény: Ha M= N, akkor van olyan L, hogy M L, N L . Következmény: Ha N az M -normál formája, akkor M N. Következmény: Minden -kifejezésnek legfeljebb egy -normál formája van. Az =(x.xx)(x.xx) -kifejezésnek nincs -normál formája.

Tétel : A -kalkulus helyes, azaz ha  | M=N, akkor M= N. Informálisan egy kifejezés kiszámítása a kifejezés -normalizálását jelenti.

Stratégiák A redexben szereplő  kvantorjelet a redex főszimbólumának nevezzük. A redexek egymás- hoz viszonyított helyét a főszimbólumok helye határozza meg. Lusta kiértékelés: minden lépésben a legbalol-dalibb redexet redukáljuk. Tétel : Ha egy kifejezésnek van normál formája akkor a lusta kiértékeléssel eljutunk hozzá. Mohó kiértékelés: előbb az argumentumokat normalizáljuk, csak azután helyettesítjük.

Példák a -kalkulus kifejező erejére

truexy.x falsexy.y ifpqr.pqr if true A B  (pqr.pqr) true A B   true A B  (xy.x) A B  A Curch-számok: 0fx.x 1fx.fx 2fx.f(fx) 3fx.f(f(fx)) ...

zero  x.x (true false) true  (fx.f(fx)) (true false) true   (true false) ((true false) true) =  ((xy.x) false) ((true false) true)  false succ  nfx.nf(fx) succ 2  (nfx.nf(fx)) 2  fx.2 f(fx)   fx.(fx.f(fx)) f (fx) = fx.f(f(fx)) = 3

B  yz.z(succ(y true))(y true) C  z.z 0 0 pred  n.n B C false   xyz.x(yz)

pred 3  (n.n B C false) 3  3 B C false   B (B(B C)) false   (yz.z(succ(y true))(y true)) (B(B C)) false   false (succ(B(B C)true)) (B(B C)true)   (xy.y) (succ(B(B C)true)) (B(B C)true)   B(B C) true  (yz.z(succ(y true))(y true)) (B C) true   true (succ(B C true)) (B C true)   (xy.x) (succ(B C true)) (B C true)   succ(B C true)   succ((yz.z(succ(y true)) (y true)) C true)   succ(true(succ(C true)) (C true))   succ((xy.x)(succ(C true)) (C true))   succ(succ(C true))  succ(succ((z.z 0 0) true))   succ(succ(true 0 0))  succ(succ((xy.x) 0 0))   succ(succ(0))  2

 2 3  xyz.x(yz) 2 3  z.2(3 z)   z.2((fx.f(f(fx)))z)  z.2(x.z(z(zx)))   z.(fx.f(fx)) (x.z(z(zx)))   z.(x.(x.z(z(zx))) ((x.z(z(zx))) x))   zx.(x.z(z(zx))) ((x.z(z(zx))) x)   zx.(x.z(z(zx))) (z(z(zx)))   zx.z(z(z(z(z(zx))))))  fx.f(f(f(f(f(fx)))))  6

Rekurzió fac  n.if (zero n) 1 (n(fac(pred n))) A fac függvény a F függvény fixpontja, ahol F  fn.if (zero n) 1 (n(f(pred n)))   AA Turing-féle fixpont kombinátor, ahol A  xy.y(xxy) Ha X  AAG, akkor GX  G(AAG)  (xy.y(xxy)) AG  AAG  X fac  F

fac 3  F 3  A A F 3  (xy.y(xxy)) A F 3   F(A A F) 3 F(A A F) 3  F( F) 3   F fac 3 (fn.if (zero n)1(n(f(pred n)))) fac3   if(zero 3) 1 (3(fac(pred 3)))   if false 1 (3(fac 2))  3 (fac 2)   3 (2 (fac 1))  3 (2 (1 (fac 0)))   3 (2 (1 ( F 0)))  3 (2 (1 (A A F 0)))   3 (2 (1 ((xy.y(xxy)) A F 0)))   3 (2 (1 (F fac 0)))   3(2(1((fn.if(zeron)1(n(f(predn))))fac0)))  3 (2 (1 (if (zero 0) 1 (0 (fac(pred 0))))))   3 (2 (1 1))  6

Denotációs szemantika: -modellek

Teljes háló egy olyan D=(D,) féligrendezett halmaz, amelyre teljesül, hogy minden részhalmazának van pontos alsó és felső korlátja. A továbbiakban D, D', D'' stb. teljes hálókat jelölnek.

A D teljes háló egy XD részhalmaza irányított, ha nem üres, és bármely két elemének létezik Xbeli közös felső korlátja. Egy f :DD' leképezés folytonos, ha bármely XD irányított részhalmazra teljesül, hogy f(sup(X))=sup(f(X)). Folytonos függvények egyben monotonok.

Jelölje [ DD' ] a D-t D'-be képező folytonos függvények halmazát. Legyen definíció szerint f  g, ha minden dD-re f(d)  g(d) teljesül. Ezzel a féligrendezéssel [ DD' ] is teljes háló.

D a D' szűkítése (jele: D  D'), ha léteznek az F :D'D és G :DD' folytonos leképezések úgy, hogy F o G = idD , azaz F(G(d))  d . D reflexív, ha [ DD ]  D.

Legyen D egy reflexív halmaz, és legyenek F, G olyan folytonos leképezések, hogy F : D[DD]  és G : [DD]D, és F o G = idD . Legyen  :VD egy értékelés. Jelölje (x:=d) azt a ' :VD értékelést, amelyre igaz, hogy '(y) = (y), ha y  x, és '(x) = d.

Adott D és  mellett jelölje az M -kifejezés interpretációját [M]D , amelynek induktív definícióját az alábbi táblázat tartalmazza: M [M]D x  (x) NP (F([N]D))([P]D) x.N G(dD.[N]D(x:=d))

Ha minden  értékelés mellett [M]D= [N]D teljesül, akkor azt mondjuk, hogy az M=N igaz D-ben, jele D |= M=N . Tétel : Ha D reflexív, akkor D a lambda kalkulus egy helyes modellje, azaz ha  | M=N, akkor D |= M=N.

Tétel : Létezik reflexív halmaz. Bizonyítás : Legyen A egy halmaz. Definiáljuk a Bn sorozatot a következő módon: B0 =A Bn+1=Bn(,b)  bBn és  Bn és  véges. Legyen B=nBn , és DA =P(B) ={x| x  B}. Megmutatható, hogy az F(x)(y) = {b |    y. (,b)x} és G(f) = {(,b)x}| bf()} függvények által a DA halmaz reflexív.