Entscheidungsproblem Antti-Juhani Kaijanaho 24. kesäkuuta 2013 Entscheidungsproblem eli ratkaisuongelma kysyy, millä mekaanisella menetelmällä voisi selvittää, onko mielivaltainen annettu ensimmäisen kertaluvun kaava loogisesti tosi vai ei. Turing todisti, että ratkaisua ei ole. Tämän lisäpujun sisältö ei kuulu kurssin varsinaiseen asiaan lähinnä siksi, että tässä tarvitaan enemmän esitietoja formaalista logiikasta kuin kurssilla vaaditaan). 1 Ensimmäisen kertaluvun logiikka 1.1 Syntaksi Ensimmäisen kertaluvun logiikka 1 engl. first-order logic) on looginen kieli, jolle voidaan kirjoittaa esimerkiksi seuraava moniselitteinen) kontekstiton kielioppi: 2 F F F F F F F F F F F) P L T ) F L x : F L x : F L x x L x, x L T T L T, T T x c fl T ) Tässä kieliopissa välikemerkit on lihavoitu, koska isoja kirjaimia tarvitaan päätemerkeiksi. Lisäpruju kurssille TIEA241 Automaatit ja kieliopit, kesä 2013 1 Kutsutaan usein myös predikaattilogiikaksi, vaikka predikaattilogiikka on oikeasti laajempi termi ja sisältää mm. toisen kertaluvun logiikan, jossa voidaan kvantifioida joukkojen yli. 2 Tälle logiikalle on runsaasti erilaisia määritelmiä. Tämä on vain yksi niistä. 1
Muuttujat x), vakiosymbolit c), funktiosymbolit f) ja predikaattisymbolit P ) ovat päätemerkkejä, jotka edustavat mielivaltaisia nimiä. Niinä käytetään yleensä yksittäisiä kirjaimia, joihin mahdollisesti liitetään alaindeksejä tai yläpilkkuja ). Tavanomaisesti muuttujat, vakiosymbolit ja funktiosymbolit kirjoitetaan pienillä kirjaimilla, kun taas predikaattisymbolit kirjoitetaan yleensä isoilla kirjaimilla. Muuttujat, vakiosymbolit ja funktiosymbolit erottaa helposti toisistaan sen perusteella, kuinka niitä kulloinkin käytetään vain muuttujia voi käyttää kvanttoreissa, ja vain funktio- ja predikaattisymboleille voi antaa argumenttilistan). Muita päätemerkkejä ovat pilkku, kaarisulkeet, kaksoispiste, loogiset konnektiivit,,,, ), kvanttorit, ) ja loogiset vakiot tarkoittaa totuutta ja epätotuutta). Tyhjät merkit kuten välilyönti ja rivinvaihto eivät ole kieliopin päätemerkkejä, vaan niitä voidaan käyttää tarpeen mukaan tuomaan merkkijonoon luettavuutta. Kielioppi voidaan tulkita F:n osalta luennoilla määritellyksi operaattorikieliopiksi. Operaattoreille voidaan antaa seuraava presedenssijärjestys matalasta korkeaan aaltosulkeissa olevilla on keskenään sama presedenssi): { x:, x: },,, {, },. Kaikki infiksioperaattorit assosioivat vasemmalle ja prefiksioperaattorit oikealle. 1.2 Tulkinta Vakiosymboleilla nimetään tiettyjä maailman otuksia: esim. a voi olla vaikkapa tämän kurssin luennoija tai jos tehdään jokin toinen valinta) Agorarakennus. Funktiosymboleilla nimetään maailman otusten välisiä kuvauksia: esimerkiksi f voi kuvata ihmisen hänen äidikseen tai ihmisparin heidän yhteiseksi esikoisekseen tai Agora-rakennukseksi, jos heillä ei ole yhteisiä lapsia 3 tai jos jompi kumpi sen argumenteista ei ole ihminen 4 ). Predikaattisymbolit ilmaisevat maailman otusten ominaisuuksia ja relaatioita: P voi esimerkiksi ilmaista, onko sille tarjottu otus ihminen, tai ovatko sille tarjotut kaksi otusta oikeasti sama otus. Huomaa, että klassisessa) ensimmäisen kertaluvun logiikassa sekä funktiosymboleien että predikaattisymbolien tulkintojen tulee olla määriteltyjä kaikilla mahdollisilla argumenteilla. Logiikka muuttuu jonkin verran, jos sallitaan määrittelemättömyys funktioille ns. osittaisfunktiologiikka, engl. partialfunction logic), ja aika paljon, jos se sallitaan predikaateille kolmiarvologiikka, engl. three-valued logic). Lisäksi tulkintojen tulee olla funktiomaisia: tulos saa riippua vain annetuista argumenteista. 3 Näin käy useimmille ihmispareille, koska useimmat tavat valita kaksi ihmistä eivät yleensä tuota saman perheen jäseniä. 4 Esimerkiksi yliopiston päärakennuksen kanssa kenelläkään tuskin on lapsia. 2
Edellä annetut esimerkit on napattu reaalimaailmasta, mutta ensimmäisen kertaluvun logiikalla harvoin tarkastellaan reaalimaailmaa. Tavallisimmin tarkastelun kohteena on jokin reaalimaailman malli, jota tarkastelun aikana kutsutaan usein myös maailmaksi engl. universe). Esimerkiksi joissakin tapauksissa saatetaan haluta tarkastella ihmisten sukulaissuhteiden toimintaa, jolloin malliksi otetaan joukko ihmisiä, joista joillakin on keskinäinen sukulaisuussuhde ja toisilla ei. Tällä kurssilla saattaisimme ottaa malliksi maailman, joka koostuu Turingin koneista, merkeistä ja merkkijonoista. Kun on kiinnitetty jokin malli, josta otukset napataan, pitää seuraavaksi kiinnittää tulkinta vakio-, funktio- ja predikaattisymboleille. Esimerkiksi Turingin koneiden, merkkien ja merkkijonojen maailmassa saatetaan haluta kiinnittää vakion b tulkinnaksi merkki b. Kun sekä maailma että tulkinta on kiinnitetty, voidaan logiikalla ryhtyä tekemään jotain. Jokaisella välikesymbolin T merkkijonolla eli termillä on jokin arvo, joka on jokin maailman otus; mikä se on, riippuu vakio- ja funktiosymboleille valituista tulkinnoista. Vastaavasti jokaisella välikesymbolin F merkkijonolla eli kaavalla engl. formula) on totuusarvo tosi tai epätosi), joka riippuu vakio-, funktio- ja predikaattisymboleiden tulkinnasta. Esimerkki 1. Tarkastellaan mallia, johon sisältyvät kaikki tietotekniikan laitoksen opettajat ja kurssit. Valitaan vakiosymbolin a tulkinnaksi Antti-Juhani Kaijanaho ja b:n Ville Tirronen; valitaan lisäksi vakiosymbolin c tulkinnaksi TIEA241 ja d:n TIEA341. Valitaan lisäksi funktiosymbolin f tulkinnaksi jos argumentti on kurssi, palautetaan sen opettaja; muuten palautetaan argumentti itse. Nyt termin fa) arvo on a, fb):n arvo on b, fc):n arvo on a ja fd):n arvo on b. Valitaan vielä predikaattisymbolin P tulkinnaksi jos ensimmäinen argumentti on kurssi ja toinen opettaja, palauta tosi jos kyseessä on kyseisen kurssin opettaja; palauta muissa tapauksissa epätosi ja Q:n tulkinnaksi jos ainoa argumentti on kurssi, palauta tosi; muuten palauta epätosi. Nyt kaava P a, b) on epätosi, kuten myös kaava P c, b); sen sijaan P c, a) ja P d, b) ovat tosia. Lisäksi kaava x: Qx) P x, fx)) on tosi. Nämä termien arvot ja kaavojen totuusarvot riippuvat valitusta maailmasta ja tulkinnasta. Jos vaihdetaan a:n ja b:n tulkinnat keskenään, termin fc) arvo onkin b ja termin fd) arvo onkin a. Sen sijaan kaava x: Qx) P x, fx)) on edelleen tosi. Jos lisäksi vaihdetaan P :n ja Q:n tulkinta keskenään, kaikki kaavat P a, b), P c, b), P c, a) ja P d, b) ovat epätosia; sen sijaan kaava x: Qx) P x, fx)) pysyy edelleen totena. Jos vielä muutetaan Q:n tulkinta siten, että se on kaikilla mahdollisilla argumenteilla tosi, kaava x: Qx) P x, fx)) muuttuu epätodeksi. Kuten esimerkistä havaitaan, kaavan totuus riippuu valitusta maailmas- 3
ta ja lisäksi valituista tulkinnoista. Toisinaan ollaan kuitenkin kiinnostuneita sellaisista yleisistä laeista, joiden totuus ei riipu maailmasta eikä tulkinnasta: esimerkiksi x: P x)) P c) on tosi kaikissa maailmoissa ja kaikilla tulkinnoilla. Määritelmä 2. Kaava on loogisesti tosi, jos se on tosi kaikissa mahdollisissa malleissa kaikilla mahdollisilla tulkinnoilla. Määritelmä 3. Kaava on loogisesti epätosi, jos se on epätosi kaikissa mahdollisissa malleissa kaikilla mahdollisilla tulkinnoilla. Nämä ovat toistensa negaatioita: Lause 4. Jos ϕ on loogisesti tosi kaava, niin ϕ) on loogisesti epätosi kaava. Todistus. Triviaali. Huomaa, että looginen totuus ja looginen epätotuus eivät kuitenkaan ole toistensa komplementteja. Esimerkiksi kaava P c) ei ole looginen totuus, sillä on mahdollista valita maailma ja tulkinta siten, että se on epätosi, mutta se ei myöskään ole looginen epätotuus, koska jollakin maailmalla ja tulkinnalla se on tosi. Tällaisille välimuotokaavoille on oma nimensäkin: Määritelmä 5. Jos kaava ei ole loogisesti tosi eikä loogisesti epätosi, se on kontingentti. Logiikka ja matematiikka ovat kiinnostuneita vain) loogisista totuuksista, mutta jokapäiväisessä elämässä olemme enemmän tekemisissä kontingenttien asioiden kanssa. 1.3 Todistusjärjestelmät Loogisesti tosien kaavojen selvittämiseksi ei onneksi tarvitse tarkastella kaikkia maailmoja ja kaikkia tulkintoja. Ensimmäisen kertaluvun logiikalle voidaan määritellä useita eri todistusjärjestelmiä, joille kaikille pätee seuraavat kaksi lausetta: Lause 6 Ensimmäisen kertaluvun logiikan eheyslause). Jos kaava voidaan todistaa, se on loogisesti tosi. Lause 7 Gödelin täydellisyyslause). Jos kaava on loogisesti tosi, se voidaan todistaa. Todistus. Sivuutetaan. Todistukset esitetään tavallisesti formaalin logiikan peruskursseilla. Lausetta 7 ei tule sekoittaa Gödelin kuuluisiin epätäydellisyyslauseisiin. Tavanomainen matemaattinen päättely kelpaa useimmissa tapauksissa kaavan todistukseksi. Sen tarkemmin todistusjärjestelmiä ei tässä käsitellä. 4
2 Entscheidungsproblemin epäratkaisu Lause 8. Loogisesti tosien kaavojen joukko on rekursiivisesti lueteltava. Todistus. Ideana on rakentaa epädeterministinen Turingin kone, joka soveltaa jotain ensimmäisen kertaluvun logiikan todistusjärjestelmää. Se, että kone hyväksyy loogiset totuudet, seuraa lauseesta 7. Se, että kone ei hyväksy mitään, joka ei ole looginen totuus seuraa lauseesta 6. Tarkempi todistus sivuutetaan, koska monisteessa ei ole määritelty yhtään todistusjärjestelmää. Lause 9 Turing). Loogisesti tosien kaavojen kieli ei ole rekursiivinen. Todistus. Tehdään vastaoletus, että loogisesti tosien kaavojen kieli on rekursiivinen. Tällöin on olemassa TM, joka ratkaisee sen. Johdetaan tästä ristiriita osoittamalla, että kyseinen TM ratkaisee myös ratkeamattomaksi tiedetyn kysymyksen mielivaltaisen Turingin koneen kielen epätyhjyydestä. Rakennetaan mielivaltaisen Turingin koneen perusteella ensimmäisen kertaluvun logiikan kaava, joka on loogisesti tosi, jos ja vain jos tuo TM hyväksyy yhdenkään merkkijonon. Aloitetaan rakentamalla TM:n kuvauksessa tarvittavia työkaluja, ensisijaisesti merkkijonot. Merkkijonon käsittelyyn tarvitaan vakiosymboli, jonka on tarkoitus edustaa tyhjää merkkijonoa, funktiosymboli, jonka on tarkoitus yhdistää kaksi merkkijonoa toisiinsa, sekä predikaattisymboli, jonka on tarkoitus ilmaista merkkijonojen samuutta. Kaavojen luettavuuden helpottamiseksi merkitään tuota funktiosymbolia infiksioperaattorilla ε eli kirjoitetaan operandit peräkkäin) ja tulkitaan se vasemmalle assosiatiiviseksi. Samasta syystä merkitään predikaattisymbolia infiksioperaattorilla =, joka tulkitaan vasemmalle assosiatiiviseksi. 5 Tuota vakiosymbolia merkitään e:llä. Näin lisätyn vakio-, funktio- ja predikaattisymbolin keskinäisen yhteistoiminnan tueksi tarvitaan ekvivalenssirelaation ja monoidin aksioomat kaavoiksi kirjoitettuna: x: x = x) 1) x, y : x = y y = x) 2) x, y, z : x = y y = z x = z) 3) x: x = ex) 4) x: x = xe) 5) 5 Nämä ovat puhtaasti kirjoitustapoja, jotka eivät muuta itse ensimmäisen kertaluvun logiikan kieltä: esimerkiksi kun kirjoitamme abc, se voidaan helposti tulkita termiksi ssa, b), c), missä s on yhdistämistä edustavalle funktiosymbolille valittu nimi. Jälkimmäinen sattuu vain olemaan hankalasti luettava. 5
x, y, z : xyz) = xy)z) 6) Lisätään vielä predikaattisymboli S, joka kertoo, palauttaako argumenttina annettu termi yhden merkin mittaisen merkkijonon. x, y, z : y = e) Sx) x = yz y = x z = e)) 7) Otetaan nyt tarkasteluun mielivaltainen standardimuotoinen Turingin kone M = Q, Σ, Γ, δ,, q 0, q yes, q no ). Voidaan olettaa, että tilat ja nauhamerkit ovat logiikan vakiosymboleita ja että e ei ole kumpaakaan. Otetaan käyttöön predikaattisymboli Q merkitsemään, mitkä termit palauttavat tiloja, ja G merkitsemään, mitkä palauttavat nauhamerkkien jonoja. Näiden toimintaa kuvaavat seuraavat kaavat: 6 )) x: Qx) x = q 8) q Q ))) x: Gx) x = e y : Gy) x = yc Otetaan vielä käyttöön predikaattisymboli I merkitsemään, mitkä termit palauttavat syötemerkkien jonoja. Sen toimintaa kuvaa seuraava kaava: ))) x: Ix) x = e y : Iy) x = yc 10) Yhdistetään kaavat 1) 10) uudeksi, isoksi kaavaksi -konnektiivilla. Kutsutaan näin saatua kaavaa jatkossa nimellä A. Kuvataan nyt tilasiirtymien vaikutus M:n tilanteisiin lisäämällä uusi funktiosymboli t. Tarkoitus on, että tx) palauttaa M:n tilanteen, johon päästään tilanteesta x tekemällä yksi M:n tilasiirtymä. Funktion toimintaa kuvaamaan tarvitaan iso kaava, jota kutsutaan jatkossa nimellä T. Se muodostetaan yhdistämällä -konnektiivilla kaikki kaavat, jotka saadaan seuraavista kahdesta kaavasta korvaamalla q ja q kaikilla mahdollisilla M:n tiloilla sekä c ja c kaikilla mahdollisilla M:n nauhamerkeillä, jotka täyttävät kaavan viereen kirjoitetun ehdon: w, v : Gw) Gv) twqcv) = wc q v ) jos δq, c) = q c, R) 11) 6 Merkintä ϕ on lyhennysmerkintä ja tarkoittaa niiden kaavojen yhdistämistä - q Q konnektiivilla, jotka saadaan sijoittamalla ϕ-kaavaan q:n paikalle vuorollaan kukin Q:n alkio. 6 c Γ c Σ 9)
) d, w, v : Gd) Sd) Gw) Gv) twdqcv) = wq dc v tqcv) = q c v jos δq, c) = q c, L) 12) Lisäksi T :hen lisätään -konnektiivilla seuraava kaava: w : tw) = tw )) 13) Lisätään vielä predikaattisymboli T, jonka on tarkoitus sanoa, että jos molemmat argumentit ovat M:n tilanteita, voiko ensimmäisestä päästä jälkimmäiseen nollalla tai useammalla tilasiirtymällä. Sen toiminta kuvataan seuraavilla kahdella kaavalla, jotka lisätään -konnektiivilla A:han: w : T w, w)) 14) w, v : T w, v) T w, tv))) 15) Nyt todistuksen alussa luvattu kaava, jonka on tarkoitus kuvata väitettä M hyväksyy ainakin yhden merkkijonon, on seuraava: A T w, v, u: Iw) Gv) Gu) T q 0 w, vq yes u) 16) Osoitetaan ensiksi, että jos kaava 16) on loogisesti tosi, niin M hyväksyy ainakin yhden merkkijonon. Oletetaan siis, että kaava 16) on loogisesti tosi. Tällöin se on tosi kaikissa maailmoissa kaikilla tulkinnoilla. Erityisesti se on siis tosi sellaisessa maailmassa, joka koostuu M:n tiloista ja nauhamerkeistä muodostuvista merkkijonoista, niillä tulkinnoilla, jotka edellä on kullekin symbolille kerrottu sen tarkoitetuksi tulkinnaksi. Tuossa maailmassa tuolla tulkinnalla kaava 16) kertoo sen, mitä olemme osoittamassa eli että M hyväksyy ainakin yhden merkkijonon. Seuraavaksi tulee osoittaa, että jos M hyväksyy ainakin yhden merkkijonon, niin kaava 16) on tosi kaikissa maailmoissa kaikilla tulkinnoilla. Tähän riittää lauseen 6 nojalla osoittaa, että kaava 16) on todistettavissa, jos M hyväksyy ainakin yhden merkkijonon. Oletetaan siis, että M hyväksyy ainakin yhden merkkijonon. Oletetaan lisäksi kaavat A ja T loogisiksi totuuksiksi, ja osoitetaan, että tällöin w, v, u: Iw) Gv) Gu) T q 0 w, vq yes u) 17) on looginen totuus. Merkitään jotain M:n hyväksymää merkkijonoa w. Koska nauhamerkit ja siten syötemerkit ovat oletetusti vakiosymboleita, w on termi. Niinpä w voidaan valita kaavan 17) olemassaolokvanttorin w:ksi. Näin ollen, jos v, u: Iw) Gv) Gu) T q 0 w, vq yes u) 18) 7
on looginen totuus, niin myös 17) on looginen totuus. On helppo todeta kaavan 10) perusteella, että Iw) on looginen totuus; niinpä jos kaava v, u: Gv) Gu) T q 0 c 0 c n, vq yes u) 19) on looginen totuus, niin myös 18) ja sitä kautta 17) ovat loogisia totuuksia. Koska M hyväksyy merkkijonon w, on olemassa merkkijonot v ja u sekä jono M:n tilanteita K 0,..., K n, joille pätee K 0 = q 0 w ja K n = vq yes u sekä K i K i+1 kaikilla i {0, n 1}. Jokainen K i on nauhamerkkien ja tilojen merkkijono, joten ne kelpaavat termeiksi. Koska K i K i+1 kaikilla i {0, n 1}, kaavojen 11) ja 12) nojalla tk i, K i+1 ) pätee kaikilla i {0, n 1}. Kaavojen 14) ja 15) perusteella voidaan todeta, että T K 0, K n ) eli T q 0 w, vq yes u) pätee. Kun vielä todetaan, että Gv) ja Gu) pätevät kaavan 9) nojalla, päästään johtopäätöksen, että 19), ja sen kautta 17) on looginen totuus. Nyt on saatu todistettua, että 17) on looginen totuus jos ja vain jos M hyväksyy ainakin yhden merkkijonon. On selvää, että on mahdollista joskin erittäin työlästä) laatia Turingin kone, joka saatuaan syötteenä jonkin TM:n binäärikuvauksen laatii siitä kaavan 17). Tämän koneen perään voidaan helposti kytkeä vastaoletuksen nojalla olemassa oleva Turingin kone, joka ratkaisee tuon kaavan loogisen totuuden. Näin meillä on Turingin kone, joka kykenee ratkaisemaan, hyväksyykö mielivaltainen Turingin kone ainakin yhden syötteen. Tiedämme kuitenkin, ettei tällaista Turingin konetta ole olemassa, joten vastaoletuksen on oltava väärin. 8