10 Lausearvutuslik loogika
Enne, kui siirdume järeldava statistika ja tõenäosusteooria juurde, teeme lühikese sissejuhatuse klassikalisse loogikasse, sest tõenäosusteooria ei ole lõppude-lõpuks midagi muud, kui loogika laiendus juhule, kus me ei ole kindlad selles, mida räägime. Niisiis, loogika ülesanne on modelleerida inimkeelseid lauseid (või nende sisu ehk propositsioone). Keele modelleerimise läbi modelleerime me ühtlasi mõtlemist, kaasa arvatud teaduslik mõtlemine. Nagu ikka, ei eelda me ka siin, et mudel vastaks täpselt reaalsusele.
Igal juhul koosneb meie keelemudeli baas-süntaks sõnadest nagu “ja”, “või”, “mitte”, “kui … siis”, mida kutsume konnektiivideks.
Konnektiivid koos neid tähistava sümboliga:
not – (\(\lnot\)) – negatsioon e negation,
and – (\(\land\)) – konjunktsioon e conjunction,
or – (\(\lor\)) – disjunktsioon e disjunction,
if … then – (\(\rightarrow\)) – implikatsioon e konditsionaal e implication e conditional (if – antecent, then – consequent).
Suured tähed A, B, C, … tähistavad atomaarseid lauseid. Iga atomaarne lause tähistab ühte või mitut inimkeelset lauset. Loogiku jaoks pole atomaarsete lausete sisemine struktuur oluline, sest sellest ei sõltu mudelkeele lausete valiidsus.
Mudelkeele 1. tase koosneb atomaarsetest lausetest, mis on ühendatud konnektiividega (negatsioon, konjunktsioon jne). Siin on juba tegemist liitlausetega. 2. taseme liitlaused koosnevad konnektiividega ühendatud 1. taseme lausetest, ja nii edasi lõpmatusse. Näiteks \(((A \rightarrow B) \lor (B \land A)) \rightarrow C\) on 3-tasemeline lause, kus sulud näitavad, milliseid komponentlauseid mingi konnektiiv parasjagu ühendab.
Lisaks konnektiividele sisaldab meie keelemudel tõeväärtusi: T ja F. Siinkohal eeldame, et mitmetasemeliste lausete tõeväärtused sõltuvad nende aluseks olevate atomaarsete lausete tõeväärtustest, ja mitte millegist muust. Seda eeldust kutsutakse tõetabeli printsiibiks.
10.1 Tõetabel
Kui me tähistame suvalist liitlauset X-ga, siis tõetabel näeb välja nii:
#> # A tibble: 4 x 3
#> A B X
#> <chr> <chr> <chr>
#> 1 T F ""
#> 2 F T ""
#> 3 T T ""
#> 4 F F ""
Tõetabel annab kõik võimalikud kombinatsioonid atomaarsete lausete tõeväärtustest ja ütleb iga sellise kombinatsiooni kohta, kas X on tõene või väär. Seega on tõetabel loogiline diagramm X-le. Tabeli iga rida annab ühe kombinatsiooni atomaarsete lausete tõeväärtustest ja X veeru vastavale reale peaks kirjutama X-i tõeväärtuse, mis sõltub nende atomaarsete lausete tõeväärtusest sellel real ja sellest, milliste konnektiividega need on liitlausesse X ühendatud. Tabeli iga rida annab X-le unikaalse tõeväärtuse.
Kõigepealt anname tõetabeli negatsioonile, mis on unaarne konnektiiv, ehk töötab ühe lause piires
#> # A tibble: 2 x 2
#> A `not A`
#> <chr> <chr>
#> 1 T F
#> 2 F T
Ehk sõnadega: \(\neg A\) on tõene siis kui \(A\) on väär, ja vastupidi. Negatsioon ei tee muud, kui põõrab lause tõeväärtuse vastupidiseks.
10.2 Konjunktsioon
Nüüd tõetabel konjunktsioonile, mis on binaarne konnektiiv, ühendades kahte lauset.
#> # A tibble: 4 x 3
#> A B `A and B`
#> <chr> <chr> <chr>
#> 1 T T T
#> 2 T F F
#> 3 F T F
#> 4 F F F
Ehk sõnadega: \(A \land B\) on tõene siis ja ainult siis kui A ja B on mõlemad tõesed.
Konjunktsiooni võib kasutada näiteks nii:
P1 (Premiss 1): Seda ja teist
J1 (Järeldus 1): Seda
J2: teist
Või:
P1: ei ole külm ega tuuline
J1: ei ole külm
J2: ei ole tuuline
Aga lausest \(\neg (A \land B)\) ei saa midagi järeldada:
P1: Ma ei ole praegu Pariisis ega Tallinnas
J1: —
10.3 Disjunktsioon
Nüüd disjunktsioon. Loogikute jaoks on siin tegemist nn inklusiivse või-ga, mis tähendab, et see kehtib ka siis, kui A ja B mõlemad kehtivad.
#> # A tibble: 4 x 3
#> A B `A or B`
#> <chr> <chr> <chr>
#> 1 T T T
#> 2 T F T
#> 3 F T T
#> 4 F F F
\(A \lor B\) on väär siis ja ainult siis, kui A ja B on mõlemad väärad.
Kuidas aga oleks lood ekslusiivse disjunktsiooniga (xor), kus A = T ja B= T viivad väärale disjunktsioonile? Me ei vaja xor jaoks tingimata eraldi konnektiivi (sümbolit), sest selle tõetabel langeb kokku lause \[(A \lor B) \land \neg (A \land B)\] tõetabeliga.
Selle arvutamiseks evalueerime kõigepealt sisemise disjunktiooni \(A \lor B\) ja konjunktsiooni \(A \land B\), seejärel negatsiooni \(\neg (A \land B)\) ja lõpuks kogu lause (see on tabelis kaskel olev “and”).
#> # A tibble: 4 x 6
#> A B `A or B (I)` `and (III)` `not (II)` `A and B (I)`
#> <chr> <chr> <chr> <chr> <chr> <chr>
#> 1 T T T F F T
#> 2 T F T T T F
#> 3 F T T T T F
#> 4 F F F F T F
Tabeli evalueerimise järjekord on antud rooma numbritega tabeli veergude päistes.
Ja võrdluseks A xor B tõetabel
#> # A tibble: 4 x 3
#> A B `A xor B`
#> <chr> <chr> <chr>
#> 1 T T F
#> 2 T F T
#> 3 F T T
#> 4 F F F
Kuna nende tabelite läbiarvutamisel saadud tõeväärtused on identsed, on laused \((A \lor B) \land \neg (A \land B) \Leftrightarrow A ~ xor ~B\) loogiliselt ekvivalentsed. Ekvivalentsed võivad olla ka laused, mis ei koosne samadest atomaarlausetest, senikaua kui nende tõetabeli kõik read on sama tõeväärtusega (näiteks A ja \(A\land(B\lor\neg B\))).
Disjunktsiooni ja konjunktsiooni on võimalik avaldada teineteise kaudu:
\[\neg (A \land B) \Leftrightarrow \neg A \lor \neg B\]
\[\neg (A \lor B) \Leftrightarrow \neg A \land \neg B\]
Disjunktsiooni saab kasutada näiteks nii:
P1: Ei seda ega teist (\(\neg (A \lor B)\))
J1: Ei seda (\(\neg A\))
J2: ei teist (\(\neg B\))
Või
P1: ei mitte-A ega mitte-B (\(\neg (\neg A \lor \neg B)\))
J1: A
J2: B
Samas, lausest \(A \lor B\) ei saa midagi järeldada:
P1: Ma olen kas Pariisis või Tallinnas
J1: —-
10.4 Konditsionaal
Ja lõpuks konditsionaali \(A \rightarrow B\) tõetabel
#> # A tibble: 4 x 3
#> A B `if A then B`
#> <chr> <chr> <chr>
#> 1 T T T
#> 2 T F F
#> 3 F T T
#> 4 F F T
Konditsionaal on väär siis ja ainult siis kui A on tõene ja B on väär. Vahest kipuvad inimesed nägema konditsionaali põhjusliku seose mudelina. See ei ole aga hea mõte, sest loogilised tehted eeldavad ainult koos või eraldi esinemist, mitte põhjuslikke ega ajalisi suhteid.
Veel üks oluline samasus: \[A \rightarrow B \Leftrightarrow \neg B \rightarrow \neg A\].
Lisaks võime konditsionaali avaldada ka läbi disjunktsiooni või konjunktsiooni: \[A \rightarrow B \Leftrightarrow \neg A \lor B \Leftrightarrow \neg(A \land B)\]. Ainus põhjus, miks meil on eraldi konnektiiv nimega konditsionaal, on selle järeldusliku vormi sage kasutamine. Seega on konditsionaal loogikas sisuliselt vähetähtis mugavussümbol, mitte põhjusliku seose sügavmõtteline mudel.
Konditsionaali \(A \rightarrow B\) osaline vaste tõenäosusteoorias on tingimuslik tõenäosus \(P(B ~\vert~ A)\), mis ütleb “B tõenäosus tingimusel, et A on tõene” (vt allpool).
Konditsionaali saab kasutada näiteks nii
P1: \(\neg (A \rightarrow B)\)
J1: \(A\)
J2: \(\neg B\)
Jällegi, lausest \(A \rightarrow B\) ei saa midagi järeldada A ega B kohta.
P1: \(A \rightarrow B\)
J1: —
10.5 Tautoloogia ja kontradiktsioon
\(A \lor \neg A\) on tautoloogia, sest selle tõetabelis on X alati tõene
tibble(A = c("F", "T"), `A or notA` = c("T", "T"))
#> # A tibble: 2 x 2
#> A `A or notA`
#> <chr> <chr>
#> 1 F T
#> 2 T T
Tautoloogiast tuleneb välistatud kolmanda seadus, mille kohaselt iga propositsioon on kas tõene või väär (ja mitte kunagi mõlemat korraga).
Seevastu \(A \land \neg A\) on kontradiktsioon ehk iseendaga vastuoluline ehk loogiliselt vastuoluline, sest selle tõetabelis on X alati väär.
tibble(A = c("F", "T"), `A and notA` = c("F", "F"))
#> # A tibble: 2 x 2
#> A `A and notA`
#> <chr> <chr>
#> 1 F F
#> 2 T F
Nagu juba eespool mainitud, kui tõetabelis leidub rida, kus kõik atomaarsed laused on tõesed ja X on väär, siis ja ainult siis on tegu kontradiktsiooniga. Antud juhul on selline tabeli 2. rida
10.6 loogiline argument ja valiidne järeldamine
Näiteks lause: maa on kerakujuline või kuu on juustust. Nüüd eeldame, et maa ei ole kerakujuline. Siit tuleb loogiliselt valiidne järeldus: kuu on juustust.
Ehk
P1: AvB
P2: mitte-A
J: B
Siin on meil tegemist loogilise argumendiga, mis koosneb kahest premissist (P1 ja P2) ja järeldusest (J). Premissid on laused, mille kohta me eeldame, et need on tõesed, ja järelduse me dedutseerime premissidest lähtuvalt sellest eeldusest.
Mis juhtub, kui me eeldame, et järeldus B on hoopiski väär, aga premissid mitte-A ja AvB on mõlemad tõesed? Sellisel juhul on meil tegu loogilise vastuolu e kontradiktsiooniga. Seega on premissidest dedutseeritud järeldus loogiliselt tõsikindel; iga deduktiivne järeldus on juba peidus premissides ja ei sisalda endas uut informatsiooni.
Järelduse loogiline valiidsus ei taga selle kehtivust päris maailmas (kui tagaks, siis me elaksime vaid matemaatikast koosnevas maailmas, mille mõistmiseks poleks vaja teha empiirilisi uuringuid). Me võime sama hästi eeldada, et (P1) maa on kerakujuline või kuu on juustust e AvB, (P2) et kuu ei ole juustust e mitte-B, ja siit järeldub, et maa on kerakujuline:
AvB
mitte-B
J: A,
See järeldus on nii valiidne kui kehtiv. Aga samas empiiriliselt mitte kuigi huvitav.
Argument on valiidne siis ja ainult siis, kui olukord, kus kõik premissid oleksid tõesed ja järeldus oleks väär, on loogiliselt vastuoluline. Argument on kehtiv (sound) siis ja ainult siis, kui see on valiidne ja kõik premissid on tõesed.
Argumendi valiidsus tähistab pelgalt argumendi korrektset semantilist struktuuri (ehk loogilist vormi). Argumendi kehtivus tähendab, et argumendi järeldus on ka sisuliselt kehtiv ehk tõene. Valiidne järeldamine eeldab, et premissid ja järeldus on ehitatud atomaarsetest lausetest nii, et ei esine atomaarsete lausete tõeväärtuste kombinatsiooni, mis muudaks kõik premissid tõeseks ja järelduse vääraks. Kui siiski esineb selline kombinatsioon, siis oleme leidnud loogilise vastuolu ehk kontradiktsiooni ja meie järeldamismehhanism ei saa olla valiidne.
Selle näitlikustamiseks kontrollime argumendi
P1: \(A \rightarrow B\)
P2: \(\neg A\)
J: \(\neg B\)
valiidsust tõetabeli abil:
tibble(A=c("T", "T", "F", "F"), B=c("T", "F", "T", "F"), `P1: if A then B`= c("T", "F", "T", "T"), `P2: notA`= c("T", "F", "T", "T"), `J: notB`= c("T", "T", "F", "T")) #%>% kableExtra::kable()
#> # A tibble: 4 x 5
#> A B `P1: if A then B` `P2: notA` `J: notB`
#> <chr> <chr> <chr> <chr> <chr>
#> 1 T T T T T
#> 2 T F F F T
#> 3 F T T T F
#> 4 F F T T T
Tõetabelist on näha, et see argument ei ole valiidne, sest tabeli 3. reas on tõesed premissid ja väär järeldus. Nii lihtne see ongi. Pane tähele, et sellises tõetabelis on huvitavad ainult sellised read, kus ükski premiss pole väär ja järeldus on väär. Kõiki teisi ridu võib ignoreerida. Kuna tabeli ridade arv võrdub kaks astmes atomaarsete lausete arv, milline number kasvab atomaarsete lausete arvu kasvuga väga kiiresti, tasub seda meeles pidada.
10.7 Modus Ponens ja Modus Tollens
Bertrand Russelile, kellel on väga suured teened formaalse loogika arendamisel 20. sajandi alguses, kuulub väike nali teadusliku meetodi kohta, nagu seda nägid paljud 20. sajandi teadusfilosoofid (Russell, 1945):
If p, then q; now q is true; therefore p is true.
E.g. if pigs had wings then some winged animals
are good to eat; therefore pigs have wings.
This form of inference is called `scientific method`.
See inglise huumor näitlikustab induktiivset teadusliku mõtlemise mudelit, mis ekslikult kasutab deduktiivse lausearvutusliku süllogismi mitte-valiidset vormi. Tegemist on sedavõrd levinud eksitusega, et sellel on lausa oma ladinakeelne nimi, mida võib tõlkida kui “peale seda, järelikult selle pärast” (Post hoc ergo propter hoc). Selle süllogismi vähem naljakas rakendus oleks:
P1: Kui patsiendil on gripp, siis on tal (tõenäoliselt) palavik [\(A \rightarrow B\)]
P2: palavik [B]
J1: gripp [A]
J2: tõenäoliselt gripp [P(A) on kõrge]
Paraku kumbki järeldus ei kehti.
Teine ja palju kavalam katse lausearvutusliku loogika abil teaduslikku mõtlemist mudeldada kuulub teadusfilosoof Karl Popperile. Et Popperi mudelit tutvustada, alustame valiidsest (ehkki mitte tingimata kehtivast) deduktiivsest argumendist ladinakeelse nimega Modus Ponens
P1: \(A \rightarrow B\)
P2: \(A\)
J: \(B\)
Ehk,
P1: kõik mehed on sead (kui mees, siis siga)
P2: Aristoteles on mees
J: Aristoteles on siga
Et modelleerida üldist ja alati kehtivat loodusseadust, mis oli Popperi jaoks teaduslik teooria par excellence, seondub selle argumendiga probleem, millest oli teadlik juba Aristoteles. Kui me tahame tõsikindlalt näidata, et kõik mehed on tõepoolest sead, siis peame minema induktiivset rada ja testima tõepoolest kõiki mehi, nii praegusi, eilasi, kui homseid selles osas, kui palju nad sigu meenutavad.
P1: 1. mees on siga
P2: 2. mees on siga
…..
Pn: n-s mees on siga
J: Kõik mehed on sead
See ei ole paraku teostatav.
Popper püüdis probleemi lahendada, tuues sisse valiidse deduktiivse argumendi vormis Modus Tollens:
P1: \(A \rightarrow B\)
P2: \(\neg B\)
J: \(\neg A\)
ehk:
P1: kõik mehed on sead
P2: Aristoteles ei ole siga
J: Aristoteles ei ole mees
Aga seda võib vaadata ka nii: Kui me eeldame, et Aristoteles siiski on mees, ja et Aristoteles ei ole siga, siis argumendi valiidsuse päästmiseks teeme järelduse, et P1 on väär (st kõik mehed ei ole teps mitte sead). Sellisel viisil loogilise vastuolu lahendamine on täiesti lubatud ja soositud tegevus.
Seega oli Popperi retsept teadlastele (loe: füüsikutele)
postuleeri üldine teooria vormis: kõik X-d on Y.
Dedutseeri sellest mõni teaduslikult testitav alamteooria vormis \(x_i\) on Y.
Juhul kui me suudame empiiriliselt näidata, et see alamteooria on väär, oleme sellega deduktiivselt ümber lükanud ka üldise teooria kehtimise.
Seda skeemi illustreerib hästi Enrico Fermi tsitaat:
If your experiments succeed in provig the hypothesis,
you have made a measurement; if they fail to prove
the hypothesis, you have made a discovery.
Sellist suure teooria ümber lükkamist kitsama haardega alamteooria testimise läbi nimetatakse teooria falsifitseerimiseks. Siit tuleneb ka Popperi ettepanek teaduse ja mitte-teaduse eristamiseks: kõik teaduslikud teooriad peavad olema vähemalt põhimõtteliselt falsifitseeritavad (sest muidu ei saaks neid Popperi teadusliku mõtlemise mudeli abil ümber lükata), millest tuleneb omakorda, et mida lihtsam on teooriat falsifitseerida, seda “teaduslikum” see teooria on. Näiteks teooria, mille kohaselt igal kolmapäeval kell 14:00 sajab Ilmatsalu ilmajaamas 3 mm õllevihma, on suurepäraselt falsifitseeritav ja seega super-teaduslik. Igal juhul lõi Popper kõigepealt teadusliku mõtlemise formaalse mudeli ja teatas seejärel, et kuna see mudel töötab ainult teatud struktuuriga teooriate peal, siis kallid teadlased, palun ajage oma teooriad õigesse vormi või leppige sildiga “mitte-teaduslik”.
Teine häda oli see, et alamteooria ümber lükkamiseks viisil, mis kindlustab Modus tollensi kehtimise, peame olema absoluutselt kindel, et me oleme selle päriselt ümber lükanud. Seega peame oleme täiesti kindlad, et meie katseaparatuur teeb seda, mida me tahame, et mõõtmisviga ei vii meid ekslikele järeldustele jne. Popperil oli selle vastuväite osas öelda seda, et olgu peale, me peame kasutama eeldusi, mille kehtimises me ei saa kindlad olla, aga vähemalt põhimõtteliselt oleme me nõus iga sellise eelduse avama ja läbi vaatama, kui selleks peaks vajadus tekkima. Senikaua kui see on nii, on Popperi järgi tegu teadusega. Seega me eeldame, et Modus Tollens töötab nagu kellavärk, aga ainult mõtlemise mudeli piires. Tegelikus teaduslikus praktikas ei saa siiski millegile kindel olla!
Falsifitseerimise kui teadusliku mõtlemise mudeli põhiline ja ületamatu puudus on, et see töötab lausearvutusliku loogika raames, mis tähendab, et see jääb paratamtult hätta teooriatega, mis ennustavad millegi juhtumist tõenäosuslikult. Näiteks teooria, mille kohaselt suitsetamine põhjustab kopsuvähki, aga mitte igal suitsetajal (suitsetamise põhiline suremust tõstev mõju on läbi südamehaiguste, mitte vähi). Lausearvutuses ei ole ühtegi mehhanismi tõenäosuslike propositsioonidega töötamiseks ja Popperi, kes oli mõnede arvates oma põlvkonna nutikaim filosoof, 70 aastat kestnud pingutused selline mehhanism luua jooksid liiva.
10.8 Lausearvutusest tõenäosuste loogikasse
Mis juhtub, kui meie premiss ei ole mitte “kuu on tehtud juustust” vaid “kuu on võib-olla tehtud juustust”, ehk “meil on andmeid, et kuu on tehtud juustust”, ehk “kuu on tõenäoliselt tehtud juustust”? Sellisel juhul ei ole loogiline järeldus “A” ehk “A = TRUE”, vaid hoopis “võib-olla A” ehk “tõenäoliselt A” ehk “P(A) = [reaalarv 0 ja 1 vahel]”. Lausearvutuse reeglid eeldavad, et premissid on kas tõesed või väärad, ehk premisside (ja järelduste) tõenäosused tohivad omada vaid kahte väärtust: 1 ja 0. Seega ei saa me siin lausearvutust rakendada ja vajame teistsugust loogikat, mis võimaldaks ebakindlate premisside põhjal teha ebakindlaid järeldusi. See tähendab, et me vajame tõenäosusteooriat.
Kui lausearvutus töötab must-valges tõene-väär maailmas, siis tõenäosusteooria opereerib halli varjunditega. Tõenäosusteoorialt kui loogika laienduselt ootame, et see annaks meile järeldused kujul “A tõenäosus” (P(A)) või “A tõenäosus, juhul kui kehtib B” (P(A I B)). Lisaks ootame, et alati, kui tõenäosused on fikseeritud ühe ja nulliga, annaks tõenäosusteooria välja samad järeldused kui lausearvutus. Üldiselt tahame me mõlema loogika puhul sama: konverteerida premissid parimateks võimalikeks järeldusteks, mida saaksime (küll mingil määral ja mööndustega) formaalse mudeli maailmast ka päris maailma üle kanda.
Lausearvutus on deduktiivne süsteem, kus järelduse tõesus sisaldub juba premissides. Kui loogik on tõese järelduseni jõudnud, siis see järeldus on igavene – seda ei saa muuta uusi premisse või andmeid lisades. Seda omadust nimetatakse loogika monotoonilisuseks. Teisisõnu, lausearvutuslik loogika on mõtlemise mudel, mis ei sisalda kahtlusi ega isegi võimalust kahtlusteks. Selline mudel ei ole ilmselgelt see, mida otsib teadlane, kes peab oma järeldusi tegema mittetäieliku informatsiooni tingimustes.
Tõenäosusteooria on matemaatika haruna deduktiivne aksiomaatiline süsteem, aga mõtlemise mudelina kasutatakse seda hoopiski induktiivsel moel. See tähendab, et me püüame piiratud andmete põhjal jõuda ebakindlatele järeldustele, aga seejuures seda ebakindlust tõenäosustega kvantifitseerides. Uusi andmeid lisades saame me oma episteemilise ebakindluse (“episteemiline ebakindlus” tähendab, et segadus asub meie peas, mitte maailma ülesehituses) määra muuta, aga ainus viis saavutada tõsikindlust (ja monotoonilisust), on tuues arvutusse sisse null- ja ühiktõenäosused. Seega on tõenäosusteooriat mõtlemise mudelina rakendades teaduslikus praktikas üsna võimatu jõuda tõsikindlatele järeldustele. Ja inimesed, kes teaduses opereerivad lausearvutusliku loogikaga (ja seega ei mõtle tõenäosuslikult), eeldavad vaikimisi, et nende jaoks on teadus matemaatikat meenutav tõsikindel süsteem, mis oma sisendites (katseskeemid, andmed, nende analüüs) ei sisalda ebakindlust. Samas, ka meie, kes me kasutame tõenäosusteooriat, peame eeldama, et see on vaid mõtlemise mudel, mitte teaduslik mõtlemine ise oma ehedal kujul. Kohe, kui keegi mõtleb välja parema mudeli, hakkame kõik kasutama seda. Aga senikaua peame õppima tõenäosusteooriat ja selle praktilist edasiarendust, mida kutsume Bayesi statistikaks.