Kesälukio 2000 PK2 Tauluharjoituksia I Mallivastaukset 2000-08-03T10:30/12:00 Huomaa, että joihinkin kysymyksiin on useampia oikeita vastauksia, joten nämä ovat todellakin vain mallivastaukset. 1 Logiikkaa 1. Ovatko seuraavat suomenkielen lauseet logiikan lauseita? Jos ovat, niin ovatko ne suljettuja vai avoimia? Ovatko ne atomilauseita vai yhdistettyjä lauseita? Määritä niiden totuusarvo niissä tapauksissa, joissa se on mahdollista. Perustele vastauksesi. a. Pitäisikö minun mennä nukkumaan? Ei ole logiikan lause, sillä se ei väitä mitään. b. Elvis elää. On logiikan suljettu atomilause, jonka totuusarvo on epätosi, sillä lauseella on totuusarvo, joka on joko tosi tai epätosi, lausetta ei voida jakaa osalauseisiin ja tiettävästi Elvis on kuollut. c. Hän on tämän kurssin opettaja. On logiikan avoin atomilause, sillä lauseessa on muuttuja hän, joka korvaamalla jollakin vakiolla saadaan aikaan lause, joka on joko tosi tai epätosi. d. Jyväskylässä sataa aina ja paistaa harvoin. On logiikan suljettu yhdistetty lause, sillä lauseella on totuusarvo, joka on joko tosi tai epätosi, lause voidaan jakaa osalauseisiin Jyväskylässä sataa aina ja Jyväskylässä paistaa harvoin. Lause on epätosi, sillä tänä aamuna ei satanut, ja tämä konjunktiolause on täten epätosi. e. On olemassa hyvä ihminen. On logiikan suljettu yhdistetty lause, sillä lauseella on totuusarvo, joka on tosi tai epätosi, lausetta ei voida jakaa osalauseisiin mutta siinä on eksistentiaalikvanttori. Kysymys totuusarvosta on mielipidekysymys. f. Kaikkien maiden proletaarit, liittykää yhteen! Ei ole logiikan lause, sillä se ei väitä mitään. g. Kaikkien maiden proletaarit ovat liittyneet yhteen. Lause on logiikan suljettu yhdistetty lause, jonka totuusarvo on epätosi, sillä lauseella on totuusarvo, joka on joko tosi tai epätosi, lausetta ei voida jakaa osalauseisiin mutta se sisältää universaalikvanttorin, ja tiettävästi kaikkien maiden proletaarit eivät ole liittyneet yhteen. 2. Kirjoita seuraavat suomenkieliset lauseet logiikan kaavoiksi. Käytä kvanttoreita ja konnektiiveja tarpeen mukaan ja kirjoita atomilauseet muotoon äiti(maija, antti). a. Auto on kostea, koska satoi. satoi kostea(auto) b. Koska puu on pitkä ja pensas matala, on taivas sininen. (pitkä(puu) matala(pensas)) sininen(taivas) 1
c. 1 on suurempi kuin 2. Jos 1 on suurempi kuin 2, niin 1 on suurempi kuin 3. Siis 1 on suurempi kuin 3. (1 > 2 (1 > 2 1 > 3)) 1 > 3 d. Don Knuth on matemaatikko ja Don Knuth on tietotekniikan guru, joten Don Knuth on matematiikan guru. (matemaatikko(donknuth) tietotekniikanguru(donknuth)) matematiikanguru(donknuth) e. Jos Jyväskylä on miljoonakaupunki, niin kuu on juustoa. miljoonakaupunki(jyväskylä) juustoa(kuu) 3. Kirjoita kaava A (B C) käyttäen pelkästään a) Sheerin viivaa b) Peircen nuolta. a) Totuustaulusta huomataan, että A B (A B). Kirjoitetaan nyt konnektiivit,, ja Sheerin viivaa käyttäen: A A A (A A) A A A B (A B) (A B) (A B) (A B) A B A B ( A B) A B (A A) (B B) A B A B (A A) B ((A A) (A A)) (B B) Sitten käytetään näitä hyväksi itse tehtävässä: A (B C) A (((B B) (B B)) (C C)) (A (((B B) (B B)) (C C))) (A (((B B) (B B)) (C C))) b) Vastaavasti huomataan, että A B (A B). Kirjoitetaan tällä kertaa edellä mainitut konnektiivit Peircen nuolta käyttäen: A A A (A A) A A A B A B ( A B) A B (A A) (B B) A B (A B) (A B) (A B) (A B) A B A B ((A A) B) ((A A) B) 2
Ja sitten itse tehtävä: A (B C) A (((B B) C) ((B B) C)) (A A) ((((B B) C) ((B B) C)) (((B B) C) ((B B) C))) 4. Kirjoita tehtävän 2 lauseet päättelyn muotoon (ts. muuttuu :ksi). Tutki, mitkä niistä ovat päteviä päättelyitä (ts. missä niistä johtopäätös seuraa loogisesti oletuksista). Perustele. a. Auto on kostea, koska satoi. satoi kostea(auto). Tämä ei ole pätevä päättely, sillä jos auto oli sateen alla katoksen alla, se ei kastunut. b. Koska puu on pitkä ja pensas matala, on taivas sininen. {pitkä(puu), matala(pensas)} sininen(taivas) Tämä on pätevä päättely, koska taivas on sininen, joten alkuperäinen kaava on aina tosi. c. 1 on suurempi kuin 2. Jos 1 on suurempi kuin 2, niin 1 on suurempi kuin 3. Siis 1 on suurempi kuin 3. {1 > 2, 1 > 2 1 > 3} 1 > 3. Tämä on pätevä päättely, sillä alkuperäisen implikaatiokaavan vasen puoli on epätosi, joten itse implikaatio on tosi. Huomaa myös, että päättelyllä on implikaation eliminointi -päättelysäännön muoto. d. Don Knuth on matemaatikko ja Don Knuth on tietotekniikan guru, joten Don Knuth on matematiikan guru. {matemaatikko(donknuth), tietotekniikanguru(donknuth)} matematiikanguru(donknuth). Tämä ei ole pätevä päättely, sillä Don Knuth ei ole matematiikan guru. (Asian voi myös huomata siitä, ettei päättelyllä ole minkään päättelysäännön muotoa, mutta tämä on epävarma lähestymistapa.) e. Jos Jyväskylä on miljoonakaupunki, niin kuu on juustoa. miljoonakaupunki(jyväskylä) juustoa(kuu). Tämä on pätevä päättely (ainakin toistaiseksi), koska Jyväskylä ei ole miljoonakaupunki. 5. Osoita totuustaulujen avulla, että de Morganin lait todella pätevät. A B A B (A B) A B A B (A B) A B t t t e e e e t t e e t e t t t e t e t t e t t e e e t t t t t A B A B (A B) A B A B (A B) A B t t t e e e e t t e t e e t e t e t t e t e e t e e e t t t t t Siis de Morganin lait ovat tautologioita. 6. Osoita, että negaation tuonti on pätevä päättelysääntö. Vihje: tarkastele kaavaa (A e) A. A e A on pätevä päättelysääntö täsmälleen silloin kun kaava (A e) A on tosi. Se on tautologia: (A e) A ( A e) A A A A A t. Siis negaation tuonti on pätevä päättelysääntö. 7. Sievennä kaava ((P Q) (P Q)) ((Q P ) (P Q)). ((P Q) (P Q)) (P Q) ( P Q) ((P Q) P ) ((P Q) Q) (P P ) (P Q) (P Q) (Q Q) (Q P ) (P Q) 3
Koska kaavat ((P Q) (P Q)) ja (Q P ) (P Q) ovat loogisesti ekvivalentit, on kysymyksen implikaatiokaava tautologia. Siis kysymyksen kaava sievenee loogiseksi vakioksi t. 2 λ-laskentaa 8. Ovatko seuraavat kaavat λ-lausekkeita? Perustele. a. xxx On: x on λ-lauseke, ja kahden λ-lausekkeen asettaminen peräkkäin tuottaa λ-lausekkeen, joten xx ja sitten xxx ovat λ-lausekkeita. b. x y Ei, sillä kaava ei ole mitään kolmesta sallitusta muodosta (kaavasta puuttuu λ). c. ((λx y)(λx y)) z On: ensimmäisen muodon mukaan y on λ-lauseke, joten kolmannen muodon mukaan λx y on λ-lauseke. Tarkasteltava kaava on nyt toista λ-lausekemuotoa. d. valitse true (2/1) (2/0) On, sillä nimi valitse tarkoittaa erästä λ-lauseketta ja sen perässä olevat alikaavat ovat eri muotoisia λ-lausekkeita, ja nämä laitettuna peräkkäin ovat toista λ-lausekemuotoa. 9. (Tehtävä poistettu.) 10. Sievennä seuraavat λ-lausekkeet. Merkitse näkyviin kaikki välivaiheet. [Merkitse lopuksi näkyviin kunkin kaavan tyyppi.] a. ((λx x)(λx λy x)) 1 0 b. ((λx x)(λx λy y)) 1 0 c. (λx 0)(1/0) a. ((λx x)(λx λy x)) 1 0 (λx λy x)) 1 0 (λy 1) 0 1 b. ((λx x)(λx λy y)) 1 0 (λx λy y) 1 0 (λy y) 0 0 c. (λx 0)(1/0) 0 tai (λx 0)(1/0) (λx 0) 0 11. Määritellään Sievennä seuraavat lausekkeet. a. null? null b. null? (cons 1 0) c. car (cons 1 0) d. cdr (cons 1 0) cons x y c = c x y car d = d (valitse true) cdr d = d (valitse false) null x = true null? d = d λx λy false a. null? null (λd d λx λy false)(λx true) (λx true)(λx λy false) true b. null? (cons 1 0) (λd d λx λy false)((λx λy λc c x y) 1 0) (λd d λx λy false)((λy λc c 1 y) 0) (λd d λx λy false)(λc c 1 0) (λc c 1 0)(λx λy false) (λx λy false) 1 0) (λy false) 0) false 4
c. car (cons 1 0) (λd d (valitse true))((λx λy λc c x y) 1 0) (λd d (valitse true))(λy λc c 1 y) 0) (λd d (valitse true))(λc c 1 0) (λc c 1 0)(valitse true) (valitse true) 1 0 ((λx x)(λx λy x)) 1 0 (λx λy x) 1 0 (λy 1) 0 1 d. cdr (cons 1 0) (λd d (valitse false))((λx λy λc c x y) 1 0) (λd d (valitse false))(λy λc c 1 y) 0) (λd d (valitse false))(λc c 1 0) (λc c 1 0)(valitse false) (valitse false) 1 0 ((λx x)(λx λy y)) 1 0 (λx λy y) 1 0 (λy y) 0 0 12. (Tehtävä poistettu.) 13. Kirjoita λ-abstraktio, joka -sievenee toisen asteen polynomiksi, kun sille annetaan parametreina polynomin kertoimet a, b ja c. (Vihje: Polynomi on muuttujansa funktio.) λa λb λc λx a x x + b x + c 14. Laske (sieventämällä sopivaa λ-lauseketta) polynomin x 2 + 3x + 5 arvo kohdassa x = 1. Käytä edellisessä tehtävässä kirjoittamaasi λ-abstraktiota. ((λa λb λc λx a x x + b x + c) 1 3 5) ( 1) ((λb λc λx 1 x x + b x + c) 3 5) ( 1) ((λc λx 1 x x + 3 x + c) 5) ( 1) (λx 1 x x + 3 x + 5) ( 1) 1 ( 1) ( 1) + 3 ( 1) + 5 1 + ( 3) + 5 3 15. (Lisätehtävä halukkaille. Vaikea!) Kirjoita λ-abstraktio, joka -sievenee argumentilla f sellaiseksi lausekkeeksi l, että f l sievenee lausekkeeksi l. Pidä huoli, että λ-abstraktiosi toimii kaikilla λ-abstraktiotyyppisillä argumenteilla f. λf (λx f(x x))(λx f(x x)) 5