Johdanto Lauselogiikassa tutkitaan sekä syntaktisella että semanttisella tasolla loogisia konnektiiveja ja niiden avulla muodostettuja kaavoja sekä myös formaalia päättelyä. Tarkastelemme aluksi klassisen lauselogiikan formaalia määrittelyä ja semanttisia kysymyksiä. Kurssin loppupuolella tarkastelemme lauselogiikan todistusteoriaa. On huomattava, että on olemassa lauselogiikoita, joissa syntaktiset tai semanttiset asiat on määritelty eri tavalla kuin klassisessa logiikassa.
Konnektiivit Loogiset konnektiivit vastaavat tiettyjä luonnollisen kielen ilmaisuja, jotka ovat tärkeitä myös ei-formaalissa matemaattisessa kielessä. Lauselogiikassa konnektiiveille annetaan täsmälliset semanttiset merkitykset. On siis huomattava, että merkitykset ovat sopimusluonteisia, joskin pyritään noudattelemaan luonnollisen kielen merkityksiä. Ne kuitenkin poikkeavat osittain vastaavista luonnollisen kielen ilmaisujen merkityksistä jo senkin takia, että jälkimmäiset eivät ole täysin yksikäsitteisiä. On myös huomattava, että vain joillakin luonnollisen kielen konnektiiveilla on vastineensa lauselogiikassa.
Konnektiivit Klassisen lauselogiikan konnektiivit ovat seuraavat: vastine merkintä luonnollisessa nimitys (vaihtoehtoinen) kielessä negaatio (, ) ei (ole niin, että... ) konjunktio (&) ja disjunktio tai implikaatio (, ) jos..., niin... ekvivalenssi (, ) jos ja vain jos
Kaavat Konnektiivien avulla muodostetaan kaavoista A ja B yhdistettyjä kaavoja seuraavasti: yhd. kaava luetaan nimitys A ei A A:n negaatio A B A ja B A:n ja B:n konjunktio A B A tai B A:n ja B:n disjunktio A B jos A, niin B A:n ja B:n implikaatio A B A, jos ja vain jos B A:n ja B:n ekvivalenssi.
Totuusfunktionaalisuus Käytämme usein kaavalle samaa nimitystä kuin sen ns. pääkonnektiiville ja puhumme esimerkiksi konjunktiosta A B, disjunktiosta A B, implikaatiosta A B jne. Loogiset konnektiivit ovat totuusfunktionaalisia, joka tarkoittaa, että kunkin yhdistetyn kaavan totuusarvo määräytyy yksikäsitteisesti sen osakaavojen totuusarvoista (edellinen on siis jälkimmäisten funktio). Tarkastelemme tarkemmin totuusfunktion käsitettä, kun olemme määritelleet täsmällisesti käyttämämme lauselogiikan kielen syntaksin.
Totuustaulut Totuusarvojen 1 (tosi) ja 0 (epätosi) määräytyminen voidaan esittää totuustaulujen avulla seuraavasti: Negaatio Konjunktio Disjunktio Implikaatio Ekvivalenssi A B A B A B A B A B A B A B A B A A 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 0 1 0 1 1 0 0 1 0 0 0 1 0 1 0 0 1 1 0 1 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 Oletamme, että tämän kaltaiset totuustaulut ovat lukijalle tuttuja ja että hän osaa myös muodostaa monimutkaisempien yhdistettyjen kaavojen totuustauluja.
Formalisointi Logiikassa pyritään määrittelemään täysin yksikäsitteisesti tarvittavat syntaktiset ja semanttiset käsitteet. Tähän päästään esimerkiksi formalisoimalla tarkasteltavan logiikan syntaksi ja määrittelemällä semanttiset käsitteet käyttäen joukko-opillista ja muuta matemaattista kieltä. Tutkimme nyt, miten lauselogiikan syntaksi formalisoidaan. Tarkoituksena on antaa sellainen määritelmä kaavalle, että periaatteessa voidaan annetusta merkkijonosta mekaanisesti todeta, onko se lauselogiikan kaava vai ei. Tämä edellyttää ensiksikin, että sovitaan, mitkä ovat ne syntaktiset merkit, joita saadaan käyttää, ja toiseksi, miten näitä merkkejä voidaan yhdistellä.
Peruskonnektiivit Sekä syntaktiset että semanttiset tarkastelut yksinkertaistuvat usein, jos valitaan peruskonnektiivit, joiden avulla muut konnektiivit voidaan määritellä. Peruskonnektiiveiksi voidaan ottaa negaatio yhdessä disjunktion, konjunktion tai implikaation kanssa. On myös mahdollista ottaa käyttöön kokonaan uusia konnektiiveja ja määritellä tutut konnektiivit näiden avulla. Käytämme ensin peruskonnektiiveina kaikkia klassia konnektiiveja. Myöhemmin teoreettisten tarkasteluiden yhteydessä valitsemme peruskonnektiiveiksi vain negaation ja konjunktion.
Perussymbolit Kiinnitetään nyt käytettävät perusmerkit, joista muut ilmaisut rakennetaan. Ne ovat perussymboleja (primitiivisymboleja), ja ne muodostavat aakkoston. Sovimme, että perussymbolit ovat seuraavat: p 0, p 1, p 2,... lausemuuttujat,,,, konnektiivit (, ) sulut. Lausemuuttujia kutsutaan joskus myös atomilauseiksi. Myös nimitystä propositiosymboli käytetään. Niitä on siis numeroituvasti ääretön määrä.
Objektikieli ja metakieli Lausemuuttujiksi voidaan valita myös jokin joukon {p 0, p 1, p 2,...} aito osajoukko. Myös konnektiiveista voidaan valita vain osa käytettäväksi, esimerkiksi negaatio ja konjunktio (joskus voidaan käyttää muitakin konnektiiveja kuin edellä esitellyt). Perussymbolit kuuluvat objektikieleen eli siihen formaalikieleen, jota tarkastelemme; samoin kohta määriteltävät kaavat. Meillä on oltava myös sopiva metakieli, jossa niihin voidaan viitata. Kirjaimet p, q, r, q 0, q 1, q 2... ovat metakieleen kuuluvia metavariaabeleita, jotka viittaavat lausemuuttujiin ja kirjaimet A, B, C,... metavariaabeleita, jotka viittaavat kaavoihin. Konnektiivit ja sulut viittaavat itseensä. Lisäksi metavariaabelit q 0, q 1, q 2,... viittavat aina eri lausemuuttujiin eli q i q j, jos i j.
Kaavat Seuraavaksi määritellään, mitä tarkoitetaan kaavalla. Tämä tapahtuu ns. kaavanmuodostussääntöjen avulla. Kaavat määritellään rekursiivisesti eli sopivalla tavalla askeleittain. Kukin määritelmän askel, paitsi ensimmäinen, määrittelee kaavan yksinkertaisempien kaavojen avulla. Olkoon L = (P, K), missä P {p 0, p 1, p 2,...} ja K on käytössä olevien konnektiivien joukko. Tässä oletamme, että K = {,,,, }. Kutsumme L-kaavaksi merkkijonoa, joka on muodostettu lausemuuttujista p i P, negaatiosta ja kaksipaikkaisista konnektiiveista seuraavien sääntöjen mukaisesti:
L-kaavat Kaavanmuodostussäännöt: 1. Lausemuuttujat p i P ovat L-kaavoja. 2. Jos A on L-kaava, niin A on L-kaava. 3. Jos A ja B ovat L-kaavoja ja {,,, }, niin (A B) on L-kaava. 4. Muita L-kaavoja ei ole. Jos P = {p 0, p 1, p 2,...}, niin kutsumme L-kaavaa yksinkertaisesti vain kaavaksi. Yleisestikin voimme käyttää L-kaavalle nimitystä kaava, jos tästä ei aiheudu väärinkäsityksen vaaraa.
Esimerkkejä Kaavassa A (huomaa, ettei tässä käytetä sulkeita) negaation ala on kaava A. Negaation alaan kuuluu siis sitä välittömästi seuraava lausemuuttuja tai sulkeiden sisällä oleva kaava. Esimerkki. Merkkijono ((p 1 p 2 ) p 5 ) on kaava. Tämä nähdään osoittamalla, miten se muodostetaan vaiheittain: p 1 ja p 2 ovat lausemuuttujina kaavoja, joten (p 1 p 2 ) on kaava. Samoin p 5 on kaava. Täten p 5 on kaava. Koska siis (p 1 p 2 ) ja p 5 ovat kaavoja, niin ((p 1 p 2 ) p 5 ) on kaava. Esimerkki. Merkkijono p 1 p 3 ei selvästikään ole kaava. Tämän täsmällinen todistaminen edellyttää ns. induktiotodistusta. Tarkasti ottaen myöskään merkkijonot p 1 p 2 ja p 1 p 2 p 3 eivät ole kaavoja (miksi?).
Pääkonnektiivi Rakennettaessa vaiheittain kaavaa lausemuuttujista lähtien jokaisessa vaiheessa käytetään yhtä konnektiivia. Viimeiseksi käytettyä konnektiivia kutsutaan kaavan pääkonnektiiviksi. Usein kaavoja käsiteltäessä on ensin löydettävä pääkonnektiivi. Esimerkki. Kaavan ((p 1 p 2 ) p 5 ) pääkonnektiivi on ekvivalenssi, kaavan (p 1 p 2 ) implikaatio ja kaavan p 5 pääkonnektiivi on negaatio.
Sulkujen poistaminen Kaavojen uloimmat sulut voidaan jättää pois. Sulkeiden määrää vähennetään myös sopimalla, mikä on kunkin konnektiivin (vaikutus)ala. Tämä on analogista aritmetiikassa määriteltävän oikean laskujärjestyksen kanssa. Sovitaan, että 1. negaatiolla on pienin (vaikutus)ala; 2. konjunktiolla ja disjunktiolla on pienempi ala kuin implikaatiolla ja ekvivalenssilla. Uloimpien sulkujen lisäksi jätetään pois sellaiset sulut, jotka eivät vaikuta konnektiivien alaan, kun eri konnektiivien aloilla on se keskinäinen järjestys joka on edellä esitetty.
Esimerkkejä Esimerkki. (( A B) C) lyhentyy muotoon A B C, koska disjunktion ala on suppeampi kuin implikaation. Esimerkki. ( A (B C)) lyhentyy muotoon A (B C). Jäljellä olevaa sulkuparia ei voi poistaa. Esimerkki. ((A B) C) lyhentyy muotoon (A B) C. Jäljellä olevaa sulkuparia ei voi poistaa, koska disjunktio ja konjunktio ovat samanarvoisia. Esimerkki. Kaavassa (A B C) olevaa sulkuparia ei voi poistaa, koska negaation ala on sitä välittömästi seuraava kaava.
Huomautus Kun on sovittu metavariaabelien käytöstä ja tarpeettomien sulkujen poistamisesta, niin voimme sanoa ilman sekaannusta, että kaikki näin saatavat ilmaisut ovat kaavoja, vaikka ne tarkasti ottaen vain viittaavat kaavoihin (siis tiettyihin objektikielen merkkijonoihin). Ne eivät itse asiassa ole kaavoja, koska ne eivät kuulu objektikieleen. Esim. metakielen ilmaisu p q r viittaa objektikielen kaavoihin, jotka ovat muotoa ((p q) r), ts. jotka saadaan tästä sijoittamalla p:n, q:n ja r:n paikalle mielivaltaisia lausemuuttujia. Analoginen sopimus vallitsee esimerkiksi matematiikassa, kun käytetään kirjaimia viittaamaan lukuihin, mutta kuitenkin sanotaan näistä kirjaimista, että ne ovat lukuja.
Induktio kaavan rakenteen suhteen Lauselogiikan kielen rekursiivinen määritelmä mahdollistaa kaavoja koskevien väitteiden todistamisen induktiolla kaavan rakenteen suhteen. Jos tehtävänä on todistaa, että jokaisella kaavalla A on ominaisuus O eli niin menetellään seuraavasti: O(A) aina, kun A on kaava, 1. Osoitetaan ensin, että O(p i ), kun i = 0, 1, 2,... 2. Tehdään induktio-oletus (lyhenne IO), että O(B) ja O(C) ja todistetaan induktioaskeleessa, että O( B), O(B C), O(B C), O(B C) ja O(B C).
Esimerkki Todistamme induktiolla, että jokaisessa lauselogiikan kaavassa A esiintyy yhtä monta sulkuparia (...) kuin kaksipaikkaista konnektiivia,,, tai. Kun A on lausemuuttuja p i, siinä ei esiinny yhtään konnektiivia eikä sulkua, joten väite on tällöin voimassa. Teemme seuraavaksi induktio-oletuksen, että lauselogiikan kaavoissa B ja C esiintyy yhtä monta sulkuparia kuin kaksipaikkaista konnektiivia. Olkoon A = B. Tällöin kaavassa A on yhtä monta sulkuparia kuin kaavassa B. Samoin kaavassa A on yhtä monta kaksipaikkaista konnektiivia kuin kaavassa B. Induktio-oletuksen mukaan kaavassa B sulkuparien ja kaksipaikkaisten konnektiivien lukumäärät ovat samat, joten myös kaavassa A esiintyy yhtä monta sulkuparia kuin kaksipaikkaista konnektiivia.
Esimerkki; jatkoa Olkoon A = (B C). Olkoon kaavassa B m ja kaavassa C n sulkuparia. Induktio-oletuksen mukaan tällöin kaavassa B esiintyy m ja kaavassa n kaksipaikkaista konnektiivia. Kaavassa (B C) esiintyy nyt yksi sulkupari enemmän kuin mitä kaavoissa B ja C on yhteensä eli m + n + 1 sulkuparia. Kaavojen B ja C kaksipaikkaisten konnektiivien lisäksi kaavassa (B C) esiintyy vielä konjunktio, joten yhteensä kaksipaikkaisia konnektiiveja on m + n + 1. Täten kaavassa A = (B C) esiintyy yhtä monta sulkuparia kuin kaksipaikkaista konnektiivia. Tapaukset A = (B C), A = (B C) ja A = (B C) käsitellään vastaavasti.
Edellä olevan esimerkin tuloksen perusteella näemme, että merkkijonot p 1 p 3, (p 1 p 3 ) ja ((p 1 p 2 )) eivät ole kaavoja. Selvästikään myöskään merkkijono ((p 1 p 3 )) ei ole lauselogiikan kaava. Yksi tapa todistaa tämä on osoittaa induktiolla, että missään kaavassa ei esiinny kahta peräkkäistä kaksipaikkaista konnektiivia. Induktioaskeleessa tulee kuitenkin ongelma: tapauksessa A = (B C) pitää tietää, että kaava B ei voi päättyä konnektiiviin eikä kaava C alkaa konnektiivilla (paitsi mahdollisesti negaatiolla). Induktioväitteeksi kannattaakin valita väite mikään kaava ei pääty eikä ala kaksipaikkaisella konnektiivilla eikä sisällä kahta peräkkäistä kaksipaikkaista konnektiivia, joka on helppo todistaa induktiolla oikeaksi.
Edellä olevan esimerkin induktiotodistus on hieman epätäsmällinen johtuen siitä, että käsiteparia sulkuparien lukumäärä ja kaksipaikkaisten konnektiivien lukumäärä ei määritelty täsmällisesti. Sen lisäksi, että kielen rekursiivinen määrittely oikeuttaa induktiolla tapahtuvat todistukset, se myös mahdollistaa monien kaavoja koskevien käsitteiden rekursiivisen (eli induktiivisen) määrittelemisen. Perehdymme seuraavaksi tällaisiin määritelmiin ja annamme lisää esimerkkejä induktiotodistuksista.
Rekursiivisia määritelmiä Käytämme tässä symbolia edustamaan mitä tahansa konnektiivia,,, tai. Määrittelemme lauselogiikan kaavan vasemmanpuoleisten (lp) ja oikeanpuoleisten (rp) sulkujen ja konnektiivien (ml. negaatio) k lukumäärät rekursiolla seuraavasti: lp(p i ) = rp(p i ) = k(p i ) = 0, lp( B) = lp(b), rp( B) = rp(b), k( B) = k(b) + 1, lp(b C) = lp(b) + lp(c) + 1, rp(b C) = rp(b) + rp(c) + 1, k(b C) = k(b) + k(c) + 1,
Esimerkki Koska vasemman- ja oikeanpuoleisten sulkujen lukumäärä on määritelty samalla tavalla, niin selvästi lp(a) = rp(a). Todistamme nyt induktiolla, että aina kun A on kaava, niin lp(a) k(a). ( ) Kun A = p i, niin lp(a) = k(a) = 0, ja väite on voimassa. Teemme induktio-oletuksen, että lp(b) k(b) ja lp(c) k(c). Tarkastelemme tapausta A = B. Tällöin lp( B) = lp(b) IO k(b) < k(b) + 1 = k( B). Tapauksessa A = (B C) nähdään, että lp(b C) = lp(b) + lp(c) + 1 IO k(b) + k(c) + 1 = k(b C). Induktioperiaatteen perusteella väite ( ) on voimassa.
Rakennepuu ja alikaavat Kaavan A rakennepuu T (A) määritellään seuraavasti: T (p i ) = p i, T ( B) = B T (B), T (B C) = (B C). T (B) T (C) Esimerkki. (( A B) C) ( A ( B C) ) /\ /\ ( A B) C A (B C) /\ /\ A B A B C A
Esimerkkejä Esimerkki. (( A B ) C) ( A B ) /\ (A B) C (A B) /\ /\ A B A B Esimerkki. Kaavan ((p 1 p 2 ) p 5 ) rakennepuu on: (( p 1 p 2 ) p 5 ) /\ (p 1 p 2 ) p 5 /\ p 1 p 2 p 5 p 5
Alikaavat Kaavan A rakennepuussa esiintyviä kaavoja kutsutaan kaavan A alikaavoiksi. Kaavan A alikaavojen joukko sub(a) voidaan rekursiivisesti määritellä seuraavasti: sub(p i ) = {p i }, sub( A) = { A} sub(a), sub(a B) = {(A B)} sub(a) sub(b). Tehtäessä rakennepuita ja lueteltaessa alikaavoja sulkuja voidaan jättää pois tekemämme sopimuksen mukaisesti.
Esimerkki Esimerkki. Kaavan (p (q r)) rakennepuu on p q r p q r q r r Sen alikaavojen joukko on {p q r, p, q r, q, r, r}.
Sijoitus Sijoituksella A[B/p] tarkoitetaan kaavaa, joka saadaan kaavasta A korvaamalla siinä jokainen lausemuuttujan p esiintymä kaavalla B. Jos p ei esiinny kaavassa A, saadaan kaava A itse. Esimerkki. Olkoon A = p (q p). Tällöin A[r/p] = r (q r), A[p/r] = A (koska r ei esiinny kaavassa A), A[(q q)/p] = (q q) (q (q q)). Yleisesti sijoituksella A[B 1 /q 1 /, B 2 /q 2,..., B k /q k ] tarkoitetaan kaavaa, joka saadaan kaavasta A korvaamalla kaavalla B i lausemuuttujan q i esiintymä (i = 1, 2,..., k). Nämä korvaamiset on tehtävä samanaikaisesti.
Sijoitus Sijoitus A[B 1 /q 1 /, B 2 /q 2,..., B k /q k ] voidaan määritellä rekursiivisesti toteamalla, että yhdistetyille kaavoille pätevät säännöt ( B)[B 1 /q 1,..., B k /q k ] = B[B 1 /q 1,..., B k /q k ], (B C)[B 1 /q 1,..., B k /q k ] = B[B 1 /q 1,..., B k /q k ] C[B 1 /q 1 /,..., B k /q k ], jossa siis {,,, }, ja määrittelemällä lausemuuttujille { B i, jos i {1, 2,..., k}: q = q i, q[b 1 /q 1, B 2 /q 2,..., B k /q k ] = q muulloin.
Sijoitus Esimerkki. Olkoon A = p (q p), missä p q. Tällöin A[B/p, C/q] = B (C B), A[B/p, B/q] = B (B B). Voidaan myös määritellä sijoitus, jossa lausemuuttuujien sijasta korvataan yhdistettyjä kaavoja toisilla kaavoilla. Tällöin määritelmän alkuaskel olisi { Bi jos D = C D[B 1 /C 1,..., B k /C k ] = i, D jos C 1, C 2,..., C k eivät esiinny kaavassa D.