TIES542 kevät 2009 Aliohjelmien formalisointia lambda-kieli

Koko: px
Aloita esitys sivulta:

Download "TIES542 kevät 2009 Aliohjelmien formalisointia lambda-kieli"

Transkriptio

1 TIES542 kevät 2009 Aliohjelmien formalisointia lambda-kieli Antti-Juhani Kaijanaho 3. helmikuuta 2009 Lambda-kielen taustalla on 1900-luvun alkuvuosikymmenien matematiikan perusteiden tutkimus ja siihen liittyvä logiikan kehittyminen. Noiden aikojen suuri kysymys oli, voidaanko koko matematiikka formalisoida mekaaniseksi laskentajärjestelmäksi niin, ettei siihen jää piileviä ristiriitoja 1 Alonzo Church oli yksi heistä, joka pyrki tämän ongelman ratkaisemaan. Hänen ratkaisuehdotelmaansa kehittivät eteenpäin myös hänen oppilaansa Stephen C. Kleene ja J. Barkley Rosser. Kleene ja Rosser osoittivat varsin pian, että Churchin järjestelmä on logiikaksi käyttökelvoton (ristiriitainen). Church oli kuitenkin jo oivaltanut, että se kykenee määrittelemään kaikki mekaanisesti laskettavissa olevat funktiot, ja vain ne. Käyttäen tätä ajatusta hyväkseen hän ratkaisi loogiikkoja monta kymmentä vuotta vaivanneen ratkeavuusongelman (ns. Entscheidungsproblem) Church osoitti, että ei ole mahdollista mekaanisesti selvittää, onko jokin mielivaltainen looginen väittämä tosi vai ei. 2 Churchin järjestelmä, kun siitä on siivottu ns. illatiiviset osat eli ne, jotka tarvitaan logiikkapuuhasteluun, on nimeltään lambda-kieli taikka lambda-laskento (engl. lambda calculus), ja se on yksi maailman vanhimmista ohjelmointikielistä kehitetty ennen ohjelmoitavia tietokoneita. Nykyaikana lambda-kieli on yksi teoreettisen ohjelmointikielitutkimuksen päätyökaluista. Esimerkiksi staattisten 1. Edelleen varsin tunnettu, yksi vanhimmista alkuaikojen loogisten järjestelmien piilevistä ristiriidoista on Bertrand Russellin paradoksi: kuuluuko se joukko itseensä, johon kuuluvat kaikki ne joukot, jotka eivät kuulu itseensä? 2. Saman ongelman ratkaisi suunnilleen samoihin aikoihin myös muuan Alan Turing, käyttäen nykyisin Turingin koneena tunnettua formalismia. Church ehti julkaista ensin, mutta Turing saa jostain syystä nykyisin suuremman osan kunniasta. Jopa tuo ongelmatyyppi tunnetaan nykyisin nimellä (Turingin koneen) pysähtymisongelma (engl. halting problem). 1

2 tyyppijärjestelmien teoria on kehittynyt pääosin lambda-kielen ympärille. Funktiokielet ovat puolestaan kaikki olennaisesti laajennettuja lambda-kieliä. Lambda-kielen keskeinen idea on mallittaa matemaattinen funktio (ja samalla myös aliohjelma) ymmärrettynä laskentaohjeena. Kielestä on siivottu pois häiritsemästä kaikki muu. Yllättäen kieli on tästä huolimatta erittäin ilmaisuvoimainen. Klassikkokirjoja lambda-kielestä ovat Church (1985), Curry and Feys (1968). Suhteellisen kattava teos lambda-kielestä on Barendregt (1984). 1 Syntaktiset määritelmät Lambda-kielen abstrakti syntaksi on seuraavanlainen: x, y, z Var t, u Λ t, u ::= x (muuttuja) tu (applikaatio) λxt (abstraktio) Joukon Λ alkioita sanotaan usein (lambda-)termeiksi. Abstraktion λxt intuitiivinen tulkinta on termi t muuttujan x funktiona. Vastaavasti applikaatio tu tarkoittaa intuitiivisesti funktion t arvo kohdassa u. Lambda-kielessä ei ole moniparametrisia funktioita, vaan niitä simuloidaan curry malla (λxλyt)u 1 u 2. Applikaatio tavanomaisesti assosioi vasemmalle ja abstraktio oikealle; applikaatiolla on suurempi presedenssi kuin abstraktiolla. Varsin usein käytetään lyhennysmerkintää λx 1 x 2 x n.t, joka tarkoittaa termiä λx 1 λx 2 λx n t. Huomaa, kuinka lyhennysmerkinnässä muuttujalistan jälkeen tulee piste. Esimerkki λxx on intuitiivisesti identiteettifunktio. Siitä käytetään toisinaan nimeä I. 2. λxy.x on funktio, joka palauttaa vakiofunktion. Siitä käytetään toisinaan nimeä K. 3. λxyz.xz(yz) on nimeltään S. Termit λx.xz ja λy.yz ovat intuitiivisesti samoja, mutta termit λx.xz ja λx.xy eivät ole. Syynä tähän on se, että λn jälkeen tulevan muuttujan nimellä ei ole mitään merkitystä tilanne on sama kuin esimerkiksi integraalissa 2 f(x) dx = 2 f(y) dy 1 1 2

3 Tätä eroa merkitsemään on luotu kaksi termiä vapaa muuttuja (engl. free variable) (kuten y termissä λxxy) ja sidottu muuttuja (engl. bound variable) (kuten x termissä λxxy). Vapaasta muuttujast sanotaan myös, että se esiintyy vapaana (engl. occurs free) termissä. Muuttuja esiintyy vapaana jossain termissä, jos se ylipäätään esiintyy kyseisessä termissä ja ainakin yksi sen esiintymistä ei ole sellaisen λn alla, jonka vieressä kyseinen muuttuja on. Muodollisesti määritellään (meta)funktio 3 F V : Λ P(Var) seuraavasti F V x = {x} F V tu = F V t F V u F V λxt = F V t \ {x} F V t on siis t:ssä esiintyvien vapaiden muuttujien joukko. Jatkossa tullaan tarvitsemaan myös korvausoperaattoria (engl. substitution operator), joka on (meta)funktio Var Λ Λ Lambda. Sen tulosta merkitään tässä monisteessa t[x := u], ja se korvaa kaikki x:n vapaat esiintymät t:ssä u:lla. Muita kirjallisuudessa esiintyviä merkintöjä ovat [x := u]t, t[u/x] ja S x u t. Korvausoperaattorin täsmällinen määritelmä on jokseenkin sotkuinen, koska sen pitää välttää ns. muuttujan kaappausta (engl. variable capture) kyse on olennaisesti paikallisen muuttujan staattisen sidonnan varmistamisesta: y[x := t] = { t y jos x = y jos x y (t 1 t 2 )[x := u] = t 1 [x := u] t 2 [x := u] (2) λyt jos x = y tai x F V t (λyt)[x := u] = λy(t[x := u]) jos x y ja x F V t ja y F V u (3) λz(t[y := z][x := u]) jos x y ja x F V t ja y F V u missä z on uusi muuttuja (engl. fresh variable) eli muuttuja, jota ei ole vielä käytetty mihinkään (oikeastaan riittää z x ja z F V u ). (1) 2 Denotationaalinen semantiikka Lambda-laskennon denotationaalinen semantiikka on erittäin yksinkertainen. Olkoon D sellainen hila, että D sisältää kaikki Scott-jatkuvat funktiot D D 3. Notaatio P(S) tarkoittaa S:n potenssijoukkoa eli sen osajoukkojen joukkoa. 3

4 (tällaisen joukon olemassaolo on todistettu). Nyt voidaan määritellä semanttinen funktio seuraavasti: E : Λ (Var D) D E x σ = σ(x) { E t σ(e u σ) E tu σ = E λxt σ = f jos E t σ D D muuten missä f(a) = E t (σ {(x, a)}) 3 Sievennykset Ns. α-muunnos (engl. α-conversion) sallii sidotun muuttujan nimen vaihtamisen. Se määritellään (pienaskelsemantiikan keinoin) seuraavasti: λxt α λy(t[x := y]) jos y F V t t α t tu α t u u α u tu α tu t α t λxt α λxt Tehtävä 1. Osoita, että ( α ) on ekvivalenssirelaatio. Jos t α u pätee, sanotaan, että t ja u ovat α-ekvivalentteja. Käytännössä niitä pidetään samana terminä toisin sanoen termejä käsitellään α-muunnoksen ekvivalenssiluokkina. Koko lambda-laskennon ydin sisältyy β-sievennykseen (engl. β-reduction), joka 4

5 määritellään seuraavasti: (λxt)u β t[x := u] t β t tu β t u u β u tu β tu t β t λxt β λxt Muotoa (λxt)u sanotaan β-redeksiksi (engl. β-redex). Jos termi ei sisällä yhtään β-redeksiä, sen sanotaan olevan normaalimuoto (engl. normal form). Jos t β u pätee 4 ja u on normaalimuoto, niin u:n sanotaan olevan t:n normaalimuoto. Teoreema 1 (Church ja Rosser). Jos t β u 1 ja t β u 2 pätevät, niin on olemassa α-ekvivalentit normaalimuodot t 1 ja t 2 siten, että u 1 β t 1 ja u 2 β t 2 pätevät. Todistus. Sivuutetaan. Tämä Church Rosser-teoreema sanoo siis, että jos lauseella on ylipäätään normaalimuoto, se on yksikäsitteinen (modulo α-ekvivalenssi). Jos t β u taikka u β t pätee, sanotaan t:n ja u:n olevan β-ekvivalentteja, merkitään t = β u. 4 Churchin koodaukset Yllättäen lambda-laskennosta on muodostunut ohjelmointikielten teorian keskeisimmistä kulmakivistä! Tämän taustalla on muun muassa havainto, että lambdalaskennossa voi tehdä kaikenlaista kivaa. Esimerkiksi voidaan asettaa seuraavat 4. Jos ( ) on relaatio, niin ( ) on sen refleksiivis-transitiivinen sulkeuma, eli t 0 t n tarkoittaa joko, että t 0 ja t n ovat samat tai että on olemassa t 1,..., t n 1 siten, että t i t i+1 pätee kaikilla i = 0,..., n 1. 5

6 lyhennysmerkinnät: zero = λfx.x succ = λnfx.f(nfx) add = λmnfx.mf(nfx) mult = λmnf.m(nf) Laskemalla muutamia esimerkkilaskuja voidaan huomata, että zero tarkoittaa nollaa, succ on funktio, joka lisää argumenttiinsa ykkösen, add on funktio, joka laskee kaksi argumenttiaan yhteen, ja mult on vastaava kertolaskufunktio. Yleisesti, jos meillä on mikä tahansa yhteen- ja kertolaskutehtävä, se voidaan koodata lambda-lausekkeeksi edellä esitettyjen määritelmien avulla, ja tämän lausekkeen normaalimuoto esittää laskutehtävän vastausta! Yleisesti tässä koodauksessa, jota kutsutaan Churchin numeraaleiksi, lukua n vastaa lambda-lauseke eli succ(succ(... (succ(zero)... ) }{{} n kpl λf.λx. f(f... (f x)... ). }{{} n kpl On myös mahdollista asettaa seuraavanlaiset määritelmät: true = λxy.x false = λxy.y if = λx.x Nämä todella käyttäytyvät nimensä mukaisesti totuusarvoina ja if-lausekkeena! Ehkä kuitenkin hätkähdyttävin havainto on, että rekursiota on mahdollista simuloida lambda-laskennossa ilman, että rekursiivisia määritelmiä varsinaisesti sallittaisiin! Ideana on etsiä ns. kiintopisteoperaattori F, jolle seuraava β-ekvivalenssi pätee: F g = β g(f g) Nimensä tällainen (hypoteettinen) kiintopisteoperaattori saa siitä, että ns. kiintopisteyhtälön x = β gx ratkaisuksi x:n suhteen kelpaa aina x = F g. Sattuu olemaan niin, että lambdalaskennossa kiintopisteoperaattoreita on ääretön määrä; yksi niistä on Y-kombinaattoriksi kutsuttu λf(λxf(xx))(λxf(xx)). 6

7 Rekursion simulointi onnistuu kiintopisteoperaattorin avulla seuraavasti: Funktio f määritellään rekursiivisesti antamalla yhtälö f = E jossa f esiintyy myös yhtälön oikealla puolella, siis lausekkeessa E, vapaana. Määritellään apufunktio f = λf.e. Nyt funktio F f, missä F on kiintopisteoperaattori, on funktio f eli edellä annetun rekursioyhtälön ratkaisu! Koska lambda-laskento kykenee esittämään aritmetiikan ja simuloimaan rekursiota, on se Turing-täydellinen. 5 Laskujärjestykset Edellä määritelty β-sievennysrelaatio on epädeterministinen. Vaikka Churchin Rosserin teoreema takaakin, että mahdollinen normaalimuoto on yksikäsitteinen, mikään ei takaa, että mielivaltaisessa järjestyksessä tehty sievennys päättyy. Esimerkki 2. Sievennetään argumentti ensin: (λxy) ((λxxxx)(λxxxx)) β (λxy) ((λxxxx)(λxxxx)(λxxxx)) β (λxy) ((λxxxx)(λxxxx)(λxxxx)(λxxxx)) Sievennetään uloin redeksi ensin: (λxy) ((λxxxx)(λxxxx)) β y Voidaan todistaa, että normaalijärjestys (engl. normal order) ( N ) löytää aina normaalimuodon, jos se on olemassa: (λxt)u N t[x := u] t N t tu N t u jos t ei ole abstraktio u N u tu N tu jos t on normaalimuoto t N t λxt N λxt 7

8 Normaalijärjestys siis valitsee uloimman redeksin, tai jos on useampia uloimpia redeksejä, jotka eivät ole toisiinsa nähden sisäkkäisiä, niistä vasemmanpuolisimman. Normaalijärjestys on siis turvallinen, mutta se on usein tehoton, koska se saattaa aiheuttaa argumentin kopioitumisen ja siten työmäärän tuplautumisen. Käytössä on myös applikatiivinen järjestys (engl. applicative order) ( A ), jolla ei ole vastaavaa tehottomuusongelmaa: (λxt)u A t[x := u] jos t ja u ovat normaalimuotoja t A t tu A t u u A u tu A tu jos t on normaalimuoto t A t λxt A λxt Applikatiivisen järjestyksen heikko (engl. weak) variantti, joka ei sievennä abstraktion sisällä, vastaa ohjelmointikielen aliohjelman argumentin arvovälitystä. Vastaavasti normaalijärjestyksen heikko muoto (joka myöskään ei sievennä abstraktion sisällä) vastaa nimivälitystä. Viitteet H. P. Barendregt. The Lambda Calculus. Its Syntax and Semantics. Number 103 in Studies in logic and the foundation of mathematics. Elsevier, Amsterdam, revised edition, Alonzo Church. The Calculi of Lambda Conversion. Princeton University Press, Haskell B. Curry and Robert Feys. Combinatory Logic, volume 1. North-Holland,

Luku 7. Aliohjelmat. 7.1 Kutsusekvenssit. Aliohjelma (subroutine) on useimpien kielten tärkein kontrollivuon ohjausja abstrahointikeino.

Luku 7. Aliohjelmat. 7.1 Kutsusekvenssit. Aliohjelma (subroutine) on useimpien kielten tärkein kontrollivuon ohjausja abstrahointikeino. Luku 7 Aliohjelmat Aliohjelma (subroutine) on useimpien kielten tärkein kontrollivuon ohjausja abstrahointikeino. 7.1 Kutsusekvenssit Aliohjelmaan kontrolli siirtyy sen kutsun (call) kautta. Kun aliohjelman

Lisätiedot

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

TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 26. kesäkuuta 2013 ja ja TIEA241 Automaatit ja kieliopit, kesä 2012 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 26. kesäkuuta 2013 Sisällys ja ja on yksi vanhimmista tavoista yrittää mallittaa mekaanista laskentaa. Kurt

Lisätiedot

formalismeja TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho 15. joulukuuta 2015 TIETOTEKNIIKAN LAITOS

formalismeja TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho 15. joulukuuta 2015 TIETOTEKNIIKAN LAITOS TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 15. joulukuuta 2015 Sisällys Loppukurssin aikataulu tiistai 15.12.2015 viimeiset demot keskiviikko 16.12.2015 viimeiset

Lisätiedot

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

TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 16. toukokuuta 2011 TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 16. toukokuuta 2011 Sisällys engl. random-access machines, RAM yksinkertaistettu nykyaikaisen (ei-rinnakkaisen)

Lisätiedot

Yksinkertaiset tyypit

Yksinkertaiset tyypit Yksinkertaiset tyypit TIES542 Ohjelmointikielten periaatteet, kevät 2007 Antti-Juhani Kaijanaho Jyväskylän yliopisto Tietotekniikan laitos 13. helmikuuta 2007 Tyypitön puhdas λ-laskento E ::= I E 1 E 2

Lisätiedot

Luku 2. Ohjelmointi laskentana. 2.1 Laskento

Luku 2. Ohjelmointi laskentana. 2.1 Laskento Luku 2 Ohjelmointi laskentana Funktio-ohjelmoinnin, olio-ohjelmoinnin ja käskyohjelmoinnin ero on löydettävissä niiden pohjalla olevista laskennan mallista. Automaattisen tietojenkäsittelyn yksi historiallinen

Lisätiedot

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

2.4 Normaalimuoto, pohja ja laskentajärjestys 2.4. NORMAALIMUOTO, POHJA JA LASKENTAJÄRJESTYS 13 2.4. NORMAALIMUOTO, POHJA JA LASKENTAJÄRJESTYS 13 Toisinaan voi olla syytä kirjoittaa α- tai β-kirjain yhtäsuuruusmerkin yläpuolelle kertomaan, mitä muunnosta käytetään. Esimerkki 4 1. (λx.x)y β = y 2.

Lisätiedot

TIEA341 Funktio-ohjelmointi 1, kevät 2008

TIEA341 Funktio-ohjelmointi 1, kevät 2008 TIEA34 Funktio-ohjelmointi, kevät 2008 Luento 3 Antti-Juhani Kaijanaho Jyväskylän yliopisto Tietotekniikan laitos 2. tammikuuta 2008 Ydin-Haskell: Syntaksi Lausekkeita (e) ovat: nimettömät funktiot: \x

Lisätiedot

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

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 12. lokakuuta 2016 ja ja TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 12. lokakuuta 2016 Sisällys ja ja Vuosi on 1936, eikä tietokoneita ollut. Computer oli ammattinimike. http://www.nasa.gov/centers/dryden/

Lisätiedot

Lisää pysähtymisaiheisia ongelmia

Lisää pysähtymisaiheisia ongelmia Lisää pysähtymisaiheisia ongelmia Lause: Pysähtymättömyysongelma H missä H = { w111x w validi koodi, M w ei pysähdy syötteellä x } ei ole rekursiivisesti lueteltava. Todistus: Pysähtymisongelman komplementti

Lisätiedot

Rekursiiviset tyypit

Rekursiiviset tyypit 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

Lisätiedot

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

Geneeriset tyypit. TIES542 Ohjelmointikielten periaatteet, kevät Antti-Juhani Kaijanaho. Jyväskylän yliopisto Tietotekniikan laitos Geneeriset tyypit TIES542 Ohjelmointikielten periaatteet, kevät 2007 Antti-Juhani Kaijanaho Jyväskylän yliopisto Tietotekniikan laitos 6. maaliskuuta 2007 Kysymys Mitä yhteistä on seuraavilla funktioilla?

Lisätiedot

Lisää laskentoa. TIEA341 Funktio ohjelmointi 1 Syksy 2005

Lisää laskentoa. TIEA341 Funktio ohjelmointi 1 Syksy 2005 Lisää laskentoa TIEA341 Funktio ohjelmointi 1 Syksy 2005 Kertausta: Laajennettu aritmetiikka Lasketaan rationaaliluvuilla vakiot yhteen, vähennys, kerto ja jakolasku Laajennetaan sitä määrittelyillä: vakio

Lisätiedot

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

Turingin koneet. Sisällys. Aluksi. Turingin koneet. Turingin teesi. Aluksi. Turingin koneet. Turingin teesi TIEA241 Automaatit ja kieliopit, kevät 2012 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 17. kesäkuuta 2013 Sisällys Chomskyn hierarkia (ja vähän muutakin) kieli säännöllinen LL(k) LR(1) kontekstiton kontekstinen

Lisätiedot

Uusi näkökulma. TIEA341 Funktio ohjelmointi 1 Syksy 2005

Uusi näkökulma. TIEA341 Funktio ohjelmointi 1 Syksy 2005 Uusi näkökulma TIEA341 Funktio ohjelmointi 1 Syksy 2005 Aloitetaan alusta... Otetaan uusi näkökulma Haskelliin ohjelmointi laskentana kertausta toisaalta, uusia käsitteitä toisaalta helpottanee sitten

Lisätiedot

TIES542 kevät 2009 Denotaatio

TIES542 kevät 2009 Denotaatio TIES542 kevät 2009 Denotaatio Antti-Juhani Kaijanaho 27.1.2009 (korjauksia 28.1.2009) Denotationaalisessa merkitysopissa kukin (ohjelmointi)kielen konstrktiolle määritellään matemaattinen otus, jota sanotaan

Lisätiedot

Ydin-Haskell Tiivismoniste

Ydin-Haskell Tiivismoniste Ydin-Haskell Tiivismoniste Antti-Juhani Kaijanaho 8. joulukuuta 2005 1 Abstrakti syntaksi Päätesymbolit: Muuttujat a, b, c,..., x, y, z,... Tyyppimuuttujat α, β, γ,... Koostimet (data- ja tyyppi-) C, D,...,

Lisätiedot

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

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 8. syyskuuta 2016 TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 8. syyskuuta 2016 Sisällys a https://tim.jyu.fi/view/kurssit/tie/ tiea241/2016/videoiden%20hakemisto Matemaattisen

Lisätiedot

Tietojenkäsittelyteorian alkeet, osa 2

Tietojenkäsittelyteorian alkeet, osa 2 TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 12. syyskuuta 2016 Sisällys vs Ovat eri asioita! Älä sekoita niitä. Funktiot Funktio f luokasta A luokkaan B, merkitään

Lisätiedot

TIES542 kevät 2009 Rekursiiviset tyypit

TIES542 kevät 2009 Rekursiiviset tyypit TIES542 kevät 2009 Rekursiiviset tyypit Antti-Juhani Kaijanaho 17. helmikuuta 2009 Edellisessä monisteessa esitetyt tietue- ja varianttityypit eivät yksinään riitä kovin mielenkiintoisten tietorakenteiden

Lisätiedot

14.1 Rekursio tyypitetyssä lambda-kielessä

14.1 Rekursio tyypitetyssä lambda-kielessä Luku 14 Rekursiiviset tyypit Edellisessä luvussa esitetyt tietue- ja varianttityypit eivät yksinään riitä kovin mielenkiintoisten tietorakenteiden toteuttamiseen. Useimmissa ohjelmissa tarvitaan erilaisia

Lisätiedot

Johdatus λ-kalkyyliin

Johdatus λ-kalkyyliin Annika Piiroinen, Kalle Viiri 2014 Johdatus λ-kalkyyliin λ kalkyyli on alunperin Alonzo Chruchin kehittämä Turing täydellinen formaalin laskennan malli. Funktionaaliset ohjelmointikielet perustuvat siihen,

Lisätiedot

Chomskyn hierarkia. tyyppi 0 on juuri esitelty (ja esitellään kohta lisää) tyypit 2 ja 3 kurssilla Ohjelmoinnin ja laskennan perusmallit

Chomskyn hierarkia. tyyppi 0 on juuri esitelty (ja esitellään kohta lisää) tyypit 2 ja 3 kurssilla Ohjelmoinnin ja laskennan perusmallit Chomskyn hierarkia Noam Chomskyn vuonna 1956 esittämä luokittelu kieliopeille niiden ilmaisuvoiman mukaan tyyppi kieli kielioppi tunnistaminen 0 rekurs. lueteltava rajoittamaton Turingin kone 1 kontekstinen

Lisätiedot

Rekursiiviset palautukset [HMU 9.3.1]

Rekursiiviset palautukset [HMU 9.3.1] Rekursiiviset palautukset [HMU 9.3.1] Yleisesti sanomme, että ongelma P voidaan palauttaa ongelmaan Q, jos mistä tahansa ongelmalle Q annetusta ratkaisualgoritmista voidaan jotenkin muodostaa ongelmalle

Lisätiedot

ja λ 2 = 2x 1r 0 x 2 + 2x 1r 0 x 2

ja λ 2 = 2x 1r 0 x 2 + 2x 1r 0 x 2 Johdatus diskreettiin matematiikkaan Harjoitus 4, 7.10.2015 1. Olkoot c 0, c 1 R siten, että polynomilla r 2 c 1 r c 0 on kaksinkertainen juuri. Määritä rekursioyhtälön x n+2 = c 1 x n+1 + c 0 x n, n N,

Lisätiedot

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

Laskennan rajoja. TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 10. joulukuuta 2015 TIETOTEKNIIKAN LAITOS. TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 10. joulukuuta 2015 Sisällys TM vs yleiset kieliopit Lause Jokaiselle kielelle A seuraavat ovat yhtäpitävät: 1.

Lisätiedot

Insinöörimatematiikka A

Insinöörimatematiikka A Insinöörimatematiikka A Mika Hirvensalo mikhirve@utu.fi Matematiikan ja tilastotieteen laitos Turun yliopisto 2018 Mika Hirvensalo mikhirve@utu.fi Luentoruudut 3 1 of 23 Kertausta Määritelmä Predikaattilogiikan

Lisätiedot

811120P Diskreetit rakenteet

811120P Diskreetit rakenteet 811120P Diskreetit rakenteet 2018-2019 Kertausta toiseen välikokeeseen Yhteenveto Kurssin sisältö 1. Algoritmin käsite 2. Lukujärjestelmät ja niiden muunnokset; lukujen esittäminen tietokoneessa 3. Logiikka

Lisätiedot

Reaaliarvoisen yhden muuttujan funktion raja arvo LaMa 1U syksyllä 2011

Reaaliarvoisen yhden muuttujan funktion raja arvo LaMa 1U syksyllä 2011 Neljännen viikon luennot Reaaliarvoisen yhden muuttujan funktion raja arvo LaMa 1U syksyllä 2011 Perustuu Trench in verkkokirjan lukuun 2.1. Esko Turunen esko.turunen@tut.fi Funktion y = f (x) on intuitiivisesti

Lisätiedot

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

TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 16. maaliskuuta 2011 TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 16. maaliskuuta 2011 Sisällys Sisällys Väitelauseet lause (tai virke), joka sanoo jonkin asian pitävän paikkaansa

Lisätiedot

Staattinen tyyppijärjestelmä

Staattinen tyyppijärjestelmä Luku 12 Staattinen tyyppijärjestelmä [Staattinen t]yyppijärjestelmä on ratkeava, kieliopillinen menetelmä, jota käytetään todistamaan tiettyjen käytösten puuttuminen ohjelmasta luokittelemalla ilmaisuja

Lisätiedot

Todistus: Aiemmin esitetyn mukaan jos A ja A ovat rekursiivisesti lueteltavia, niin A on rekursiivinen.

Todistus: Aiemmin esitetyn mukaan jos A ja A ovat rekursiivisesti lueteltavia, niin A on rekursiivinen. Lause: Tyhjyysongelma ei ole osittain ratkeava; ts. kieli ei ole rekursiivisesti lueteltava. L e = { w { 0, 1 } L(M w ) = } Todistus: Aiemmin esitetyn mukaan jos A ja A ovat rekursiivisesti lueteltavia,

Lisätiedot

Matematiikan tukikurssi

Matematiikan tukikurssi Matematiikan tukikurssi Kurssikerta 1 Määrittelyjoukoista Tarkastellaan funktiota, jonka määrittelevä yhtälö on f(x) = x. Jos funktion lähtöjoukoksi määrittelee vaikkapa suljetun välin [0, 1], on funktio

Lisätiedot

Täydentäviä muistiinpanoja Turingin koneiden vaihtoehdoista

Täydentäviä muistiinpanoja Turingin koneiden vaihtoehdoista Täydentäviä muistiinpanoja Turingin koneiden vaihtoehdoista Antti-Juhani Kaijanaho 15. maaliskuuta 2012 1 Apumääritelmä Määritelmä 1. Olkoon Σ merkistö, jolla on olemassa täydellinen järjestys ( ) Σ 2.

Lisätiedot

Matematiikan peruskurssi 2

Matematiikan peruskurssi 2 Matematiikan peruskurssi Demonstraatiot III, 4.5..06. Mikä on funktion f suurin mahdollinen määrittelyjoukko, kun f(x) x? Mikä on silloin f:n arvojoukko? Etsi f:n käänteisfunktio f ja tarkista, että löytämäsi

Lisätiedot

HY / Matematiikan ja tilastotieteen laitos Johdatus logiikkaan I, syksy 2018 Harjoitus 5 Ratkaisuehdotukset

HY / Matematiikan ja tilastotieteen laitos Johdatus logiikkaan I, syksy 2018 Harjoitus 5 Ratkaisuehdotukset HY / Matematiikan ja tilastotieteen laitos Johdatus logiikkaan I, syksy 2018 Harjoitus 5 Ratkaisuehdotukset 1. Päättele resoluutiolla seuraavista klausuulijoukoista: (a) {{p 0 }, {p 1 }, { p 0, p 2 },

Lisätiedot

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

DFA:n käyttäytyminen ja säännölliset kielet säännölliset kielet TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 9. marraskuuta 2015 Sisällys toiminta formaalisti Olkoon M = (Q, Σ, δ, q 0, F) deterministinen

Lisätiedot

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

Logiikan kertausta. TIE303 Formaalit menetelmät, kevät Antti-Juhani Kaijanaho. Jyväskylän yliopisto Tietotekniikan laitos. TIE303 Formaalit menetelmät, kevät 2005 Logiikan kertausta Antti-Juhani Kaijanaho antkaij@mit.jyu.fi Jyväskylän yliopisto Tietotekniikan laitos TIE303 Formaalit mentetelmät, 2005-01-27 p. 1/17 Luento2Luentomoniste

Lisätiedot

TIES542 kevät 2009 Tyyppijärjestelmän laajennoksia

TIES542 kevät 2009 Tyyppijärjestelmän laajennoksia TIES542 kevät 2009 Tyyppijärjestelmän laajennoksia Antti-Juhani Kaijanaho 16. helmikuuta 2009 Tyypitetyt ohjelmointikielet sisältävät paljon muitakin konstruktioita kuin yksinkertaisesti tyypitetyn lambda-kielen,

Lisätiedot

X R Matematiikan johdantokurssi, syksy 2016 Harjoitus 5, ratkaisuista

X R Matematiikan johdantokurssi, syksy 2016 Harjoitus 5, ratkaisuista Matematiikan johdantokurssi, syksy 06 Harjoitus, ratkaisuista. Olkoon perusjoukkona X := {,,,, } ja := {(, ), (, ), (, ), (, )}. Muodosta yhdistetyt (potenssi)relaatiot,,,. Entä mitä on yleisesti n, kun

Lisätiedot

Turingin koneet. TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 7. joulukuuta 2015 TIETOTEKNIIKAN LAITOS.

Turingin koneet. TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 7. joulukuuta 2015 TIETOTEKNIIKAN LAITOS. TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 7. joulukuuta 2015 Sisällys Vuosi on 1936, eikä tietokoneita ollut. Computer oli ammattinimike. http://www.nasa.gov/centers/dryden/

Lisätiedot

Chomskyn hierarkia ja yhteysherkät kieliopit

Chomskyn hierarkia ja yhteysherkät kieliopit Chomskyn hierarkia ja yhteysherkät kieliopit Laskennan teorian opintopiiri Tuomas Hakoniemi 21. helmikuuta 2014 Käsittelen tässä laskennan teorian opintopiirin harjoitustyössäni muodollisten kielioppien

Lisätiedot

Joukot. Georg Cantor ( )

Joukot. Georg Cantor ( ) Joukot Matematiikassa on pyrkimys määritellä monimutkaiset asiat täsmällisesti yksinkertaisempien asioiden avulla. Tarvitaan jokin lähtökohta, muutama yleisesti hyväksytty ja ymmärretty käsite, joista

Lisätiedot

Kuvauksista ja relaatioista. Jonna Makkonen Ilari Vallivaara

Kuvauksista ja relaatioista. Jonna Makkonen Ilari Vallivaara Kuvauksista ja relaatioista Jonna Makkonen Ilari Vallivaara 20. lokakuuta 2004 Sisältö 1 Esipuhe 2 2 Kuvauksista 3 3 Relaatioista 8 Lähdeluettelo 12 1 1 Esipuhe Joukot ja relaatiot ovat periaatteessa äärimmäisen

Lisätiedot

5.3 Ratkeavia ongelmia

5.3 Ratkeavia ongelmia 153 5.3 Ratkeavia ongelmia Deterministisen äärellisten automaattien (DFA) hyväksymisongelma: hyväksyykö annettu automaatti B merkkijonon w? Ongelmaa vastaava formaali kieli on A DFA = { B, w B on DFA,

Lisätiedot

on rekursiivisesti numeroituva, mutta ei rekursiivinen.

on rekursiivisesti numeroituva, mutta ei rekursiivinen. 6.5 Turingin koneiden pysähtymisongelma Lause 6.9 Kieli H = { M pysähtyy syötteellä w} on rekursiivisesti numeroituva, mutta ei rekursiivinen. Todistus. Todetaan ensin, että kieli H on rekursiivisesti

Lisätiedot

Dierentiaaliyhtälöistä

Dierentiaaliyhtälöistä Dierentiaaliyhtälöistä Markus Kettunen 4. maaliskuuta 2009 1 SISÄLTÖ 1 Sisältö 1 Dierentiaaliyhtälöistä 2 1.1 Johdanto................................. 2 1.2 Ratkaisun yksikäsitteisyydestä.....................

Lisätiedot

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016 ICS-C2000 Tietojenkäsittelyteoria Kevät 206 Kierros 0, 2. 24. maaliskuuta Huom! Perjantaina 25. maaliskuuta ei ole laskareita (pitkäperjantai), käykää vapaasti valitsemassanne ryhmässä aiemmin viikolla.

Lisätiedot

Rajoittamattomat kieliopit (Unrestricted Grammars)

Rajoittamattomat kieliopit (Unrestricted Grammars) Rajoittamattomat kieliopit (Unrestricted Grammars) Laura Pesola Laskennanteorian opintopiiri 13.2.2013 Formaalit kieliopit Sisältävät aina Säännöt (esim. A -> B C abc) Muuttujat (A, B, C, S) Aloitussymboli

Lisätiedot

Esko Turunen Luku 9. Logiikan algebralisointi

Esko Turunen Luku 9. Logiikan algebralisointi Logiikan algebralisointi Tässä viimeisessä luvussa osoitamme, miten algebran peruskäsitteitä käytetään logiikan tutkimuksessa. Käsittelemme vain klassista lauselogiikkaa ja sen suhdetta Boolen algebraan,

Lisätiedot

Matematiikan tukikurssi, kurssikerta 2

Matematiikan tukikurssi, kurssikerta 2 Matematiikan tukikurssi kurssikerta 1 Relaatioista Oletetaan kaksi alkiota a ja b. Näistä kumpikin kuuluu johonkin tiettyyn joukkoon mahdollisesti ne kuuluvat eri joukkoihin; merkitään a A ja b B. Voidaan

Lisätiedot

Lineaarinen toisen kertaluvun yhtälö

Lineaarinen toisen kertaluvun yhtälö Lineaarinen toisen kertaluvun yhtälö Keijo Ruotsalainen Mathematics Division Lineaarinen toisen kertaluvun differentiaaliyhtälö Toisen kertaluvun täydellinen lineaarinen yhtälö muotoa p 2 (x)y + p 1 (x)y

Lisätiedot

Diofantoksen yhtälön ratkaisut

Diofantoksen yhtälön ratkaisut Diofantoksen yhtälön ratkaisut Matias Mäkelä Matemaattisten tieteiden tutkinto-ohjelma Oulun yliopisto Kevät 2017 Sisältö Johdanto 2 1 Suurin yhteinen tekijä 2 2 Eukleideen algoritmi 4 3 Diofantoksen yhtälön

Lisätiedot

Todistusmenetelmiä Miksi pitää todistaa?

Todistusmenetelmiä Miksi pitää todistaa? Todistusmenetelmiä Miksi pitää todistaa? LUKUTEORIA JA TO- DISTAMINEN, MAA11 Todistus on looginen päättelyketju, jossa oletuksista, määritelmistä, aksioomeista sekä aiemmin todistetuista tuloksista lähtien

Lisätiedot

Täydentäviä muistiinpanoja laskennan rajoista

Täydentäviä muistiinpanoja laskennan rajoista Täydentäviä muistiinpanoja laskennan rajoista Antti-Juhani Kaijanaho 10. joulukuuta 2015 1 Diagonaalikieli Diagonaalikieli on D = { k {0, 1} k L(M k ) }. Lause 1. Päätösongelma Onko k {0, 1} sellaisen

Lisätiedot

Laskennan teoriasta. Antti-Juhani Kaijanaho. 11. helmikuuta 2016

Laskennan teoriasta. Antti-Juhani Kaijanaho. 11. helmikuuta 2016 Laskennan teoriasta Antti-Juhani Kaijanaho 11. helmikuuta 2016 Tarina alkaa vuodesta 1687, jolloin Isaac Newton (1642 1727) julkaisi kirjan Philosophiae Naturalis Principa Mathematica (suomeksi Luonnonfilosofian

Lisätiedot

0 kun x < 0, 1/3 kun 0 x < 1/4, 7/11 kun 1/4 x < 6/7, 1 kun x 1, 1 kun x 6/7,

0 kun x < 0, 1/3 kun 0 x < 1/4, 7/11 kun 1/4 x < 6/7, 1 kun x 1, 1 kun x 6/7, HY / Matematiikan ja tilastotieteen laitos Todennäköisyyslaskenta II, syksy 07 Harjoitus Ratkaisuehdotuksia Tehtäväsarja I. Mitkä seuraavista funktioista F, F, F ja F 4 ovat kertymäfunktioita? Mitkä niistä

Lisätiedot

TIEA341 Funktio-ohjelmointi 1, kevät 2008

TIEA341 Funktio-ohjelmointi 1, kevät 2008 TIEA341 Funktio-ohjelmointi 1, kevät 2008 Luento 10 Todistamisesta Antti-Juhani Kaijanaho Jyväskylän yliopisto Tietotekniikan laitos 21. tammikuuta 2008 Samuuden todistaminen usein onnistuu ihan laskemalla

Lisätiedot

missä on myös käytetty monisteen kaavaa 12. Pistä perustelut kohdilleen!

missä on myös käytetty monisteen kaavaa 12. Pistä perustelut kohdilleen! Matematiikan johdantokurssi Kertausharjoitustehtävien ratkaisuja/vastauksia/vihjeitä. Osoita todeksi logiikan lauseille seuraava: P Q (P Q). Ratkaisuohje. Väite tarkoittaa, että johdetut lauseet P Q ja

Lisätiedot

Entscheidungsproblem

Entscheidungsproblem Entscheidungsproblem Antti-Juhani Kaijanaho 24. kesäkuuta 2013 Entscheidungsproblem eli ratkaisuongelma kysyy, millä mekaanisella menetelmällä voisi selvittää, onko mielivaltainen annettu ensimmäisen kertaluvun

Lisätiedot

HY, MTO / Matemaattisten tieteiden kandiohjelma Todennäköisyyslaskenta IIa, syksy 2018 Harjoitus 3 Ratkaisuehdotuksia.

HY, MTO / Matemaattisten tieteiden kandiohjelma Todennäköisyyslaskenta IIa, syksy 2018 Harjoitus 3 Ratkaisuehdotuksia. HY, MTO / Matemaattisten tieteiden kandiohjelma Todennäköisyyslaskenta IIa, syksy 8 Harjoitus Ratkaisuehdotuksia Tehtäväsarja I. Mitkä seuraavista funktioista F, F, F ja F 4 ovat kertymäfunktioita? Mitkä

Lisätiedot

Diskreetin matematiikan perusteet Laskuharjoitus 2 / vko 9

Diskreetin matematiikan perusteet Laskuharjoitus 2 / vko 9 Diskreetin matematiikan perusteet Laskuharjoitus 2 / vko 9 Tuntitehtävät 9-10 lasketaan alkuviikon harjoituksissa ja tuntitehtävät 13-14 loppuviikon harjoituksissa. Kotitehtävät 11-12 tarkastetaan loppuviikon

Lisätiedot

MS-A0402 Diskreetin matematiikan perusteet

MS-A0402 Diskreetin matematiikan perusteet MS-A040 Diskreetin matematiikan perusteet Osa : Relaatiot ja funktiot Riikka Kangaslampi 017 Matematiikan ja systeemianalyysin laitos Aalto-yliopisto Relaatiot Relaatio Määritelmä 1 Relaatio joukosta A

Lisätiedot

Johdatus diskreettiin matematiikkaan Harjoitus 1,

Johdatus diskreettiin matematiikkaan Harjoitus 1, Johdatus diskreettiin matematiikkaan Harjoitus 1, 15.9.2014 1. Hahmottele tasossa seuraavat relaatiot: a) R 1 = {(x, y) R 2 : x y 2 } b) R 2 = {(x, y) R 2 : y x Z} c) R 3 = {(x, y) R 2 : y > 0 and x 2

Lisätiedot

T Syksy 2004 Logiikka tietotekniikassa: perusteet Laskuharjoitus 7 (opetusmoniste, kappaleet )

T Syksy 2004 Logiikka tietotekniikassa: perusteet Laskuharjoitus 7 (opetusmoniste, kappaleet ) T-79144 Syksy 2004 Logiikka tietotekniikassa: perusteet Laskuharjoitus 7 (opetusmoniste, kappaleet 11-22) 26 29102004 1 Ilmaise seuraavat lauseet predikaattilogiikalla: a) Jokin porteista on viallinen

Lisätiedot

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

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

Lisätiedot

vaihtoehtoja TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho 13. lokakuuta 2016 TIETOTEKNIIKAN LAITOS

vaihtoehtoja TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho 13. lokakuuta 2016 TIETOTEKNIIKAN LAITOS TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 13. lokakuuta 2016 Sisällys Harjoitustehtävätilastoa Tilanne 13.10.2016 klo 9:42 passed waiting redo submitters

Lisätiedot

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

Joukossa X määritelty relaatio R on. (ir) irrefleksiivinen, jos x Rx kaikilla x X, Relaation Joukossa X määritelty relaatio R on (r) refleksiivinen, jos xrx kaikilla x X, (ir) irrefleksiivinen, jos x Rx kaikilla x X, (s) symmetrinen, jos xry yrx, (as) antisymmetrinen, jos xry yrx x =

Lisätiedot

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

MS-A0402 Diskreetin matematiikan perusteet Esimerkkejä, todistuksia ym., osa I MS-A0402 Diskreetin matematiikan perusteet Esimerkkejä, todistuksia ym., osa I G. Gripenberg Aalto-yliopisto 3. huhtikuuta 2014 G. Gripenberg (Aalto-yliopisto) MS-A0402 Diskreetin matematiikan perusteetesimerkkejä,

Lisätiedot

tään painetussa ja käsin kirjoitetussa materiaalissa usein pienillä kreikkalaisilla

tään painetussa ja käsin kirjoitetussa materiaalissa usein pienillä kreikkalaisilla 2.5. YDIN-HASKELL 19 tään painetussa ja käsin kirjoitetussa materiaalissa usein pienillä kreikkalaisilla kirjaimilla. Jos Γ ja ovat tyyppilausekkeita, niin Γ on tyyppilauseke. Nuoli kirjoitetaan koneella

Lisätiedot

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

MS-A0402 Diskreetin matematiikan perusteet Esimerkkejä, todistuksia ym., osa I MS-A040 Diskreetin matematiikan perusteet Esimerkkejä, todistuksia ym., osa I G. Gripenberg Aalto-yliopisto 3. huhtikuuta 014 G. Gripenberg (Aalto-yliopisto) MS-A040 Diskreetin matematiikan perusteetesimerkkejä,

Lisätiedot

Matematiikan tukikurssi, kurssikerta 3

Matematiikan tukikurssi, kurssikerta 3 Matematiikan tukikurssi, kurssikerta 3 1 Epäyhtälöitä Aivan aluksi lienee syytä esittää luvun itseisarvon määritelmä: { x kun x 0 x = x kun x < 0 Siispä esimerkiksi 10 = 10 ja 10 = 10. Seuraavaksi listaus

Lisätiedot

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

MS-A0402 Diskreetin matematiikan perusteet Esimerkkejä ym., osa I MS-A040 Diskreetin matematiikan perusteet Esimerkkejä ym., osa I G. Gripenberg Aalto-yliopisto. maaliskuuta 05 G. Gripenberg (Aalto-yliopisto) MS-A040 Diskreetin matematiikan perusteet Esimerkkejä. ym.,

Lisätiedot

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

TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 29. toukokuuta 2013 TIEA241 Automaatit ja kieliopit, kesä 2013 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 29. toukokuuta 2013 Sisällys Chomskyn hierarkia (ja muutakin) kieli LL(k) LR(1) kontekstiton kontekstinen rekursiivisesti

Lisätiedot

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

MS-A0402 Diskreetin matematiikan perusteet Esimerkkejä ym., osa I MS-A040 Diskreetin matematiikan perusteet Esimerkkejä ym., osa I G. Gripenberg Aalto-yliopisto. maaliskuuta 05 G. Gripenberg (Aalto-yliopisto) MS-A040 Diskreetin matematiikan perusteet Esimerkkejä. ym.,

Lisätiedot

Entscheidungsproblem

Entscheidungsproblem Entscheidungsproblem Antti-Juhani Kaijanaho 10. joulukuuta 2015 Entscheidungsproblem eli ratkaisuongelma kysyy, millä mekaanisella menetelmällä voisi selvittää, onko mielivaltainen annettu ensimmäisen

Lisätiedot

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

TIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 2. helmikuuta 2012 TIEA241 Automaatit ja, kevät 2012 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 2. helmikuuta 2012 Sisällys Sisällys Chomskyn hierarkia kieli säännöllinen kontekstiton kontekstinen rekursiivisesti lueteltava

Lisätiedot

(1) refleksiivinen, (2) symmetrinen ja (3) transitiivinen.

(1) refleksiivinen, (2) symmetrinen ja (3) transitiivinen. Matematiikassa ja muuallakin joudutaan usein tekemisiin sellaisten relaatioiden kanssa, joiden lakina on tietyn ominaisuuden samuus. Tietyn ominaisuuden samuus -relaatio on ekvivalenssi; se on (1) refleksiivinen,

Lisätiedot

Johdatus diskreettiin matematiikkaan Harjoitus 5, Ratkaise rekursioyhtälö

Johdatus diskreettiin matematiikkaan Harjoitus 5, Ratkaise rekursioyhtälö Johdatus diskreettiin matematiikkaan Harjoitus 5, 14.10.2015 1. Ratkaise rekursioyhtälö x n+4 2x n+2 + x n 16( 1) n, n N, alkuarvoilla x 1 2, x 2 14, x 3 18 ja x 4 42. Ratkaisu. Vastaavan homogeenisen

Lisätiedot

Matematiikassa ja muuallakin joudutaan usein tekemisiin sellaisten relaatioiden kanssa, joiden lakina on tietyn ominaisuuden samuus.

Matematiikassa ja muuallakin joudutaan usein tekemisiin sellaisten relaatioiden kanssa, joiden lakina on tietyn ominaisuuden samuus. Matematiikassa ja muuallakin joudutaan usein tekemisiin sellaisten relaatioiden kanssa, joiden lakina on tietyn ominaisuuden samuus. Matematiikassa ja muuallakin joudutaan usein tekemisiin sellaisten relaatioiden

Lisätiedot

Matematiikan johdantokurssi, syksy 2016 Harjoitus 11, ratkaisuista

Matematiikan johdantokurssi, syksy 2016 Harjoitus 11, ratkaisuista Matematiikan johdantokurssi, syksy 06 Harjoitus, ratkaisuista. Valitse seuraaville säännöille mahdollisimman laajat lähtöjoukot ja sopivat maalijoukot niin, että syntyy kahden muuttujan funktiot (ks. monisteen

Lisätiedot

1 Määrittelyjä ja aputuloksia

1 Määrittelyjä ja aputuloksia 1 Määrittelyjä ja aputuloksia 1.1 Supremum ja infimum Aluksi kerrataan pienimmän ylärajan (supremum) ja suurimman alarajan (infimum) perusominaisuuksia ja esitetään muutamia myöhemmissä todistuksissa tarvittavia

Lisätiedot

Predikaattilogiikan malli-teoreettinen semantiikka

Predikaattilogiikan malli-teoreettinen semantiikka Predikaattilogiikan malli-teoreettinen semantiikka February 4, 2013 Muistamme, että predikaattilogiikassa aakkosto L koostuu yksilövakioista c 0, c 1, c 2,... ja predikaattisymboleista P, R,... jne. Ekstensionaalisia

Lisätiedot

Johdantoa INTEGRAALILASKENTA, MAA9

Johdantoa INTEGRAALILASKENTA, MAA9 Lyhyehkö johdanto integraalilaskentaan. Johdantoa INTEGRAALILASKENTA, MAA9 Integraalilaskennan lähtökohta 1: Laskutoimitukset + ja ovat keskenään käänteisiä, samoin ja ovat käänteisiä, kunhan ei jaeta

Lisätiedot

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

Säännölliset kielet. Sisällys. Säännölliset kielet. Säännölliset operaattorit. Säännölliset kielet TIEA241 Automaatit ja kieliopit, kesä 2013 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 24. toukokuuta 2013 Sisällys Formaalit kielet On tapana sanoa, että merkkijonojen joukko on (formaali) kieli. Hieman

Lisätiedot

Säännöllisten kielten sulkeumaominaisuudet

Säännöllisten kielten sulkeumaominaisuudet Säännöllisten kielten sulkeumaominaisuudet Osoitamme nyt, että säännöllisten kielten joukko on suljettu yhdisteen, konkatenaation ja tähtioperaation suhteen. Toisin sanoen jos A ja B ovat säännöllisiä,

Lisätiedot

Luonnollisten lukujen ja kokonaislukujen määritteleminen

Luonnollisten lukujen ja kokonaislukujen määritteleminen Luonnollisten lukujen ja kokonaislukujen määritteleminen LuK-tutkielma Jussi Piippo Matemaattisten tieteiden yksikkö Oulun yliopisto Kevät 2017 Sisältö 1 Johdanto 2 2 Esitietoja 3 2.1 Joukko-opin perusaksioomat...................

Lisätiedot

r > y x z x = z y + y x z y + y x = r y x + y x = r

r > y x z x = z y + y x z y + y x = r y x + y x = r HY / Matematiikan ja tilastotieteen laitos Vektorianalyysi I, syksy 018 Harjoitus Ratkaisuehdotukset Tehtävä 1. Osoita, että avoin kuula on avoin joukko ja suljettu kuula on suljettu joukko. Ratkaisu.

Lisätiedot

Algoritmin määritelmä [Sipser luku 3.3]

Algoritmin määritelmä [Sipser luku 3.3] Algoritmin määritelmä [Sipser luku 3.3] Mitä algoritmilla yleensä tarkoitetaan periaatteessa: yksiselitteisesti kuvattu jono (tietojenkäsittely)operaatioita, jotka voidaan toteuttaa mekaanisesti käytännössä:

Lisätiedot

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

TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 31. maaliskuuta 2011 TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 31. maaliskuuta 2011 Sisällys Sisällys Chomskyn hierarkia kieli säännöllinen kontekstiton kontekstinen rekursiivisesti

Lisätiedot

Rekursiivisten ja lambda-määriteltävien funktioiden yhtenevyys

Rekursiivisten ja lambda-määriteltävien funktioiden yhtenevyys Rekursiivisten ja lambda-määriteltävien funktioiden yhtenevyys Juho Kyyhkynen Pro gradu -tutkielma Helsingin Yliopisto Matemaattis-luonnontieteellinen tiedekunta Matematiikan ja tilastotieteen osasto Marraskuu

Lisätiedot

=p(x) + p(y), joten ehto (N1) on voimassa. Jos lisäksi λ on skalaari, niin

=p(x) + p(y), joten ehto (N1) on voimassa. Jos lisäksi λ on skalaari, niin FUNKTIONAALIANALYYSI, RATKAISUT 1 KEVÄT 211, (AP) 1. Ovatko seuraavat reaaliarvoiset funktiot p : R 3 R normeja? Ovatko ne seminormeja? ( x = (x 1, x 2, x 3 ) R 3 ) a) p(x) := x 2 1 + x 2 2 + x 2 3, b)

Lisätiedot

2. Laskettavuusteoriaa

2. Laskettavuusteoriaa 2. Laskettavuusteoriaa Käymme läpi ratkeamattomuuteen liittyviä ja perustuloksia ja -tekniikoita [HMU luku 9]. Tämän luvun jälkeen opiskelija tuntee joukon keskeisiä ratkeamattomuustuloksia osaa esittää

Lisätiedot

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

jäsennyksestä TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho 29. syyskuuta 2016 TIETOTEKNIIKAN LAITOS Kontekstittomien kielioppien TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 29. syyskuuta 2016 Sisällys Harjoitustehtävätilastoa Tilanne 29.9.2016 klo 8:41 (lähes kaikki kommentoitu) passed

Lisätiedot

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

TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 19. tammikuuta 2012 TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 19. tammikuuta 2012 Sisällys Sisällys Muistathan A B -konstruktion 0 k 1 i 2 s 3 s 4 a 5 0 k 1 o 2 i 3 r 4

Lisätiedot

Matematiikan johdantokurssi, syksy 2017 Harjoitus 8, ratkaisuista

Matematiikan johdantokurssi, syksy 2017 Harjoitus 8, ratkaisuista Matematiikan johdantokurssi, sks 07 Harjoitus 8, ratkaisuista. Olkoot f ja g reaalifunktioita. Mitä voidaan sanoa hdistetstä funktiosta g f, jos a) f tai g on rajoitettu? b) f tai g on jaksollinen? Ratkaisu.

Lisätiedot

Diskreetin matematiikan perusteet Malliratkaisut 2 / vko 38

Diskreetin matematiikan perusteet Malliratkaisut 2 / vko 38 Diskreetin matematiikan perusteet Malliratkaisut 2 / vko 38 Tuntitehtävät 11-12 lasketaan alkuviikon harjoituksissa ja tuntitehtävät 15-16 loppuviikon harjoituksissa. Kotitehtävät 13-14 tarkastetaan loppuviikon

Lisätiedot

MATEMATIIKAN JA TILASTOTIETEEN LAITOS Analyysi I Harjoitus alkavalle viikolle Ratkaisuehdotuksia (7 sivua) (S.M)

MATEMATIIKAN JA TILASTOTIETEEN LAITOS Analyysi I Harjoitus alkavalle viikolle Ratkaisuehdotuksia (7 sivua) (S.M) MATEMATIIKAN JA TILASTOTIETEEN LAITOS Analyysi I Harjoitus 7. 2. 2009 alkavalle viikolle Ratkaisuehdotuksia (7 sivua) (S.M) Luennoilla on nyt menossa vaihe, missä Hurri-Syrjäsen monistetta käyttäen tutustutaan

Lisätiedot

Epädeterministisen Turingin koneen N laskentaa syötteellä x on usein hyödyllistä ajatella laskentapuuna

Epädeterministisen Turingin koneen N laskentaa syötteellä x on usein hyödyllistä ajatella laskentapuuna Epädeterministisen Turingin koneen N laskentaa syötteellä x on usein hyödyllistä ajatella laskentapuuna. q 0 x solmuina laskennan mahdolliset tilanteet juurena alkutilanne lehtinä tilanteet joista ei siirtymää,

Lisätiedot

Tämän vuoksi kannattaa ottaa käytännöksi aina kirjoittaa uuden funktion tyyppi näkyviin, ennen kuin alkaa sen määritemää kirjoittamaan.

Tämän vuoksi kannattaa ottaa käytännöksi aina kirjoittaa uuden funktion tyyppi näkyviin, ennen kuin alkaa sen määritemää kirjoittamaan. 3.1. LISTAT 35 destaan pisteittäisesti: init :: [α] [α] init (x : []) = [] init (x : xs) = x : init xs Varuskirjastoon kuuluu myös funktiot take ja drop, jotka ottavat tai tiputtavat pois, funktiosta riippuen,

Lisätiedot