Kaposi Ambrus. University of Nottingham Functional Programming Lab. Hackerspace Budapest 2015. január 6.



Hasonló dokumentumok
Kaposi Ambrus. Informatikai Kar. Pannonhalmi Bencés Gimnázium november 24.

Diszkrét matematika I.

Diszkrét matematika I.

Diszkrét matematika 1. középszint

Matematikai logika és halmazelmélet

Nagy Gábor compalg.inf.elte.hu/ nagy

Nagy Gábor compalg.inf.elte.hu/ nagy ősz

Mindent olyan egyszerűvé kell tenni, amennyire csak lehet, de nem egyszerűbbé.

1. előadás: Halmazelmélet, számfogalom, teljes

Mi a típuselmélet? BIT-CON szakmai nap május 3. Diszciplináris Informatika és Számítástudomány műhely. Mi a típuselmélet?

Mindent olyan egyszerűvé kell tenni, amennyire csak lehet, de nem egyszerűbbé. (Albert Einstein) Halmazok 1

Az R halmazt a valós számok halmazának nevezzük, ha teljesíti az alábbi 3 axiómacsoport axiómáit.

Halmazelmélet. 1. előadás. Farkas István. DE ATC Gazdaságelemzési és Statisztikai Tanszék. Halmazelmélet p. 1/1

I. A DIGITÁLIS ÁRAMKÖRÖK ELMÉLETI ALAPJAI

Diszkrét matematika I.

A fröccs szintaxisa és operációs szemantikája

Matematika alapjai; Feladatok

5. A kiterjesztési elv, nyelvi változók

2. Logika gyakorlat Függvények és a teljes indukció

Logika es sz am ıt aselm elet I. r esz Logika Negyedik el oad as 1/26

Számítási intelligencia

Diszkrét matematika 2. estis képzés

BOOLE ALGEBRA Logika: A konjunkció és diszjunkció tulajdonságai

A matematika nyelvéről bevezetés

A matematika nyelvér l bevezetés

Nagy Gábor compalg.inf.elte.hu/ nagy ősz

Programok értelmezése

Logika es sz am ıt aselm elet I. r esz Logika Harmadik el oad as 1/33

Analízis I. beugró vizsgakérdések

Logika es sz am ıt aselm elet I. r esz Logika 1/36

Diszkrét matematika I.

Nagy Gábor compalg.inf.elte.hu/ nagy

Elsőrendű logika szintaktikája és szemantikája. Logika (3. gyakorlat) 0-adrendű szemantika 2009/10 II. félév 1 / 1

Diszkrét matematika I.

Logika és informatikai alkalmazásai kiskérdések február Mikor mondjuk, hogy az F formula a G-nek részformulája?

Nagy Gábor compalg.inf.elte.hu/ nagy ősz

ismertetem, hogy milyen probléma vizsgálatában jelent meg ez az eredmény. A kérdés a következő: Mikor mondhatjuk azt, hogy bizonyos események közül

Halmaz: alapfogalom, bizonyos elemek (matematikai objektumok) Egy halmaz akkor adott, ha minden objektumról eldönthető, hogy

Dr. Vincze Szilvia;

Logika és informatikai alkalmazásai

A valós számok halmaza

Diszkrét matematika 2. estis képzés

9. előadás. Programozás-elmélet. Programozási tételek Elemi prog. Sorozatszámítás Eldöntés Kiválasztás Lin. keresés Megszámolás Maximum.

Előfeltétel: legalább elégséges jegy Diszkrét matematika II. (GEMAK122B) tárgyból

0-49 pont: elégtelen, pont: elégséges, pont: közepes, pont: jó, pont: jeles

Logika nyelvészeknek, 12. óra A típuselmélet alapjai. Lehetőség van a kvantorfogalom mellett a funktorfogalom általánosítására is.

Leképezések. Leképezések tulajdonságai. Számosságok.

KOMPUTER-ALGEBRA RENDSZEREK VERIFIKÁCIÓJA

FUNKCIONÁLIS PROGRAMOZÁS

Funkcionális és logikai programozás. { Márton Gyöngyvér, 2012} { Sapientia, Erdélyi Magyar Tudományegyetem }

A félév során előkerülő témakörök

Nemkonvex kvadratikus egyenlőtlenségrendszerek pontos dualitással

Diszkrét matematika HALMAZALGEBRA. Halmazalgebra

Bevezetés a matematikába (2009. ősz) 1. röpdolgozat

Logika kiskáté. Mihálydeák Tamás és Aszalós László

Halmazelméleti alapfogalmak

Bizonyítási módszerek ÉV ELEJI FELADATOK

Nagy Gábor compalg.inf.elte.hu/ nagy ősz

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI KÖZÉPSZINT Trigonometria

Nyelvek típusrendszere (IPM-08sztNYTRE, IPM-08EsztNYTRE)

Logika kiskáté. Mihálydeák Tamás és Aszalós László

A lineáris algebrában központi szerepet betöltı vektortér fogalmát értelmezzük most, s megvizsgáljuk e struktúra legfontosabb egyszerő tulajdonságait.

Nagy Gábor compalg.inf.elte.hu/ nagy

A valós számok halmaza 5. I. rész MATEMATIKAI ANALÍZIS

6. ELŐADÁS DIFFERENCIÁLSZÁMÍTÁS II. DIFFERENCIÁLÁSI SZABÁLYOK. BSc Matematika I. BGRMA1HNND, BGRMA1HNNC

Csima Judit október 24.

Bevezetés a homotópia-típuselméletbe

2014. szeptember 24. és 26. Dr. Vincze Szilvia

Adatbázisok elmélete 12. előadás

A lineáris programozás alapjai

AZ INFORMATIKA LOGIKAI ALAPJAI

2011. szeptember 14. Dr. Vincze Szilvia;

1. Alapfogalmak Algoritmus Számítási probléma Specifikáció Algoritmusok futási ideje

Trigonometria Megoldások. 1) Oldja meg a következő egyenletet a valós számok halmazán! (12 pont) Megoldás:

Diszkrét matematika 1. estis képzés

Matematika A1a Analízis

TANMENET. Matematika

Másodfokú egyenletek, egyenlőtlenségek

25. tétel: Bizonyítási módszerek és bemutatásuk tételek bizonyításában, tétel és megfordítása, szükséges és elégséges feltétel

dr. Szalkai István Pannon Egyetem, Veszprém, Matematika Tanszék november 3.

A Föld középpontja felé szabadon eső test sebessége növekszik, azaz, a


FRAKTÁLGEOMETRIA. Metrikus terek, szeparábilitás, kompaktság. Czirbusz Sándor Komputeralgebra Tanszék ELTE Informatika Kar

Egyenletek, egyenlőtlenségek, egyenletrendszerek I.

Hatvány gyök logaritmus

Modern matematikai paradoxonok

Diszkrét matematika I. gyakorlat

HALMAZELMÉLET feladatsor 1.

Formális szemantika. Kifejezések szemantikája. Horpácsi Dániel ELTE Informatikai Kar

ALAPFOGALMAK 1. A reláció az program programfüggvénye, ha. Azt mondjuk, hogy az feladat szigorúbb, mint az feladat, ha

ADATBÁZISOK ELMÉLETE 5. ELŐADÁS 3/22. Az F formula: ahol A, B attribútumok, c érték (konstans), θ {<, >, =,,, } Példa:

egyenlőtlenségnek kell teljesülnie.

Nagy Gábor compalg.inf.elte.hu/ nagy ősz

Nyelvek típusrendszere (jegyzet)

Klasszikus algebra előadás. Waldhauser Tamás április 14.

1. Interpoláció. Egyértelműség Ha f és g ilyen polinomok, akkor n helyen megegyeznek, így a polinomok azonossági tétele miatt egyenlők.

Osztályozóvizsga követelményei

Logika es sz am ıt aselm elet I. r esz Logika M asodik el oad as 1/26

Bevezetés az informatikába

NP-teljesség röviden

Átírás:

Bizonyítás és programozás Kaposi Ambrus University of Nottingham Functional Programming Lab Hackerspace Budapest 2015. január 6.

Bizonyítás, érvelés Példa: sáros a csizmám ha vizes a föld, esett az eső vizes a föld ha sáros a csizmám, esett az eső Melyek a megengedett lépések? Rossz példa: a halak tudnak úszni a delfinek halak a delfinek tudnak úszni a delfinek nem halak a delfinek nem tudnak úszni Kaposi Ambrus (University of Nottingham) Bizonyítás és programozás 2015. január 6. 2 / 13

Egy egyszerű logika Álĺıtások: igaz: hamis: ha A és B álĺıtás, akkor A B is az hasonlóképp A B alapálĺıtások: sáros a csizmám, esett az eső, vizes a föld Logikai szabályok: Axiómák: A A B A B A A B vizes a föld esett az eső B A B A B B A sáros a csizmám vizes a föld A. B A B Kaposi Ambrus (University of Nottingham) Bizonyítás és programozás 2015. január 6. 3 / 13

Halmazelmélet Álĺıtások:,, A B, A B, A B x.a, x.a (változók), pl. x.x + 3 = 3 + x alapálĺıtások: a = b, a b (a és b kifejezések) Kifejezések: változók (x, y,... ) Logikai szabályok mint az előbb, plusz: A x.a (x szabad A-ban) x.a A[x a] a A[x a] x.a x.a A[x a] Axiómák: a = b b = c a = c... x. y. z.(z x z y) x = y x. y. z. q.q z q = x q = y (rövidítés: z {x, y})... Kaposi Ambrus (University of Nottingham) Bizonyítás és programozás 2015. január 6. 4 / 13

ZFC 1. meghatározottság 2. pár 3. részhalmaz 4. unió 5. hatványhalmaz 6. végtelenség halmaz 7. helyettesítés 8. regularitás 9. kiválasztási Kaposi Ambrus (University of Nottingham) Bizonyítás és programozás 2015. január 6. 5 / 13

A matematika felépítése Ha x, y két halmaz, a belőlük álló rendezett pár: (x, y) {{x}, {x, y}}. Egy reláció rendezett párok halmaza. Egy f relációt függvénynek hívunk, ha (x, y) f (x, y ) f y = y. N definíciója: 0 suc(x) x {x} N = { } {x {x} x N} (unió axióma) (végtelenségi axióma) A + függvény az alábbi halmaz: + {((0, x), x) x N} {((suc(x), y), suc(x + y)) x, y N} A fenti definíciókkal pl. levezethető, hogy x.x + 3 = 3 + x. Kaposi Ambrus (University of Nottingham) Bizonyítás és programozás 2015. január 6. 6 / 13

Tarski (lengyel matematikus, 1901-1983) ötlete Logikai összekötők jelentése: jelentése t jelentése f A logikai összekötők jelentése igazságtáblázattal adható meg: A B A B A B A B t t t t t t f f t t f t f t f f f f f t x.a jelentése akkor és csak akkor t, ha minden a halmazra A[x a] jelentése t. x.a jelentése akkor és csak akkor t, ha létezik olyan a halmaz, melyre A[x a] jelentése t. Kaposi Ambrus (University of Nottingham) Bizonyítás és programozás 2015. január 6. 7 / 13

Heyting (holland matematikus, 1898 1980) ötlete Logikai összekötők jelentése: A B A egy bizonyítása és B egy bizonyítása A B egy (i, p) pár, ahol ha i = 0, akkor p A egy bizonyítása, ha i = 1, akkor p B egy bizonyítása A B egy függvény, mely A egy bizonyítását átalakítja B egy bizonyításává x.a egy függvény, mely egy a halmazt A[x a] bizonyításává alakítja x.a egy (a, p) pár, ahol a halmaz, p pedig A[x a] egy bizonyítása (valami, aminek nincs bizonyítása) Kaposi Ambrus (University of Nottingham) Bizonyítás és programozás 2015. január 6. 8 / 13

Programozás Programok típusai: sort : List Int List Int Hogyan írunk adott típusú programot? A B A B A B + : N N N két program, egy A típusú és egy B típusú vagy egy A típusú, vagy egy B típusú program λx.t ahol x : A, t : B, és t felhasználhatja x-et Πx : A.B λx.t ahol x : A, t : B, ahol t és B felhasználhatja x-et Σx : A.B egy (a, b) pár, ahol a : A, b : B[x a] (nincs ilyen típusú program) Programok végrehajtása: λx.t : A B u : A (λx.t)(u) t[x u] : B Észrevétel: bizonyítás = programozás Kaposi Ambrus (University of Nottingham) Bizonyítás és programozás 2015. január 6. 9 / 13

Típuselmélet Észrevétel: bizonyítás = programozás Egy programozási nyelv, mely erre az észrevételre épül. Használható halmazelmélet helyett a matematika felépítésére. Előnyei: A bizonyítások számítógéppel ellenőrizhetők (típusellenőrzés). A bizonyítások végrehajthatók, pl. ha bizonyítottam, hogy bármely két számnak van legnagyobb közös osztója, akkor ingyen kapok egy progamot is, mely ezt kiszámolja. A matematikusoknak van intuíciója a típusokról, pl. nem érdekes nekik, hogy 3 5 igaz vagy sem. A típuselmélet explicitté teszi ezt az intuíciót. Egyszerűség: a típuselméletben, a függvény típus, és megegyeznek. Nincs külön logikai és nem-logikai rész. Kaposi Ambrus (University of Nottingham) Bizonyítás és programozás 2015. január 6. 10 / 13

Curry-Howard izomorfizmus Logika és típuselmélet közti kapcsolat álĺıtás = típus, bizonyítás = program példák: A B C D A B C + D a = b Id(a, b) (x = 3) Id N (x, 3) 0 x N.x + zero = x x:n Id N(x + zero, x) (x : N) Id N (x + y, y + x) List Char Int List Char Int Matematikát elsőrendű logikában végeznek: ha ezt képes kifejezni a típusrendszerünk, akkor minden matematikai álĺıtás leírható vele Kaposi Ambrus (University of Nottingham) Bizonyítás és programozás 2015. január 6. 11 / 13

Példa N típust a konstruktorokkal adjuk meg: zero : N suc : N N az összeadás ( + : N N N) függvényt rekurzívan definiáljuk: zero + n : n suc(m) + n : suc(m + n) rekurzívan definiáljuk az alábbi függvényt: assoc : Id N ((x + y) + z, x + (y + z)) x,y,z:n assoc(zero, y, z) : refl(y + z) assoc(suc(m), y, z) : cong(suc, assoc(m, y, z)) Kaposi Ambrus (University of Nottingham) Bizonyítás és programozás 2015. január 6. 12 / 13

Következő lépések Magyarul: honlapomon egy cikk a homotópia-típuselméletről Könyvek: logika és programozás kapcsolata: Girard, Lafont: Proofs and types (fent van a neten) típuselmélet: Homotopy Type Theory könyv (letölthető) http://homotopytypetheory.org logika: Girard: The blind spot Martin-Löf típuselméletre épülő programozási nyelvek: Coq: legrégebbi, inkább tételbizonyító rendszerként használják Agda: legfejlettebb Idris: gyakorlati programozásra Kaposi Köszönöm Ambrus (University szépen of Nottingham) a figyelmet! Bizonyítás és programozás 2015. január 6. 13 / 13