Rekursiiviset tyypit

Samankaltaiset tiedostot
Geneeriset tyypit. TIES542 Ohjelmointikielten periaatteet, kevät Antti-Juhani Kaijanaho. Jyväskylän yliopisto Tietotekniikan laitos

Yksinkertaiset tyypit

TIES542 kevät 2009 Denotaatio

Rekursiiviset tyypit - teoria

Eloisuusanalyysi. TIE448 Kääntäjätekniikka, syksy Antti-Juhani Kaijanaho. 16. marraskuuta 2009 TIETOTEKNIIKAN LAITOS. Eloisuusanalyysi.

Alityypitys. TIES542 Ohjelmointikielten periaatteet, kevät Antti-Juhani Kaijanaho. Jyväskylän yliopisto Tietotekniikan laitos

TIEA341 Funktio-ohjelmointi 1, kevät 2008

Tietojenkäsittelyteorian alkeet, osa 2

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 8. syyskuuta 2016

Oliot ja tyypit. TIES542 Ohjelmointikielten periaatteet, kevät Antti-Juhani Kaijanaho. Jyväskylän yliopisto Tietotekniikan laitos

TIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 8. maaliskuuta 2012

TIES542 kevät 2009 Rekursiiviset tyypit

2. Minkä joukon määrittelee kaava P 0 (x 0 ) P 1 (x 0 ) mallissa M = ({0, 1, 2, 3}, P M 0, P M 1 ), kun P M 0 = {0, 1} ja P M 1 = {1, 2}?

Johdatus matematiikkaan

Logiikan kertausta. TIE303 Formaalit menetelmät, kevät Antti-Juhani Kaijanaho. Jyväskylän yliopisto Tietotekniikan laitos.

TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 26. kesäkuuta 2013

MS-A0402 Diskreetin matematiikan perusteet

Ratkaisu: a) Kahden joukon yhdisteseen poimitaan kaikki alkiot jotka ovat jommassakummassa joukossa (eikä mitään muuta).

Luonnollisten lukujen ja kokonaislukujen määritteleminen

Kuvaus eli funktio f joukolta X joukkoon Y tarkoittaa havainnollisesti vastaavuutta, joka liittää joukon X jokaiseen alkioon joukon Y tietyn alkion.

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 12. marraskuuta 2015

Kuvaus eli funktio f joukolta X joukkoon Y tarkoittaa havainnollisesti vastaavuutta, joka liittää joukon X jokaiseen alkioon joukon Y tietyn alkion.

Avaruuden R n aliavaruus

TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 16. maaliskuuta 2011

MS-A0402 Diskreetin matematiikan perusteet Esimerkkejä, todistuksia ym., osa I

TIEA341 Funktio-ohjelmointi 1, kevät 2008

MS-A0402 Diskreetin matematiikan perusteet Esimerkkejä, todistuksia ym., osa I

Vieruskaverisi on tämän päivän luennolla työtoverisi. Jos sinulla ei ole vieruskaveria, siirry jonkun viereen. Esittäytykää toisillenne.

Laskennan rajoja. TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 10. joulukuuta 2015 TIETOTEKNIIKAN LAITOS.

Samanaikaisuuden hallinta

Ilkka Mellin Todennäköisyyslaskenta Liite 1: Joukko-oppi

Turingin koneet. Sisällys. Aluksi. Turingin koneet. Turingin teesi. Aluksi. Turingin koneet. Turingin teesi

Kanta ja dimensio 1 / 23

14.1 Rekursio tyypitetyssä lambda-kielessä

Joukko-oppi. Joukko-oppi. Joukko-oppi. Joukko-oppi: Mitä opimme? Joukko-opin peruskäsitteet

TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 19. tammikuuta 2012

Tehtävä 1. Arvioi mitkä seuraavista väitteistä pitävät paikkansa. Vihje: voit aloittaa kokeilemalla sopivia lukuarvoja.

811120P Diskreetit rakenteet

TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 29. toukokuuta 2013

Lineaariavaruudet. Span. Sisätulo. Normi. Matriisinormit. Matriisinormit. aiheita. Aiheet. Reaalinen lineaariavaruus. Span. Sisätulo.

Lause 5. (s. 50). Olkoot A ja B joukkoja. Tällöin seuraavat ehdot ovat

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 16. marraskuuta 2015

Johdatus matemaattiseen päättelyyn

Lineaarikombinaatio, lineaarinen riippuvuus/riippumattomuus

1 Lineaariavaruus eli Vektoriavaruus

Miten osoitetaan joukot samoiksi?

Täydentäviä muistiinpanoja Turingin koneiden vaihtoehdoista

Diofantoksen yhtälön ratkaisut

Joukossa X määritelty relaatio R on. (ir) irrefleksiivinen, jos x Rx kaikilla x X,

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 12. lokakuuta 2016

jonka laskutoimitus on matriisien kertolasku. Vastaavasti saadaan K-kertoiminen erityinen lineaarinen ryhmä

Diskreetin matematiikan perusteet Laskuharjoitus 2 / vko 9

MS-A0402 Diskreetin matematiikan perusteet Esimerkkejä ym., osa I

MS-A0402 Diskreetin matematiikan perusteet Esimerkkejä ym., osa I

Relaation ominaisuuksia. Ominaisuuksia koskevia lauseita Sulkeumat. Joukossa X määritelty relaatio R on. (ir) irrefleksiivinen, jos x Rx kaikilla x X,

Johdatus matematiikkaan

Ekvivalenssirelaatio. Määritelmä 2 Joukon A binäärinen relaatio R on ekvivalenssirelaatio, mikäli. Jos R on ekvivalenssirelaatio ja a A, niin joukkoa

MS-A0401 Diskreetin matematiikan perusteet

x > y : y < x x y : x < y tai x = y x y : x > y tai x = y.

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 19. syyskuuta 2016

1 Määrittelyjä ja aputuloksia

Täydellisyysaksiooman kertaus

Ydin-Haskell Tiivismoniste

Pinoautomaatit. TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 6. kesäkuuta 2013 TIETOTEKNIIKAN LAITOS. Pinoautomaatit.

TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 31. maaliskuuta 2011

Matematiikan johdantokurssi, syksy 2016 Harjoitus 11, ratkaisuista

MAT Algebra 1(s)

TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 31. maaliskuuta 2011

Jarkko Peltomäki. Aliryhmän sentralisaattori ja normalisaattori

TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 16. toukokuuta 2011

KOMPLEKSIANALYYSI I KURSSI SYKSY 2012

Valitsemalla sopivat alkiot joudutaan tämän määritelmän kanssa vaikeuksiin, jotka voidaan välttää rakentamalla joukko oppi aksiomaattisesti.

2.4 Normaalimuoto, pohja ja laskentajärjestys 2.4. NORMAALIMUOTO, POHJA JA LASKENTAJÄRJESTYS 13

Kuvauksista ja relaatioista. Jonna Makkonen Ilari Vallivaara

DFA:n käyttäytyminen ja säännölliset kielet

Approbatur 3, demo 1, ratkaisut A sanoo: Vähintään yksi meistä on retku. Tehtävänä on päätellä, mitä tyyppiä A ja B ovat.

jäsennyksestä TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho 29. syyskuuta 2016 TIETOTEKNIIKAN LAITOS Kontekstittomien kielioppien

jäsentämisestä TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho 27. marraskuuta 2015 TIETOTEKNIIKAN LAITOS

6 Relaatiot. 6.1 Relaation määritelmä

802320A LINEAARIALGEBRA OSA I

Laskennan rajoja. TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 20. kesäkuuta 2013 TIETOTEKNIIKAN LAITOS.

1 Reaaliset lukujonot

Joukot. Georg Cantor ( )

Säännölliset kielet. Sisällys. Säännölliset kielet. Säännölliset operaattorit. Säännölliset kielet

Algebra I Matematiikan ja tilastotieteen laitos Ratkaisuehdotuksia harjoituksiin 6 (8 sivua) OT. 1. a) Määritä seuraavat summat:

Johdatus todennäköisyyslaskentaan Joukko-oppi. TKK (c) Ilkka Mellin (2005) 1

Insinöörimatematiikka A

Johdatus lukuteoriaan Harjoitus 11 syksy 2008 Eemeli Blåsten. Ratkaisuehdotelma

TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 10. kesäkuuta 2013

Matematiikan tukikurssi

FORMAALI SYSTEEMI (in Nutshell): aakkosto: alkeismerkkien joukko kieliopin määräämä syntaksi: sallittujen merkkijonojen rakenne, formaali kuvaus

Luonnollisten lukujen induktio-ominaisuudesta

6 Vektoriavaruus R n. 6.1 Lineaarikombinaatio

T Syksy 2005 Logiikka tietotekniikassa: perusteet Laskuharjoitus 8 (opetusmoniste, kappaleet )

Esko Turunen Luku 9. Logiikan algebralisointi

Pinoautomaatit. TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 6. lokakuuta 2016 TIETOTEKNIIKAN LAITOS

Kompaktisuus ja filtterit

Olkoon R X Y. Sen käänteisrelaatio R 1 on joukosta Y joukkoon X määritelty relaatio, jonka laki on. yr 1 x xry.

Olkoon R X Y. Sen käänteisrelaatio R 1 on joukosta Y joukkoon X määritelty relaatio, jonka laki on. yr 1 x xry.

TIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 2. helmikuuta 2012

Transkriptio:

Rekursiiviset tyypit TIES542 Ohjelmointikielten periaatteet, kevät 2007 Antti-Juhani Kaijanaho Jyväskylän yliopisto Tietotekniikan laitos 20. helmikuuta 2007

Hiloista Kiintopisteet (Ko)rekursio Rekursiiviset tyypit Lopuksi

Osittaisjärjestys Määritelmä Olkoon X joukko ja ( ) X X sen binäärinen relaatio. Jos kaikilla x, y, z X 1. x x, 2. x y y x x = y ja 3. x y y z x z pätevät, ( ) on osittaisjärjestys ja (X, ) on osittain järjestetty joukko (engl. poset, partially-ordered set).

Esimerkkejä

Esimerkkejä 1. Joukon S osajoukkojen joukkoa eli potenssijoukkoa merkitään P(S). Osajoukkorelaatio ( ) on sen osittaisjärjestys.

Esimerkkejä 1. Joukon S osajoukkojen joukkoa eli potenssijoukkoa merkitään P(S). Osajoukkorelaatio ( ) on sen osittaisjärjestys. 2. Nostettujen kokonaislukujen joukossa Z = { } Z on relaatio ( ): n ja n m kaikilla n, m Z, n m. Se on osittaisjärjestys.

Join Määritelmä Olkoon (X, ) osittain järjestetty joukko, olkoon S X epätyhjä ja olkoon j X. Jos 1. s S : s j ja 2. s S : y X : s y y j pätevät, j on S:n join (merkitään j = S). Jos X on olemassa ja on X :n alkio, se on X :n kansi (engl. top), merkitään.

Join Määritelmä Olkoon (X, ) osittain järjestetty joukko, olkoon S X epätyhjä ja olkoon j X. Jos 1. s S : s j ja 2. s S : y X : s y y j pätevät, j on S:n join (merkitään j = S). Jos X on olemassa ja on X :n alkio, se on X :n kansi (engl. top), merkitään. Huomautus Jos joukon S join kuuluu joukkoon itseensä ( S S), se on tuon joukon suurin alkio (osittaisjärjestyksen suhteen).

Esimerkkejä

Esimerkkejä 1. Osittain järjestetyssä joukossa (P(X ), ) join on yleistetty yhdiste.

Esimerkkejä 1. Osittain järjestetyssä joukossa (P(X ), ) join on yleistetty yhdiste. 2. Nostettujen kokonaislukujen osittain järjestetyssä joukossa (Z, ) on seuraavat joinit: {, n} = n kaikilla n ja {n} = n kaikilla n.

Meet Määritelmä Olkoon (X, ) osittain järjestetty joukko, olkoon S X epätyhjä ja olkoon m X. Jos 1. s S : m s ja 2. s S : y X : y s m y pätevät, m on S:n meet (merkitään m = S). Jos X on olemassa ja on X :n alkio, se on X :n pohja (engl. bottom), merkitään.

Meet Määritelmä Olkoon (X, ) osittain järjestetty joukko, olkoon S X epätyhjä ja olkoon m X. Jos 1. s S : m s ja 2. s S : y X : y s m y pätevät, m on S:n meet (merkitään m = S). Jos X on olemassa ja on X :n alkio, se on X :n pohja (engl. bottom), merkitään. Huomautus Jos joukon S meet kuuluu joukkoon itseensä ( S S), se on tuon joukon pienin alkio (osittaisjärjestyksen suhteen).

Esimerkkejä

Esimerkkejä 1. Osittain järjestetyssä joukossa (P(X ), ) meet on yleistetty leikkaus.

Esimerkkejä 1. Osittain järjestetyssä joukossa (P(X ), ) meet on yleistetty leikkaus. 2. Nostettujen kokonaislukujen osittain järjestetyssä joukossa (Z, ) on aina meet: {n} = n kaikilla n Z, ja jos n, m Z ja n m, niin {n, m} =.

Hilat Määritelmä Olkoon (X, ) osittain järjestetty joukko ja X epätyhjä. Tällöin

Hilat Määritelmä Olkoon (X, ) osittain järjestetty joukko ja X epätyhjä. Tällöin 1. jos X :n jokaisella äärellisellä osajoukolla on join, (X, ) on join-puolihila (engl. join-semilattice);

Hilat Määritelmä Olkoon (X, ) osittain järjestetty joukko ja X epätyhjä. Tällöin 1. jos X :n jokaisella äärellisellä osajoukolla on join, (X, ) on join-puolihila (engl. join-semilattice); 2. jos X :n jokaisella äärellisellä osajoukolla on meet, (X, ) on meet-puolihila;

Hilat Määritelmä Olkoon (X, ) osittain järjestetty joukko ja X epätyhjä. Tällöin 1. jos X :n jokaisella äärellisellä osajoukolla on join, (X, ) on join-puolihila (engl. join-semilattice); 2. jos X :n jokaisella äärellisellä osajoukolla on meet, (X, ) on meet-puolihila; 3. jos (X, ) on sekä join-puolihila että meet-puolihila, se on hila (engl. lattice); ja

Hilat Määritelmä Olkoon (X, ) osittain järjestetty joukko ja X epätyhjä. Tällöin 1. jos X :n jokaisella äärellisellä osajoukolla on join, (X, ) on join-puolihila (engl. join-semilattice); 2. jos X :n jokaisella äärellisellä osajoukolla on meet, (X, ) on meet-puolihila; 3. jos (X, ) on sekä join-puolihila että meet-puolihila, se on hila (engl. lattice); ja 4. jos join ja meet on X :n jokaisella osajoukolla, (X, ) on täydellinen hila (engl. complete lattice).

Esimerkkejä

Esimerkkejä 1. (P(X ), ) on täydellinen hila.

Esimerkkejä 1. (P(X ), ) on täydellinen hila. 2. (Z, ) on meet-puolihila.

Esimerkkejä 1. (P(X ), ) on täydellinen hila. 2. (Z, ) on meet-puolihila. 3. (Z Z, ) on meet-puolihila.

Monotoniset funktiot Määritelmä Olkoon (X, ) osittain järjestetty joukko ja olkoon f : X X. Jos kaikilla x X pätee x f (x), on f järjestyksen säilyttävä eli monotoninen.

Monotoniset funktiot Määritelmä Olkoon (X, ) osittain järjestetty joukko ja olkoon f : X X. Jos kaikilla x X pätee x f (x), on f järjestyksen säilyttävä eli monotoninen. Huomautus Monotoninen funktio ei voi olla tässä yhteydessä vähenevä toisin kuin analyysissä on tapana sanoa. Vähenevää funktiota sanotaan antitoniseksi eli järjestyksen kääntäväksi funktioksi.

Kiintopiste Määritelmä Olkoon (X, ) osittain järjestetty joukko, olkoon f : X X ja olkoon x X. Tällöin

Kiintopiste Määritelmä Olkoon (X, ) osittain järjestetty joukko, olkoon f : X X ja olkoon x X. Tällöin 1. x on f -suljettu, jos f (x) x,

Kiintopiste Määritelmä Olkoon (X, ) osittain järjestetty joukko, olkoon f : X X ja olkoon x X. Tällöin 1. x on f -suljettu, jos f (x) x, 2. x on f -konsistentti, jos x f (x) ja

Kiintopiste Määritelmä Olkoon (X, ) osittain järjestetty joukko, olkoon f : X X ja olkoon x X. Tällöin 1. x on f -suljettu, jos f (x) x, 2. x on f -konsistentti, jos x f (x) ja 3. x on f :n kiintopiste (engl. fixed point), jos se on sekä f -suljettu että f -konsistentti eli jos x = f (x).

Knasterin ja Tarskin lause Lause (Knasterin ja Tarskin hilateoreettinen kiintopistelause) Olkoon (X, ) täydellinen hila ja olkoon f : X X monotoninen. Tällöin f :llä on ainakin yksi kiintopiste, ja sen kiintopisteiden joukko P on itse täydellinen hila. Erityisesti P = { x x f (x) } ja P = { x f (x) x } pätevät ja ovat itse f :n kiintopisteitä. Todistus. Theorem 1 Alfred Tarskin artikkelissa A lattice-theoretical fixpoint theorem and its applications, Pacific Journal of Mathematics, vol. 5 no. 2 (1955). Todistus löytyy myös lukemattomista hilateorian ja sen sovellusalueiden oppikirjoista.

Pienin ja suurin kiintopiste Määritelmä Olkoon (X, ) täydellinen hila, olkoon f : X X monotoninen ja olkoon f :n kiintopisteiden joukko P. Tällöin merkitään µf = P (f :n pienin kiintopiste) ja νf = P (f :n suurin kiintopiste).

Pienin ja suurin kiintopiste Määritelmä Olkoon (X, ) täydellinen hila, olkoon f : X X monotoninen ja olkoon f :n kiintopisteiden joukko P. Tällöin merkitään µf = P (f :n pienin kiintopiste) ja νf = P (f :n suurin kiintopiste). Huomautus Toinen yleinen merkintäkäytäntö on fix f = µf ja FIX f = νf.

Pienin ja suurin kiintopiste Määritelmä Olkoon (X, ) täydellinen hila, olkoon f : X X monotoninen ja olkoon f :n kiintopisteiden joukko P. Tällöin merkitään µf = P (f :n pienin kiintopiste) ja νf = P (f :n suurin kiintopiste). Huomautus Toinen yleinen merkintäkäytäntö on fix f = µf ja FIX f = νf. Huomautus Sekä µf että νf ovat yhtälön x = f (x) ratkaisuja x:n suhteen.

Rekursio ja korekursio Määritelmä Olkoon (X, ) täydellinen hila ja olkoon f : X X monotoninen. Yhtälö x = f (x) määrittelee rekursiivisesti x = µf :n ja korekursiivisesti x = νf :n.

Esimerkki

Esimerkki Kakkosen potenssien joukko voidaan määritellä rekursiivisesti seuraavien sääntöjen avulla: 1. 1 kuuluu joukkoon. 2. Jos n kuuluu joukkoon, niin 2 n kuuluu joukkoon.

Esimerkki Kakkosen potenssien joukko voidaan määritellä rekursiivisesti seuraavien sääntöjen avulla: 1. 1 kuuluu joukkoon. 2. Jos n kuuluu joukkoon, niin 2 n kuuluu joukkoon. Nämä säännöt määrittelevät oikeastaan seuraavan joukkofunktion: f : P(N) P(N) f (S) = {1} { 2 n n S } Funktion parametrijoukossa on alkiot, joiden jo tiedetään kuuluvan kakkosen potenssien joukkoon.

Esimerkki Kakkosen potenssien joukko voidaan määritellä rekursiivisesti seuraavien sääntöjen avulla: 1. 1 kuuluu joukkoon. 2. Jos n kuuluu joukkoon, niin 2 n kuuluu joukkoon. Nämä säännöt määrittelevät oikeastaan seuraavan joukkofunktion: f : P(N) P(N) f (S) = {1} { 2 n n S } Funktion parametrijoukossa on alkiot, joiden jo tiedetään kuuluvan kakkosen potenssien joukkoon. Se, että kakkosen potenssien joukko on noiden sääntöjen rekursion tulos, tarkoittaa oikeastaan, että ko. joukko on µf!

Esimerkki

Esimerkki Puhtaan, tyypittömän λ-laskennon abstrakti syntaksi on E ::= I E 1 E 2 λi.e.

Esimerkki Puhtaan, tyypittömän λ-laskennon abstrakti syntaksi on E ::= I E 1 E 2 λi.e. Oikeastaan tuo puukielioppi määrittelee funktion rakennepuiden joukolta rakennepuiden joukolle seuraavasti: f (E) = { t t I } { t 1 t 2 t 1 E t 2 E } { λt 1.t 2 t 1 I t 2 E }

Esimerkki Puhtaan, tyypittömän λ-laskennon abstrakti syntaksi on E ::= I E 1 E 2 λi.e. Oikeastaan tuo puukielioppi määrittelee funktion rakennepuiden joukolta rakennepuiden joukolle seuraavasti: f (E) = { t t I } { t 1 t 2 t 1 E t 2 E } { λt 1.t 2 t 1 I t 2 E } Abstrakti syntaksi on oikeastaan rakennepuiden joukko µf!

Tehtävä Tarkastellaan puhtaan, tyypittömän λ-laskennon β-muunnossääntöjä: E 1 E 1 E 1 E 2 E 1 E 2 E 2 E 2 E 1 E 2 E 1 E 2 E E λi.e λi.e (λi.e 1) E 2 E 1[I := E 2] Minkälainen funktio f :n tulee olla, jotta ( ) = µf?

Esimerkki

Esimerkki Abstrakti syntaksi T ::= T T määrittelee funktion f (T ) = { t 1 t 2 t 1 T t 2 T }.

Esimerkki Abstrakti syntaksi T ::= T T määrittelee funktion f (T ) = { t 1 t 2 t 1 T t 2 T }. Jos tämä tulkitaan rekursiiviseksi määritelmäksi, T on tyhjä joukko, sillä µf =.

Esimerkki Abstrakti syntaksi T ::= T T määrittelee funktion f (T ) = { t 1 t 2 t 1 T t 2 T }. Jos tämä tulkitaan rekursiiviseksi määritelmäksi, T on tyhjä joukko, sillä µf =. Kuitenkin tuolla abstraktilla syntaksilla on luonnollinen tulkinta: T sisältää yhden äärettömän rakennepuun.

Esimerkki Abstrakti syntaksi T ::= T T määrittelee funktion f (T ) = { t 1 t 2 t 1 T t 2 T }. Jos tämä tulkitaan rekursiiviseksi määritelmäksi, T on tyhjä joukko, sillä µf =. Kuitenkin tuolla abstraktilla syntaksilla on luonnollinen tulkinta: T sisältää yhden äärettömän rakennepuun. Tarvitaan korekursiota: T = νf.

Äärettömät tyypit tavallisesti abstraktit kieliopit ovat rekursiivisia määritelmiä kun sallitaan äärettömät tyypit, tyyppien joukko määritelläänkin korekursiivisesti eikä rekursiivisesti periaatteessa edelleen samat tyypityssäännöt, niiden tulkinta vain muuttuu

µ-tyypit äärettömien puiden kanssa on käytännössä mahdotonta työskennellä siksi lyhennysmerkintä: T ::= I T T µi.t µi.t sitoo tyyppimuuttujan I samalla tavalla kuin λi.e sitoo muuttujan I µi.t tarkoittaa sitä ääretöntä tyyppiä, joka on yhtälön I = T korekursiiviseksi ratkaisuksi asetetaan lisäksi kaksi hyvinmuodostussääntöä: 1. Jos tyyppi sisältää ali-ilmaisun µi.µi 1.....µI n.t, niin T ei saa olla I. 2. Kokonaisessa tyypissä ei saa olla vapaita (tyyppi)muuttujia.

Miksi µ eikä ν?

Miksi µ eikä ν? µi.t on yhtälön I = T korekursiivinen ratkaisu

Miksi µ eikä ν? µi.t on yhtälön I = T korekursiivinen ratkaisu korekursiivinen? miksi se ei sitten ole νi.t?

Miksi µ eikä ν? µi.t on yhtälön I = T korekursiivinen ratkaisu korekursiivinen? miksi se ei sitten ole νi.t? joukkotulkinta: tyyppi T on sentyyppisten arvojen joukko

Miksi µ eikä ν? µi.t on yhtälön I = T korekursiivinen ratkaisu korekursiivinen? miksi se ei sitten ole νi.t? joukkotulkinta: tyyppi T on sentyyppisten arvojen joukko µi.t on rekursiivisesti määriteltävien (eli äärellisten) arvojen joukko

Miksi µ eikä ν? µi.t on yhtälön I = T korekursiivinen ratkaisu korekursiivinen? miksi se ei sitten ole νi.t? joukkotulkinta: tyyppi T on sentyyppisten arvojen joukko µi.t on rekursiivisesti määriteltävien (eli äärellisten) arvojen joukko µi.t :tä (jossa I esiintyy vapaana T :ssä) sanotaan siksi rekursiiviseksi tyypiksi

Miksi µ eikä ν? µi.t on yhtälön I = T korekursiivinen ratkaisu korekursiivinen? miksi se ei sitten ole νi.t? joukkotulkinta: tyyppi T on sentyyppisten arvojen joukko µi.t on rekursiivisesti määriteltävien (eli äärellisten) arvojen joukko µi.t :tä (jossa I esiintyy vapaana T :ssä) sanotaan siksi rekursiiviseksi tyypiksi νi.t olisi korekursiivisten eli äärettömien arvojen joukko!

Miksi µ eikä ν? µi.t on yhtälön I = T korekursiivinen ratkaisu korekursiivinen? miksi se ei sitten ole νi.t? joukkotulkinta: tyyppi T on sentyyppisten arvojen joukko µi.t on rekursiivisesti määriteltävien (eli äärellisten) arvojen joukko µi.t :tä (jossa I esiintyy vapaana T :ssä) sanotaan siksi rekursiiviseksi tyypiksi νi.t olisi korekursiivisten eli äärettömien arvojen joukko! νi.t :tä sanotaan korekursiiviseksi tyypiksi

Esimerkkejä

Esimerkkejä 1. Äärellisten kokonaislukulistojen tyyppi on µt. nil : {}, cons : {car : Int, cdr : t}.

Esimerkkejä 1. Äärellisten kokonaislukulistojen tyyppi on µt. nil : {}, cons : {car : Int, cdr : t}. 2. Nälkäiset funktiot: µt.int t

Esimerkkejä 1. Äärellisten kokonaislukulistojen tyyppi on µt. nil : {}, cons : {car : Int, cdr : t}. 2. Nälkäiset funktiot: µt.int t 3. Kokonaislukuvirrat (engl. streams): µt.{} {car : Nat, cdr : t} tai νt.{car : Nat, cdr : t}

Huomautus Rekursiivisilla tyypeillä laajennettu yksinkertaisesti tyypitetty λ-laskento onkin Turing-täydellinen, sillä λf : T T.(λx : (µt.t T ).f (x x))(λx : (µt.t T ).f (x x)) on hyvin tyypitetty kiintopisteoperaattori!

Ensi maanantaina ei ole luentoa. Ensi tiistaina jatketaan rekursiivisten tyyppien kanssa.