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

Samankaltaiset tiedostot
T Syksy 2004 Logiikka tietotekniikassa: perusteet Laskuharjoitus 2 (opetusmoniste, lauselogiikka )

Toinen muotoilu. {A 1,A 2,...,A n,b } 0, Edellinen sääntö toisin: Lause 2.5.{A 1,A 2,...,A n } B täsmälleen silloin kun 1 / 13


T Logiikka tietotekniikassa: perusteet Kevät 2008 Laskuharjoitus 5 (lauselogiikka ) A ( B C) A B C.

Luonnollisen päättelyn luotettavuus

T Kevät 2009 Logiikka tietotekniikassa: perusteet Laskuharjoitus 2 (lauselogiikka )

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

Kesälukio 2000 PK2 Tauluharjoituksia I Mallivastaukset

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.

Yhtälönratkaisusta. Johanna Rämö, Helsingin yliopisto. 22. syyskuuta 2014

4 Matemaattinen induktio

-Matematiikka on aksiomaattinen järjestelmä. -uusi tieto voidaan perustella edellisten tietojen avulla, tätä kutsutaan todistamiseksi

ALKEIS-kielen semantiikan aksiomaattinen määrittely

Jokaisen parittoman kokonaisluvun toinen potenssi on pariton.

Tenttiin valmentavia harjoituksia

Ensimmäinen induktioperiaate

LOGIIKKA johdantoa

Ensimmäinen induktioperiaate

1. Osoita, että joukon X osajoukoille A ja B on voimassa toinen ns. de Morganin laki (A B) = A B.

Matematiikassa väitelauseet ovat usein muotoa: jos P on totta, niin Q on totta.

Todistusmenetelmiä Miksi pitää todistaa?

Lauselogiikka Tautologia

Loogiset konnektiivit

Sekalaiset tehtävät, 11. syyskuuta 2005, sivu 1 / 13. Tehtäviä

Diskreetin matematiikan perusteet Laskuharjoitus 1 / vko 8

11. Javan toistorakenteet 11.1

58131 Tietorakenteet ja algoritmit (kevät 2014) Uusinta- ja erilliskoe, , vastauksia

Koottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet suoritetaan peräkkäin.

Induktiota käyttäen voidaan todistaa luonnollisia lukuja koskevia väitteitä, jotka ovat muotoa. väite P(n) on totta kaikille n = 0,1,2,...

Java-kielen perusteita

Miten osoitetaan joukot samoiksi?

T kevät 2007 Laskennallisen logiikan jatkokurssi Laskuharjoitus 1 Ratkaisut

Matematiikan johdantokurssi, syksy 2016 Harjoitus 11, ratkaisuista

T Kevät 2005 Logiikka tietotekniikassa: erityiskysymyksiä I Kertausta Ratkaisut

Taulumenetelmä modaalilogiikalle K

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

Karteesinen tulo. Olkoot A = {1, 2, 3, 5} ja B = {a, b, c}. Näiden karteesista tuloa A B voidaan havainnollistaa kuvalla 1 / 21

811120P Diskreetit rakenteet

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

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

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

Ratkaisu: Käytetään induktiota propositiolauseen A rakenteen suhteen. Alkuaskel. A = p i jollain i N. Koska v(p i ) = 1 kaikilla i N, saadaan

1 Lukujen jaollisuudesta

a ord 13 (a)

Ratkaisu: (b) A = x 0 (R(x 0 ) x 1 ( Q(x 1 ) (S(x 0, x 1 ) S(x 1, x 1 )))).

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

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

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

Sisällys. 11. Javan toistorakenteet. Laskurimuuttujat. Yleistä

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

811120P Diskreetit rakenteet

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

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

811120P Diskreetit rakenteet

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

Yhtäpitävyys. Aikaisemmin osoitettiin, että n on parillinen (oletus) n 2 on parillinen (väite).

Matematiikan peruskurssi 2

Johdatus matemaattiseen päättelyyn

Lisää kvanttoreista ja päättelyä sekä predikaattilogiikan totuustaulukot 1. Negaation siirto kvanttorin ohi

LUKUTEORIA johdantoa

Python-ohjelmointi Harjoitus 2

811312A Tietorakenteet ja algoritmit , Harjoitus 2 ratkaisu

MAT Laaja Matematiikka 1U. Hyviä tenttikysymyksiä T3 Matemaattinen induktio

Matematiikan tukikurssi

Modus Ponens. JosAjaA B ovat tosia, niin välttämättä myösb on tosi 1 / 15. Modus Ponens. Ketjusääntö. Päättelyketju.

Alkuarvot ja tyyppimuunnokset (1/5) Alkuarvot ja tyyppimuunnokset (2/5) Alkuarvot ja tyyppimuunnokset (3/5)

Kehittää ohjelmointitehtävien ratkaisemisessa tarvittavia metakognitioita!

Matematiikan tukikurssi, kurssikerta 2

Kaikki kurssin laskuharjoitukset pidetään Exactumin salissa C123. Malliratkaisut tulevat nettiin kurssisivulle.

Tee konseptiin pisteytysruudukko! Muista kirjata nimesi ja ryhmäsi. Lue ohjeet huolellisesti!

Sisällys. 16. Ohjelmoinnin tekniikkaa. Aritmetiikkaa toisin merkiten. Aritmetiikkaa toisin merkiten

811120P Diskreetit rakenteet

a k+1 = 2a k + 1 = 2(2 k 1) + 1 = 2 k+1 1. xxxxxx xxxxxx xxxxxx xxxxxx

16. Ohjelmoinnin tekniikkaa 16.1

MS-A0402 Diskreetin matematiikan perusteet

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

Ratkaisu: Yksi tapa nähdä, että kaavat A (B C) ja (A B) (A C) ovat loogisesti ekvivalentit, on tehdä totuustaulu lauseelle

Nimitys Symboli Merkitys Negaatio ei Konjuktio ja Disjunktio tai Implikaatio jos..., niin... Ekvivalenssi... jos ja vain jos...

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

Ohjausrakenteet. Valinta:

Todistamisessa on tärkeää erottaa tapaukset, kun sääntö pätee joillakin tai kun sääntö pätee kaikilla. Esim. On olemassa reaaliluku x, jolle x = 5.

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

Propositiot: Propositiot ovat väitelauseita. Totuusfunktiot antavat niille totuusarvon T tai E.

16. Ohjelmoinnin tekniikkaa 16.1

5/20: Algoritmirakenteita III

Matematiikan tukikurssi, kurssikerta 5

Tehtäväsarja I Seuraavissa tehtävissä harjoitellaan erilaisia todistustekniikoita. Luentokalvoista 11, sekä voi olla apua.

Sisällys. 17. Ohjelmoinnin tekniikkaa. Aritmetiikkaa toisin merkiten. for-lause lyhemmin

Algebra I Matematiikan ja tilastotieteen laitos Ratkaisuehdotuksia harjoituksiin 3 (9 sivua) OT

Vasen johto S AB ab ab esittää jäsennyspuun kasvattamista vasemmalta alkaen:

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

Matematiikan tukikurssi

1. Logiikan ja joukko-opin alkeet

Miten perustella, että joukossa A = {a, b, c} on yhtä monta alkiota kuin joukossa B = {d, e, f }?

MATEMATIIKAN KOE, PITKÄ OPPIMÄÄRÄ HYVÄN VASTAUKSEN PIIRTEITÄ

Luonnollisten lukujen ja kokonaislukujen määritteleminen

3. Predikaattilogiikka

Vastaus 1. Lasketaan joukkojen alkiot, ja todetaan, että niitä on 3 molemmissa.

w + x + y + z =4, wx + wy + wz + xy + xz + yz =2, wxy + wxz + wyz + xyz = 4, wxyz = 1.

Transkriptio:

T-79.144 Syksy 2004 Logiikka tietotekniikassa: perusteet Laskuharjoitus 12 (opetusmoniste, kappaleet 9.1 9.5) 30.11. 3.12.2004 1. Osoita lauselogiikan avulla oheisten ehtolausekkeiden ekvivalenssi. (a)!(a == b a < b) (b) a!= b &&!(b > a) Opetusmoniste määritteli Boolen lauseet tiettyjen perustapausten avulla, muiden ollessa lyhennysmerkintöjä. Näin ollen: ja a == b de f!(a > b) &&!(b > a) a < b de f b > a a!= b de f!(a == b) Määriteltäköön atomilauseet A = a > b ja B = b > a. Näin a-kohdan lause saa muodon ja b-kohdan vastaavasti: (( A B) B) ( A B) B Havaitaan, että kun ensimäiseen sovelletaan kerran De Morganin teoreemaa saadaan jälkimmäinen. Näin ollen ne luonnollisesti ovat ekvivalentit. 2. Osoita osittainen oikeellisuus seuraavissa tapauksissa: Esitetyt ohjelmat koostuvat peräkkäisistä sijoituslausekkeista. Näin ollen ne voidaan ratkaista käyttämällä hyväksi opetusmonisteessa annettuja päättelysääntöjä: Sijoituslauseke: Kompositio: [B{x/E}] x =E [B] [B 0 ] C 1 [B 1 ] [B 1 ] C 2 [B 2 ] [B 0 ] C 1 ;C 2 [B 2 ]

(a) = p [x > 0] y = x + 1 [y > 1] Ratk. Lähtemällä jälkiehdosta ja soveltamalla sijoituslausekkeen päättelysääntöä taaksepäin saadaan muoto [x + 1 > 1] y = x + 1 [y > 1] x > 0 on ekvivalentti lauseke x + 1 > 1 kanssa, joten erityisesti siis sen vahvennus, jolloin väittämä pätee. (b) = p [true] y = x ; y = x + x + y [y == 3 * x] Ratk. Soveltamalla kahteen kertaan sijoituslausekkeen päättelysääntöä saadaan muoto: [x + x + y == 3 * x] y = x + x + y [y == 3 * x] [x + x + x == 3 * x] y = x [x + x + y == 3 * x] ja edelleen komposition sääntöä soveltamalla: [x + x + x == 3 * x] y = x ; y = x + x + y [y == 3 * x] Lauseke x + x + x == 3 * x on luonnollisesti aina totta kokonaislukujen joukossa, jolloin väittämä pätee. (c) = p [x > 1] a = 1 ; y = x ; y = y - a [y > 0 && x > y] Samoin kuin b-kohdassa sijoituslausekkeen päättelysääntöä tulee soveltaa peräkkäin. Saadaan: [y - a > 0 && x > y - a] y = y - a [y > 0 && x > y] [x - a > 0 && x > x - a] y = x [y - a > 0 && x > y - a] [x - 1 > 0 && x > x - 1] a = 1 [x - a > 0 && x > x - a] Kompositiosäännön suoraviivainen sovellus sivuutetaan. Nyt ensimmäisen ehdon x - 1 > 0 && x > x - 1 jälkimmäinen konjunkti on tutkittavissa kokonaislukustruktuureissa aina tosi. Edelleen ehto x - 1 > 0 on yhtäpitävä ehdon x > 1 kanssa, joka esiintyy väitteessä. 3. Osoita, että = p [true] P [z == min (x, y)], missä P on seuraava ohjelma:

if(x > y) then { z = y } else { z = x } Ratk. Tehtävän ratkaisuun tarvitaan edelläesitettyjen päättelysääntöjen lisäksi seuraava sääntö: Ehtolauseke: [B 1 &&B] C 1 [B 2 ] [B 1 &&!B] C 2 [B 2 ] [B 1 ] if(b) then {C 1 } else {C 2 } [B 2 ] Pyritään osoittamaan z == min(x, y). Tämä on siis ylläolevan säännön ehto B 2. Tutkitaan komentoja C 1 ja C 2 erikseen. C 2 :sta saadaan. [x == min(x, y)] z = x [z == min(x, y)] Ehto x == min(x, y) on yhtäpitävää lausekkeen x <= y tai lausekkeen!(x > y) kanssa. Luonnollisesti lauseke voidaan kirjoittaa myös muotoon true &&!(x > y). Komennosta C 1 saadaan vastaavasti: [y == min(x, y)] z = y [z == min(x, y)] Ja edelleen samalla päättelyllä esiehdoksi true && (x > y). Nyt voidaan soveltaa ehtolausekkeen päättelysääntöä (viivan yläpuolella olevat lausekkeet on johdettu) ja saadaan: [true] if(x > y) then { z = y } else { z = x } [z == min(x, y)] 4. Osoita ohjelmasta Sum seuraavat ominaisuudet: (a) = p [true] Sum [z == x + y] (b) = t [0 <= y] Sum [z == x + y] Sum on seuraava ohjelma:

z = x ; v = y ; while(!(v == 0)) { z = z + 1 ; v = v - 1 } Tehtävän a-kohdassa pitää todistaa muotoa [B 1 ] while(b) {C} [B 2 ] oleva osittainen oikeellisuus. Tähän on annettu seuraava menettely: A1. Valitaan I siten, että =Z (I &&!B) ->B 2. A2. Haetaan heikoin esiehto I siten, että = p [I ] C [I]. A3. Osoitetaan =Z I &&B->I, minkä nojalla = p [I &&B] C [I] ja edelleen = p [I] while(b) {C} [I &&!B]. A4. Osoitetaan =Z B 1 ->I. Menettelyssä I on invariantti, jonka pitäisi olla aina voimassa, silmukan lauseiden suorituksen jälkeen. Nyt silmukkaa tutkimalla havaitaan, että muuttujan z arvo kasvaa ja v pienenee, erityisesti siis niiden summa pysyy vakiona. Kun niille lisäksi annetaan alkuarvot x ja y on summa näiden vakioiden summan suuruinen. Olkoon siis I lauseke z + v == x + y. Nyt havaitaan, että menetelmän kohta A1 pätee, koska!b on lauseke v ==0, josta luonnollisesti seuraa, että z == x + y. Lähdetään siis hakemaan silmukan komentojen heikoimpia esiehtoja. Saadaan: [z + v - 1 == x + y] v = v - 1 [z + v == x + y] [z + 1 + v - 1 == x + y] z = z + 1 [z + v - 1 == x + y] Saadussa esiehdossa + 1 ja - 1 kumoutuvat, jolloin esiehto on sama kuin invariantti I. Menetelmän kohdassa A3 tulee osoittaa, että I &&B->I, so. lause: z + v == x + y &&!(v == 0) z + v == x + y Tämä luonnollisesti pätee. Näin ollen pätee myös: [z + v == x + y] while(!(v == 0)) { z = z + 1 ; v = v - 1 } [z + v == x + y && v == 0]

Menetelmän kohta A4 redusoituu lauseen I ->I todistamiseen. Todistuksen loppuunsaattamiseksi pitää vielä tutkia alun sijoituslauseet. Saadaan: [z + y == x + y] v = y [z + v == x + y] [x + y == x + y] z = x [z + y == x + y] Ensimmäinen ehto x + y == x + y on luonnollisesti aina totta. (b) = t [0 <= y] Sum [z == x + y] Tehtävän b-kohdassa pyydetään todistamaan, että ohjelma myös päättyy ja että tällöin tarvitaan vahvempi esiehto. Täydellisen oikeellisuuden todistamisessa tarvitaan seuraavaa vahvempaa päättelysääntöä: [B 1 &&B 2 && (E == n)] C [B 1 && (E < n)] [B 1 ] while(b 2 ) {C} [B 1 &&!B 2 ] Säännössä B 1 sisältää aiemman invariantin lisäksi vaatimuksen siitä, että kokonaislukulauseke E >= 0. Sääntö sanoo, että aina kun toistolausekkeen komentoja C suoritetaan invariantin ja toistolausekkeen ehdon ollessa voimassa niin valitaanpa kokonaislukumuuttujan n arvo miten tahansa, niin aina, kun esiehto on voimassa niin jälkiehto on myös. Jälkiehto puolestaan sanoo, että invariantti säilyy ja kokonaislukulauseke pienenee aidosti (säilyen kuitenkin ei-negatiivisena). Näin ollen komentojen C toistaminen johtaa väistämättä siihen, että toistolausekkeen ehto menee lopulta epätodeksi ja ohjelman suoritus täten päättyy. Esimerkkiohjelmassa lausekkeeksi E voidaan valita v. Tällöin päättely komennoille C saa muodon: [z + v - 1 == x + y && 0 <= v - 1 && v - 1 < n] v = v - 1 [z + v == x + y && 0 <= v && v < n] [z + v == x + y && 0 <= v - 1 && v - 1 < n] z = z + 1 [z + v - 1 == x + y && 0 <= v - 1 && v - 1 < n] Jotta päättelysääntöä voisi käyttää täytyy todistaa, että saatu esiehto on päättelysäännössä tarvittavan esiehdon B 1 &&B 2 && (E == n) looginen seuraus. Kyseinen esiehto saa muodon: z + v == x + y && 0 <= v &&!(v == 0) && v == n Looginen seuraavuus pätee, koska muuttujalle n voidaan valita vain positiivisia arvoja, jotta vasen puoli saadaan todeksi. Näin ollen voidaan päätellä:

[z + v == x + y && 0 <= v] while(!(v == 0)) { z = z + 1 ; v = v - 1 } [z + v == x + y && 0 <= v && v == 0] Nyt 0 <= v on jälkiehdon totuusarvon kannalta luonnollisesti redundantti. Päättelyn loppuunsaattamiseksi pitää vielä tutkia alun sijoituslauseet: [z + y == x + y && 0 <= y] v = y [z + v == x + y && 0 <= v] [x + y == x + y && 0 <= y] z = x [z + y == x + y && 0 <= y] Saatu esiehto redusoituu siis muotoon 0 <= y eli ohjelma päättyy vain jos muuttujan y arvo on ei-negatiivinen, kun ohjelman suoritus aloitetaan.