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 }, {p 1, p 2, p 3 }, { p 2, p 3 }, {p 3 }}, (b) {{ p 0, p 1, p 2 }, {p 0, p 1 }, { p 1, p 2 }, {p 2 }}, (c) {{p 1, p 2, p 3 }, { p 2 }, { p 1, p 2 }, {p 1, p 3 }}. Ratkaisu: (a) 1. { p 2, p 3 } (oletus) 2. {p 3 } (oletus) 3. { p 2 } (resoluutio riveistä 1 ja 2) 4. { p 0, p 2 } (oletus) 5. { p 0 } (resoluutio riveistä 3 ja 4) 6. {p 0, } (oletus) (b) 1. { p 0, p 1, p 2 } (oletus) 2. {p 0, p 1 } (oletus) 3. {p 1, p 2 } (resoluutio riveistä 1 ja 2) 4. { p 1, p 2 } (oletus) 5. { p 2 } (resoluutio riveistä 3 ja 4) 6. {p 2 } (oletus) (c) 1. {p 1, p 2, p 3 } (oletus) 2. {p 1, p 3 } (oletus) 3. {p 1, p 2 } (resoluutio riveistä 1 ja 2) 4. { p 1, p 2 } (oletus) 5. {p 2 } (resoluutio riveistä 3 ja 4) 6. { p 2 } (oletus) 1
2. Osoita resoluution avulla, että (p 0 p 1 ) p 2 seuraa loogisesti oletuksesta p 1 ( p 0 p 2 ). Ratkaisu: Jotta (p 0 p 1 ) p 2 olisi lauseen p 1 ( p 0 p 2 ) looginen seuraus, täytyy sen negaatio ((p 0 p 1 ) p 2 ) olla ristiriidassa oletuksen kanssa. Muutetaan propositiolauseet ensin klasuulijoukoiksi: Propostiolauseiden konjuktiiviset normaalimuodot ovat ja p 1 ( p 0 p 2 ) p 1 p 0 p 2 ((p 0 p 1 ) p 2 ) ( (p 0 p 1 ) p 2 ) p 0 p 1 p 2 ), jolloin klasuulijoukoksi saadaan: {{ p 1, p 0, p 2 }, {p 0 }, {p 1 }, {p 2 }}. Päätellään seuraavaksi klasuulijoukko ristiriitaiseksi resoluution avulla: 1. { p 1, p 0, p 2 } (oletus) 2. {p 0 } (oletus) 3. { p 1, p 2 } (resoluutio riveistä 1 ja 2) 4. {p 1 } (oletus) 5. { p 2 } (resoluutio riveistä 3 ja 4) 6. {p 2 } (oletus) 3. Osoita resoluution avulla, että (p 0 p 2 ) p 1 seuraa loogisesti oletuksesta (p 0 p 2 ) p 1. Ratkaisu: Todistetaan asia näyttämällä resoluutiolla, että ((p 0 p 2 ) p 1 ) ja (p 0 p 2 ) p 1 ovat ristiriidassa keskenään. Muutetaan lauseet ensin klausuulimuotoon: 2
((p 0 p 2 ) p 1 ) ( (p 0 p 2 ) p 1 ) p 0 p 2 p 1 ja (p 0 p 2 ) p 1 (p 0 p 2 ) p 1 ((p 0 p 2 ) ( p 0 p 2 )) p 1 (p 0 p 2 p 1 ) ( p 0 p 2 p 1 ) Täten saadaan klausuulijoukko: {{p 0 }, { p 2 }, { p 1 }, {p 0, p 2, p 1, p 2 }, { p 0, p 2, p 1 }} 1 Päätellään seuraavaksi klasuulijoukko ristiriitaiseksi resoluution avulla: 1. {p 2, p 1, p 0 } (oletus) 2. {p 0 } (oletus) 3. {p 2, p 1 } (resoluutio riveistä 1 ja 2) 4. { p 1 } (oletus) 5. {p 2 } (resoluutio riveistä 3 ja 4) 6. { p 2 } (oletus) 4. Osoita resoluution avulla, että p 0 seuraa loogisesti oletuksista p 0 p 1, p 1 p 2 ja p 0 p 1 p 2. Ratkaisu: Propositiolause p 0 seuraa loogisesti oletuksista, jos p 0 on ristiriidassa niiden kanssa. Muutetaan ensin myös p 0 p 1 ja p 1 p 2 konjuktiiviseen normaalimuotoon, jotta saadaan muodostettua klasuulijoukko. p 0 p 1 (p 0 p 1 ) (p 1 p 0 ) ( p 0 p 1 ) ( p 1 p 0 ) 1 Riippuen siitä, kuinka propositiolauseet on muutettu klausuulimuotoon saattaa klausuulijoukkoon kuulua lisäksi klausuulit {p 2, p 1, p 2 } ja {p 0, p 1, p 0 } nämä klausuulit ovat kuitenkin valideja, joten ne eivät vaikuta päättelyyn. 3
ja p 1 p 2 (p 1 p 2 ) (p 2 p 1 ) ( p 1 p 2 ) ( p 2 p 1 ) Konjuktiivisista normaalimuodoista saatu klasuulijoukko on: {{ p 0 }, { p 0, p 1 }, { p 1, p 0 }, { p 1, p 2 }, { p 2, p 1 }, {p 0, p 1, p 2 }} Päätellään seuraavaksi klasuulijoukko ristiriitaiseksi resoluution avulla: 1. {p 0, p 1, p 2 } (oletus) 2. { p 2, p 1 } (oletus) 3. {p 0, p 1 } (resoluutio riveistä 1 ja 2) 4. { p 1, p 0 } (oletus) 5. {p 0 } (resoluutio riveistä 3 ja 4) 6. { p 0 } (oletus) 5. Olkoot A, B ja C propositiolauseita. Selvitä resoluution avulla onko A B lauseiden A (B C) ja C looginen seuraus. Perustele resoluution käyttö, eli miksi ratkaisusi toimii. Ratkaisu: Näytetään ensin resoluutiolla, että p 0 p 1 on lauseiden p 0 (p 1 p 2 ) ja p 2 looginen seuraus. Muutetaan oletus p 0 (p 1 p 2 ) ja väitteen p 0 p 1 negaatio konnektiiviseen normaalimuotoon. (p 0 p 1 ) ( p 0 p 1 ) p 0 p 1 p 0 (p 1 p 2 ) p 0 (p 1 p 2 ) p 0 p 1 p 2 Klausuulijoukoksi saadaan: {{p 0 }, {p 1 }, { p 0, p 1, p 2 }, { p 2 }} Todistetaan joukko ristiriitaiseksi resoluutiolla 4
1. { p 0, p 1, p 2 } (oletus) 2. { p 2 } (oletus) 3. { p 0, p 1 } (resoluutio riveistä 1 ja 2) 4. {p 1 } (oletus) 5. { p 0 } (resoluutio riveistä 3 ja 4) 6. {p 0 } (oletus) Nyt siis p 0 p 1 on lausejoukon A looginen seuraus, joten lause ((p 0 (p 1 p 2 )) p 2 ) (p 0 p 1 ) on tautologia. Nyt intuitiivisesti on melko selvää, että jos jokin lause A on tautologia, niin se pysyy tautologiana vaikka sen propositiosymbolit korvattaisiin toisilla propositiolauseilla. Esimerkiksi lause p 0 p 0 on tautologia ja selvästi myös A A on tautologia riippumatta siitä mikä lause A on. Osoitetaan asia vielä tarkasti. Näytetään tätä varten ensin, että propositiologiikassa pätee seuraava lause: Olkoot D 1,..., D n propositiolauseita jollain n N, v totuusjakauma ja v sellainen totuusjakauma että v v(d i ) (p i ) = v(p i ), kun i {1,..., n},, muulloin Tällöin kaikilla propositiolauseilla A pätee v (A) = v(a[d 1 /p 1,..., D n /p n ]). Merkintä A[D i /p i ] tarkoittaa lausetta, joka saadaan kun kaikki propositiosymbolin p i esiintymät lauseessa A korvataan lauseella D i. Käytetään lauseelle A[D 1 /p 1,..., D n /p n ] lyhennysmerkintää A[ D/ p]. Todistus: Osoitetaan väite induktiolla lauseen A rakenteen suhteen. Alkuaskel: Jos A = p i ja i {1,..., n}, niin A[ D/ p] = D i ja jakauman v määritelmän nojalla v (A) = v (p i ) = v(d i ) = v(a[ D/ p]). Jos A = p j ja j > n, niin A[ D/ p] = p j ja saadaan v (A) = v (p j ) = v(p j ) = v(a). Siis lause pätee propositiosymboleille. 5
Induktioaskel: A = B. Induktio-oletus: v (B) = v(b[ D/ p]) Koska A = B, niin A( D/ p) = B( D/ p). Tällöin induktio-oletuksen nojalla v (A) = v ( B) = 1 v (B) = 1 v(b( D/ p)) = v( B( D/ p)) = v(a( D/ p)). Siis lause pätee negaation tapauksessa. A = B C. Induktio-oletus: v (B) = v(b[ D/ p]) ja v (C) = v(c[ D/ p]). Nyt kun A = B C, niin A[ D/ p] = B[ D/ p] C[ D/ p]. Induktio-olutuksen nojalla v (A) = v (B C) = v (B) v (C) = v(b[ D/ p]) v(c[ D/ p]) = v(b[ D/ p] C[ D/ p]) = v(a[ D/ p]). Väite pätee siis myös disjunktiolle. Koska konnektiivijoukko {, } on täydellinen, on haluttu lause todistettu kaikille propositiolauseille A. Edellä todistetun lauseen suora seuraus on, että jos propositiolause A on tautologia ja D 1,.., D n mielivaltaisia propositiolauseita, niin myös lause A( D/ p) on tautologia. Todistus: Olkoon v mielivaltainen totuusjakauma ja määritellään sitten totuusjakauma v kuten äsken todistetussa lauseessa. A:n tautologisuuden nojalla v (A) = v(a( D/ p)) = 1. Koska v oli mielivaltainen, niin myös A( D/ p) on tautologia. Nyt voimme yhdistää äskeisen tuloksen ja tiedon, että lause ((p 0 (p 1 p 2 )) p 2 ) (p 0 p 1 )) on tautologia ja saamme, että myös lause ((A (B C)) C) (A B) on tautologia riippumatta siitä minkälaisia lauseet A, B ja C ovat. 6. Propositiologiikan resoluutio pysähtyy aina eli jossain vaiheessa ei saada pääteltyä uusia klausuuleja. Laske yläraja resoluution pituudelle jos oletukset koostuvat m:stä klausuulista joissa jokaisessa on enintään n litteraalia. Ratkaisu: Olkoon n, m N 1, C := {A 1,..., A m } joukko klausuuleja, C = m ja A i n jokaisella i {1,..., n}. Osoitetaan, että klausuulijoukosta C voidaan korkeintaan päätellä 2 mn klausuulia ja täten suurin päättelly, jossa ei toistu klausuuleja on pituudelta korkeintaan 2 mn. Todistus: 6
Koska resoluutiopäättellyssä ei synny uusia literaaleja, niin kaikki kokoelmasta C pääteltävät klausuulit koostuvat niistä literaaleista, jotka esiintyvät kokoelman C klausuuleissa. Seuraava pätee yhdisteen alkioiden lukumäärälle eli tässä tapauksessa kaikkien literaalien lukumäärälle A 1 A 2 A m A 1 + A 2 + + A m mn. Jokaiselle kokoelmasta C pääteltävälle klausuulille C pätee, että C A 1 A m. Koska mielivaltaista osajoukkoa C konstruoitaessa voidaan jokaisesta literaalista valita, että se joko kuuluu tai ei kuuluu klausuuliin C, joten tuloperiaatteen nojalla tällaisia joukkoja C on täsmälleen 2 A 1 A m 2 mn. Siten klausuulikokoelmasta C pääteltäviä klausuuleja on korkeintaan 2 mn kappeletta. 7. Muodosta luvun 6.1 tekniikalla C A, kun A = p 0 (p 0 p 1 ). Ratkaisu: Lauseen A alikaavat ovat p 0 (p 0 p 1 ), p 0, (p 0 p 1 ), p 0 p 1 ja p 1. Merkitään B = p 0 p 1 Uudet A:n alilauseita vastaavat propositiosymbolit ovat q p0, q p1, q B, q p B, q A. Nämä vastaavat siis oikeasti tavallisia propositiosymboleja, jotka eivät esiinny lauseessa A (esim. q p0 = p 2 ja q p1 = p 3 jne.), mutta selkeyden vuoksi niistä käytetään tällaista merkintää. Käydään läpi luvussa 6.1 esitelty menetelmä kohta kohdalta sen mukaan mitä alikaavoja lauseessa A esiintyy: Kohta 1: Kohta 4: Kohta 2: {q p0, p 0 }, { q p0, p 0 }, {q p1, p 1 }, { q p1, p 1 } C A. { q B, q p0 }, { q B, q p1 }, {q B, q p0, q p1 } C A {q B, q B }, { q B, q B } C A 7
Kohta 5: Kohta 7: { q A, q p0, q B }, {q A, q p0 }, {q A, q B } C A {q A } C A Joten C A = {{q p0, p 0 }, { q p0, p 0 }, {q p1, p 1 }, { q p1, p 1 }, { q B, q p0 }, { q B, q p1 }, {q B, q p0, q p1 }, {q B, q B }, { q B, q B }, { q A, q p0, q B }, {q A, q p0 }, {q A, q B }, {q A }} 8