Professional Documents
Culture Documents
Loogika
Loogika
Loogika
Mtlemisest testamiseni
Tnu Tamme, Tanel Tammet, Rein Prank
Tartu likooli Kirjastus
Raamat valmis Eesti Teadusfondi ja Avatud Eesti Fondi toetusel.
Keeletoimetaja Leelo Jago
Kaane kujundanud Lemmi Koni
Autorite postiaadressid: tqnu@cs.ut.ee (Tnu Tamme)
tammet@cs.chalmers.se (Tanel Tammet)
prank@cs.ut.ee (Rein Prank)
c 1997 Tnu Tamme, Tanel Tammet, Rein Prank
ISBN 9985-56-231-3
Kaas: Postimehe reprokeskus / Travere Trkikoda
Trkk: O Greif
Kide: Tartu likooli Kirjastuse trkikoda
Tellimus nr. 29
Autorid kasutasid kljendamiseks ssteemi L
A
T
E
X ning trkikirju
Times, MathTime ja LucidaSans-Typewriter.
Eessna
Maailma esimest raamatut predikaatarvutuse kohta Begriffs-
schrift, 1879 alustab autor ja arvutuse looja, Gottlob Frege,
snadega: Teadusliku te tunnetus kib reeglina lbi mitmed
tsikindluse astmed . . . kindlaim testusviis on ilmselt puhtloo-
giline, mis kigist asjade eriomadustest krvale vaadates tugineb
ainuksi nendele seadustele, millel phineb kogu tunnetus ldse.
Oma mistekirja sisuliselt, ndisaegses thenduses identsu-
sega krgemat jrku predikaatarvutuse vajalikkust phjendab
ta vrdluses tavakeelega: Pdes rangeimal viisil jrgida neid
nudeid (testuskigu augutus), leidsin ma takistusena ees keele,
mis . . . mida keerulisemaks muutusid seosed, seda vhem lubas
saavutada mu eesmrkide nutavat tpsust . . . Seost minu miste-
kirja ja tavakeele vahel arvan vivat kige selgemaks teha mikro-
skoobi vrdluses silmaga. Viimane on kasutuse ulatuse, liikuvuse
tttu, millega suudab end kohandada kige erinevamate asjaolu-
dega, suuresti le mikroskoobist . . . Niipea aga kui teaduslikud
eesmrgid pstitavad krgeid nudmisi eraldusvime teravusele,
osutub silm ebapiisavaks. Mikroskoop on just sedalaadi eesmr-
kideks tiuslikult kohandatud, aga just seetttu kigiks teisteks
kasutusklbmatu. Nii ongi see mistekiri kindlateks teaduslikeks
eesmrkideks leiutatud abivahend, mida selleprast ra ei tule
plata, et ta teistsugusteks ei klba.
Kesolev eestikeelne loogikaraamat peab siis lubades en-
dale analoogiat olema see teaduslikku tpsust vimaldav
mikroskoop tnapevaselt tiustatud kujul; ehk kll esmajoones
kooli-otstarbeks mteldud.
Mida temaga teha saab? Kellele teda vaja lheb sest nagu
vi Eessna
teldud, kigeks ja kigile ta ju ei klba? Muidugi ja esmajoo-
nes on see raamat matemaatikutele, sest matemaatika, tpsemalt,
aritmeetika aluste uurimiseks, oligi mttekiri esialgselt mteldud.
Kuid loogika on arenenud ja matemaatika koos temaga ning
loogika kasutus ei piirdu enam matemaatika alustega, loogika ise
on iseseisev, omaenda sisemiste impulsside ajendil arenev teadus,
mille otsesed praktilised rakendusvimalused, niteks programmee-
rimises ja tehisintellektis, on hsti teada. Loogika loomisega pani
aga Frege muu hulgas aluse tiesti uuele mtlemisviisile, loso-
feerimismoodusele, mille heks tunnuseks on see, mida tnapeval
nimetatakse lingvistiliseks prdeks.
Lingvistilises prdes sndinud filosoofia, olgu ta spetsiaalselt
keele-, matemaatika- vi vaimufilosoofia, ei ole viljeldav ilma
loogilise aparatuuri abita.
Tnapeva filosoofilt nutav matemaatiline ettevalmistus ei
ole mahult viksem fsikult nutavast ettevalmistusest. Kuid
vajaminevad erialad on erinevad: filosoofi matemaatiline pagas
haarab esmajoones matemaatilist loogikat.
Arvan, et just filosoofide rm kesoleva raamatu ilmumisest
on suurim.
On muidugi loogikapeatkke, mis huvitab losoofe enam, ja
neid, mis vhem. Peale ldise lause- ja predikaatarvutuse, mis
iseendastmistetavalt kuulub hariduse juurde, on losoo erilisse
huvipiirkonda haaratud niteks mudelite teooria, mitmesugused
intensionaalsed loogikad (modaal- ja ajaloogikad), intuitsionistlik
loogika, semantika erinevad probleemid (Tarski teteooria) jpm.
Kuid humanitaarteadustegi vajadus loogika jrele on kasvanud.
Filosooa lingvistiline pre tmbab kaasa ka lingvistika. Kllap
ei ole lingvistide rm selle raamatu valmimise le palju viksem
losoode omast, kuigi nende spetsiilisi huve on ehk materjali-
valikus vhem silmas peetud. Kuid raamat niisugusel kujul, nagu
talle just on antud, ei olegi meldud erialade rahuldamiseks,
oma olulises osas sisaldab ta (ka vljaspool klassikalise loogika
peatkki) klassikalist materjali, mida niihsti matemaatik, lo-
soof, lingvist, kui mne teisegi eriala asjatundja miks mitte
fsikki p e a b valdama.
24.11.96
Madis Kiv
Sisukord
Eessna v
1. Sissejuhatus 1
1.1. Loogika aine . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2. Loogika ajalugu . . . . . . . . . . . . . . . . . . . . . . 19
I Klassikaline loogika 53
2. Loogika phimisted 55
2.1. Philised loogikaseadused . . . . . . . . . . . . . . . . . 55
2.2. Vasturkivus ja mittevasturkivus . . . . . . . . . . . . 57
2.3. Arutlus ja jreldus . . . . . . . . . . . . . . . . . . . . . 58
2.4. Arutluste kehtivus ja korrektsus . . . . . . . . . . . . . 59
2.5. Lausete loogiline tesus ja vrus . . . . . . . . . . . . 61
2.6. Lausete ekvivalentsus . . . . . . . . . . . . . . . . . . . 62
2.7. Matemaatilised seosed . . . . . . . . . . . . . . . . . . . 62
2.8. lesanded . . . . . . . . . . . . . . . . . . . . . . . . . . 64
3. Lausearvutus 65
3.1. Lausete anals . . . . . . . . . . . . . . . . . . . . . . . 65
3.2. Lausearvutuse tehted . . . . . . . . . . . . . . . . . . . . 68
3.3. Lausearvutuse sntaks ja semantika . . . . . . . . . . . 76
3.4. Lausevormid ja arutlusvormid . . . . . . . . . . . . . . . 80
3.5. Lausearvutuses mittevljendatavad seosed . . . . . . . . 83
3.6. Tevrtustabelid . . . . . . . . . . . . . . . . . . . . . . 85
3.7. Tautoloogia, kontradiktsioon ja kontingentne lause . . . 88
3.8. lesanded . . . . . . . . . . . . . . . . . . . . . . . . . . 92
viii Sisukord
4. Predikaatarvutus 94
4.1. Predikaadid ja konstandid . . . . . . . . . . . . . . . . . 95
4.2. Kvantorid . . . . . . . . . . . . . . . . . . . . . . . . . . 98
4.3. Predikaatarvutuse sntaks . . . . . . . . . . . . . . . . . 100
4.4. Tarski semantika . . . . . . . . . . . . . . . . . . . . . . 102
4.5. Loogiline ruut . . . . . . . . . . . . . . . . . . . . . . . 108
4.6. Sllogismid . . . . . . . . . . . . . . . . . . . . . . . . . 112
4.7. Korduv kvantifitseerimine . . . . . . . . . . . . . . . . . 114
4.8. Signatuur ja interpretatsioon. Struktuuri ja struktuuride
klassi teooria . . . . . . . . . . . . . . . . . . . . . . . . 115
4.9. Lplikud struktuurid . . . . . . . . . . . . . . . . . . . . 121
4.10. Reaalarvude jrjestuse elementaarteooria . . . . . . . . . 123
4.11. lesanded . . . . . . . . . . . . . . . . . . . . . . . . . . 126
5. Klassikalised tuletusreeglid 130
5.1. Tuletusreeglid . . . . . . . . . . . . . . . . . . . . . . . . 131
5.2. Konditsionaalne testus . . . . . . . . . . . . . . . . . . 140
5.3. Kaudne testus . . . . . . . . . . . . . . . . . . . . . . . 144
5.4. Predikaatarvutuse tuletusreeglid . . . . . . . . . . . . . . 146
5.5. Formaalne ja mitteformaalne testus . . . . . . . . . . . 154
5.6. Aksioom ja mudel . . . . . . . . . . . . . . . . . . . . . 157
5.7. Aksiomatiseerimisteooria . . . . . . . . . . . . . . . . . . 164
5.8. lesanded . . . . . . . . . . . . . . . . . . . . . . . . . . 165
6. Tuletusssteemid 168
6.1. Hilberti tpi tuletus . . . . . . . . . . . . . . . . . . . . 168
6.2. Loomulik tuletus . . . . . . . . . . . . . . . . . . . . . . 172
6.3. Gentzeni sekventsiaalne arvutus . . . . . . . . . . . . . . 174
6.4. Tesuspuu . . . . . . . . . . . . . . . . . . . . . . . . . . 179
II Matemaatiline loogika 185
7. Matemaatiline induktsioon 187
7.1. Induktiivne testus . . . . . . . . . . . . . . . . . . . . . 187
7.2. Duaalsus . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
8. Lausearvutuse tielikkus 192
8.1. Lausearvutuse korrektsus ja mittevasturkivus . . . . . 193
8.2. Lausearvutuse tielikkus . . . . . . . . . . . . . . . . . . 193
Sisukord ix
9. Mittelahenduvad probleemid 196
9.1. Turingi masin . . . . . . . . . . . . . . . . . . . . . . . . 197
9.2. Mittelahenduvad probleemid . . . . . . . . . . . . . . . . 201
9.3. Predikaatarvutuse mittelahenduvus . . . . . . . . . . . . 208
10. Aritmeetika mittetielikkus 213
10.1. Formaalne aritmeetika . . . . . . . . . . . . . . . . . . . 213
10.2. Gdeli teoreemid aritmeetika mittetielikkusest . . . . . 217
11. Krgemat jrku loogika 221
11.1. Aritmeetika kui teist jrku teooria . . . . . . . . . . . . 221
11.2. Teist jrku loogika . . . . . . . . . . . . . . . . . . . . . 222
11.3. Kompaktsusteoreem . . . . . . . . . . . . . . . . . . . . . 223
11.4. Vljendatavus teist jrku loogikas . . . . . . . . . . . . 224
11.5. Tbiteooria . . . . . . . . . . . . . . . . . . . . . . . . . 226
11.6. Matemaatiline teooria . . . . . . . . . . . . . . . . . . . 228
11.7. Rakendused arvutiteaduses ja programmeerimises . . . . 229
11.8. lesanded . . . . . . . . . . . . . . . . . . . . . . . . . . 230
III Mitteklassikaline loogika 233
12. Modaalloogika 235
12.1. Modaalsed operaatorid . . . . . . . . . . . . . . . . . . . 235
12.2. Modaalloogika seadused . . . . . . . . . . . . . . . . . . 237
12.3. Vimalike maailmade semantika . . . . . . . . . . . . . 239
12.4. Tuletused modaalloogikas S5 . . . . . . . . . . . . . . . 241
12.5. Kanooniline tlge predikaatloogika keelde . . . . . . . . 244
12.6. Erinevad tuletusssteemid . . . . . . . . . . . . . . . . . 245
12.7. Modaalne predikaatloogika . . . . . . . . . . . . . . . . 247
13. Intuitsionistlik loogika 249
13.1. Sissejuhatus . . . . . . . . . . . . . . . . . . . . . . . . . 249
13.2. Kaks testuse nidet . . . . . . . . . . . . . . . . . . . . 252
13.3. Intuitsionistlik loogikaseoste mistmine . . . . . . . . . 254
13.4. Intuitsionistlik predikaatarvutus . . . . . . . . . . . . . . 256
13.5. Kripke mudelid . . . . . . . . . . . . . . . . . . . . . . . 258
13.6. Rekursiivne realiseeritavus. Nelsoni teoreem . . . . . . . 261
13.7. lesanded . . . . . . . . . . . . . . . . . . . . . . . . . . 265
14. Hgusloogika 266
14.1. Soriitide paradoksid . . . . . . . . . . . . . . . . . . . . 266
14.2. Hgusloogika semantika . . . . . . . . . . . . . . . . . . 268
x Sisukord
15. Mittemonotoonne loogika 273
15.1. McCarthy nide . . . . . . . . . . . . . . . . . . . . . . 273
15.2. Nite formaalne ksitlus . . . . . . . . . . . . . . . . . . 276
15.3. Suletud maailm . . . . . . . . . . . . . . . . . . . . . . . 280
15.4. Piiramine . . . . . . . . . . . . . . . . . . . . . . . . . . 283
15.5. Vaikimisi-loogika . . . . . . . . . . . . . . . . . . . . . . 284
15.6. Autoepisteemiline loogika . . . . . . . . . . . . . . . . . 286
15.7. lesanded . . . . . . . . . . . . . . . . . . . . . . . . . . 286
16. Lineaarloogika 287
16.1. Tegevuste ja situatsioonide kordumatus . . . . . . . . . 287
16.2. Kaks konjunktsiooni ja disjunktsiooni . . . . . . . . . . 289
16.3. Lineaarne eitus . . . . . . . . . . . . . . . . . . . . . . . 290
16.4. Sekventsiaalne tuletus . . . . . . . . . . . . . . . . . . . 291
16.5. Lineaarloogika vljendusvimsus . . . . . . . . . . . . . 293
16.6. lesanded . . . . . . . . . . . . . . . . . . . . . . . . . . 294
IV Loogika rakendusi programmeerimises ja
tehisintellektis 295
17. Automaatne teoreemitestamine 297
17.1. Eesmrgid . . . . . . . . . . . . . . . . . . . . . . . . . . 298
17.2. Sissejuhatus resolutsioonimeetodisse . . . . . . . . . . . 299
17.3. Resolutsioonimeetodi strateegiad ja rakendused . . . . . 327
17.4. Niteid ja rakendusi . . . . . . . . . . . . . . . . . . . . 335
18. Loogiline programmeerimine ja Horni disjunktid 346
18.1. Prolog . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348
19. Funktsionaalne programmeerimine ja vrdusssteemid 366
19.1. Deduktsioon ja reduktsioon: termiteisendusssteemid . . 367
19.2. Lambda-arvutus . . . . . . . . . . . . . . . . . . . . . . . 376
19.3. Kombinatoorne loogika . . . . . . . . . . . . . . . . . . 382
lesannete vastused 387
Kirjandus 390
Indeks 395
1. Sissejuhatus
Puhta loogika eesmrk on olla ige kigis vima-
likes maailmades, mitte ainult selles veidersegases
vaevarikkas maailmas, kuhu juhus meid on heitnud.
Loogik peab eneses alal hoidma teatud annuse juma-
likkust: ta ei tohi alanduda selleni, et teha jreldusi
enese mber nhtust.
B. Russell, Sissejuhatus matemaatilisse filosoo-
fiasse
Kui loogika oleks olemas isegi juhul, kui maailma ei
oleks, siis kuidas saab loogika olemas olla olukorras,
kus maailm on olemas?
L. Wittgenstein, Tractatus Logico-Philosophicus
1.1. Loogika aine
Esimene ksimus, mis meil esitada tuleb, on ksimus loogika
ainest. Mis asi on loogika, ja mida loogikateadus uurib? Sageli
jaotatakse loogika aine mitmesse eraldiseisvasse gruppi: matemaa-
tiline loogika, losooline loogika, dialektiline loogika jne. Meie
raamat ksitleb peamiselt matemaatilist ehk formaalset loogikat,
mis on tnapeva loogikateaduse tuum ja arenenuim osa. Seejuures
on losooline loogika matemaatilise loogikaga vga tihedas suh-
tes ning ht ei saa olla ilma teiseta: matemaatiline loogika on alati
2 1. Sissejuhatus
ka losooline loogika, ning n. mittematemaatiline losooline
loogika on samas oluline matemaatilise loogika jaoks.
Tuleme tagasi loogika aine juurde. Lhidalt ja robustselt eldes
uurib loogika mtlemise kige fundamentaalsemaid aspekte. Mis
asi mtlemine ieti on ja mis on tema fundamentaalsed aspektid?
Mtlemist uurivad paljud distsipliinid, niteks pshholoogia, ning
miks mitte ka ajalugu ja kirjandusteadus. Loogika eripraks on
uurida, mida ldse saab melda ja mida melda ei saa vik-
sime elda, et loogika uurib puhast ehk tielikult abstraheeritud
mtlemist.
Loogika, mtlemise ja maailma suhete skaalal on mitu vas-
taspoolust: hel pool seisab loogika kui jumaliku, paratamatu
ning maailmast sltumatu te uurimine, teiselt poolt aga ei pse
loogika asjaolust, et loogikud on konkreetsed inimesed reaalses
maailmas ning neile omased fundamentaalsed mtlemisprintsiibid
ei pruugi olla needsamad, mis kujutletavatel kosmoses hljuvatel
limtlejatel.
1.1.1. Mtlemine
Vaimne tegevus ehk ajutegevus ei koosne kunagi ainult sihipra-
sest mtlemisest: suurem osa inimajust tegeleb igasuguste muude,
samuti vga oluliste asjadega, nagu silmanrvidest saabunud ku-
jutise anals, kne sntees, assotsiatsioonide otsimine mlust,
instinktimehhanismide jrgimine jne. jne. Isegi juhul, kui seda
kike peaks koordineerima meile tundmatu mittemateriaalne juma-
lik vaim, jb nimetatud vaim ikkagi ainult heks vaimse tegevuse
komponendiks. Tegelik mtlemisprotsess, nagu me enda peal ko-
geme, koosneb tuhandetest protsessidest, mida mtleja reeglina ei
teadvusta teadvus on vaimse tegevuse jme pisike veepinnale
ulatuv nurk.
Igasugune vaimne tegevus nagu ka igasugune protsess ldse,
ei ole kindlasti mitte alati mtlemisprotsess. Poolunes lebamist,
toidu ja veini nautimist ning mlestustes uitamist ei saa nime-
tada mtlemiseks selle sna ldkasutatavas thenduses. Snaga
1.1. Loogika aine 3
mtlemine thistatakse enamasti sihiprast vaimset tegevust mingi
kuigivrd selgelt kirjeldatava probleemi lahendamiseks.
Ei ole vimalik elda, mis asi on mte vi defineerida selgelt
mtlemist kui niisugust. Mida me saame teha, on tuua niteid nii
mtlemisest kui sellisest vaimsest tegevusest, mida mtlemiseks
nimetada ei saa. Ma vin niteks melda, et praegu sajab
siinsamas ues vihma, ma kaalun vhem kui sada kilo vi et
kaks pluss kaks on neli. Ma vin melda:
Kui kik inimesed on surelikud ja kui mina olen inimene,
siis ma olen surelik.
Aga ma ei saa melda:
Kui kik inimesed on surelikud ja kui mina olen inimene,
siis ma ei ole surelik.
Samamoodi ei saa melda:
Sellest, et ma olen, jreldub, et ma ei ole,
Praegu sajab siinsamas ues vihma ja ei saja vihma.
Viimased kolm videt on meldamatud ehk absurdsed. Need
vited on kahtlemata olemas kui laused, mida saab lugeda ja
mille le saab melda, aga neid endid melda ei saa: taoliste
lausete tlemine vi uskumine on kll vaimne tegevus, aga
mitte mtlemine selle sna ldkasutatavas thenduses. Ma ei saa
tunnetada, et need laused viksid olla tesed.
Mtlemise sna laiemalt mistes vib rkida igest ja
valest mtlemisest, kuid selle hinnaks on sna thenduse hgus-
tumine: kui ma saan melda A on ja A ei ole ning neli on
seesama mis viis, miks mitte siis juba igasugust vaimset tegevust
mtlemiseks nimetada. Kuna loogika seisukohast pole meie termi-
noloogiline probleem kriitiline, jtame siinkohal keelelosoolise
arutelu katki.
4 1. Sissejuhatus
1.1.2. Induktsioon ja deduktsioon
Laias laastus saab mtlemismehhanisme jagada kahte phirhma:
ldistuste ja jrelduste tegemine.
ppimine ehk ldistuste tegemine ehk induktsioon
Mrgates, et paljud asjad, millega me kokku puutume, esinevad
kas enamasti vi alati koos, ldistame selle kokkusattumuse sageli
reegliks. Laps jtab kiiresti meelde, et knlaleegi puudutamisele
jrgneb valuaisting: paarist kokkusattumusest on ta moodustanud
enda jaoks reegli, s.t. ra ppinud, et leegi puudutamine teeb
haiget. Keeleppimine kib enamvhem samamoodi: kui ema ja
isa tlevad sk enamasti sellises olukorras, kus parajasti sa
pakutakse, vi kui nad sk eldes toidule osutavad, jtab laps
mne aja prast meelde seose sgi enda ja sna sk vahel.
Enamikul igapevaselt pitud reeglitel on paraku omadus
erandlikes olukordades mitte kehtida: reeglitel on reeglina erandid.
Vanemas eas pib laps oma llatuseks, et leegi puudutamine ei
olegi alati valus: kui srm leegist hsti kiiresti lbi vuhistada
(eriti veel siis, kui ta eelnevalt mrjaks teha), ei saa ldsegi
haiget. Igaks teab, et lindudel on omadus lennata, aga mitte
alati: pingviinid ja jaanalinnud reeglina ei lenda, samuti ei lenda
surnud linnud. Erandina erandist lendab jmerest krgele kaldale
vljahppav pingviin ikkagi paar sekundit. Ja nii edasi ja nii edasi:
reeglitel on erandid, eranditel on erandid, ning viimastel omakorda
erandid, kuni lpmatuseni.
ldistuste tegemine ehk induktsioon on seega mtlemisprot-
sess, mis ei anna mingeid kindlaid teadmisi. ldistuste edukus
on statistiline: mida sagedamini selliselt leitud reegel kehtib, seda
parem, aga ei maksa loota, et ta alati kehtib. Sellele vaatamata on
ppimine ja ldistamine inimese ning muu eluslooduse jaoks ilm-
selt kige suurema thtsusega mtlemisprotsess ldse. Nii linnas
kui metsas on kiire reageerimine olulisem kui pikk aeganudev
mtisklemine.
1.1. Loogika aine 5
Kokkuvtteks: induktsioon kui statistilisi ning paratamatult
ebakindlaid tulemusi andev mtlemismehhanism ei kuulu formaal-
loogika uurimissfri. Tasub aga meelde jtta, et lalkasutatud
snal induktsioon on ka teine thendus matemaatilise indukt-
siooni nol. Viimane on tpne miste, mis annab alati igeid
resultaate: sellisena kuulub ta loogika olulisemate uurimisobjektide
hulka.
Reeglite rakendamine ehk jrelduste tegemine ehk deduktsioon
Jreldamise mistel ja jrelduste tegemisel on loogikas funda-
mentaalne koht: loogikat huvitav mtlemisprotsess on reeglina
suunatud lihtsatest faktidest vi videtest keerulisemate jrelda-
misele. Seetttu on suur osa loogikas sagedamini kasutatavatest
reeglitest esitatud jrelduse vormis: he vi mitme vite tesusest
jreldub hoopis uus vide. Loogikareeglite kasutamist uute videte
jreldamiseks nimetatakse sageli nende videte tuletamiseks ehk
testamiseks.
Inimene ja muu elusloodus on keeruliste jrelduste tegemise
jaoks palju halvemini kohastunud kui uute umbkaudsete reeglite
ppimisele. Jrelduste tegemine vtab palju aega, kuna enamikus
olukordades on meil kasutada suur hulk reegleid ning neid reegleid
saab kombineerida vga mitmel viisil. Tulemuseni pdlemine
sarnaneb labrindis ekslemisega: mida sgavamat ja keerulisemat
jreldust me teha pame, seda rohkem on teel vimalikke
eksiradu, mis tulemuseni ei vii, aega aga raiskavad kll.
Erinevalt induktsioonist garanteerib igete reeglite rakendamine
igetele faktidele alati ka ige tulemuse. Takistuseks on ainult
eelnevalt mainitud suur ajakulu ning probleem, kas meie reeglid ja
faktid ise on iged, samuti, kas neid reegleid ja fakte on piisavalt
palju. Valedelt faktidelt ning ekslike reeglite abil ei ole vimalik
teha igeid jreldusi. Suur osa loogikat ongi seetttu phendatud
kindlasti igete reeglite otsimisele.
6 1. Sissejuhatus
1.1.3. Mtlemise paratamatud aspektid
Loogika uurib mtlemise paratamatuid aspekte ehk seda, mis
ldse teeb mtlemisest mtlemise ehk ige mtlemise. Enamik
meie vaimsest tegevusest ilmselt ei ole paratamatu, vaid sltub
tujust, ilmast, haridusest ja muudest taolistest pooljuhuslikest tegu-
ritest. Sestap on oluline eraldada kasvi vga vike hulk mtlemise
komponente, ilma milleta kuidagi lbi ei saa ja mis on kindlasti,
alati ja igal juhul iged. Kui me niisugused algkomponendid oleme
kord eraldanud, saame neid loodetavasti kasutada ha suuremate
paratamatult ige mtlemise konstruktsioonide ehitamiseks.
Mtlemise fundamentaalsete aspektide eraldamisega tegi tea-
daolevalt algust vanakreeka losoof Aristoteles. Raamatus Loo-
gika loetleb ta hulga mtlemise kaheldamatult igeid reegleid,
mida kasutades saab veenduda kllalt keeruliste mtlemiskonst-
ruktsioonide igsuses.
Ksime nd, millised viksid olla need ige mtlemise
baaskomponendid. Esiteks tegeleb loogika kui teadus mtlemise
selliste meetoditega, mida saab videtena kirja panna. Uurides
mtlemise fundamentaalseid aspekte, ei juaks me kuigi kaugele,
kui htteist vahel selgelt kirja ei saaks panna.
Vited, mis on paratamatult iged, on seda sageli oma ehituse
tttu. Niteks on vide Kui praegu sajab vihma, siis praegu sajab
vihma ige sltumata sellest, kas praegu ka tegelikult vihma
sajab vi ei. Praegu sajab vihma asemele viksime uuritavas
vites samahsti kirjutada Kaks pluss kaks on neli vi Kaks
pluss kaks on viis, uuritav vide jks ikka teseks. Kuna meid
huvitab esmajoones videte ldine ehitus, siis kasutame ndsest
kokkulepet, et need vite osad, mida vib suvaliselt asendada,
thistatakse suurte thtedega, mida nimetatakse lausemuutujateks.
Niisiis on alati ehk tautoloogiliselt ige jrgmine:
Kui vide A on ige, siis on vide A ige
ehk lhemalt ja peaaegu ekvivalentselt
A-st jreldub A.
1.1. Loogika aine 7
Nagu eldud, thistab lausemuutuja A siin suvalist videt: A sisust
vi igsusest meie suurema vite igsus ei sltu. Viimane on ige
oma ehituse ehk vormi ehk struktuuri tttu.
Samamoodi on oma ehituse tttu iged
Kui A ja B, siis A;
Ei ole tsi, et A ja mitte A;
Juba vanas Kreekas tuntud jreldusreegel modus ponens:
Kui A-st jreldub B, ning A on tsi, siis on ka B tsi.
Muutujad A ja B thistavad siin jllegi suvalisi viteid.
Toodud nidetes moodustasime viteid sidesnade ja, ei,
ning jreldub ehk kui . . . siis abil. Sellised sidesnad vasta-
vad ilmsesti mtlemise teliselt fundamentaalsetele kategooriatele,
ilma milleta me mtlemist ette kujutada ei oska. Lisaks taolistele
sidesnadega mrgitud kategooriatele sisaldab mtlemine ilmselt
veel hulga teisigi keeles vljendatavaid kategooriaid. Eriti olu-
lised paistavad olevat konstruktsioonid, mida saab moodustada
kigi, olemasolemise ja omaduse abil. Nide triviaalsest
test (eeldusel, et mingid asjad on ldse olemas):
Kui kigil asjadel on omadus P, siis on olemas asi, millel
on omadus P.
Viimane vide on ige konstruktsiooni tttu, P sisust sltumata:
P vib olla omadus olla punane kala vi omadus kas mitte
olla arv vi olla viiest suurem arv, see asja ei muuda. Samas
ilmselt ei ole tsi vide
Kui on olemas asi, millel on omadus P, siis on kigil
asjadel omadus P.
Vaatame jreldust kahest eeldusest:
1. eeldus: iga koer on imetaja.
2. eeldus: mned neljajalgsed on koerad.
8 1. Sissejuhatus
Jreldus: mned neljajalgsed on imetajad.
See tuletus on ige oma konstruktsiooni tttu, sltumata snade
nagu neljajalgne, koer ja imetaja sisust. Viimased vib vlja
vahetada:
1. eeldus: iga anarhist on vabaabielu pooldaja.
2. eeldus: mned valitseva partei liikmed on anarhistid.
Jreldus: mned valitseva partei liikmed on vabaabielu pooldajad.
Tuletuse struktuuri vib seega esitada muutujate x, y ja z abil
ning tuletus on ige sltumata fraasidest, millega neid muutujaid
asendada:
1. eeldus: iga x on y.
2. eeldus: mni z on x.
Jreldus: mni z on y.
1.1.4. Videte formaalne esitus
Loogikas uuritavad tuletused ei koosne enamasti he reegli he-
kordsest rakendamisest, vaid mitme reegli mitmekordsest raken-
damisest: tuletus ehk testus koosneb lihtsatest osadest, kuid
moodustab tervikuna omaette keerulise struktuuri.
Keerulise tuletusstruktuuri esitamine inimkeelsete lausetena
muudab esimese vga suureks, kohmakaks ja raskesti mistetavaks.
Loogikas on seetttu kasutusel spetsiaalsed formaalsed keeled, mis
on harilike keeltega vrreldes lhemalt kirjapandavad. Mis kige
thtsam: formaalsed keeled vldivad harilikus keeles esinevaid
mitmethenduslikkusi. ks nide: 6. sajandil e.m.a. elanud Ldia
kuningas Krsus uuris Delfi oraaklilt jrele, kas tasub minna
sjakigule Prsia vastu. Oraakel tles: Kui alustad sda Prsiaga,
hvitad vimsa kuningriigi. Oraaklilt julgustust saanud Krsus
rndaski Prsiat, kuid kaotas. Hvis nimelt tema enda kuningriik!
Lihtsustatuse tttu on formaalsed keeled harilike keeltega
vrreldes palju vaesemad ning vimaldavad edasi anda ainult vga
1.1. Loogika aine 9
piiratud ampluaaga viteid. ks lihtsamaid formaalseid keeli on
lausearvutuse keel. Viimases saab viteid moodustada lihtviteid
thistavatest thtedest loogilise thendusega sidesnu (ja, vi, ei,
kui . . . siis) thistavate smbolitega (&, , , ).
Mainitud olulistel sidesnadel endilgi ei ole harilikus keeles
tpset thendust. Vi esineb sageli thenduses kas see vi
teine. Lause Ta on punapine vi meessoost on harilikus
keelekasutuses kohatu. Klassikalise loogika jaoks on formaalne
vide A B ige siis ja ainult siis, kui vhemalt ks videtest A
ja B on ige; seejuures vivad ka mlemad korraga iged olla.
Loomuliku keele jreldussuhe erineb samuti formaalsest. Lause
Kuu peal on lehmi, jrelikult olen ma kolm meetrit pikk on
loomuliku keele mttes vr, kuna sna jrelikult ei sobi panna
asjade vahele, mis ilmselt pole omavahel phjuslikus seoses.
Klassikalise loogika jreldussuhe A B on aga ige siis ja ainult
siis, kui kas B on ige vi A on vale: teiste snadega, B A.
Kui kuu peal lehmi pole, siis on lause Kuu peal on lehmi
ma olen kolm meetrit pikk formaalselt ige, A ja B phjuslik
suhe pole seejuures oluline.
Lisaks mainitud klassikalisele loogikale on hulk mitteklassika-
lisi loogikaid, kus videte tesus ja loogikatehete nagu ja
tpne thendus on deneeritud hoopis teisiti. Mitmed mitteklas-
sikalised loogikad pavad tabada elementaarsete loogikatehete
igapevast thendust, niteks jreldussuhte phjuslikku iseloomu.
Niteid: Lause Kui A ja B, siis A pannakse kirja kui
(A& B) A. lalmainitud jreldusreegli saab kirja panna kui
((A B) & A) B
Vaatame jrgmisena olukorda, kus meil on teada, et kehtivad
jrgmised kolm lausearvutuse keeles esitatud videt:
(1) A
(2) A B
(3) B C
Esimesest kahest saab jreldusreegliga tuletada formaalselt vite B,
10 1. Sissejuhatus
ning B ja vide (3) annavad jreldusreegli abil lpuks vite C.
Viimase tuletussammu formaalseks lbiviimiseks asendasime j-
reldusreeglis muutujad A ja B muutujatega B ning C.
Enamik loogikaharusid kasutab lausearvutuse keele rikastatud
variante, mis lubavad kirja panna mrksa keerulisemaid viteid,
kui vimaldab puhas lausearvutus. Olulisem neist rikkamatest for-
maalsetest keeltest on predikaatarvutuse keel, milles saab rkida
objektidest, nende omadustest ja omavahelistest suhetest.
Keerulisemad formaalsed keeled vimaldavad vljendada veel
samasust, paratamatust, vimalikkust, teadmist ja aega, suhtuda
videtesse kui objektidesse, kasutada vaikimisireegleid jne. P-
himtteliselt on vimalik konstrueerida kuitahes keerulisi ja vl-
jendusrikkaid formaalseid keeli, kuid kseerimata ning pidevalt
areneva loomuliku keelega vrreldes jb mistahes formaalne keel
alati piiratuks.
Kuivrd loogika uurib mtlemise fundamentaalseid ja abstrakt-
seid omadusi, siis on formaalse keele piiratus loogika seisukohast
kasulik. Formaalses keeles moodustatud tuletus ehk testus on
selgepiiriline matemaatika vahenditega uuritav objekt, ning ena-
mikku formaalset loogikat nimetatakse uurimismeetodi jrgi sageli
matemaatiliseks loogikaks.
1.1.5. Teste lausete tuletamisalgoritm
Formaalsete keelte kasutamisel loogikas pole motivatsiooniks mitte
ainult nende keelte lihtsus ja tuletuste selge ning hemtteline
struktuur. Formaalseid keeli kasutatakse ju laialdaselt ka loogikast
vljaspool, niteks arvutite programmeerimisel: kik programmee-
rimiskeeled on formaalsed keeled.
Loogikas kasutatakse selliseid formaalseid keeli, mille jaoks
on vimalik konstrueerida algoritm (s.o. selged, hemttelised,
mehhaaniliselt jrgitavad juhised) igete lausete konstrueerimiseks,
s.t. iga niisuguse keele K jaoks konstrueeritakse algoritm M,
millega saab kontrollida, kas suvaline keeles K kirjutatud vide
on ige vi ei. Taoline algoritm esitatakse enamasti loogikareeglite
koguna.
1.1. Loogika aine 11
Keerulises formaalses keeles kirjutatud keerulised vited
vivad vljendada ka olulisi ning pris keerulisi probleeme. Meh-
haanilise, arvutiga teostatava kontrolli vimalus vib tunduda vga
ahvatlev, kuid siin tuleb arvestada, et keeruliste lausete igsuse
kontroll on vga tmahukas lesanne ning et enamiku teliselt
huvitavate videte (kasvi enamiku senilahendamata matemaati-
kaprobleemide) igsuse automaatne kontrollimine ei ole tnapeva
arvutitele jukohane. Phimtteliselt on automaatne kontroll kll
vimalik, kuid see vib vtta arvutil aega sadu miljardeid aastaid,
s.t. sageli pole mingit lootust seda tegelikult kasutada. See ei
thenda muidugi, et lootust ldse pole: mnda liiki suhteliselt
lihtsamate videtega saab arvuti mistliku aja jooksul hakkama.
Videte igsuse automaatsest kontrollimisest rkides tuleb
vahet teha igete videte igsuse testamisel ja valede videte
mitteigsuse testamisel. Esimene probleem (igete videte ig-
suse testamine) on algoritmiga mehhaniseeritav, teine probleem
(valede videte mitteigsuse testamine) aga pole keerulisemate
formaalsete keelte (niteks predikaatarvutuse keel) jaoks mehha-
niseeritav. Viimasel juhul suudavad algoritmid osa videte jaoks
nidata, et need pole iged, kuid nad ei suuda nidata seda kigi
valede videte jaoks, vaid jvad halvemal juhul igavesti tle,
mingitki resultaati andmata.
Niisuguse asmmeetria phjuseks on asjaolu, et keerulisemate
formaalsete keelte jaoks saab kirjutada algoritmi kigi teste vi-
dete tuletamiseks, mitte aga kigi valede videte tuletamiseks.
Teste videte tuletamise algoritmi skeem on ldjuhul jrgmine:
alustatakse lplikust hulgast elementaarsetest baastdedest ehk
aksioomidest. Aksioomidele rakendatakse tuletusreegleid, mis ka-
sutavad teadaolevaid ehk juba tuletatud teseid viteid. Sel viisil
saadakse uued tesed vited, mida saab nd omakorda kasutada
tuletusreeglite eeldustena. Kui meid huvitav vide V on tene,
siis thendab see, et nimetatud vide taolise protsessi kigus ka
kskord tuletatakse. Kui V aga pole tene, siis seda muidugi ei
tuletata ning meil oleks vaja mingil viisil testada, et videt V
antud tuletusalgoritmiga tuletada ei saa. ldjuhul pole aga vi-
12 1. Sissejuhatus
malik anda algoritmi, mis sellise testuse iga V jaoks alati leida
suudaks.
Kokkuvtteks: loogika uurib selliseid formaalseid keeli, mille
jaoks suudetakse kirja panna selles keeles kirjutatud igete vi-
dete tuletamise algoritm. Loogika kasutatav keel kib alati paaris
mehaanilise mtlemise mehhanismiga; keelest ja tuletamismehha-
nismist koosnevat paari nimetatakse teooriaks ehk arvutuseks. Ar-
vutust, mille iga lause jaoks saab algoritmiliselt lahendada, kas ta
on tene vi vr, nimetatakse lahenduvaks (nide: lausearvutus),
lejnuid nimetatakse mittelahenduvaks (nide: predikaatarvutus).
1.1.6. Lihtsatest videtest ehitatakse keerulisi
Meie nited olid siiamaani triviaalsed ja lugejal vib tekkida
kahtlus, kas selliste triviaalsuste uurimine saab elda midagi
olulist mtlemise vi ldse millegi kohta. Vastuseks tleme, et
loogika alustab teadlikult triviaalsustest ning mida triviaalsematest,
seda parem: nende igsuse suhtes ei teki kellelgi mingeid kahtlusi.
Oluline on, et loogika ei j triviaalsuste juurde pidama, vaid
nitab, kuidas neist konstrueerida ha keerulisemaid ja sisukamaid
viteid. Viimaste igsus on sageli kike muud kui triviaalne (tegu
vib olla niteks keeruliste teoreemidega matemaatikas), aga iga
ksik samm tema konstruktsioonis on triviaalselt arusaadav ja
ige.
Sugulussidemed
Vtame esimeseks nitevaldkonnaks sugulussidemete kontrollimise
lesande. Et midagi kontrollida, peab meil kigepealt olema kuskilt
vtta andmebaas, kus hulga inimeste jaoks kirjas, kes on tema ema
ja kes on isa. Sellise andmebaasi saab kirja panna kui suure vite
stiilis Leena Tammik on Jaan Tammiku ema ja Mihkel Tammik
on Jaan Tammiku isa ja Jaan Tammik on Mart Tammiku isa ja
Maia Kask on Ants Kase ema ja Mihkel Tammik on Ants Kase isa
ja . . . . Predikaatarvutuse formaalses keeles mrgitakse asjaolu,
1.1. Loogika aine 13
et objektidel x ja y on suhe P jrgmiselt: P(x, y). Sugulaste
andmebaas neb predikaatarvutuse keeles vlja niimoodi:
ema(Leena_Tammik,Jaan_Tammik) &
isa(Mihkel_Tammik,Jaan_Tammik) &
isa(Jaan_Tammik,Mart_Tammik) &
ema(Maia_Kask,Ants_Kask) &
isa(Mihkel_Tammik,Ants_Kask) &
. . .
Vanaisaks ja vendadeks olemise saab defineerida jrgmiste
videtega:
x on y vanaisa siis ja ainult siis, kui on olemas selline z,
et x on z isa ja z on y isa vi z on y ema.
Predikaatarvutuse keeles: xy (vanaisa(x,y)
z (isa(x,z) & (isa(z,y) ema(z,y))) ). Fraas
x thendab iga x-i jaoks kehtib, x thendab on olemas
selline x, et . . ..
x on y vend siis ja ainult siis, kui kas on olemas selline z,
et z on x isa ja y isa vi kui on olemas selline u, et u on
x ema ja y ema.
Predikaatarvutuse keeles: xy (vend(x,y)
z (isa(z,x) & isa(z,y)) u (ema(u,x) &
ema(u,y)) ).
sjatoodud definitsioonides thistavad vikesed thed x, z, y ja u
suvalisi inimesi.
Nd saame leida kindlasti igeid vastuseid ksimustele
sugulussidemete kohta, mis tulenevad meie andmebaasist. K-
simusele Kas Mihkel Tammik on Mart Tammiku vanaisa?
jaatava vastuse andmiseks tuletame vite Mihkel Tammik on
Mart Tammiku vanaisa ehk predikaatarvutuse keeles vana-
isa(Mihkel_Tammik,Mart_Tammik). Tuletamise juures kasu-
14 1. Sissejuhatus
tame mehhaaniliselt, ilma omapoolsete lisaarutlusteta meile ette-
antud andmebaasi ning loogika elementaarselt teseid viteid. Sel-
leks asendame vanaisasuhet deneerivas vites muutuja x nimega
Mihkel_Tammik, muutuja y nimega Mart_Tammik ja muutuja z
nimega Jaan_Tammik. Vanaisa denitsiooni kahepoolsest jrel-
dussuhtest lheb meil tarvis ainult vasakpoolset . Seega
saame vanaisareegli meie jaoks vajaliku esialgse erikuju
vanaisa(Mihkel_Tammik,Mart_Tammik)
isa(Mihkel_Tammik,Jaan_Tammik) &
(isa(Jaan_Tammik,Mart_Tammik)
ema(Jaan_Tammik,Mart_Tammik)).
Lauseosa (isa(Jaan_Tammik,Mart_Tammik)
ema(Jaan_Tammik,Mart_Tammik)) tuletamiseks piisab
sellest, kui testada isa(Jaan_Tammik,Mart_Tammik). Reegli
lpliku erikujuna kasutame jrgmist:
vanaisa(Mihkel_Tammik,Mart_Tammik)
isa(Mihkel_Tammik,Jaan_Tammik) &
isa(Jaan_Tammik,Mart_Tammik).
Viimased kaks videt on meie sugulussidemete andmebaasis
olemas, ning jreldusreegliga saame seetttu tuletada vana-
isa(Mihkel_Tammik,Mart_Tammik).
Vib muidugi ksida, kust peaksime teadma, et z-ks sobib
nimelt Jaan_Tammik. Sellelaadsetele ksimustele vastuse leid-
mine on nimelt see, mis tegeliku testamise vga tmahukaks
muudab. ldiselt ei ole muud tkindlat varianti kui kigi vima-
luste mehhaaniline jreleproovimine, s.t. kuni tulemus kes pole,
tuleb katseliselt asendada z nii Mihkel, Mart, Jaan, Leena, Maia
Tammiku kui ka Ants Kasega.
Tuumajaama kontrollssteem
Vtame teiseks nitevaldkonnaks praktilise probleemi tuumaelekt-
rijaamadega. Sellistes suurtes jaamades on keerukad mitmekordselt
dubleeritud juhtimis- ja kaitsessteemid, mis peavad garanteerima,
1.1. Loogika aine 15
et kunagi ei juhtuks nnetusi. Iga niisuguse ssteemi saab kirja
panna suure hulga elementaarsete videtena. Ksimuse kaitsess-
teemide endi korrektsuse kohta saab pstitada kui ksimuse, et
kas nnetus on tkorras kaitsessteemi korral vlistatud. Selli-
sele ksimusele kindlasti ige vastuse leidmine on vga oluline
ja samas vga keeruline ning siin kasutataksegi sageli arvutite
abi. Arvutiga ptakse tuletada vide Juhtimisssteemi korrekt-
sust kinnitav vide jreldub juhtimisssteemi kirjeldavate videte
hulgast, kasutades abivahenditena ainult elementaarseid, kindlasti
teseid viteid.
Mistagi ei garanteeri kaitsessteemide korrektsuse testamine,
et kaitsessteemi hoopiski vlja ei llitata, misjrel nnetus vib
juhtuda kigele vaatamata. Selle vltimiseks oleks vaja kirjeldada
detailselt kigi inimeste ja ehk koguni kogu maailma olekut ja vi-
malikku kitumist. Kui teoreetiliselt viks niisugune kirjeldus olla
ehk isegi vimalik, siis praktiliselt on seda vimatu konstrueerida,
kasutamisest rkimata: kirjeldus oleks lootusetult suur.
Tisarvudega tegelev matemaatika
Vtame kolmandaks nitevaldkonnaks harilike tisarvudega tege-
leva matemaatika. Nimetame sellist sorti matemaatikat aritmee-
tikaks. Aritmeetika valdkonnas deneeritakse liitmis- ja korruta-
mistehted ning hakatakse seejrel teoreeme testama. Lihtsaimad
teoreemid on harilikud arvutuslesanded, nagu
Kas 2 15 = 25?
Kas (3 + 4) 7 = 85?,
keerulisemad aga privad arvude ja tehete ldiste omaduste jrele,
nagu
Kas iga arvu x ja arvu y jaoks kehtib x +y = y +x?
Kas algarve on lpmatu hulk?
16 1. Sissejuhatus
Fermat nn. suur teoreem, mida keegi pole veel testada
suutnud: iga kahest suurema tisarvu x jaoks kehtib vide:
ei leidu selliseid nullist suuremaid tisarve u, v ja w, et
kehtiks u
x
+v
x
= w
x
, +, ; =, kus smbol
thistab jrgmise
arvu leidmise funktsiooni f (x) = x + 1. Muidugi eeldatakse, et
116 4. Predikaatarvutus
signatuuri deneerimisel kseeritakse iga funktsionaalsmboli ja
predikaatsmboli jaoks ka argumentide arv. Aritmeetika signatuu-
ris on funktsionaalsmbol
hekohaline, teised funktsionaalsm-
bolid ja predikaatsmbol = kahekohalised. Kik kolm smbolite
hulka vivad ldiselt olla nii lplikud kui lpmatud. Konstant-
ja funktsionaalsmbolite hulgad vivad mnikord olla ka thjad.
Predikaatsmbolite hulk peab sisaldama vhemalt he elemendi,
et oleks vimalik moodustada valemeid.
Valemi miste deneerimisel skeem eriti ei muutu. Ainult
predikaatide argumentide kohale lubatakse lisaks konstantidele ja
muutujatele nd kirjutada ka terme: muutujatest ja konstantsm-
bolitest funktsionaalsmbolite abil moodustatud avaldisi. Nii saab
formaalses aritmeetikas niteks moodustada valemi
xyz [x + 0
= y & x +y
= z].
Tavaliselt konstrueeritakse esimest jrku keele signatuur min-
gist vaatluse all olevast matemaatilisest struktuurist lhtudes nii,
et ta sisaldaks teoorias formuleeritavate videte jaoks vajalikke
thiseid. Sealjuures vidakse ka signatuur deneerida formaalselt
kitsamana ja toetuda sellele, et mnda predikaati saab vljen-
dada signatuuri smbolite kaudu. Niteks kui universumiks on
naturaalarvude hulk = {0, 1, . . .}, siis saame predikaadi x < y
vljendada valemiga
(x = y) &z (y = x +z)
laltoodud signatuuris, predikaadi x y = z aga valemiga
x = y +z. Nii vime vltida suure hulga smbolite lisamist
ja saavutada, et signatuur ja valemite hulk antud keeles oleks
teoreetilise uurimist jaoks piisavalt kompaktne.
Edasi on selge, et he ja sama keele abil on vimalik rkida
erinevatest struktuuridest. Niteks sellesama aritmeetika signatuuri
valemitega vime vljendada ka fakte tisarvude, ratsionaalarvude
vi reaalarvude universumi kohta. Algebras on ka kombeks seada
hele ja samale tehtemrgile vastavusse erinevaid (isegi samal
hulgal deneeritud) operatsioone. Muidugi vib universumi vi
signatuuri smbolite thenduse varieerimine kaasa tuua seda, et
4.8. Signatuur ja interpretatsioon 117
mingi valem on hes interpreteeringus tene ja teises vr. Natu-
raalarvudel vr valem xy [x = y
, kus M on suvaline
mittethi hulk (interpretatsiooni kandja), mida mistetakse indi-
viidide piirkonnana, ja I
0, kui c on paarisarv,
1, kui c on paaritu arv,
korrutamismrki mistame tavalisel viisil, mrki + aga kui liitmist
arvu 2 jgiklassiringis, s.t.
+ 0 1
0 0 1
1 1 0
(tavalist liitmist ei saa siin kasutada, kuna M ei ole liitmise suhtes
kinnine hulk); predikaatsmboleid = ja < mistame tavalisel viisil.
118 4. Predikaatarvutus
lesanded
1. Leida jrgmiste valemite tevrtused igahes kolmest eelmises
nites vaadeldud interpretatsioonist:
(a) 0 = 2;
(b) 1 + 2 = 3;
(c) 1 + 5 = 2;
(d) x(x < x + 1);
(e) xy (x < y);
(f) xy (y < x);
(g) xy [x < y z (x < z & z < y)];
(h) xyz (x +y = x +z y = z);
(i) xyz (x +z = y).
Olgu M struktuur signatuuris . Struktuuri M esimest jrku
teooriaks (M elementaarteooriaks) nimetatakse kigi sellel struk-
tuuril teste valemite hulka:
Th (M) = { A | A on valem ja M |= A}.
Niteks laltoodud valem xyz [x + 0
= y & x +y
= z]
kuulub naturaalarvude esimest jrku teooriasse, aga valem
xy [x = y
i=1
B
i
.
3d. Disjunktsiooni saame olemasolukvantori alt vlja tuua:
x
0
k
i=1
B
i
(x
0
) =
k
i=1
x
0
B
i
(x
0
).
4.10. Reaalarvude jrjestuse elementaarteooria 125
3e. Elimineerime kvantori igast valemist x
0
B
i
(x
0
) eraldi.
Kigepealt saame kvantori alt vlja tuua need konjunktsiooni B
i
liikmed, mis ei sisalda muutujat x
0
:
x
0
B
i
(x
0
) = C
i
&x
0
D
i
(x
0
).
3f. Vaatleme x
0
D
i
(x
0
). Siin D
i
(x
0
) on konjunktsioon ato-
maarsetest valemitest kujul x
0
< x
j
, x
0
= x
j
ja x
j
< x
0
.
3f1. Tesed liikmed x
0
= x
0
vime vlja jtta. Kui leidub
liige x
0
< x
0
, siis on konjunktsioon kohe vr.
3f2. Kui konjunktsioonis leidub liige kujul x
0
= x
j
, kus j = 0,
siis x
0
D
i
(x
0
) = D
i
(x
j
) ja kvantor on elimineeritud.
3f3. Kui konjunktsioonis on ainult hesuunalisi vrratusi, s.o.
D
i
(x
0
) on kujul
&
j
(x
j
< x
0
) vi kujul &
j
(x
0
< x
j
),
siis on x
0
D
i
(x
0
) valemi (5) phjal tene.
3f4. Kui konjunktsioonis leidub nii liikmeid kujul x
j
< x
0
kui
ka kujul x
0
< x
k
, siis vidab x
0
D
i
(x
0
), et x
0
saab paigutada ki-
gist elementidest x
j
paremale ja kigist elementidest x
k
vasakule.
Tiheduse (4) tttu on see vimalik parajasti siis, kui on tene
valem
&
{ j,k | leidub liige xj < x0 ja leidub liige x0 < xk }
(x
j
< x
k
),
s.t. vime x
0
D
i
(x
0
) asendada selle valemiga, kus pole kvantorit
ega x
0
.
Sellega on lemma testatud ja saame seestpoolt vljapoole
elimineerida kik kvantorid.
Jreldus 4.15. (teoreemist ja testusest). Ratsionaalarvude jrjes-
tuse teooria on elementaarselt ekvivalentne reaalarvude jrjestuse
teooriaga ja samuti lahenduv.
Testuses me ei kasutanud mingeid muid reaalarvude jrjestuse
struktuuri omadusi kui ainult valemite (1)(5) tesust. Aga need
valemid kehtivad ka ratsionaalarvude jrjestuse kohta ja seega
126 4. Predikaatarvutus
arvutab konstrueeritud algoritm samuti valemi tevrtuse rat-
sionaalarvudel. Muuhulgas oleme saanud nite mitteisomorfsetest
elementaarstruktuuridest. kshest vastavust nende struktuuride
vahel ei saa olla sel phjusel, et ratsionaalarvude hulk on loenduv,
aga reaalarvude hulk kontiinumi vimsusega.
Jreldus 4.16. Valemid (1)(5) kujutavad endast tielikku aksio-
maatikat, sest nende kehtimisest jreldub antud signatuuri iga
valemi tevrtus.
4.11. lesanded
1. Nidake arutluste kehtivust:
(a) x (Fx & Gx)
Fa
Ga
(b) x (Px & Qx)
x (Px & Rx)
x (Rx & Qx)
(c) x (Px Qx)
Pa
Ra
x (Rx & Qx)
2. (C. H. Papadimitriou) Olgu meil kasutada binaarne predikaat
(p, t) (p-d saab narritada ajal t). Abraham Lincoln on
telnud
You can fool some people all of the time,
and all of the people some of the time, but
you cannot fool all of the people all of the
time.
(Te saate alati narritada mnda inimest ja mnikord kiki ini-
mesi, kuid te ei saa alati narritada kiki inimesi.)
4.11. lesanded 127
(a) Formaliseerige Lincolni tluse pessimistlik variant (leidub
inimene, keda saab alati narritada) ja optimistlik variant
(sellist inimest ei leidu, kuid alati on olemas inimene,
keda saab narritada).
(b) Testage, et ks nendest variantidest jreldub teisest.
3. Formaliseerige koolimatemaatika vited. (Allikad: III, IV ja V
klassi pikud, 19871990.)
(a) *Summa ei muutu, kui muudame liidetavate jrjekorda.
(b) *Kui summast lahutame he liidetava, siis saame teise lii-
detava.
(c) Korrutis ei muutu, kui muudame tegurite jrjekorda.
(d) *Kui ks tegur on vrdne 1-ga, siis korrutis on vrdne
teise teguriga.
(e) Kui ks tegur on vrdne nulliga, siis korrutis on vrdne
nulliga.
(f) Paarisarvule jrgneb ja eelneb paaritu arv.
(g) Summa korrutamiseks arvuga vime korrutada liidetavad
eraldi ja korrutised liita.
(h) Selle asemel, et lahutada arvust summa, vin enne lahu-
tada he liidetava ja siis teise liidetava.
(i) Kui arvu ristsumma jagub 3-ga, siis arv jagub 3-ga, vasta-
sel juhul mitte.
4. Formaliseerige koolimatemaatika vited. (Allikas: V klassi pik.
Nurk, Telgmaa, 1990.)
(a) Lbi iga kahe punkti vib tmmata sirge ja sealjuures ai-
nult ks kord.
(b) Lbi antud punkti saab antud sirgele joonistada ainult he
ristsirge.
(c) Kui kaks sirget tasandil on risti he ja sama sirgega, siis
need kaks sirget on paralleelsed.
128 4. Predikaatarvutus
(d) (Paralleelide aksioom.) Vljaspool sirget asetsevat punkti
lbib ainult ks sirge, mis on paralleelne antud sirgega.
5. Vljendada predikaadid signatuuris = 0, 1; +, ; = eeldusel,
et universumiks on reaalarvude hulk .
(a) x 0;
(b) x y;
(c) x < y;
(d) x .
6. Vljendada predikaadid signatuuris = ; ; =, eeldusel, et
universumiks on naturaalarvude hulga kigi osahulkade hulk
( ).
(a) X = ;
(b) X = ;
(c) X Y = Z;
(d) X Y = Z;
(e) X (Y Z) = V;
(f) X Y = ;
(g) X = Y;
(h) X \ Y = Z;
(i) |X| = 1;
(j) |X| = 2.
7. Vljendada predikaadid signatuuris = ; , ; = eeldusel,
et universumiks on naturaalarvude hulga kigi osahulkade hulk
( ).
(a) X = ;
(b) X = ;
(c) X Y;
(d) X = Y;
4.11. lesanded 129
(e) X \ Y = Z.
8. Olgu kseeritud hulk M ja olgu A, B, C M, D M M.
Thistagu A(x), B(x) ja C(x) vastavalt x A, x B ja x C,
D(x, y) aga (x, y) D. Signatuur koosnegu predikaatsmboli-
test A, B, C, D ja vrdusmrgist. Vljendada:
(a) A = B;
(b) A B;
(c) A B;
(d) A B = C;
(e) A B = C;
(f) A \ B = C;
(g) A = B;
(h) A = ;
(i) A = M;
(j) A B = ;
(k) |A| = 1;
(l) |A| = 2;
(m) AB D;
(n) D AB;
(o) AB = D.
9. Selgitage, kuidas saab predikaatarvutusse tuua kvantorid vhe,
palju ja enamus.
5. Klassikalised
tuletusreeglid
Siin on selge, et kuri on karjas, kui pildis oleva
ebareegliprasuse leidmine phineb automatiseerunud
seosteahela veatul kivitumisel.
Andreas Walden
Bentham oskas asju koost lahti vtta, ta ei usku-
nud ldistusi, igal juhul mitte enne, kui nad tema
meetodi abil testust polnud leidnud. Tema eesmrk,
konstrueerida selline keel, mis oleks oma lihtsuses ja
lbipaistvuses arusaadav kigile, ji kll saavutamata,
kuid selle poole pdmine tundub tnapeval lausa
kangelaslik.
Toomas Raudam
Arutluste kehtivuse kontrollimiseks on palju vimalusi. Eelne-
valt ngime, kuidas seda saab teha kigi variantide lbivaatamise
teel. Lausearvutuse korral on selleks sstemaatiline meetod
tevrtustabelid. Nende koostamine on aga vga tmahukas.
Kui arutlus sisaldab 3 lausemuutujat, siis tuleb tevrtustabe-
lis tita 8 rida. n muutuja korral on aga vaja tita 2
n
rida.
Mnikord aitab hdast vlja kiirkontrolli meetod, kuid arutluste
kehtivuse kontrollimine on halvimal juhul ikka eksponentsiaalse
ajakeerukusega. Me tleme sellisel juhul, et lausearvutuse lau-
sete loogilise tesuse kontrollimise probleem lahendub raskesti.
5.1. Tuletusreeglid 131
Alonzo Church (19031995) testas, et predikaatarvutuse kor-
ral on analoogiline probleem mitte raskesti lahenduv, vaid ldse
mittelahenduv. Selleprast kasutatakse arutluste kehtivuse kont-
rollimiseks meetodeid, mille abil on lootust lahendada probleem
reaalse ajaga. Kasutatakse mitmesuguseid formaalseid tuletusss-
teeme, millest efektiivsemaks peetakse tesuspuude meetodit ja
resolutsioonimeetodit. Paljud eelistavad aga nende asemel mne
loomuliku tuletuse ssteemi kasutamist.
5.1. Tuletusreeglid
Suur osa tuletusreeglitest on prit Aristotelese loogikast. Seep-
rast kasutatakse nende reeglite thistamiseks sageli ladinakeelseid
nimetusi.
Vaatleme niteks lausearvutuses arutlust
Kui Anul on hea tuju, siis on Peeter nnelik.
Kui Peeter on nnelik, siis Anu ja Peeter
mngivad kabet vi joovad teed.
Anul on hea tuju, kuid Anu ja Peeter ei mngi
kabet.
Anu ja Peeter joovad koos teed.
Selle arutluse saab formaalselt kirja panna kujul
1. A P
2. P (K T )
3. A& K
T
kus lausearvutuse valemid on nummerdatud ja lausemuutujad on
thistatud vastavate snade esithtedega. Selle arutluse korral on
lihtne nha, miks ta kehtib:
132 5. Klassikalised tuletusreeglid
4. A (3. lause phjal) Anul on hea tuju.
5. P (1. ja 4. phjal) Peeter on nnelik.
6. K T (2,5) Anu ja Peeter mn-
givad kabet vi joo-
vad teed.
7. K (3) Anu ja Peeter ei
mngi kabet.
8. T (6,7) Anu ja Peeter joovad
koos teed.
Arutluse kehtivuse kontrollimiseks oleks tulnud tita 16-realine
tevrtustabel. Praegu piisas aga 8-realisest tuletusest. Me kasu-
tasime selles nites mitut tuletusreeglit. Neljanda ja seitsmenda
lause saamiseks kasutasime lihtsustamisreeglit
p & q
p
vi
p & q
q
(Simp).
Viienda ja kuuenda lause saamiseks kasutasime reeglit modus
ponens:
p q, p
q
(MP).
Kaheksanda valemi saime aga disjunktiivse sllogismi reegli abil:
p q, p
q
vi
p q, q
p
(DS).
Siit selguvad tuletustele iseloomulikud jooned. Tuletus on
lausete jada, kus iga lause on kas eeldus vi saadud temale jadas
eelnevatest lausetest mingi tuletusreegli abil. Kui eelduste hulgast
saab tuletada jrelduse p, siis pannakse see lhidalt kirja kujul
p.
Nimetame ka tuletusreeglite thtsamad omadused:
Korrektsus. Iga tuletusreegel on kehtiv arutlusvorm, s.t. ta
silitab oma argumentide tesust.
5.1. Tuletusreeglid 133
Kompaktsus. Reegleid ei tohi olla liiga palju. Neid peab
olema lihtne meelde jtta.
Tuletusssteemi tielikkus. Reeglite abil peab saama tu-
letada kik kehtivad (lausearvutuse vi predikaatarvutuse)
arutlused.
Tuletusssteemi nimetatakse vahel ka formaalseks aksiomaa-
tiliseks ssteemiks vi lihtsalt arvutuseks. Me oleme siiamaani
nimetanud lauseloogikat ja predikaatloogikat samuti arvutusteks,
silmas pidades nende ssteemide algebralisi omadusi, mis vimal-
davad tunnistada teatavad laused omavahel ekvivalentseteks ning
sooritada lausete samasusteisendusi ja asendusi.
Esimene teadaolev tuletusssteem on prit Eukleideselt
(u. 365300 e.m.a.), kes esitas aksiomaatilise ssteemi elementaar-
geomeetria jaoks. Saksa matemaatik David Hilbert (18621943)
pdis aga sajandivahetusel formaliseerida kogu kaasaegset ma-
temaatikat alates hulgateooriast ja algebrast ning lpetades mate-
maatilise analsiga. Kurt Gdel (19061978) nitas 1931. aastal,
et naturaalarvulist aritmeetikat ei saa esitada formaalse aksiomaa-
tilise ssteemina. Ta testas, et iga piisavalt vimas matemaatiline
teooria on mittetielik, s.t. selles teoorias leidub tene valem, mis
ei ole formaalses ssteemis tuletatav.
Ka Aristotelese sllogismid sobivad sellesse skeemi. Nad on
lihtsalt kahe eeldusega kehtivad tuletused. Sllogismi moodused
on meie mistes tuletusreeglid. Tuntumad neist on modus ponens
ja disjunktiivse sllogismi reegel.
Tabelites 5.1 ja 5.2 on loetletud kasutatavamad lausearvutuse
tuletus- ja asendusreeglid.
Asendusreegleid, mis esitatakse vrduste kujul, vib samuti
vaadelda kui teatud tpi tuletusreegleid. Erinevalt tavalistest tule-
tusreeglitest, mis toimivad ainult hes suunas: lemisest valemist
saab tuletada alumise valemi, saab asendusreegleid rakendada nii
vasakpoolsest valemist parempoolse valemi tuletamiseks kui ka
vastupidi. Asendusreeglite korral on vrduse kahel pool olevad
valemid loogiliselt ekvivalentsed. Seeprast vib neid reegleid
kasutada ka valemite osade asendamiseks.
134 5. Klassikalised tuletusreeglid
Reegel Lhend Reegli nimi
p & q
p
,
p & q
q
Simp Lihtsustamisreegel
p, q
p & q
Conj Konjunktsioonireegel
p q, p
q
MP Modus ponens
p q, q
p
MT Modus tollens
p q, p
q
,
p q, q
p
DS Disjunktiivne sllogism
p q, q r
p r
HS Hpoteetiline sllogism
p
p q
,
q
p q
Add Lisamisreegel
p q, r s, p r
q s
CD Konstruktiivne dilemma
Tabel 5.1. Levinumad lausearvutuse tuletusreeglid.
Teoreem 5.1 (asendusteoreem). Kui valemid p ja q on loogiliselt
ekvivalentsed ja valem r on saadud valemist s mnede valemi p
esinemiste asendamise teel valemiga q, siis on valemid r ja s
loogiliselt ekvivalentsed.
5.1. Tuletusreeglid 135
Reegel Lhend Reegli nimi
p & q = q & p Comm Kommutatiivsus
p q = q p Comm
p & (q & r) = (p & q) & r Assoc Assotsiatiivsus
p (q r) = (p q) r Assoc
p & (q r) = (p & q) (p & r) Dist Distributiivsus
p (q & r) = (p q) & (p r) Dist
p = p & p Red Liiasusreeglid
p = p p Red
p = p DN Kahekordse eituse reegel
(p & q) = p q DeM De Morgani seadused
(p q) = p & q DeM
p q = p q CE Implikatsioonireegel
p q = q p Contra mberpramisreegel
(p & q) r = p (q r) Exp Vljaviimisreegel
p q = (p q) & (q p) Bic Ekvivalentsireeglid
p q = p & q p & q Bic
Tabel 5.2. Tuntumad lausearvutuse asendusreeglid.
Testus. Valemite p ja q loogiline ekvivalentsus thendab, et
nendel valemitel on kigis vimalikes situatsioonides sama te-
vrtus. Jrelikult ei saa ka valemid r ja s loogiliselt erineda.
136 5. Klassikalised tuletusreeglid
Esitame nd mned tuletuste nited. Vaatleme arutlust
Kui ma teen tervisejooksu, siis ma ei j
haigeks.
Ma hakkan haigeks jma.
Ma ei tee tervisejooksu.
Selle jrelduse tuletamiseks toome sisse kahekordse eituse ja
rakendame seejrel reeglit modus tollens:
1. T H eeldus Kui ma teen tervisejooksu,
siis ma ei j haigeks.
2. H eeldus Ma hakkan haigeks jma.
3. H 2 DN Pole ige, et ma ei j hai-
geks.
4. T 1,3 MT Ma ei tee tervisejooksu.
Toome nite asendusreeglite erisugusest kasutamisest. Selles
tuletuses kasutatakse kommutatiivsust kui tuletusreeglit:
1. (A B) C
2. B A
3. A B 2 Comm
4. C 1,3 MP
Jrgmise tuletuse kolmandas reas rakendatakse aga asendusteo-
reemi:
1. (A B) C
2. B A
3. (B A) C 1 Comm
4. C 2,3 MP
Assotsiatiivsusreeglid vimaldavad konjunktsioonide ja dis-
junktsioonide alamvalemeid suvaliselt grupeerida ja mber jrjes-
tada. Seeprast vib paljudel juhtudel sulud ldse ra jtta.
5.1. Tuletusreeglid 137
Teoreem 5.2 (mbertstmisteoreem). Kehtivad jrgmised sama-
vrsused:
p
1
& . . . & p
n
= p
m1
& . . . & p
mn
,
p
1
. . . p
n
= p
m1
. . . p
mn
,
kus m
1
, . . . , m
n
on indeksite jada 1, . . . , n suvaline mberjrjestus
(ehk permutatsioon) ja vrduse mlemale poole jvates valemites
vib kasutada suvalist (lubatud) sulgude paigutust.
Niteks jrgmises tuletuses on kik esimesest valemist tuleta-
tud valemid esialgse valemiga ekvivalentsed:
1. (A B) (C D)
2. A (B (C D)) 1 Assoc
3. (B (C D)) A 2 Comm
4. ((B C) D) A 3 Assoc
5. (B C) (D A) 4 Assoc
6. (C B) (D A) 5 Comm
Asendusreeglitega saab viia kik lausearvutuse valemid heselt
mratud standardkujule: kas tielikule disjunktiivsele normaalku-
jule vi tielikule konjunktiivsele normaalkujule.
Definitsioon 5.3. Literaalideks nimetatakse atomaarseid valemeid
ja nende eitusi. Elementaardisjunktsiooniks nimetatakse literaalide
disjunktsiooni ning elementaarkonjunktsiooniks literaalide kon-
junktsiooni. Valem on disjunktiivsel normaalkujul (DNK), kui ta
on elementaarkonjunktsioonide disjunktsioon:
m
i=1
l
i1
& . . . & l
im
i
,
ning valem on konjunktiivsel normaalkujul (KNK), kui ta on
elementaardisjunktsioonide konjunktsioon:
m
&
i=1
l
i1
. . . l
im
i
.
138 5. Klassikalised tuletusreeglid
Lausemuutujaid X
1
, . . . , X
n
sisaldav valem on tielikul dis-
junktiivsel normaalkujul, kui ta on disjunktiivsel normaalkujul,
mille iga elementaarkonjunktsioon sisaldab kiki lausemuutujaid
X
1
, . . . , X
n
, s.t. iga elementaarkonjunktsioon on kujul
X
1
1
& . . . & X
n
n
,
kus
1
, . . . ,
n
{t, v} ja
X
t
def
= X ja X
v
def
= X,
ning valem on tielikul konjunktiivsel normaalkujul, kui ta on
konjunktiivsel normaalkujul, mille iga elementaardisjunktsioon on
kujul
X
1
1
. . . X
n
n
.
Niteks valem A& (B C) on konjunktiivsel normaalkujul,
ent ta ei ole tielikul konjunktiivsel normaalkujul ega disjunk-
tiivsel normaalkujul. Valem A & B on aga nii konjunktiivsel
normaalkujul kui ka tielikul disjunktiivsel normaalkujul.
Teoreem 5.4. Iga lausearvutuse valemi saab viia disjunktiivsele
(konjunktiivsele) normaalkujule, s.t. valemi saab teisendada te-
maga ekvivalentseks disjunktiivsel (konjunktiivsel) normaalkujul
olevaks valemiks.
Testus. Valemite normaalkujule viimiseks sobib algoritm
1. Kaotame implikatsiooni- ja ekvivalentsireeglite abil valemist
implikatsioonid ja ekvivalentsid.
2. Viime eitused De Morgani seaduste ja kahekordse eituse
reegli abil vahetult lausemuutujate ette.
3. Rakendame distributiivsusreegleid, kuni kik konjunktsioo-
nid on disjunktsioonide all (disjunktsioonid on konjunkt-
sioonide all).
5.1. Tuletusreeglid 139
Niteks valem (X Y) Z teisendatakse disjunktiivsele
normaalkujule jrgmiselt:
(X Y) Z = (X & Y X & Y) Z
= (X &Y X & Y) Z
= ((X & Y) & (X & Y)) Z
= ((X Y) & (X Y)) Z
= ((X Y) & (X Y)) Z
= ((X Y) & X
(X Y) & Y) Z
= X & X Y & X X & Y
Y & Y Z.
Disjunktiivsest (konjunktiivsest) normaalkujust on mistlik vlja
jtta loogiliselt vrad elementaarkonjunktsioonid (loogiliselt te-
sed elementaardisjunktsioonid), mis sisaldavad mingit aatomit ja
selle eitust:
. . . = Y & X X & Y Z.
Samuti kustutatakse korduvad elementaarkonjunktsioonid (elemen-
taardisjunktsioonid).
Kui eesmrgiks on tieliku DNK leidmine, siis tuleb mitte-
tielikke elementaarkonjunktsioone tiendada neis puuduvate lau-
semuutujatega. Selleks korrutame igat elementaarkonjunktsiooni
iga temas puuduva muutuja T korral loogiliselt tese valemiga
T T ja kasutame distributiivsusreeglit. Tielike normaalkujude
elementaarkonjunktsioonid ja -disjunktsioonid jrjestatakse tihti ka
thestikuliselt:
. . . = Y & X & (Z Z) X & Y & (Z Z)
Z & (X X) & (Y Y)
= Y & X & Z Y & X & Z X & Y & Z
X & Y & Z Z & X & Y Z &X & Y
Z & X & Y Z & X & Y
= X & Y & Z X & Y & Z X & Y & Z
140 5. Klassikalised tuletusreeglid
X & Y & Z X & Y & Z X & Y & Z.
Valemite tielikud normaalkujud on liikmete jrjekorra tpsu-
sega heselt mratud.
lesanded
1. *Teisendage valem (X Y) Z tielikule konjunktiivsele nor-
maalkujule.
2. Testage arutluste kehtivus:
(a) C A
A S
S D
D
C
(b) D (R C)
R
C
D
5.2. Konditsionaalne testus
Kui meil on vaja tuletada implikatsiooni sisaldav lause, siis
on heks vimaluseks kasutada konditsionaalse testuse reeglit.
Vtame implikatsiooni vasakul pool oleva valemi hpoteesiks
ja pame sellest lhtudes testada implikatsiooni paremal pool
olevat valemit. Konditsionaalse e. tingimusliku testuse reegli (ka
implikatsiooni sissetoomisreegli) CP saab kirja panna kujul
, p q
p q
(CP),
kus thistab tuletuse eelduste hulka.
5.2. Konditsionaalne testus 141
n. p hpotees
. . .
m. q
m+1. p q nm CP
Joonis 5.1. Konditsionaalse testuse skeem.
Konditsionaalse testuse skeem on antud joonisel 5.1. Tu-
letuse osa alates n-ndast valemist kuni m-nda valemini sltub
hpoteesist p ja on seeprast mrgitud vasakul pstjoonega. Seda
osa tuletusest nimetatakse alamtuletuseks. Alamtuletuse lppedes
kaotavad tema valemid kehtivuse ning neid ei tohi enam tuletuses
kasutada. Alamtuletuse hpotees kaob samuti tuletuse eelduste
hulgast ra. Alamtuletuses endas vib aga kasutada kiki sel-
lest vljapoole jvaid tuletuse valemeid. Kasutades alamtuletuse
valemeid vljastpoolt saab niteks tuletada vastuolulise jrelduse:
1. A eeldus
2. A hpotees
3. A& A 1,2 Conj
Konditsionaalse testuse reegli kasutamist igustab fakt, et
valemid
(l
1
& l
2
& . . . & l
n
) (p q)
ja (l
1
& l
2
& . . . & l
n
& p) q
on loogiliselt ekvivalentsed.
Toome nite konditsionaalse testuse reegli rakendamise kohta.
Vaatleme arutlust
142 5. Klassikalised tuletusreeglid
Kui ostan laserplaadimngija, siis pean oma
kulutusi krpima vi jn vlgadesse.
Kui ostan laserplaate, siis ma ei krbi oma
kulutusi.
Kui ostan CD-mngija, siis ostan plaate.
Kui ostan laserplaadimngija, siis jn vlga-
desse.
See arutlus testatakse konditsionaalse testuse reegliga jrgmiselt:
1. L (K V) eeldus
2. P K eeldus
3. L P eeldus
4. L hpotees
5. K V 1,4 MP
6. P 3,4 MP
7. K 2,6 MP
8. V 5,7 DS
9. L V 48 CP
Konditsionaalse tuletuse saab tihti asendada tuletusega, kus
seda reeglit ei kasutata. Niteks saab vaadeldava arutluse testada
ka ilma konditsionaalse testuse reeglita:
1. L (K V) eeldus
2. P K eeldus
3. L P eeldus
5.2. Konditsionaalne testus 143
4. L K 2,3 HS
5. L (K V) 1 DN
6. L (K V) 5 CE
7. (L & K) V 6 Exp
8. (K & L) V 7 Comm
9. K (L V) 8 Exp
10. L (L V) 4,9 HS
11. (L & L) V 10 Exp
12. L V 11 Red
Konditsionaalse testuse reeglit on vaja tuletusssteemi tie-
likkuse jaoks, kuna muidu ei saaks mnesid loogiliselt teseid
valemeid formaalselt tuletada. Ilma konditsionaalse testuse reeg-
lita ei saa nidata, et
A A.
Tepoolest, peale konditsionaalse testuse reegli ei ole meie
tuletusssteemis htegi teist reeglit, mille abil seda valemit saaks
tuletada. Reegli CP abil on aga asi lihtne:
1. A hpotees
2. A A 1 CP
Selliseid valemeid, mida saab tuletada ilma htegi eeldust ka-
sutamata, nimetatakse teoreemideks. Jrelikult on valem A A
(lausearvutuse ja predikaatarvutuse) teoreem.
Pikemate arutluskikude korral vib alamtestusi olla mitu.
Siis vib ks alamtuletus olla teise alamtuletuse sees:
144 5. Klassikalised tuletusreeglid
1. A hpotees
2. B hpotees
3. A 1 DN
4. A 3 DN
5. B A 24 CP
6. A (B A) 15 CP
Kahekordse eituse sissetoomine ja vljaviimine on selles tuletuses
vajalikud, sest meil puudub reegel, mis vimaldab valemit A
dubleerida.
lesanded
1. Testage, et
(a) p q = p (p & q);
(b) p q = p q.
5.3. Kaudne testus
Kaudse testamise korral eeldatakse, et arutluse eeldused on te-
sed ja jreldus on vr (s.t. jrelduse eitus on tene) ning saadakse
sellest vastuolu. Seega peab jreldus olema tene. Sellist testus-
meetodit nimetatakse ka vastuviteliseks testamiseks (reductio ad
absurdum). Kaudne testus on matemaatikas levinud, sest seda
on sageli lihtsam teha kui otsest testust. Vtame niteks vite
Thihulk sisaldub igas hulgas H: H. Selle vite vastuvi-
telisel testamisel eeldatakse, et thihulgas leidub element, mis
ei kuulu hulka H. See on aga vastuolus thihulga denitsiooniga,
mis tleb, et temas ei ole htegi elementi. Jrelikult on vide
H tene.
Kaudse testuse skeem on toodud joonisel 5.2. Testuse
n-indas reas tuuakse sisse hpotees p ning alustatakse alam-
testust. Kui m-ndas reas saadakse vastuolu q & q, siis vib
(m + 1)-s reas tuletada kaudse testuse reegliga IP hpoteesi p
5.3. Kaudne testus 145
n. p hpotees
. . .
m. q & q
m+1. p nm IP
Joonis 5.2. Kaudse testuse skeem.
ilma eituseta. Vastuoluks sobib suvalise valemi ja selle eituse kon-
junktsioon. Mnes tuletusssteemis tuuakse vastuolu thistamiseks
sisse erismbol (niteks ).
Kaudse testuse reegli saab lejnud reeglitega asendada.
Niteks joonisel 5.2 toodud kaudsest tuletusest saab teha tavalise
tuletuse:
n. p hpotees
. . .
m. q & q
m+1. q Simp
q Simp
q p Add
p DS
p p CP
p p CE
p p DN
p Red
Jrelikult ei ole kaudse testuse reeglit tuletusssteemi tielikkuse
jaoks tarvis.
Toome nd nite kaudse testuse reeglit sisaldavast tuletusest.
Arutlus
146 5. Klassikalised tuletusreeglid
Kui riigikogu ratitseerib seaduseelnu ja pre-
sident selle kinnitab, siis see muutub seadu-
seks.
Riigikogu ratifitseeris seaduseelnu.
See ei muutunud seaduseks.
President ei kinnitanud seaduseelnud
testatakse kaudse testuse reegli abil jrgmiselt:
1. (R & P) S
2. R
3. S
4. P hpotees
5. P 4 DN
6. R &P 2,5 Conj
7. S 1,6 MP
8. S & S 3,7 Conj
9. P 48 IP
5.4. Predikaatarvutuse tuletusreeglid
Predikaatarvutuses kehtivad kik lausearvutuse tuletusreeglid, kuid
siin on ka omad spetsiilised reeglid. Kvantorite sissetoomiseks
ja eemaldamiseks tuleb valemid viia kujule, kus kvantorid asu-
vad valemi vasakus servas. Me tleme, et sellised valemid on
prekskujul e. preeneks-normaalkujul.
Kvantorite ettetoomisreeglid on koondatud tabelisse 5.3. Kvan-
torite eitamisreeglid vimaldavad viia eitusesmbolid kvantorialus-
tesse avaldistesse. Kvantorite distributiivsusreeglitega saab kvan-
torite alla viia konjunktsioonid ja disjunktsioonid. Kaks esimest
kvantorite distributiivsusreeglit on asendusreeglid, sest nende abil
5.4. Predikaatarvutuse tuletusreeglid 147
saab teha mlemasuunalisi tuletusi, kaks viimast on aga tuletus-
reeglid, sest nendega saab tuletada ainult vasakpoolsest valemist
parempoolse valemi, vastupidine tuletus ei kehti. Niteks ei saa
kvantorite distributiivsusreeglit
x (p(x) & q(x))
x p(x) &x q(x)
(QD)
kasutada teistpidi: eksistentsikvantori valemi ette toomiseks. V-
tame niteks interpretatsiooni, kus p(x) thendab, et inimene on
naissoost ja q(x), et inimene on meessoost. Siis on tuletusreegli
alumine lause tene, sest leidub nii naisi kui ka mehi, kuid
lemine lause on vr, sest kski inimene ei ole korraga nais- ja
meessoost.
Kvantorite jrjekorra muutmiseks kasutatakse kvantorite jr-
jestusreegleid. Kvantorite liigutamisreeglites eeldatakse, et x ei
esine valemites p ja q vabalt (x vib aga esineda vabalt valemites
p(x) ja q(x)).
Kui kvantoreid ei saa hegi reegliga valemi ette tuua, siis tuleb
mni kvantitseeritud muutuja asendada selles valemis mitteesi-
neva muutujaga. Kvantitseeritud muutuja asendamine on lubatud,
kui me asendame muutuja korraga nii kvantoris kui ka kvantori-
aluses avaldises. Muutujate asendamisega saab viia prekskujule
ka eespool toodud distributiivsusreegli alumise valemi:
x p(x) &x q(x) = x p(x) &y q(y)
= xy (p(x) & q(y)).
Muutujate asendamisel on oluline, et asendav muutuja ei
esineks valemis, sest muidu saaksime mittekehtiva tuletuse. Niteks
valemist
xy Sxy
ei tohi asenduse teel moodustada valemit
xx Sxx (= x Sxx),
sest esialgse valemi tesusest ei jreldu sugugi, et valem Sxy on
tene x ja y vrdsetel vrtustel. See vimaldab meil konstrueerida
148 5. Klassikalised tuletusreeglid
Reegel Lhend Reegli nimi
x p(x) = x p(x) QN Kvantorite
eitamisreeglid
x p(x) = x p(x) QN
x p(x) = x p(x) QN
x p(x) = x p(x) QN
x (p(x) & q(x)) = QD Kvantorite
distributiivsusreeglid
x p(x) &x q(x)
x (p(x) q(x)) = QD
x p(x) x q(x)
x p(x) x q(x) QD
x (p(x) q(x))
x (p(x) & q(x)) QD
x p(x) &x q(x)
xy p(x, y) = yx p(x, y) QI Kvantorite
jrjestusreeglid
xy p(x, y) = yx p(x, y) QI
xy p(x, y) yx p(x, y) QI
p x q(x) = x (p q(x)) QM Kvantorite
liigutamisreeglid (p ja
q ei sisalda muutujat x
vabalt)
p x q(x) = x (p q(x)) QM
x p(x) q = x (p(x) q) QM
x p(x) q = x (p(x) q) QM
p &x q(x) = x (p & q(x)) QM
p &x q(x) = x (p & q(x)) QM
p x q(x) = x (p q(x)) QM
p x q(x) = x (p q(x)) QM
Tabel 5.3. Kvantorite ettetoomisreeglid.
5.4. Predikaatarvutuse tuletusreeglid 149
interpretatsiooni, kus esimene valem on tene, aga teine valem
vr. Niteks interpreteerides predikaati Sxy kui seost x = y.
Teoreem 5.5. Iga predikaatarvutuse valemi saab viia preksku-
jule, s.t. valemi saab teisendada temaga ekvivalentseks prekskujul
olevaks valemiks.
Testus. Teeme induktsiooni predikaatarvutuse valemi denit-
siooni jrgi:
1. Atomaarsed valemid ongi prefikskujul, sest nad ei sisalda
htegi kvantorit.
2. Valemi p saab viia prekskujule, sest me saame indukt-
siooni phjal tuua kvantorid valemi p algusesse ja tstame
nad seejrel kvantorite eitamisreeglite abil eituse ette.
3. Valemid (p & q), (p q), (p q) ja (p q) saab viia
prekskujule, sest induktsiooni phjal saab tsta kvantorid
valemite p ja q algusesse. Seejrel asendame ekvivalentsid
ning kasutame kvantorite distributiivsus- ja liigutamisreeg-
leid ning kvantitseeritud muutujate asendamist.
4. Valemid v p ja v p saab induktsiooni phjal viia pre-
kskujule, sest kvantorid saab tsta valemi p algusesse.
Toome nd valemite prefikskujule viimise kohta paar nidet.
Valem x Fx y Gy viiakse prefikskujule jrgmiselt:
x Fx y Gy = y (x Fx Gy)
= yx (Fx Gy).
Lause Kellegile meeldivad kik raamatud, mille vib forma-
liseerida valemina
x (Ix &y (Ry Mxy)),
heks vimalikuks prefikskujuks on
xy (Ix & (Ry Mxy)).
150 5. Klassikalised tuletusreeglid
Prefikskujul valemid saab edasi teisendada Skolemi normaal-
kujule. Selleks eemaldatakse valemist kik eksistentsikvantorid ja
asendatakse nendes esinevad muutujad Skolemi funktsioonidega,
mille argumentideks vetakse kik eksistentsikvantorile eelnevates
ldisuskvantorites esinevad muutujad. Kui eksistentsikvantorile ei
eelne htegi ldisuskvantorit, siis nimetatakse Skolemi funktsiooni
Skolemi konstandiks. Eelmise nite lause saab viia Skolemi nor-
maalkujule, asendades inimese, kellele meeldivad kik raamatud,
Skolemi konstandiga c:
y (Ic &(Ry Mcy)).
Lause Igal inimesel on ema formalisatsiooni
xy E(x, y)
saab aga teisendada Skolemi normaalkujule, asendades muutuja y
Skolemi funktsiooniga e(x). Funktsioon e(x) seab igale inimesele
vastavusse tema ema:
x E(x, e(x)).
Skolemi funktsioone kasutatakse teoreemide automaatsel tes-
tamisel.
Me oleme nd valmis selleks, et tutvustada kvantorite
sissetoomis- ja eemaldamisreegleid. Eeldame, et valemid on pre-
kskujul. Idee on selles, et me eemaldame kigepealt kvantorid,
teeme valemiga sobivad teisendused ja asetame seejrel kvantorid
valemi ette tagasi.
Kvantorite sissetoomis- ja eemaldamisreeglid on koondatud
tabelisse 5.4. ldisuskvantori eemaldamisreegel vimaldab ldi-
suskvantoris esineva muutuja x asendada suvalise konstantsm-
boliga c. Seejuures tuleb valemis p asendada korraga kik x
vabad esinemised. Sellise asenduse tulemus mrgitakse les kujul
p {x/c} ja eldakse, et see on valemi p x/c-erijuht. ldisuskvan-
tori sissetoomisreegli
p {x/v}
x p
(UG)
5.4. Predikaatarvutuse tuletusreeglid 151
Reegel Lhend Reegli nimi Tingimus
x p
p {x/c}
UI ldisuskvantori
eemaldamine
c on suvaline
konstant
p {x/v}
x p
UG ldisuskvantori
sissetoomine
v on spetsiaalne
konstantmuutuja
x p
p {x/w}
EI Eksistentsikvantori
eemaldamine
w on uus konstant-
smbol (mis ei tohi
esineda jrelduses)
p {x/c}
x p
EG Eksistentsikvantori
sissetoomine
Tabel 5.4. Kvantorite sissetoomis- ja eemaldamisreeglid.
korral on thtis, et konstant v oleks suvaline. Teda on kasulik
vaadelda kui konstantmuutujat. ldisuskvantori kaotamisel asen-
datakse sellised konstandid, mida me soovime hiljem ldistada,
spetsiaalse konstantmuutujaga v, mis thistab suvalist vaadeldava
universumi objekti. Kuna v on asendamise hetkest peale suva-
line konstant, siis tohib teda hiljem uuesti ldistada. Kui meil
on tuletuses tarvis rohkem kui hte sellist konstantmuutujat, siis
kirjutame smboli v koos alaindeksiga: v
1
, v
2
, . . .
Kasutame kirjeldatud kvantorite eemaldamise ja sissetoomise
meetodit jrgmise arutluse kehtivuse testamiseks:
Kik esmakursuslased on tudengid
Kigil tudengitel on pinguraamat
Kigil esmakursuslastel on pinguraamat
Toome tuletuses sisse konstantmuutuja v ja seome selle lpus
uuesti ldisuskvantoriga:
152 5. Klassikalised tuletusreeglid
1. x (Ex T x) eeldus
2. x (T x
Ox) eeldus
3. Ev T v 1 UI
4. T v
Ov 2 UI
5. Ev
Ov 3,4 HS
6. x (Ex
Ox) 5 UG
Eksistentsikvantori eemaldamisreeglis asendatakse muutuja tu-
letuses varem mitte esineva konstantsmboliga w. Eksistentsikvan-
tori sissetoomisreegel
p {x/c}
x p
(EG)
lubab asendada valemis esineva konstandi c muutujaga x ning
siduda selle eksistentsikvantoriga. Niteks lause Jaan armastab
ennast ehk
Ajj
korral saab eksistentsikvantori sisse tuua kolmel viisil:
x Ajx,
x Axj
vi x Axx,
sest
Ajj = Ajx {x/j} = Axj {x/j} = Axx {x/j}.
Toome nd mned nited eksistentsikvantori eemaldamise ja
sissetoomise kohta. Arutluse
Mni kass lb nurru
Leidub nurrulja
testamiseks toome nurruva kassi thistamiseks sisse konstant-
smboli w ja eemaldame selle tuletuse lpus eksistentsikvantori
sissetoomise reegliga:
5.4. Predikaatarvutuse tuletusreeglid 153
1. x (Kx & Nx) eeldus
2. Kw & Nw 1 EI
3. Nw 2 Simp
4. x Nx 3 EG
Jrgmises nites demonstreeritakse, et juhul, kui me ei kasuta
eksistentsikvantori eemaldamisel unikaalset konstanti, saab teha
vigase jrelduse:
1. x (Kx & Sx) Mni kass on sbralik
2. x (Rx & Sx) Mni koer on sbralik
3. Kw & Sw 1 EI
4. Rw & Sw 2 EI
5. Kw 3 Simp
6. Rw 4 Simp
7. Kw & Rw 5,6 Conj
8. x (Kx & Rx) 7 EG Mni kass on koer
Testame lpuks keerulisema arutluse, kus kasutatakse nii
ldisus- kui ka eksistentsikvantoreid:
Keegi armastab Katit
Igaks, kes kedagi armastab, on nnelik
Kati on inimene
Keegi on nnelik
Arutluse testus on selline:
1. x (Ix & Axk) eeldus
2. x ((Ix &y (Iy &Axy))
Ox) eeldus
3. Ik eeldus
154 5. Klassikalised tuletusreeglid
4. Iw &Awk 1 EI
5. Awk 4 Simp
6. Ik & Awk 3,5 Conj
7. y (Iy & Awy) 6 EG
8. (Iw &y (Iy & Awy))
Ow 2 UI
9. Iw 4 Simp
10. Iw &y (Iy & Awy) 7,9 Conj
11.
Ow 8,10 MP
12. Iw &
Ow 9,11 Conj
13. x (Ix &
Ox) 12 EG
lesanded
1. Tooge nide ldisuskvantori sissetoomisreegli tingimuse vajalikkuse
kohta.
2. Konstrueerige lesande 4.11.1 arutluste tuletused.
5.5. Formaalne ja mitteformaalne testus
Matemaatika on teiste teaduste hulgas erilisel kohal, sest mate-
maatikud pavad oma viteid phjalikult testada. Testuste for-
maalsuse tase varieerub olenevalt testajast ja eeldatavast lugejast
alates formaalsest predikaatarvutuse testusest kuni paarisnalise
selgituseni.
Testame niteks hulkade vrduse omaduse
X = Y X Y ja Y X.
Selleks tuleb eelnevalt defineerida omaduses kasutatavad seosed.
Kaks hulka on vrdsed, kui nad koosnevad htedest ja samadest
elementidest:
X = Y x (x X x Y).
5.5. Formaalne ja mitteformaalne testus 155
Hulk X on hulga Y osahulk siis ja ainult siis, kui iga X element
kuulub hulka Y:
X Y x (x X x Y).
Nende seoste definitsioonid saab predikaatarvutuses esitada kujul
XY (X = Y x (x X x Y)),
XY (X Y x (x X x Y)).
Meil on vaja testada, et
XY (X = Y (X Y & Y X)).
Testus. Esitame vaadeldava omaduse formaalse testuse:
1. XY (X = Y x (x X x Y)) = def.
2. V
1
= V
2
x (x V
1
x V
2
) 1 UI
3. V
1
= V
2
x ((x V
1
x V
2
)& 2 Bic
(x V
2
x V
1
))
4. V
1
= V
2
(x (x V
1
x V
2
)& 3 QD
x (x V
2
x V
1
))
5. V
1
= V
2
(V
1
V
2
& V
2
V
1
) 4 def.
6. XY (X = Y (X Y & Y X)) 5 UG
Testame veel, et osahulga seos on transitiivne:
X Y ja Y Z X Z,
millele vastab predikaatarvutuse valem
XYZ((X Y & Y Z) X Z).
Testus. Formaalne predikaatarvutuse testus koosneb heteist-
kmnest testussammust:
156 5. Klassikalised tuletusreeglid
1. V
1
V
2
& V
2
V
3
hpotees
2. x (x V
1
x V
2
) &x (x V
2
x V
3
) 1 def.
3. x ((x V
1
x V
2
) & (x V
2
x V
3
)) 2 QD
4. (v V
1
v V
2
) & (v V
2
v V
3
) 3 UI
5. v V
1
v V
2
4 Simp
6. v V
2
v V
3
4 Simp
7. v V
1
v V
3
5,6 HS
8. x (x V
1
x V
3
) 7 UG
9. V
1
V
3
8 def.
10. (V
1
V
2
& V
2
V
3
) V
1
V
3
19 CP
11. XYZ((X Y & Y Z) X Z) 10 UG
Matemaatikud ei esita tavaliselt testusi formaalselt. Nad
eeldavad, et kuulajad on loogikareeglitega piisavalt kursis, ning
esitavad testuse skemaatiliselt ehk mitteformaalselt. Testuse
skeemi kehtivust saab igaks ise kontrollida.
Testus (mitteformaalne). Olgu X, Y ja Z suvalised hulgad, nii et
X Y ja Y Z. Olgu x X suvaline element. Siis x Y, sest
X Y, ja x Z, sest Y Z. Seega x X x Z ja kehtib
X Z.
Testus (lhem mitteformaalne). Oletame, et x X. Siis x Y ja
x Z.
Testus (veel lhem). See on ilmne.
lesanded
1. Testage hulgateoorias formaalselt ja mitteformaalselt:
X = Y Y = X.
5.6. Aksioom ja mudel 157
5.6. Aksioom ja mudel
Mitmed matemaatika distsipliinid on les ehitatud aksiomaatiliselt:
Rhma-, ringi-, vre-, vektorruumide ja muude algebraliste
ssteemide teooriad algebras.
Meetriliste, topoloogiliste, Hilberti, Banachi jms. ruumide
teooriad funktsionaalanalsis.
Geomeetria alused.
Zermelo-Fraenkeli hulgateooria jne.
Tavaliselt esitatakse aine aksiomaatilise ksitluse puhul jrg-
mise skeemi kohaselt:
1. Fikseeritakse mingi hulk teoorias uuritavaid objekte, nendel
defineeritud funktsioone ja seoseid ning nende thistamise
smboolika.
2. Teatud hulk viteid peetakse testeks a priori (ilma tes-
tuseta). Neid viteid nimetatakse selle teooria aksioomideks.
3. Teooria arendamine seisneb teoreemide testamises. Teoree-
mid on vited, mida saab testada ainult aksioome kasutades.
Videte mugavamaks snastamiseks vidakse olemasolevate
mistete baasil deneerida uusi.
Filosoofilises mttes vib suhtumine aksioomidesse olla sna
mitmesugune. Eukleides mtles geomeetriast nhtavasti kui tea-
dusest, mis uurib tegelikult eksisteeriva ruumi omadusi. Tema
geomeetria aksioomid pidid kujutama piisavalt lihtsaid viteid,
mille tesus reaalses ruumis on ilmne. Jrgmiste, enamasti ka
keerulisema struktuuriga videte tesus vajas aga juba testamist.
Aksiomaatiliselt esitatud tnapeva loodusteaduste, niteks
elektrodnaamika ja kvantmehhaanika korral, on suhtumine ak-
sioomidesse relatiivne. Aksioomid on siin vited, mis on tesed
158 5. Klassikalised tuletusreeglid
sedavrd, kuivrd nad on vaatluse vi eksperimendiga kontrol-
litud. Teooria aksiomaatiline korrastamine vimaldab selgitada
mingi videte hulga, mida tuleb kontrollida. Aksioomidest tes-
tamise teel tuletatud seadused on aga siis juba garanteeritult
tesed.
Tnapeva matemaatika aksiomaatilised teooriad defineerivad
aksioomidega oma uurimisobjekti. Niteks algebras nimetatakse
rhmadeks neid struktuure, mis rahuldavad rhma aksioome.
Sellises teoorias testatud teoreemide kohta teame aga lihtsalt
seda, et nad on tesed seal, kus kehtivad aksioomid (niteks kigil
rhmadel).
Loogikat huvitab toodud skeemis philiselt kolmas punkt:
teoreemide testamine. Matemaatikaga tegelejal tuleb tihti kokku
puutuda ksimusega, kas antud tekst T on vite V testus vi
mitte.
Iga testus koosneb sammudest. Igal sammul esitatakse jrje-
kordne vide ja seletus, millistest eespool olevatest videtest see
jreldub (ajutiselt vidakse esitada ka oletusi, mida siis nendest
omakorda jreldusi tehes kontrollitakse). Selle, kas uus vide
tepoolest on viidatud videte jreldus, otsustame oma isiklikku
testussammu intuitsiooni kasutades. Iga samm testuses peab
meie jaoks olema ilmne, silmnhtav.
Matemaatika areng on nidanud, et sellisest ksitlusest ei piisa.
Vaikimisi eeldatakse siin, et jreldumise intuitsioon on kigil ini-
mestel hesugune ja vastab objektiivsele tegelikkusele. Neist ka-
hest eeldusest viimase paikapidavuse kohta vaevalt mingit lplikku
otsust teha saab. Aga tegelikult ei kehti ka esimene. Vhemalt
kogu matemaatilise analsi ajalugu nitab, et juba maailma juhti-
vate matemaatikute vahel on olnud vaidlusi. Testusmeetodid, mis
on vastuvetavad htedele matemaatikutele, pole seda teiste jaoks.
Matemaatilises loogikas on selle probleemi uurimiseks tekkinud
formaliseeritud aksiomaatilise teooriaformaliseeritud aksiomaati-
line teooria miste.
Formaliseeritud aksiomaatilises teoorias kseeritakse peale
aksioomide ilmutatud kujul ka tuletusreeglid: lplik hulk testus-
sammu tegemiseks lubatud viise, s.t. vimalusi jreldada videtest
5.6. Aksioom ja mudel 159
p
1
, p
2
, . . . , p
n
vide q. Selleks tuleb kigepealt kseerida keel,
milles viteid kirjutatakse. Jrelikult saame formaliseeritud aksio-
maatiliste teooriate jaoks jrgmise ldskeemi.
1. Fikseeritakse teooria thestik ja valemite keel videte les-
kirjutamiseks.
2. Valemite hulga teatud alamhulga elemente nimetatakse ak-
sioomideks ja arvatakse antud teoorias a priori testeks.
Enamasti nutakse, et aksioomide hulk oleks lahenduv,
s.t. peab leiduma algoritm, mis teeb kindlaks, kas mingi
valem on aksioom vi ei. Tihti on aksioomide hulk lihtsalt
lplik.
3. Fikseeritakse lplik hulk tuletusreegleid kujul
p
1
, p
2
, . . . , p
n
q
,
mille phjal arvatakse valem q vahetult tuletatavaks va-
lemitest p
1
, p
2
, . . . , p
n
. Iga reegel peab olema lahenduv,
s.t. tema jaoks peab leiduma algoritm, mis teeb suvaliste
valemite p
1
, p
2
, . . . , p
n
ja q korral kindlaks, kas valem q
jreldub antud reegliga valemitest p
1
, p
2
, . . . , p
n
vi mitte.
Nide 5.6.
1. Koosnegu teooria thestik smbolitest I ja * ning olgu vale-
miteks need snad, mis sisaldavad parajasti hte smbolit *.
2. Ainsaks aksioomiks olgu valem *.
3. Olgu teoorial ks tuletusreegel
p
IpI
.
On kerge nha, et teoorias on tuletatavad parajasti need vale-
mid, kus vasakul ja paremal on hesugune arv smboleid I.
160 5. Klassikalised tuletusreeglid
Tuletamine igas formaalses teoorias on mng smbolitega.
Selle mngu reegleid nimetatakse teooria sntaksiks. Peale selle
vib teooria valemitele olla antud mingisugune sisu, s.t. vib
olla defineeritud, mida iga valem thendab. Valemite thendust
nimetatakse vastava keele semantikaks.
Niteks esimest jrku keele korral deneerib iga interpre-
tatsioon he semantika selle keele valemitele. Semantikat vib
deneerida ka mingi interpretatsioonide klassi kaudu, seades igale
valemile vastavusse vite, et see valem on tene kigis antud
klassi kuuluvates interpretatsioonides (niteks kigil rhmadel vi
kigil lpmatutel mudelitel). Lausearvutusvalemitele vime seada
vastavusse vite, et see valem on samaselt tene.
Definitsioon 5.7. Teooriat nimetatakse korrektseks semantika
suhtes, kui iga teoorias tuletatav valem on semantikas tene.
Definitsioon 5.8. Teooriat nimetatakse tielikuks semantika
suhtes, kui iga semantikas tene valem on tuletatav teoorias .
Jtkame nidet teooriaga . Thistagu mn valemit, kus smbolit
I on vasakul m korda ja paremal n korda (m, n 0). Defineerime
teooria valemitele kolm semantikat:
1
: m n thendab m = n.
2
: m n thendab m n.
3
: m n thendab m < n.
Eespool toodud tuletatavuse kirjeldusest jreldub, et teooria on kor-
rektne ja tielik semantika
1
suhtes. Semantika
2
suhtes on ta kor-
rektne, aga mitte tielik, sest m < n korral ei saa valemit m n tule-
tada. Tielikkuse saavutamiseks viksime lisada teise tuletusreegli
p
pI
.
Semantika
3
suhtes ei ole teooria ei korrektne ega tielik. Reegli
lisamisel saadud teooria on kll tielik, aga ei ole korrektne, sest tule-
tatavad on ka valemid m n, kus m = n.
5.6. Aksioom ja mudel 161
lesanded
1. Konstrueerige korrektne teooria semantika
3
jaoks.
Paljudel juhtudel on alguses olemas teooria sisuline pool,
s.t. uuritavad objektid, mille kohta mingi hulk fakte on juba
teada. Teooria arendamiseks vi korrastamiseks valitakse vale-
mite keel, mis vimaldab thistada valdkonnas esinevaid philisi
konstante ja funktsioone ning vljendada teoorias kasutatavaid
philisi predikaate. Selle keele semantika on juba algusest peale
olemas. Aksioomid ja reeglid proovitakse valida nii, et formaalne
aksiomaatiline teooria tuleks korrektne ja tielik, s.t. tuletatavaks
osutuksid parajasti need valemid, mis on semantikas tesed. Ma-
temaatilise loogika uurimused on nidanud, et paljudel thtsatel
juhtudel ei ole see vimalik (niteks naturaalarvude aritmeetika
korral). On selge, et mittekorrektne formalisatsioon, kus saaks
testada ka vri valemeid, ei ole ldse vastuvetav. Seega jb
le rahulduda paratamatusega, et mnda test valemit ei saa
formaalses teoorias tuletada, ja pda jtta mittetuletatavad ted
teooria remaadele.
Formaalsete aksiomaatiliste teooriate aluseks vetakse tavali-
selt kas lausearvutuse vi predikaatarvutuse aksiomaatiline teooria,
millele lisatakse vaadeldava teooria aksioomid. Seeprast on for-
maalsetel aksiomaatilistel teooriatel ldjuhul samad tuletusreeglid
ning nad erinevad ksteisest ainult aksioomide poolest.
Olgu mingi signatuur ja T suvaline valemite hulk signa-
tuuris . Me vime vaadelda hulka T kuuluvaid valemeid kui
aksioome.
Signatuuri interpretatsiooni M nimetame aksioomide
hulga T mudeliks, kui iga valem hulgast T on interpretatsioonis
M tene.
Niteks kui = e; ; = ja hulk T koosneb viiest rhmateoo-
ria aksioomist
G1. xyz [(x y) z = x (y z)],
G2. x [x e = x],
G3. x [e x = x],
G4. xu[x u = e],
162 5. Klassikalised tuletusreeglid
G5. xu[u x = e],
siis hulga T mudeliteks on parajasti kik rhmad. Kui lisada veel
kuues aksioom
G6. xy [x y = y x],
siis on mudeliteks parajasti kik kommutatiivsed (Abeli) rhmad.
Mudeli denitsiooni jrgi vib aksioomide hulgaks olla su-
valine valemite hulk. Vga paljudel juhtudel tegeldakse lplike
aksioomide hulkadega. Niteks kik klassikalised algebralised ss-
teemid deneeritakse lpliku aksioomissteemi abil. Aga niteks
peatkis 10 vaadeldav naturaalarvude Peano aksiomaatika on lp-
matu. Kui me tahame tuletatavust aksioomidest vaadelda kui
kontrollitavat testusviisi, peab aksioomide hulk olema algoritmi-
liselt lahenduv, s.t. meil peab olema algoritm testuses esinevate
viidete See on tene, sest ta on aksioom kontrollimiseks. Teo-
reetilistes konstruktsioonides vaatleme aga mnikord ka halvema
struktuuriga aksioomide hulki.
Esimest jrku teooria on aksiomaatiline teooria, mille valemite
keele moodustavad mingi signatuuri valemid, aksioomideks on
predikaatloogika aksioomid ja selle teooria omaaksioomid ning
tuletusreegliteks predikaatloogika tuletusreeglid. Kui signatuur si-
saldab vrdusmrki, arvatakse aksioomide hulka kuuluvateks ka
vrduse aksioomid.
On selge, et esimest jrku teooria mratakse tema signatuuri ja
omaaksioomidega. Teooria mudeliks nimetame iga struktuuri, kus
kehtivad teooria kik omaaksioomid. Siinkohal me ei pea rkima
predikaatloogika ja vrduse aksioomidest, sest need kehtivad igal
struktuuril.
eldakse, et kinnine valem A signatuuris jreldub loogi-
liselt aksioomidest T , kui A on tene T igas mudelis. Millises
vahekorras on aksioomidest sellises semantilises mttes jrelduvad
valemid ja teoorias T tuletatavad valemid?
Teoreem 5.9 (korrektsuseteoreem). Kui mingi valem on teoo-
rias T tuletatav, siis on ta tene teooria T omaaksioomide igas
mudelis.
5.6. Aksioom ja mudel 163
Sellel on lihtne phjendus predikaatloogika korrektsuse kaudu.
Fikseerime mudeli M. Olgu valem B tuletatav. Tema tuletus
on lplik objekt ja seal saab olla kasutatud ainult lplik arv
teooria T aksioome. Olgu need A
1
, . . . , A
n
. Kasutades n korda
deduktsiooniteoreemi, saame, et predikaatloogikas (juba ilma T
aksioomideta) saab tuletada implikatsiooni A
1
& . . . & A
n
B.
Jrelikult peab see valem olema samaselt tene. Siis on ta mu-
delis M tene, samuti kui aksioomid A
1
, . . . , A
n
. Implikatsiooni
denitsioonist saame, et tene on ka B.
Teoreem nitab, et struktuuride klassi deneerimine (ni-
teks algebras, funktsionaalanalsis jne.) vimaldab matemaatikas
testada hekorraga teoreeme, mis kehtivad paljudel struktuuridel.
Kehtib ka teoreem 5.10.
Teoreem 5.10 (tielikkuseteoreem). Iga valemit, mis on tene
teooria T omaaksioomide igas mudelis, saab tuletada teoorias T .
Ksime nd, millistel valemite hulkadel T leidub mudel. On
selge, et vasturkival hulgal, millest saab tuletada mingi valemi ja
ka selle valemi eituse, mudelit olla ei saa, sest mudelil peaksid siis
teoreemi 5.9 phjal olema tesed kaks teineteist eitavat valemit.
Seega saab mudeli olemasoluga testada aksiomaatika mittevastu-
rkivust. Niteks algebrapikutes kontrollitakse tavaliselt prast
rhmateooria aksioomide tutvustamist, et ainult hikelemendist e
koosnev struktuur rahuldab rhmaaksioome. Sellega on nidatud,
et rhmateooria uurimisobjekt on olemas.
Osutub, et mittevasturkivus on ka piisav mudeli olemasoluks,
s.t. kehtib teoreem 5.11.
Teoreem 5.11 (mudeliteoreem). Igal mittevasturkival esimest
jrku teoorial leidub mudel.
Mudel konstrueeritakse vaadeldava signatuuri kinnistest
(s.t. vabade muutujateta) termidest ja valemitest.
Paljud aksioomide ssteemid on matemaatikas tegelikult de-
nitsiooni rollis ja matemaatikud on aksioome kseerides kl-
lalt vabad. Niteks on avastatud, et tehetel arvude aritmeetikas,
164 5. Klassikalised tuletusreeglid
maatriksitel jm. objektidel on mingid omadused: kommutatiivsus,
assotsiatiivsus jne. Jrgmise sammuna vetakse signatuuri ks,
kaks vi enam tehtemrki ja aksioomideks nende tehete mingid
olulised omadused. Kiki saadud aksioome rahuldavaid struktuure
nimetatakse rhmadeks, ringideks vms. Rhma-, ringi- vms. teoo-
ria spetsialistid arendavad nd teooriat, testades aksioomidest
jrelduvaid teoreeme. Tihti avastatakse, et sellise skeemi jrgi
postuleeritud omadused on veel muudel praktilist vi teoreetilist
huvi pakkuvatel struktuuridel ja saadud teoreeme saab rakendada.
5.7. Aksiomatiseerimisteooria
Vaatleme nd olukorda, kus on kseeritud mingi struktuuride
klass vi ksik struktuur mingis signatuuris ja matemaatikud
soovivad omada selle klassi/struktuuri teooria aksiomaatikat, et
testada teoreeme mingil kindlal baasil. Kas elementaarteooriat
(s.t. klassil/struktuuril teste valemite hulka) saab alati aksioma-
tiseerida? Pris triviaalses mttes muidugi, sest vime vtta ak-
sioomideks kik tesed valemid. Aga sellise aksiomatiseerimisega
me ei vida midagi, kui aksioomiks olemise kontroll on sama
keeruline kui tesuse kontroll. Milliste omadustega aksiomaatika
on ldse kasutamiseks klblik?
Kigepealt on selge, et aksiomaatika peab olema korrektne,
s.t. aksioomidest peab saama tuletada ainult teseid valemeid.
Kui tuletatav on ka mni vr valem, siis ei anna aksioomidest
tuletamine mingit tesuse garantiid. Nagu juba ngime, piisab
korrektsuseks iga aksioomi tesusest kigil vaadeldavatel struktuu-
ridel. Vastupidine omadus tielikkus, s.t. kigi teste valemite
tuletatavus on kll samuti soovitav, kuid mitte absoluutselt va-
jalik. Matemaatikas on kasutusel ka mittetielikke aksiomaatikaid.
Sellise puudusega on isegi ldtuntud Peano aksiomaatika naturaal-
arvude jaoks. Kll aga peab aksioomide hulk olema algoritmiliselt
lahenduv, et testuse lugeja saaks kontrollida, kas testusse ilma
phjendamata sisse toodud vited ikka on aksioomid.
Miks ollakse sunnitud kasutama mittetielikke aksioomide ss-
5.8. lesanded 165
teeme? Algoritmiteooria terminites vljendades toob aksioomide
hulga lahenduvus kaasa tuletatavate valemite hulga rekursiivse
loetletavuse, s.t. leidub algoritm, mis genereerib kik tuletatavad
valemid. Algoritmiteoorias testatakse ka, et naturaalarvude hulgal
teste signatuuri 0; +, ; = valemite hulk pole loenduv ja jreli-
kult pole olemas naturaalarvude aritmeetika korrektset ja tielikku
aksiomaatikat. Sellegipoolest saab Peano aksioomidest tuletada
niteks kik standardsete likooli matemaatikakursuste lesehita-
miseks vajalikud aritmeetikateoreemid. Kuni seitsmekmnendate
aastateni kirjutati loogikapikutes koguni, et tuletatavad on ldse
kik tegeliku matemaatika teoreemid ning loogikutele teadaole-
vad mittetuletatavad tesed valemid on kunstlikult konstrueeritud.
Praeguseks on vlja selgitatud, et juba mned eelmise sajandi
arvuteooria tulemused asuvad vljaspool Peano aritmeetikat.
5.8. lesanded
1. On teada, et
A B.
(a) Mida me vime elda A kehtestatavuse, samaselt tesuse,
samaselt vruse ja temast B jreldumise kohta?
(b) Mida me vime elda B kehtestatavuse, samaselt tesuse,
samaselt vruse ja temast A jreldumise kohta?
2. Andke jrgmistele argumentide otsesed testused. (Allikas: Pla-
ton, Phaedo.)
(a) Kui Sokrates ei usuks, et kui ta sureb, lheb ta jumalate
juurde, toimiks ta valesti mitte surma vastu olles. Kui ta
seda usub, ei toimiks ta valesti mitte surma vastu olles.
Seega, ta kas usub seda ja ei toimi valesti, mitte surma
vastu olles, vi ta ei usu seda ja toimib valesti mitte
surma vastu olles.
166 5. Klassikalised tuletusreeglid
(b) Kui keha on hingele takistuseks, siis on hingel parem ke-
hast vaba olla. Kui see on tsi, siis ei tule surma karta.
Aga, kui krgeimate asjade teadmisel saab hing keha poolt
petetud, siis on keha hingele takistuseks. Kuid hing on
keha poolt sel viisil petetud. Seega, surma ei tule karta.
(c) Kui me tunnistame, et mned asjad on vrdsed ja mned
ebavrdsed, siis me peame teadma, mis vrdsus ise on.
Aga, kui mitte midagi meie meeltes ei ole vrdsus ise,
siis me kas ei tea, mis vrdsus ise on vi ei omanda me
seda teadmist meelte kaudu. Kui me ei omanda seda tead-
mist meelte kaudu, siis me snnime koos mingi teadmi-
sega. Kuna me tunnistame, et mned asjad on vrdsed ja
teised ebavrdsed, ja kuna miski meie meeltes pole vrd-
sus ise, siis jrelikult me snnime koos mingi teadmisega.
3. (C. H. Papadimitriou) Olgu meil kasutada konstantsmbolid
ja ning binaarne predikaatsmbol . Kirjutage va-
lem p, mis vastab kneknule
Everybody loves my baby,
my baby loves nobody but me . . .
(Kik armastavad minu beebit, minu beebi armastab ainult
mind . . . )
(a) Nidake, et p |= = ;
(b) Testage, et p = ;
(c) Pdke kirjutada valem p hoolikamalt, nii et ei tekiks sel-
liseid vastuolusid.
4. Kurjuse probleem. Testage, et jrgmised vited on vastur-
kivad:
Kui kurjus on olemas, siis kas jumal ei taha seda ra
hoida vi ei saa seda ra hoida.
Kui jumal on kikvimas, siis ta saab kurjust ra hoida.
Kui jumal on hea, siis ta tahab kurjust ra hoida.
5.8. lesanded 167
Kui jumal eksisteerib, siis on ta kikvimas ja hea.
Kurjus on olemas.
Jumal on olemas.
Mis sellest jreldub?
5. Vtame kasutusele naiste loogika aksioomi (A. Kolmogorov):
A B B on meeldiv
A
Testage, et naiste loogika on vasturkiv. Mida on selleks vaja
minimaalselt eeldada?
6. Tuletusssteemid
Mis tna testatakse, oli millalgi vaid unistuseks.
William Blake (17571827), Taeva ja prgu abi-
elu
Kirjeldame selles peatkis lhidalt formaalseid tuletusssteeme,
nagu Hilberti tpi tuletused, loomulikud ja sekventsiaalsed tu-
letused ning tesuspuud. Resolutsiooni kui programmeerimises
ja tehisintellektis enim kasutatava tuletusssteemi ksikasjalise
kirjelduse toome raamatu viimases osas.
6.1. Hilberti tpi tuletus
Ajalooliselt hakati esimesena kasutama Hilberti tpi tuletusss-
teeme, milles on suhteliselt palju aksioome ja vhe tuletusreegleid.
Vaatleme lihtsat tuletusssteemi H, milles on ainult kaks
lausearvutuse tehet: eitus ja implikatsioon. lejnud tehted de-
neeritakse nende kaudu:
p & q
def
= (p q),
p q
def
= p q,
p q
def
= (p q) & (q p).
Tuletusssteemis on kolm aksioomiskeemi:
6.1. Hilberti tpi tuletus 169
(H1) p (q p);
(H2) (p (q r)) ((p q) (p r));
(H3) (p q) ((p q) p).
Ainsaks tuletusreegliks on modus ponens:
p p q
q
(MP).
Sellisel tuletusssteemil on rohkem teoreetiline thendus, sest
tema kohta on lihtne testada matemaatilisi omadusi; temaga
tuletamine on aga kllalt tlikas, kuna me ei saa kasutada paljusid
tuttavaid tuletusreegleid.
Nitame, et ssteemis H on tuletatav teoreem p p.
Lause 6.1.
H
p p.
Testus.
1. (p ((p p) p)) ((p (p p)) (p p)) H2
2. p ((p p) p) H1
3. (p (p p)) (p p) 1,2 MP
4. p (p p) H1
5. p p 3,4 MP
Tuletamise muudab keerukaks see, et aksioomiskeemidesse
on vga raske leida vajalikke substitutsioone. Niteks lause 6.1
testuses on mrava thtsusega aksioomiskeemi (H2) sobiva
erikuju leidmine.
Kuidas aga testada konjunktsiooni kommutatiivsusreeglit
p &q q & p,
s.t.
H
(p q) (q p)?
Hilberti tpi tuletusssteemides tuletatakse testest valemitest
uusi teseid valemeid. Jrgnevalt testame deduktsiooniteoreemi,
mille abil saab sisse tuua ka hpoteese.
170 6. Tuletusssteemid
Teoreem 6.2 (deduktsiooniteoreem (Herbrand, 1930)). Kehtib
, p
H
q
H
p q,
kus on suvaline valemite loetelu ning p ja q on suvalised
valemid.
Testus. Olgu q
1
, . . . , q
n
= q tuletus, mis kasutab eeldustena
ainult elemente ja valemit p. Nitame induktsiooniga, et
p q
i
(1 i n). Valem q
1
on kas element, aksioom vi
valem p. Esimesel kahel juhul saame aksioomiskeemi (H1) erikuju
q
1
(p q
1
), millest tuletame modus ponensiga p q
1
.
Kui q
1
= p, kasutame lauset 6.1.
Eeldame nd, et p q
k
(k < i), ja nitame, et
p q
i
. Valem q
i
on kas element, aksioom, valem p vi
jreldub modus ponensiga valemitest q
j
ja q
m
, kus j, m < i ja
q
m
= q
j
q
i
. Esimesed kolm juhtu testame samamoodi, kui
i = 1 korral. Viimasel juhul on meil juba testatud, et p q
j
ja p (q
j
q
i
). Aksioomiskeemi (H2) phjal kehtib
(p (q
j
q
i
)) ((p q
j
) (p q
i
)).
Rakendades sellele valemile kaks korda reeglit modus ponens
saame p q
i
. Vttes i = n saamegi soovitud tulemuse.
Niteks piisab p q, q r p r testamiseks tuletusest
1. p q hpotees
2. q r hpotees
3. p hpotees
4. q 1,3 MP
5. r 2,4 MP
Kleene kasutab lausearvutuse jaoks jrgmist Hilberti tpi
tuletusssteemi K, kus p q
def
= (p q) & (q p):
(K1) p (q p);
(K2) (p q) ((p (q r)) (p r));
6.1. Hilberti tpi tuletus 171
(K3) p & q p;
(K4) p & q q;
(K5) p (q p & q);
(K6) p p q;
(K7) q p q;
(K8) (p r) ((q r) (p q r));
(K9) (p q) ((p q) p);
(K10) p p.
Ssteemi ainsaks tuletusreegliks on jllegi modus ponens. Selles
ssteemis on juba vimalik testada deduktsiooniteoreemiga, et
K
p & q q & p:
1. p & q hpotees
2. p & q p K3
3. p 1,2 MP
4. p & q q K4
5. q 1,4 MP
6. q (p (q & p)) K5
7. p (q &p) 5,6 MP
8. q &p 3,7 MP
9. p & q q & p 18 deduktsiooniteoreem
Predikaatarvutuse korral lisanduvad Hilberti ssteemile H
aksioomiskeemid
(H4) x p(x) p {x/t };
(H5) x (p q) (p x q).
Term t peab olema aksioomiskeemis (H4) muutuja x asenda-
miseks vaba, s.t. term t ei tohi sisaldada muutujaid, mis osutuvad
substitutsiooni tagajrjel valemis p {x/t } seotuks. Aksioomiskee-
mis (H5) ei sisalda valem p muutujat x vabalt.
Modus ponensile lisandub ldistamisreegel
p
x p
(Gen)
172 6. Tuletusssteemid
ning eksistentsikvantor defineeritakse valemiga
x p
def
= xp.
lesanded
1. Testage deduktsiooniteoreemiga:
p (q r), q
H
p r.
2. Testage
K
p p.
3. Testage, et ssteemis K kehtib deduktsiooniteoreem.
4. Konstrueerige interpretatsioonid, mis nitavad, et aksioomiskeemi-
des (H4) ja (H5) ei vi kitsendavaid lisatingimusi ra jtta.
6.2. Loomulik tuletus
Gentzeni tpi loomuliku tuletuse ssteemides on iga loogilise
tehte jaoks sissetoomisreegel ja eemaldamisreegel. Gentzeni tpi
on niteks tuletusssteem , milles on kaks aksioomiskeemi
p p (hpotees),
p p (Tertium non datur)
ja tabelis 6.1 toodud tuletusreeglid.
Loomulikes tuletustes ksitletakse hpoteese reeglite osadena.
Siis on hpoteesid mbritsetud nurksulgudega ning on reeglitega
seotud punktiirjoonte abil. Smboliga thistatakse suvalist vas-
tuolulist olukorda, mille phjuseks on mingi lause ja selle eituse
samaaegne tesus.
ldisuskvantori sissetoomisreeglis (I) ja eksistentsikvantori
eemaldamisreeglis (E) peab olema tidetud tingimus (), mis
nuab, et term a peab olema muutuja x asendamiseks valemis p
vaba.
Loomuliku tuletuse ssteemide matemaatiliste omaduste tes-
tamine on ldiselt keerulisem kui Hilberti tpi ssteemide korral,
kuid nad on praktiliseks testuseks tunduvalt mugavamad.
6.2. Loomulik tuletus 173
Sissetoomisreegel Eemaldamisreegel
p
Ex falso
quodlibet
p q
p & q
(&I)
p & q
p
p & q
q
(&E)
p
p q
q
p q
(I)
p q
[p]
.
.
.
.
r
[q]
.
.
.
.
r
r
(E)
[p]
.
.
.
.
q
p q
(I)
p p q
q
(E)
[p]
.
.
.
.
p
(I)
p p
(E)
(p q) & (q p)
p q
(I)
p q
(p q) & (q p)
(E)
p {x/a}
x p
(I)
x p
p {x/t}
(E)
p {x/t}
x p
(I)
x p
[p {x/a}]
.
.
.
.
q
q
(E)
p
q
p
(q & p)
p & q
(p & q q & p)
3 &D
2 &D
2 &D
1 D
1 D
eeldus
Saadud suletud tesuspuu nitab, et valemi p & q q & p eitus
annab vastuolu. Jrelikult on see valem tene.
Kuna tesuspuude meetod on kergesti programmeeritav, sobib
see hsti nii teoreemide testamiseks kui ka valemite hulkade
mudelite konstrueerimiseks. Niteks saab tesuspuudega leida
kontranite mittekehtivale arutlusele p q, q |= p:
182 6. Tuletusssteemid
p q (D)
p (D)
p
q
p q
Pbc
y Pby
Pab
y Pay
xy Pxy
6 D
1 D
4 D
1 D
2 D
1 D
eeldus
ainus haru on lpmatu, sest eksistentsikvantori dekompositsiooni-
reegel lisab pidevalt uue konstandi ning ldisuskvantori dekom-
positsioonireegliga genereeritakse selle konstandi abil uus eksis-
tentsikvantoriga valem. Tulemuseks on tesuspuu, milles puudub
avatud lpetatud haru.
Tesuspuude tuletusmeetodit saab tiustada, vttes eksistent-
sikvantori dekompositsioonireegli (D) asemel kasutusele reegli
p {x/a
1
} . . . p {x/a
n
} p {x/c}
x p (D2)
6.4. Tesuspuu 183
mis pab muutujat x asendada kigi puuharus olevate konstanti-
dega a
1
, . . . , a
n
ning toob seejrel sisse harus puuduva konstandi c.
Selle reegliga saame valemi xy Pxy jaoks lpmatu hargneva
puu
3.
2.
1.
Paa
. . .
Pab
y Pay
xy Pxy
2 D2
1 D
eeldus
milles esinevad ka avatud lpetatud harud. Niteks valemiga Paa
lppev haru genereerib valemi xy Pxy mudeli, milles on ainult
ks element a ning Paa on tene. Ent valemite korral, millel
on ainult lpmatud mudelid, ei ole ka tiustatud reeglite korral
vimalik piirduda tesuspuu lpliku fragmendi lbivaatamisega.
lesanded
1. ***Konstrueerige valemite hulk, millel on ainult lpmatud mu-
delid.
Kuna tesuspuus on vimalik dekompositsioonireegleid ra-
kendada erinevas jrjekorras, siis antakse tihti ka soovitused,
milliseid reegleid rakendada esimesena. Tesuspuude mtmeid
aitab vhendada strateegia, mille korral sooritatakse alguses kik
jrjestikused tuletusreeglid ning seejrel kik hargnevad reeglid.
Kvantorireeglitest tuleks viimaseks jtta reegli (D) rakendamine.
Saab testada, et tesuspuude meetod on tielik, s.t. kik, mis
on predikaatarvutuses loogiliselt jrelduv, on ka tesuspuudega
tuletatav ja vastupidi:
|= p
T T
p.
Puuharusid vib sulgeda ka mitte ainult vasturkivate literaa-
lide A ja A esinemisel, vaid ka vasturkivate valemite p ja p
korral. Mlemad tuletusmeetodid on ekvivalentsed, sest valemid
p ja p ei saa olla samaaegselt tesed. Kahjuks ei anna sel-
line tuletusmeetodi tiustus meile avatud lpetatud puuharu phjal
automaatselt atomaarsete valemite kehtestavat vrtustust.
II
Matemaatiline loogika
7. Matemaatiline
induktsioon
Matemaatika on mng, mida mngitakse lihtsate
reeglite jrgi, kirjutades paberile mttetuid smbo-
leid.
David Hilbert (18621943)
7.1. Induktiivne testus
Matemaatiline induktsioon on vimas matemaatiline meetod, mis
vimaldab opereerida lpmatute hulkadega. Ta aitab meil koostada
lpmatuid objektide klasse ning seejrel saab temaga testada, et
sellistel klassidel on kindlad abstraktsed omadused.
Nide 7.1. Naturaalarvude hulk
= {0, 1, 2, . . .}
defineeritakse induktiivselt kahe punktiga:
1. 0 on naturaalarv.
2. Kui n on naturaalarv, siis on n + 1 naturaalarv.
Esimese lausega defineeritakse induktsiooni baas ja teisega mratakse
induktsiooni samm.
188 7. Matemaatiline induktsioon
Nide 7.2. Lausearvutuse sntaksi denitsioonis lk. 76 on induktsiooni
baasiks kik atomaarsed valemid, mis koosnevad ainult lausemuutujast,
ja induktsiooni sammuga kirjeldatakse jrkjrgult lausearvutuse liitlau-
sed.
Induktsiooniga on mugav testada lausearvutuse (kui lpmatu
valemite hulga) matemaatilisi omadusi. Testame niteks sellise
lihtsa teoreemi.
Teoreem 7.3. Igas lausearvutuse valemis on vasakpoolsete sul-
gude arv vrdne parempoolsete sulgude arvuga.
Testus. Testame teoreemi induktsiooniga le kigi lausearvu-
tusvalemite. Teoreem kehtib atomaarsete valemite korral, sest neis
sulud puuduvad. Teoreem kehtib ka valemite korral, mis on saadud
atomaarsetest valemitest he lausearvutuse tehte lisamise teel, sest
olemasolevatest valemitest uue valemi konstrueerimisel lisatakse
hed paarissulud vi ei lisata htegi sulgu. Sellised on niteks
valemid
A, (A B), (A & B).
Kasutades lausearvutuse sntaksi definitsiooni teist korda, saame
testada, et teoreem kehtib kigi lausearvutusvalemite korral,
milles on kaks loogilist tehet:
A, (A B), (A B), ((A B) C), . . .
Suurendades niimoodi pidevalt valemites esinevate loogiliste tehete
arvu, testame (lpmatu testuse) tulemusena, et teoreem kehtib
kigi lausearvutusvalemite korral.
Kuna lpmatut testust ei ole mtet kirjutada, siis testatakse
kahes etapis. Kigepealt testatakse induktsiooni baas:
Atomaarsetes lausearvutusvalemites on vasakpoolsete sul-
gude arv vrdne parempoolsete sulgude arvuga,
ning seejrel testatakse induktsiooni samm:
Kui igas lausearvutusvalemis, kus on kuni k loogilist tehet,
on vasakpoolsete sulgude arv vrdne parempoolsete sulgude
7.2. Duaalsus 189
arvuga, siis on ka kigis k+1 loogilise tehtega lausearvutus-
valemites vasakpoolsete sulgude arv vrdne parempoolsete
sulgude arvuga.
Induktsiooni baas ja samm testatakse lausearvutuse sntaksi
definitsiooni phjal. Teoreemi vite testus saadakse siit aga
matemaatilise induktsiooni printsiibil, sest teoreemi vide jreldub
loogiliselt induktsiooni baasi ja induktsiooni sammu videtest.
Matemaatilise induktsiooni meetod ttab ainult selliste hul-
kade korral, mida saab grupeerida jrjestatud rhmade jadaks.
Esimesel induktsiooni sammul testatakse, et esimese rhma kik
liikmed on antud omadusega. Igal jrgmisel induktsiooni sammul
testatakse, et ka eelmistele vahetult jrgneva rhma elementi-
del on vaadeldav omadus. Niteks eelmise teoreemi korral oli
rhmitamise aluseks valemis esinevate loogiliste tehete arv.
lesanded
1. Testage, et induktsiooni baas, induktsiooni samm ja teoreemi
vide moodustavad teoreemis 7.3 kehtiva arutluse. Millise loogika
arutlus see on?
2. Testage matemaatilise induktsiooniga, et kik inimesed on kas
mees- vi naissoost.
7.2. Duaalsus
Lausearvutusvalemites kasutatakse tavaliselt eitus-, konjunktsioo-
ni-, disjunktsiooni-, implikatsiooni- ja ekvivalentsitehteid. Sellisel
juhul eldakse, et valemid on (tehete) baasis {, &, , , }.
Kui kasutatakse ainult kolme tehet: eitust, konjunktsiooni ja
disjunktsiooni, on valemid baasis {, &, }. Niisugustel valemitel
on olemas ka duaalsed valemid. Valemi p duaalne valem p
A A
((A F) & G) ((A & F) G)
((A B) (A & B)) ((A & B) & (A B))
Tabel 7.1. Niteid valemitest ja nende duaalsetest valemitest.
Jrgmine teoreem vidab, et valem ja tema duaalne valem on
ksteisele vasturkivad.
Teoreem 7.4 (duaalsus). Olgu p valem baasis {, &, } ja p
.
Testus. Induktsiooni baas. Olgu p atomaarne valem. Siis saame
kahekordse eituse reegli ja duaalsuse definitsiooni phjal
p = p = p
.
Induktsiooni samm.
1. Olgu p = q. Induktsiooni eelduse phjal kehtib q = q
.
Siit saame aga
p = q = q
= p
,
sest duaalsuse definitsiooni phjal kehtib p
= q
.
2. Olgu p = q & r. Induktsiooni phjal kehtib
q = q
, r = r
= q
.
De Morgani seadused annavad nd
p = q & r = (q r) = (q
)
= (q
) = p
.
7.2. Duaalsus 191
3. p = q r. Selle punkti jtame testada lesandes 7.2.2.
Jreldus 7.5. Kui valemid p ja q on loogiliselt ekvivalentsed, siis
on ka nende duaalsed valemid p
ja q
loogiliselt ekvivalentsed:
p = q p
= q
.
Palju asendusreegleid saab duaalsusteoreemi ja asenduste abil
omavahel teisendada. Konjunktsiooni kommutatiivsusest vib sel-
lisel teel saada niteks disjunktsiooni kommutatiivsuse:
p & q = q & p p q = q p.
lesanded
1. *Nidake, et iga valem baasis {&, } on tene, kui kik tema lau-
semuutujad on tesed. Jrelikult ei saa eitust selles baasis vljen-
dada.
2. Testage disjunktsiooni osa duaalsusteoreemis.
8. Lausearvutuse tielikkus
Formaalse aksiomaatilise ssteemi tielikkus thendab tdemust,
et selles ssteemis langevad tesuse ja tuletatavuse miste kokku.
Ideaalis peaks iga loogilise ssteemi korral leiduma ka vastav
tielik tuletusssteem. Praktikas tekitab loogiliste ssteemide se-
mantika ja sntaktiliste tuletusreeglite vastavusse seadmine kllalt
suuri probleeme: kas ei ole konstrueeritud tuletusreeglitel selget
thendust vi ei osata kirjeldatud semantikat esitada tuletusreeglite
abil. Niteks tekivad tehisintellektissteemides kasutatavate prak-
tiliste tuletusssteemide tielikkuse tagamisel letamatud problee-
mid. Klassikaliste lause- ja predikaatarvutuse tielikkus on aga
vljaspool kahtlust. Jrgnevalt testame Hilberti tpi tuletusss-
teemi H tielikkust klassikalise lausearvutuse jaoks. Testust saab
laiendada traditsiooniliste vahenditega ka predikaatarvutusele.
Tielikkuseteoreemi testus koosneb kahest osast:
Korrektsuse osas nidatakse, et iga tuletatav valem on
loogiliselt tene.
Tielikkuse osas nidatakse, et kehtib ka vastupidine: iga
loogiliselt test valemit saab tuletada.
Me testame, et Hilberti tpi tuletusssteem H on lausearvutuse
jaoks korrektne ja tielik:
H
p |= p.
8.1. Lausearvutuse korrektsus ja mittevasturkivus 193
8.1. Lausearvutuse korrektsus ja
mittevasturkivus
Teoreem 8.1 (korrektsus). Iga lausearvutusvalemi p L
H
korral
H
p |= p.
Testus. Olgu q
1
, . . . , q
n
= p valemi p tuletus formaalses ss-
teemis H. Nitame induktsiooniga, et iga valem q
i
(1 i n)
on tautoloogia.
Kui q
i
on aksioom, on lihtne kontrollida, et ta on tautoloo-
gia. Oletame, et valem q
i
on saadud valemitest q
j
ja q
m
modus
ponensiga, kus j, m < i ja q
m
= q
j
q
i
. Induktsiooni eelduse
phjal on valemid q
j
ja q
m
tautoloogiad. Oletame vastuviteliselt,
et q
i
ei ole tautoloogia. Siis leidub nende valemite selline vr-
tustus , et (q
j
) = t , (q
j
q
i
) = t ja (q
i
) = v. Siit jreldub
aga, et (q
j
q
i
) = v, mis annab vastuolu. Vttes i = n saame,
et valem p on tautoloogia.
Definitsioon 8.2. Aksiomaatilist teooriat nimetatakse vastur-
kivaks, kui leidub selline valem p, nii et teoorias saab tuletada
p ja p.
Teoreem 8.3. Lausearvutus H on mittevasturkiv.
Testus. Oletame, et mingi valemi p korral saab ssteemis H
tuletada nii p kui ka p. Korrektsuseteoreemi phjal on nad
mlemad siis tautoloogiad, mis ei ole vimalik.
8.2. Lausearvutuse tielikkus
Thistagu p
t
valemit p ja p
v
valemit p. Vahetult saab kontrol-
lida, et iga {t, v} korral
p
= t p = .
Ssteemi H tielikkuse testuses kasutame jrgmist lemmat.
194 8. Lausearvutuse tielikkus
Lemma 8.4. Olgu X
1
, . . . , X
n
valemis p esinevad lausemuutujad
ja olgu suvaline p vrtustus. Siis kehtib
X
1
, . . . , X
n
H
p
.
Et lemma vitest aru saada, vaatleme kigepealt jrgmist
nidet. Olgu p = X Y. Vaatleme vrtustusi (t, t ) ja (t, v).
Nendele vrtustustele vastavad lemmas hpoteeside loetelud X, Y
ja X, Y. Esimesel vrtustusel on p vr ja jrelikult vidab
lemma, et X, Y
H
(X Y). Teisel juhul on p tene ja siis
peab olema tuletatav X, Y
H
X Y. Lemmat vime mista
ka nii, et valemi tevrtus on ssteemis H arvutatav, kui kasutada
andmetena vrtustele vastavaid hpoteese.
Testus. Testame lemma induktsiooniga valemi p ehituse jrgi.
Olgu selles m loogilist seost.
Juhul kui m = 0, on p atomaarne valem. On selge, et kui
(p) = t , siis p
H
p, ja kui (p) = v, siis p
H
p.
Eeldame, et lemma vide kehtib iga j < m korral. Nitame, et
see kehtib ka valemite korral, milles on m loogilist seost. Selleks
vaatame lbi kikvimalikud variandid.
1. Olgu valem p kujul q r ja olgu X
1
, . . . , X
k
temas
esinevad lausemuutujad. Kuna valemites q ja r on loogiliste
seoste arv viksem kui m, siis saame induktsiooni eelduse phjal
X
1
, . . . , X
k
H
q
ja X
1
, . . . , X
k
H
r
.
1a. Kui (q) = (r) = t , siis q
= q ja r
= r.
Kuna (q r) = t , siis p
1
, . . . , X
k
H
r ja aksioomiskeem (H1) annab
H
r (q r).
Siit saame modus ponensiga X
1
, . . . , X
k
H
q r, s.t.
X
1
, . . . , X
k
H
p
.
1b. Kui (q) = t ja (r) = v, siis q
= q ja r
= r.
Nd on (q r) = v ja p
1
, . . . , X
k
H
q ja X
1
, . . . , X
k
H
r. Saab testada,
et
H
q (r (q r)). Rakendades sellele valemile kaks
korda modus ponensit, saame X
1
, . . . , X
k
H
(q r), s.t.
X
1
, . . . , X
k
H
p
.
8.2. Lausearvutuse tielikkus 195
1c. Kui (q) = v, siis q
= q ja suvalise r vrtustuse
korral (q r) = t , mistttu p
1
, . . . , X
k
H
q. Saab testada, et
H
q (q r).
Siit saame modus ponensiga X
1
, . . . , X
k
H
q r, s.t.
X
1
, . . . , X
k
H
p
.
2. Olgu valem p kujul q. Kuna valemis q on loogiliste
seoste arv viksem kui m, siis saame induktsiooni eelduse phjal
X
1
, . . . , X
k
H
q
.
2a. Kui (q) = t , siis q
= q, (p) = v ja p
= p. Kuna
H
q q, siis saame modus ponensiga X
1
, . . . , X
k
H
q.
Kuid q = p
, mis annabki X
1
, . . . , X
k
H
p
.
2b. Kui (q) = v, siis q
= q, (p) = t ja p
= p.
Eelduse phjal kehtib X
1
, . . . , X
k
H
q, mis annabki
X
1
, . . . , X
k
H
p
.
Sellega on kik variandid lbi vaadatud ja lemma testatud.
Teoreem 8.5 (tielikkus). Iga lausearvutusvalemi p L
H
korral
|= p
H
p.
Testus. Olgu p tautoloogia ja olgu X
1
, . . . , X
n
temas
esinevad lausemuutujad. Iga vrtustuse korral kehtib
p
1
, . . . , X
n
H
p. Jrelikult
X
1
, . . . , X
n1
, X
n
H
p ja X
1
, . . . , X
n1
, X
n
H
p.
Deduktsiooni teoreemi jrgi saame X
1
, . . . , X
n1
H
X
n
p
ja X
1
, . . . , X
n1
H
X
n
p. On vimalik testada, et
H
(X
n
p) ((X
n
p) p), kust saame modus ponensiga
X
1
, . . . , X
n1
H
p. Korrates seda protsessi n 1 korda, saamegi
tulemuseks
H
p.
lesanded
1. Testage, et
(a)
H
q (r (q r));
(b)
H
q (q r);
(c)
H
q q;
(d)
H
(q p) ((q p) p).
9. Mittelahenduvad
probleemid
Matemaatikast ei ole vimalik aru saada. Temaga
saab vaid kohaneda.
John von Neumann (19031957)
Matemaatikas on olnud alati palju lahendamata probleeme,
s.t. lesandeid, mida mitte keegi ei ole suutnud lahendada. Niteks
vib tuua Fermat suure teoreemi:
Vrrandil x
n
+ y
n
= z
n
ei ole n > 2 korral positiivseid
tisarvulisi lahendeid.
Prantsuse matemaatik Pierre de Fermat (16011665) kirjutas omal
ajal raamatu servale, et ta teab, kuidas seda videt testada. Tes-
tuse kirjapanekuks kulus matemaatikutel mitusada aastat. Abiks
veti ka arvutid, kuid pingsast otsimisest hoolimata ei nnestunud
leida htegi arvude kombinatsiooni, mis oleks Fermat teoreemi
mber lkanud. Alles 1994. a. esitas Ameerika matemaatik And-
rew Wiles Fermat teoreemi piisavalt ksikasjalise testuse.
Selliste mitteolemasolu teoreemide testused on alati matemaa-
tikat kaunistanud. Negatiivsete tulemuste testamine on tavaliselt
tunduvalt keerulisem kui mberlkkamine, sest testamiseks tuleb
vlja melda ha uusi keerukamaid meetodeid.
Matemaatika ajaloost on teada ka teisi analoogilisi negatiiv-
seid tulemusi. Tuntumad neist on
9.1. Turingi masin 197
ringi kvadratuuri probleem
1
,
arvu
2 irratsionaalsus.
Samamoodi on vimalik uurida ka inimvimete piire. Vttes
kasutusele inimtegevuse abstraktsed mudelid, saab testada, et on
lesandeid, mida ei suuda lahendada isegi kige targem inimene.
Jrelikult pole ka inimene tiuslik.
9.1. Turingi masin
Arvutatavuse mistet on vimalik mitmeti tpsustada. Me vime
niteks sooritada arvutusi kitsal paberlindil vi ruudulisel paberil.
Paberlindi korral peab otsustama, kas lindil on algus ja lpp
vi saab seda tarviduse korral lpmatult jtkata ning kas lindi
lahtritel on aadressid (nagu majadel) vi peame ise arvet pidama,
kus me parasjagu asume. Selgub, et arvutatavuse miste sisu
jb ikka samaks, kskik kuidas me neile ksimustele vastame.
Kui me valime mingi uue arvutatavuse formalisatsiooni, siis
saab alati hoolika kontrollimise teel testada, et see on eelmiste
formalisatsioonidega ekvivalentne, s.t. neile vastab tpselt sama
arvutatavate funktsioonide klass.
Seda ameerika matemaatiku Alonzo Churchi (19031995) ning
inglise matemaatiku ja loogiku Alan Mathison Turingi (1912
1954) snastatud videt ei saa testada, vaid see formuleeritakse
Churchi teesina (e. Turingi teesina):
Mingi formalisatsiooniga arvutatavate funktsioonide klass
langeb kokku funktsioonide klassiga, mis on leldse ini-
meste vi arvutite poolt suvaliste efektiivsete meetoditega
arvutatavad, s.t. iga intuitiivselt arvutatav funktsioon on ka
meie formalisatsiooni mttes arvutatav.
1
Konstrueerida sirkli ja joonlaua abil antud ringiga pindvrdne ruut.
Saksa matemaatik Carl Louis Ferdinand von Lindemann (18521939) testas
1882. a., et see lesanne on lahendamatu.
198 9. Mittelahenduvad probleemid
Churchi teesi kehtivust kinnitab tsiasi, et kellelgi ei ole seda
nnestunud mber lkata ning erinevad arvutatavuse miste for-
malisatsioonid on osutunud tepoolest ekvivalentseteks.
Turing vttis arvutuste tegemiseks kasutusele nn. Turingi
masina, mis sooritab arvutusi mlemas suunas lpmatul lahtriteks
jaotatud lindil. Selle lindi kik lahtrid, vlja arvatud lplik arv
lahtreid, on arvutuste alguses thjad, s.t. nad on tidetud spetsiaalse
thikusmboliga s
0
. Igasse lindi lahtrisse on kirjutatud ks smbol
lplikust lindithestikust s
0
, s
1
, . . . , s
n
ning igal arvutussammul
vaatleb inimene vi mehhaaniline arvuti mingit kindlat lindi
lahtrit. Ta oskab lugeda selles lahtris olevat smbolit, sinna
kirjutada ja liikuda vasakule vi paremale. Masin on igal ajahetkel
hes lplikust arvust seisunditest q
1
, . . . , q
m
.
Linti vib endale ette kujutada kui lpmatut raudteed, mis on
jaotatud liipritega lahtriteks. Raudteerbastel liigub vagun, mida
liigutab selle sees asuv mees, kes loeb liiprite vahelt smboleid,
kustutab neid ja kirjutab sinna uusi smboleid vastavalt tema kes
olevatele lehtedele, kuhu on kantud instruktsioonid, mida igas
seisundis teha.
Instruktsioon sltub nii arvutuste seisundist kui ka vaadeldavast
smbolist. Arvutaja sooritab he (n+4)-st vimalikust tegevusest:
peatab arvutamise;
liigub he lahtri vrra paremale (R);
liigub he lahtri vrra vasakule (L);
kirjutab vaadeldavasse lahtrisse smboli s
0
;
. . .
kirjutab vaadeldavasse lahtrisse smboli s
n
.
Peale nhtava tegevuse sooritab mees ka varjatud tegevuse: ta
mrab jrgmise instruktsiooni (seisundi).
Niisuguseid instruktsioonide kogumeid nimetataksegi Turingi
masinateks. Turingi masinaid vib esitada kas tabelitena, graa-
dena vi ksunelikute hulkadena.
9.1. Turingi masin 199
s
0
s
1
q
1
s
1
q
1
Lq
2
q
2
s
1
q
2
Lq
3
q
3
s
1
q
3
q
1
s
0
s
1
q
1
q
1
s
1
Lq
2
q
2
s
0
s
1
q
2
q
2
s
1
Lq
3
q
3
s
0
s
1
q
3
Joonis 9.1. Turingi masina kaks esitust.
S :L
1
S
1
:L
S
0
:S
1
S S :S
0
:S
1 0 1
:S
q
1
q q
2 3
Joonis 9.2. Turingi masina graaf.
Nide 9.1. Kirjeldame Turingi masinat, mis kirjutab thjale lindile
kolm hte: s
1
s
1
s
1
.
See masin on esitatud joonisel 9.1 tabelina ja ksunelikute hulgana
ning joonisel 9.2 graafina. Ksk q
i
s
j
s
k
q
l
tleb jrgmist:
Kui Turingi masinat interpreteeriv seade on seisundis q
i
ning
vaatleb smbolit s
j
, siis ta kirjutab lahtrisse smboli s
k
ja lheb
le seisundisse q
l
,
Toodud Turingi masin kirjutab vaadeldavasse ruutu smboli s
1
, liigub
vasakule, kirjutab s
1
, liigub veelkord vasakule, kirjutab s
1
ja peatub,
sest puudub tidetav instruktsioon. Me eeldame, et masin alustab td
vhima indeksiga seisundis, milleks on antud juhul seisund q
1
.
Turingi masina td on mistlik kirjeldada kui arvutusprot-
sessi konguratsioonide jada. Arvutuse konguratsioonis nida-
takse lindi hetkeseis, seadme seisund ja vaadeldav lahter ajahetkel.
Olgu Turingi masinat interpreteeriv seade arvutusprotsessi alguses
seisundis q
1
ja olgu kigisse lindi lahtritesse kirjutatud smbol s
0
.
200 9. Mittelahenduvad probleemid
1 7 5 4 3 2 10
12
11
1:L
0:R 0:L
1:L 1:L 1:0 1:R 1:R
0:R
1:L
0:R
1:L 1:R
0:L
0:1 0:1
1:L 0:L
9 4
0:L
1:L 0:L
8 6
Joonis 9.3. Kahekordistav Turingi masin.
Samastades seisundid ja smbolid nende indeksitega (q
1
= 1,
q
2
= 2, q
3
= 3, s
0
= 0, s
1
= 1), saame nites 9.1 kirjeldatud
Turingi masina korral jrgmise konguratsioonide jada:
0000000 0000100 0000100 0001100 0001100 0011100 ,
1
1
2
2
3
3
kus leval on nidatud lindi seis ja vaadeldava lahtri alla on
kirjutatud Turingi masinat interpreteeriva seadme seisundi number
selles konfiguratsioonis.
Nide 9.2. Joonisel 9.3 on Turingi masin, mis kahekordistab htede
arvu lindil.
Nide 9.3. Eelmises kahes nites toodud Turingi masinate hendamise
teel saame konstrueerida masina, mis kirjutab kigepealt thjale lindile
n hte ja kahekordistab siis htede arvu. Jrelikult kirjutab see Turingi
masin thjale lindile 2n hte.
Edaspidi huvitavad meid Turingi masinad, millega saab arvu-
tada tisarvulisi funktsioone. Vtame lindithestikuks hulga {0, 1}
ning kujutame arve hendssteemis.
Definitsioon 9.4. Turingi masin on standardkonguratsioonis n,
kui lindil on n jrjestikust hte ja lejnud lint on thi (s.t. koos-
neb nullidest), kusjuures lugemis-kirjutamispea vaatleb vasakpool-
seimat hte.
9.2. Mittelahenduvad probleemid 201
Thistame smboliga P positiivsete tisarvude hulga {1, 2, . . .}.
Definitsioon 9.5. Me tleme, et Turingi masin arvutab funktsiooni
f : P P, kui ta, alustades td vhima numbriga seisundis
standardkonguratsioonis n (n P), lpetab t standardkon-
guratsioonis f (n). Kui Turingi masin ei lpeta td vi peatub
mittestandardses konguratsioonis, siis f (n) = (mittemratud).
Nitest 9.2 selgub, et funktsiooni f (n) = 2n saab Turingi
masinatega arvutada.
lesanded
1. Konstrueerige Turingi masin, mis modelleerib teie igapevaseid te-
gemisi.
2. Leidke funktsiooni f (n) = 2n arvutamiseks Turingi masin, mille
seisundite arv on viksem kui 12 (nites 9.2).
9.2. Mittelahenduvad probleemid
Definitsioon 9.6. Olgu T Turingi masin ja f tema arvutatav
funktsioon. Turingi masina T produktiivsus on tema poolt thjale
lindile kirjutatud arv, s.t.
2, kui M
x
(y);
1, kui M
x
(y).
Seda funktsiooni arvutava Turingi masina phjal saab konstruee-
rida uue Turingi masina, mis arvutab funktsiooni
g(x) =
, kui h(x, x) = 2;
1, kui h(x, x) = 1
ehk noolte keeles
g(x) =
, kui M
x
(x);
, kui M
x
(x).
Funktsioon g(x) puudub konstruktsiooni tttu Turingi mttes
arvutatavate 1 muutuja funktsioonide loetelust
f
1
, f
2
, f
3
, . . . ,
sest oletus, et mingi arvu m korral g = f
m
, annab vastuolu
f
m
(m) f
m
(m).
Jrelikult ei ole peatumisprobleemi karakteristlik funktsioon
h(x, y) Turingi mttes arvutatav.
Diagonaliseerimise
4
ideed selgitab jrgmine tabel, kus m-nda
rea n-ndas veerus on funktsiooni f
m
vrtus kohal n.
f
1
(1) f
1
(2) f
1
(3) . . . f
1
(m) . . .
f
2
(1) f
2
(2) f
2
(3) . . . f
2
(m) . . .
f
3
(1) f
3
(2) f
3
(3) . . . f
3
(m) . . .
. . . . . . . . .
.
.
. . . . . . .
f
m
(1) f
m
(2) f
m
(3) . . . f
m
(m) . . .
. . . . . . . . . . . . . . .
.
.
.
4
Saksa matemaatik Georg Cantor (18451918) testas diagonaliseerimis-
meetodiga, et ligus [0, 1] on reaalarve rohkem kui naturaalarve hulgas .
Ta testas samuti, et iga hulga korral on tema kigi osahulkade hulgas roh-
kem elemente kui hulgas endas. Kigi hulkade hulga korral saame siit Cantori
paradoksi.
9.2. Mittelahenduvad probleemid 207
Funktsioon g erineb igast arvutatavast funktsioonist f
m
diagonaal-
elemendil m:
g(m) = f
m
(m).
Me testasime, et mitte kski Turingi masin ei suuda lahendada
peatumisprobleemi kogu Turingi masinate lpmatu loetelu jaoks
korraga. Churchi teesiga saab selle tulemuse le kanda kigile
efektiivsetele algoritmidele, s.t. mitte kski algoritm ei suuda la-
hendada peatumisprobleemi kigi Turingi masinate ja kigi nende
sisendandmete jaoks korraga. Kll vib peatumisprobleem lahen-
duda iga konkreetse Turingi masina korral. Niteks joonisel 9.3
toodud kahekordistav Turingi masin peatub igal sisendi n P
korral.
Turingi masinate efektiivsetel loeteludel on peale peatumis-
probleemi mittelahenduvuse veel teisigi huvitavaid omadusi. heks
neist on loetelude universaalsete funktsioonide arvutatavus.
Definitsioon 9.15. Funktsioonide loetelu f
1
, f
2
, . . . universaalne
funktsioon on funktsioon
f (m, n) = f
m
(n) (m, n P).
Teoreem 9.16 (loetlemisteoreem). Kigi Turingi mttes arvuta-
tavate 1 muutuja funktsioonide loetelu f
1
, f
2
, . . . universaalne
funktsioon on arvutatav.
Ka seda teoreemi on vimalik testada nii formaalselt, konst-
rueerides antud Turingi masinate loetelu jaoks konkreetse univer-
saalse Turingi masina, kui ka mitteformaalselt, selgitades mis-
moodi selle masina t peaks phimtteliselt toimuma ning viida-
tes seejrel Churchi teesile.
lesanded
6. Andke loetlemisteoreemi mitteformaalne testus.
7. **Nidake, et universaalne funktsioon f (m, n) ei ole laiendatav
kikjal mratud arvutatavaks funktsiooniks.
208 9. Mittelahenduvad probleemid
9.3. Predikaatarvutuse mittelahenduvus
Alonzo Church testas, et predikaatarvutus ei ole lahenduv,
s.t. pole vimalik kontrollida, kas suvaliselt valitud predikaat-
arvutuse valem on loogiliselt tene vi mitte.
Teoreem 9.17 (Church). Esimest jrku loogika on mittelahenduv.
Testus. Teoreemi testamiseks taandame ldise peatumisprob-
leemi esimest jrku loogika tesuse probleemile, s.t. nitame, et
kui esimest jrku loogikas on tesuse probleem lahenduv, siis on
ka peatumisprobleem lahenduv.
Olgu meil Turingi masin T , mille sisendiks on arv n. Konst-
rueerime Turingi masina T kirjelduse phjal predikaatarvutuse
valemite hulga ja valemi h, nii et
|= h T (n).
Me interpreteerime neid valemeid loomulikul viisil, nii et nad
kirjeldavad Turingi masina T td sisendil n:
Valem h vidab, et Turingi masin T peatub sisendil n:
T (n).
Valemite hulk tleb, et masina sisendiks on arv n ja
masin ttab vastavalt oma kirjeldusele.
Eeldame, et masin T alustab td ajahetkel 0, vaadeldes pa-
rasjagu 0-ndat lahtrit. Eeldame, et Turingi masina lint on vasakule
ja paremale lpmatu ning lindithestik vib peale numbrite 0 ja
1 sisaldada ka teisi smboleid. Lepime veel kokku, et enne tle
asumist ja prast peatumist ei ole masina seisund, vaadeldav lindi
positsioon ning loetav smbol mratud.
Toome predikaatarvutusse uued predikaatsmbolid
Q
i
(1 i r),
S
j
(0 j m),
9.3. Predikaatarvutuse mittelahenduvus 209
mis vastavad Turingi masina T seisundite hulgale Q =
{q
1
, q
2
, . . . , q
r
} ja lindithestikule = {s
0
, s
1
, . . . , s
m
}. Nii saame
esimest jrku loogika signatuuris 0;
; {Q
i
}, {S
j
}, =, <, kus {Q
i
}
ja {S
j
} thistavad vastavaid predikaatsmbolite loetelusid indeksite
i ja j jrgi.
Selle signatuuri loomulikuks interpretatsiooniks on struktuur
I = ; 0; +1; {Q
i
}, {S
j
}, =, <,
mis koosneb tisarvude hulgast tema loomulikus jrjestuses,
tisarvust null ja he liitmise tehtest ning predikaatsmbolite Q
i
ja S
j
interpretatsioonidest, mis vastavad masina T kirjeldusele:
I |= Q
i
(t, x) masin T on ajahetkel t seisundis q
i
ning vaatleb x-ndat lahtrit;
I |= S
j
(t, x) ajahetkel t on x-ndas lahtris sm-
bol s
j
.
Kirjeldame nd valemite hulka . Iga kirjutamisksu q
i
s
j
s
k
q
l
kohta leidub temas valem
t xy {[Q
i
(t, x) & S
j
(t, x)]
[Q
l
(t
, x) & S
k
(t
, x) & (y = x
(S
0
(t, y) S
0
(t
, y)))]},
s.t. ksu tulemusel muutub ainult vaadeldava lahtri sisu ning kik
lejnud lahtrid jvad samaks.
Iga paremale liikumise ksu q
i
s
j
Rq
l
kohta on hulgas valem
t xy {[Q
i
(t, x) & S
j
(t, x)]
[Q
l
(t
, x
) & (S
0
(t, y) S
0
(t
, y))]}
ning iga vasakule liikumise ksu q
i
s
j
Lq
l
kohta valem
210 9. Mittelahenduvad probleemid
t xy {[Q
i
(t, x
) & S
j
(t, x
)]
[Q
l
(t
, x) & (S
0
(t, y) S
0
(t
, y))]}.
Hulgas on ka valem, mis tleb, et ajahetkel 0 on masin
algseisus:
Q
1
(0, 0) & S
1
(0, 0) & S
1
(0, 0
) & . . . & S
1
(0, 0
(n1)
)&
y [(y = 0 & y = 0
& . . . & y = 0
(n1)
) S
0
(0, y)],
s.t. algseisus on lindil n hte ja lejnud lahtrites on nullid. Kui
n = 0, siis on viimane valem kujul
Q
1
(0, 0) &y S
0
(0, y).
Hulgas on veel seoste
ja < definitsioonid:
zx (z = x
) &zxy (z = x
& z = y
x = y),
xyz (x < y & y < z x < z)&
xy (x
puudub tegevus qi sj . . .
t x (Q
i
(t, x) & S
j
(t, x)).
Mittepeatuvate Turingi masinate korral (mille tegevus kirjeldatud
kigi seisundi-smboli paaride korral) vib valemiks h vtta
loogiliselt vra valemi
0 = 0.
Nitame, et
|= h T (n).
9.3. Predikaatarvutuse mittelahenduvus 211
Oletame, et |= h. Kuna interpretatsioon I on valemite hulga
mudeliks, siis kehtib I |= ja seega I |= h. Valemi h tesus on
aga samavrne Turingi masina T peatumisega sisendil n.
Oletame nd, et T (n) ja lpetamise momendil s on masin
seisundis q
i
, vaadeldes p-ndas lahtris smbolit s
j
. Kirjeldame
arvutuse konfiguratsiooni ajahetkel s valemiga
m
s
= Q
i
(0
(s)
, 0
(p)
) & S
j1
(0
(s)
, 0
(p1)
) &. . . &
S
j
(0
(s)
, 0
(p)
) & . . . & S
jv
(0
(s)
, 0
(pv)
)&
y [y = 0
(p1)
& . . . & y = 0
(p)
& . . . &
y = 0
(pv)
S
0
(0
(s)
, y)],
kus p
1
, . . . , p, . . . , p
v
on lindi jrjestikuste lahtrite numbrite jada
ja s
j1
, . . . , s
j
, . . . , s
jv
nendes lahtrites asuvate smbolite jada.
Niteks algseisu ksitlev valem hulgast kirjeldab arvutuste
alghetke konfiguratsiooni m
0
. Kuna arvutuste kigus saab liikuda
ka 0-ndast lahtrist vasakule, siis tuleb kokku leppida, kuidas me
viitame negatiivse numbriga lahtritele. Lahtrile numbriga p = q
(q > 0) vib niteks viidata valemitega kujul
Q
i
(x, 0
(p)
) = z (Q
i
(x, z) & z
(q)
= 0).
Matemaatilise induktsiooniga saab testada (lesanne 9.3.1), et
|= m
s
,
kus m
s
on suvaline arvutuse konfiguratsioon ajahetkel s 0.
See valem kehtib igal arvutussammul. Jrelikult kehtib ta ka
juhul, kui g on konfiguratsioon, milles Turingi masin T peatub:
|= g.
Kuna Turingi masin T on lpetamise momendil s seisundis q
i
ja
vaatleb p-ndas lahtris smbolit s
j
, siis
g |= Q
i
(0
(s)
, 0
(p)
) & S
j
(0
(s)
, 0
(p)
).
Seega
g |= t x (Q
i
(t, x) & S
j
(t, x)),
millest jreldub g |= h ja |= h.
212 9. Mittelahenduvad probleemid
lesanded
1. **Testage, et
|= m
s
,
kus m
s
on suvaline arvutuse konfiguratsioon ajahetkel s (s 0).
2. **Konstrueerige valemite hulk ja valem h Turingi masina
{q
1
1Rq
1
, q
1
0Lq
2
, q
2
10q
2
}
jaoks, kui n = 0 ja n = 2. Nidake, et |= h, kui n = 0.
10. Aritmeetika
mittetielikkus
Inimsoo saatuslik kalduvus loobuda mtlemast asjade
le, mille suhtes ei valitse enam kahtlusi, on phjus-
tanud poole tema vigadest.
John Stuart Mill (18061873)
Inimene ei saa aru ei olematusest, millest ta esile
kerkib, ega lpmatusest, mis teda alla neelab.
Blaise Pascal (16231662)
Kuna geomeetria ja algebra on intuitiivselt kige paremini miste-
tavad matemaatikaharud, siis on neid ptud korduvalt formalisee-
rida. Tuntud on geomeetria aksiomaatiline lesehitus Eukleidese
(u. 365300 e.m.a.) poolt ja naturaalarvude kirjeldus Dedekindi
(18311916) poolt, mis sai tuntuks Peano aksiomaatikana. Arit-
meetika all mistetakse ldiselt abstraktset struktuuri, mis koosneb
kigi naturaalarvude hulgast ja selle elementaartehetest: liitmi-
sest, korrutamisest jms.
10.1. Formaalne aritmeetika
Olgu aritmeetika keele L
N
signatuur
N
= 0;
, +, ; =. Kir-
jeldame formaalse aritmeetika kui esimest jrku teooria N Peano
aksioomidega:
214 10. Aritmeetika mittetielikkus
(P1) xy (x
= y
x = y).
(P2) x (x
= 0).
(P3) x (x = 0 y (x = y
)).
(P4) x (x + 0 = x).
(P5) xy (x +y
= (x +y)
).
(P6) x (x 0 = 0).
(P7) xy (x y
= (x y) +x).
(P8) P(0) &x(P(x) P(x
)) x P(x) induktsiooniaksioom
(P on suvaline predikaat)
Aksioom (P1) tleb, et jrgmise elemendi leidmise tehe
on hene e. injektiivne. Aksioomid (P2) ja (P3) vidavad, et
leidub ainult ks esimene element, nimelt 0. Aksioomid (P4)
(P7) deneerivad induktiivselt liitmis- ja korrutamistehte. Indukt-
siooniaksioom (P8) formaliseerib aga matemaatilise induktsiooni
printsiibi: alustades elemendist 0 on tehtega
vimalik juda iga
naturaalarvuni.
Formaalsel aritmeetikal on standardinterpretatsioon
= , 0, +1, +, ,
mis koosneb naturaalarvude hulgast ja selle harilikest tehetest.
Kiki teisi teooria N mudeleid, mis ei ole mudeliga isomorfsed,
nimetatakse aritmeetika mittestandardseteks mudeliteks.
Selgub, et formaalne aritmeetika on mittetielik ja mittela-
henduv. Phjuseks on helt poolt esimest jrku predikaatarvutuse
piiratus ja teiselt poolt formaalse aritmeetika suur vljendus-
vimsus. Norra matemaatik Thoralf Skolem (18871963) testas
1934. a., et aritmeetikal leidub loenduv mittestandardne mudel,
mis sisaldab lisaks tavalistele arvudele ka lpmatult suuri arve.
Gdel formaliseeris aga 1931. a. aritmeetikas valetaja paradoksi,
nidates aritmeetika sisemist vastuolulisust.
10.1. Formaalne aritmeetika 215
Thistame formaalsed naturaalarvud smbolarvudega.
0 = 0, 1 = 0
, . . . , m = 0
m
.
Formaalses aritmeetikas saab testada paljud naturaalarvude
hulga omadused. Testame niteks smbolarvude hulga lpmatuse.
Lause 10.1. Teooria N kik mudelid on lpmatud.
Testus. Nitame, et m = n
N
m = n (m, n ). Olgu
m = n. Siis kehtib kas m < n vi n < m. Olgu m < n.
1. m = n hpotees
2. 0
m
= 0
n
smbolarvude definitsioon
3. 0 = 0
nm
2 m korda (P1), UI ja MP
4. t
= 0 3 t = n m1, = smmeetria
5. t
= 0 aksioom (P2)
6. t
= 0 & t
= 0 4,5 Conj
7. m = n 16 IP
Analoogilise testuse saab konstrueerida ka n < m korral. Jreli-
kult on erinevatele arvudele vastavad objektid erinevad. Arve on
aga loenduv hulk.
Teoorias N saab kirjeldada jrjestusseosed:
x < y
def
= w(w = 0 & x +w = y),
x y
def
= x < y x = y.
Definitsioon 10.2. Naturaalarvuline predikaat R(x
1
, . . . , x
n
) on
aritmeetikas vljendatav (e. aritmeetiline predikaat), kui leidub
valem (x
1
, . . . , x
n
) L
N
, nii et iga k
1
, . . . , k
n
korral
R(k
1
, . . . , k
n
) = t |= (k
1
, . . . , k
n
).
216 10. Aritmeetika mittetielikkus
Niteks seost x
1
= x
2
vljendab valem x
1
= x
2
, sest vrdust
interpreteeritakse alati objektide samasusena:
k
1
= k
2
|= k
1
= k
2
,
k
1
= k
2
|= k
1
= k
2
.
Seost x
1
< x
2
vljendab aga valem w(w = 0 & x
1
+ w = x
2
),
kuna
k
1
< k
2
|= w(w = 0 & k
1
+w = k
2
),
k
1
< k
2
|= w(w = 0 & k
1
+w = k
2
).
Defineerime kvantori leidub tpselt ks valemiga
1
x p(x)
def
= x p(x) &xy (p(x) & p(y) x = y).
Sarnaselt aritmeetikas vljendatavate predikaatidega saab de-
neerida ka aritmeetikas vljendatavad funktsioonid.
Definitsioon 10.3. Naturaalarvuline funktsioon f (x
1
, . . . , x
n
) on
aritmeetikas vljendatav, kui leidub valem (x
1
, . . . , x
n
, x
n+1
)
L
N
, nii et iga k
1
, . . . , k
n+1
korral
1) kui f (k
1
, . . . , k
n
) = k
n+1
, siis |= (k
1
, . . . , k
n
, k
n+1
);
2) |=
1
x
n+1
(k
1
, . . . , k
n
, x
n+1
).
Niteks nullfunktsioon
z(x) = 0
on aritmeetikas vljendatav valemiga
(x)
def
= x
1
= x
1
& x
2
= 0.
Olgu z(k
1
) = k
2
, s.t. k
2
= 0. Siis saame vrduse omaduste phjal
|= k
1
= k
1
& 0 = 0,
|=
1
x
2
(x
1
= x
1
& x
2
= 0),
10.2. Gdeli teoreemid aritmeetika mittetielikkusest 217
sest vrdustest x
2
= 0 ja y = 0 jreldub x
2
= y. Ka successor-
funktsioon
s(x) = x + 1
on aritmeetikas vljendatav. Selleks sobib niteks valem
(x)
def
= x
2
= x
1
.
Kurt Gdel (19061978) nitas, et kik arvutatavad naturaal-
arvulised funktsioonid ja predikaadid on aritmeetikas vljendata-
vad. Ta ti selleks sisse -funktsiooni, mis vimaldab aritmeetikas
vljendada viteid naturaalarvude lplike jadade kohta.
Teoreem 10.4 (Gdel). Iga kikjal mratud arvutatav funktsioon
on aritmeetikas vljendatav.
Jreldus 10.5. Iga arvutatav predikaat on aritmeetikas vljenda-
tav.
lesanded
1. Testage, et aritmeetikas on vljendatav successor-funktsioon.
2. Nidake, et funktsioon f (x
1
, . . . , x
n
) on aritmeetikas vljendatav
tema graafik f (x
1
, . . . , x
n
) = y on aritmeetikas vljendatav.
3. Phjendage, miks on aritmeetikas vljendatav mitte kuskil mra-
tud funktsioon (x).
10.2. Gdeli teoreemid aritmeetika
mittetielikkusest
Matemaatika ajaloost on teada mitmeid niteid intuitiivselt sel-
getest teooriatest, milles hiljem avastatakse ebatpsusi vi vastu-
olusid. Eukleidese geomeetriat peeti kuni 19. sajandini ainuvima-
likuks geomeetriaks. Arvati, et selle aksioomide kehtivus on vl-
jaspool kahtlust. Siis aga seati paralleelide aksioom kahtluse alla
218 10. Aritmeetika mittetielikkus
ning saksa matemaatik Georg Friedrich Bernhard Riemann (1826
1866), vene matemaatik Nikolai Lobat"evski (17931856) ja ungari
matemaatik Jnos Bolyai (18021860) konstrueerisid prast selle
krvalejtmist mitu mitteeukleidilist geomeetriat.
Samasugune olukord tekkis eelmisel sajandivahetusel ka
Cantori hulgateoorias. Selles intuitiivselt lihtsas ja selges teoo-
rias avastati mitu vastuolu, millest kuulsamad on Russelli ja
Cantori paradoksid.
Mitme sajandi vltel arvati, et Newtoni mehhaanika kirjel-
dab ideaalselt kehade liikumist ja vastastikuseid mjusid. Kuid
Einsteini relatiivsusteooria nitas, et kehade massi ja kiirust saab
ksitleda ka Newtonist erinevalt: keha aeglasel liikumisel on selle
mass konstantne, kuid valguse kiirusele lhedastel kiirustel keha
mass vheneb. Seda kinnitavad ka fsikute poolt mikromaailmas
tehtud katsed.
Aritmeetika tielikkuse probleem kasvas vlja Hilberti prog-
rammist. Saksa matemaatik David Hilbert (18621943) pdis
selle sajandi alguses matemaatilistes testustes korda luua. Ta
tahtis esitada kogu olemasoleva matemaatika htse formaalse ak-
siomaatilise ssteemina, mille niitseid testusi tunnustaksid kik
matemaatikud. See ssteem pidi loomulikult sisaldama ka tava-
list naturaalarvulist aritmeetikat. Hilbert pidas tarvilikuks testada
rangelt nii selle ssteemi mittevasturkivus kui ka tielikkus.
Definitsioon 10.6. Me tleme, et teooria N on mittetielik, kui
leidub lause p L
N
, nii et
N
p ja
N
p.
Saksa loogik Kurt Gdel (19061978) testas 1931. aastal,
et Hilberti programm on sisemiselt vastuoluline, mistttu seda
ei saagi phimtteliselt ellu viia. Ta nitas, et kui aritmeetikat
sisaldav formaalne teooria ei ole vasturkiv, siis ta ei ole tielik.
Seega saab selle teooria tulemusi erinevalt interpreteerida ning
ei ole olemas htset kogu olemasolevat matemaatikat hlmavat
formaalset teooriat.
10.2. Gdeli teoreemid aritmeetika mittetielikkusest 219
Oletame, et vaadeldaval teoorial leidub mudel. Suvalise kin-
nise valemi p korral on selles mudelis tene kas valem p ise vi
tema eitus p. Kuna see teooria ksitleb kogu olemasolevat ma-
temaatikat, siis tema mittetielikkus thendab, et leidub niisugune
matemaatiline vide, mida ei saa rangelt testada ega ka mber
lkata.
Me vime vtta konstrueeritava teooria aksioomideks aritmee-
tika kigi teste valemite hulga
= { p L
N
| |= p }.
Saadud teooriat nimetatakse standardinterpretatsiooni elemen-
taarteooriaks ( ). See teooria on kll tielik, kuid tema ak-
sioomide hulk ei ole enam lahenduv. Aksioomide hulga lahendu-
vus ja tuletusreeglite hulga lplikkus on aga praktikas kasutatavate
teooriate iseenesestmistetavad omadused.
Teoreem 10.7 (Gdeli esimene teoreem aritmeetika mittetie-
likkusest). Iga lahenduv mittevasturkiv aksiomaatiline teoo-
ria N, mis sisaldab Peano aksioome, on mittetielik, s.t.
= { p L
N
|
N
p }
=
.
Testus. Olgu {M
i
} Turingi masinate Gdeli numeratsioon. De-
neerime predikaadi
T (e, x, y)
def
= Turingi masin M
e
peatub sisen-
dil x tpselt y sammu jooksul.
Predikaat T (e, x, y) on Churchi teesi phjal arvutatav. Jrelikult on
ta aritmeetikas vljendatav. Kuna teooria N on Peano aksiomaatika
ldistus, siis on T (e, x, y) vljendatav ka teoorias N ja leidub
seda vljendav valem (e, x, y) L
N
. Nd saab teoorias N
valemiga
(e, x)
def
= y (e, x, y)
vljendada predikaadi M
e
(x) (Turingi masin M
e
peatub sisen-
dil x). Oletame, et teooria N on tielik. Siis kas
N
(m, n) vi
N
(m, n).
220 10. Aritmeetika mittetielikkus
Kuna lahenduva teooria teoreemide hulk on rekursiivselt loetletav,
siis lahendab loetlemisalgoritm ka ldise peatumisprobleemi:
N
(m, n) M
m
(n),
N
(m, n) M
m
(n) (ei peatu).
ldine peatumisprobleem on aga mittelahenduv, mistttu teooria
N ei saa olla tielik.
Gdeli teine teoreem aritmeetika mittetielikkusest vidab, et
kui aritmeetika on mittevasturkiv, siis ei saa temas tuletada
valemit, mis vljendab tema enda mittevasturkivust. Seega peab
aritmeetika mittevasturkivuse testamiseks vtma kasutusele te-
mast ldisema teooria. Niteks vib proovida testada formaalse
aritmeetika mittevasturkivust formaalses hulgateoorias. Kuid siis
oleks vaja testada ka formaalse hulgateooria mittevasturkivus,
milleks tuleb konstrueerida veel ldisem formaalne teooria.
lesanded
1. Nidake, et formaalse aritmeetika kigi teoreemide hulk on rekur-
siivselt (s.t. algoritmiliselt) loetletav.
11. Krgemat jrku
loogika
11.1. Aritmeetika kui teist jrku teooria
Esimest jrku loogikas tohib kvantitseerida ainult indiviidmuutu-
jaid. Matemaatiliste teooriate esitamisel kvantitseeritakse sageli
ka funktsioone ja predikaate. Vtame niteks pidevusaksioomi
1
Igal lalt tkestatud reaalarvude hulgal on
olemas lemine raja.
Reaalarvude hulgad kujutavad endast reaalarvudel defineeritud
predikaate. Jrelikult vidab pidevusaksioom, et igal reaalarvulisel
predikaadil leidub minimaalne lemine tke.
Ka induktsiooniaksioomis
P0 &x (Px Px
) x Px
on P suvaline predikaat ning tema sidumine ldisuskvantoriga P
annab meile teist jrku predikaatloogika aksioomi. Kui me ksit-
leme formaalset aritmeetikat kui esimest jrku teooriat, siis annab
induktsiooniaksioom iga predikaadi Px korral uue aksioomi, mis-
tttu aksioomide hulk on lpmatu. Naturaalarvude hulga korral on
vimalik konstrueerida kontinuaalne arv erinevaid predikaate Px.
1
G. Kangro. Matemaatiline anals I. Tallinn, 1982, lk. 17.
222 11. Krgemat jrku loogika
Esimest jrku formaalsel aritmeetikal on lisaks naturaalarvude hul-
gale ka mittestandardsed mudelid. Formaalne aritmeetika on aga
teist jrku teooriana lplikult aksiomatiseeritav ning tema ainsaks
mudeliks on aritmeetika standardinterpretatsioon.
11.2. Teist jrku loogika
Lubades esimest jrku loogika keeles kasutada lisaks indiviid-
muutujatele ka lause-, predikaat- ja funktsionaalmuutujaid, mida
vib siduda ldisus- ja eksistentsikvantoritega, on lihtne le minna
esimest jrku loogikast teist jrku loogikasse. Teist jrku loogika
semantika ei erine oluliselt esimest jrku loogika omast: n-kohalist
predikaatmuutujat ptakse asendada kikvimalike n-kohaliste
seostega. mis on deneeritavad vaadeldava interpretatsiooni uni-
versumil, ning vabu muutujaid ksitletakse selliselt, nagu nad
oleksid seotud ldisuskvantoriga.
Krgemat jrku loogikas on paljusid misteid tunduvalt lihtsam
defineerida kui esimest jrku loogikas. Niteks saab Leibnizi
vrduse printsiibi, mis vidab, et kui kahel objektil on hed
ja samad omadused, siis vib need objektid samastada, esitada
definitsioonina
x = y
def
= P (Px Py).
Definitsiooni aluseks on tdemus, et erinevaid objekte on vimalik
alati semantiliselt eristada, sest me saame deneerida abstraktse
omaduse, mis on hel objektil tidetud, teisel aga ei ole. Te-
gelikult on Leibnizi vrduse printsiip esitatav ka esimest jrku
loogikas. Selleks vtame kasutusele binaarse predikaadi , mis
rakendab oma esimest argumenti teisele argumendile, ja ksitleme
predikaatsmboleid kui indiviidmuutujaid sobivas esimest jrku
teoorias:
P ( (P, x) (P, y)).
Ent krgemat jrku loogika vimaldab esitada sellised vited palju
lihtsamal ja loomulikumal kujul.
11.3. Kompaktsusteoreem 223
11.3. Kompaktsusteoreem
Esimest jrku predikaatarvutuse tielikkuse teoreemist jreldub
vahetult mitu olulist tulemust, nagu Skolemi-Lwenheimi teoreem
ja kompaktsusteoreem. Me nimetame teooriaks suvalist valemite
hulka. Teooria mudel on interpretatsioon, milles on tesed kik
selle teooria valemid. Interpretatsioon on lplik, kui tema univer-
sum on lplik.
Teoreem 11.1 (Skolemi-Lwenheimi teoreem, 1915). Kui esi-
mest jrku teoorial leidub lpmatu mudel, siis leidub tal ka
lplik vi loenduv mudel.
Seda teoreemi nimetatakse vahel ka Skolemi-Lwenheimi las-
kumisteoreemiks vastandina Skolemi-Lwenheimi tusmisteoree-
mile.
Teoreem 11.2 (Skolemi-Lwenheimi tusmisteoreem). Kui esi-
mest jrku teoorial leidub lpmatu mudel, siis leidub tal mudel ka
iga vimsuse korral, mis on selle mudeli vimsusest suurem.
Nimetatud teoreemidest jreldub, et esimest jrku loogikas ei
saa lpmatuid vimsusi eristada. Kuna esimest jrku predikaat-
arvutuses langevad tuletatavuse ja loogilise jrelduvuse misted
kokku, siis kehtib veel jrgmine teoreem.
Teoreem 11.3 (kompaktsusteoreem). Kui |= p, siis leidub lp-
lik hulk , nii et |= p.
Vahel nimetatakse kompaktsusteoreemiks tema jreldust.
Jreldus 11.4. Kui teooria igal lplikul alamteoorial leidub
mudel, siis leidub mudel ka teoorial .
lesanded
1. Testage kompaktsusteoreem ja selle jreldus.
224 11. Krgemat jrku loogika
11.4. Vljendatavus teist jrku loogikas
Jrgnevalt nitame kompaktsusteoreemiga esimest jrku loogika
piiratust.
Teoreem 11.5 (Henkin, 1949). Kui teoorial leidub kuitahes
suur lplik mudel, siis leidub tal ka lpmatu mudel, s.t. esimest
jrku loogikas ei saa lplikkust ja lpmatust eristada.
Testus. Olgu esimest jrku teooria, millel leidub kuitahes
suur lplik mudel. Teooria
igal lplikul
alamteoorial leidub mudel, on kompaktsusteoreemi phjal mudel
ka tal endal. Valemite
n
tesuse tttu on see mudel lpmatu.
Kuna
<0
def
= f (Inj(f ) Surj(f )),
s.t. iga injektiivne funktsioon on samal ajal ka srjektiivne, kus
Inj(f )
def
= xy (f (x) = f (y) x = y),
Surj(f )
def
= xy (f (y) = x).
lesanded
1. Phjendage, miks valem
<0
on kigis lplikes interpretatsiooni-
des tene ja kigis lpmatutes interpretatsioonides vr.
Jrgnevalt nitame, et esimest jrku aritmeetikal leiduvad
loenduvad mittestandardsed mudelid.
2
Niteks n
def
= x1 . . . xn(x1 = x2 & x1 = x3 & . . . & xn1 = xn).
11.4. Vljendatavus teist jrku loogikas 225
Teoreem 11.6 (Skolemi teoreem aritmeetika mittestandardsetest
mudelitest, 1934). Olgu esimest jrku teooria, mille signatuuris
on smbolid 0 ja
(successor-funktsioon) ning mille mudeliks
on aritmeetika standardinterpretatsioon . Siis leidub teoorial
loenduv mudel , mis pole mudeliga isomorfne.
Teooriaks vib vtta niteks kik formaalse aritmeetika
(teooria N) teoreemid vi kik aritmeetika standardinterpretatsioo-
nis tesed valemid (s.t. mudeli elementaarteooria)
( ) = { p | |= p }.
Testus. Olgu loetletud omadustega teooria. Teooria
saa-
miseks lisame signatuuri uue konstandi c ja aksioomid c = n
(n = 0, 1, 2, . . .), kus n thistab n-ndat smbolarvu. Teooria
N
def
= &x Nx,
kus
def
= x (x
= 0) &xy (x
= y
x = y),
Nx
def
= P (P0 &u(Pu Pu
) Px),
226 11. Krgemat jrku loogika
s.t. smbolarvud n (n = 0, 1, 2, . . .) thistavad erinevaid arve ning
puuduvad smbolitega thistamata arvud.
Toome etteruttavalt veel he esimest ja teist jrku predikaat-
arvutuse erinevuse: kui esimest jrku intuitsionistlikus loogikas
ei saa kvantoreid ja lausearvutustehteid ksteise kaudu avaldada,
siis teist jrku intuitsionistlikus loogikas saab deneerida need
ldisuskvantori ja implikatsiooni kaudu:
(= v) = XX,
p = p ,
p &q = X((p (q X)) X),
p q = X((p X) ((q X) X)),
x p = Xx ((p X) X),
P p = XP ((p X) X),
kus suured thed thistavad lause- ja predikaatmuutujaid ning
vastuolu.
11.5. Tbiteooria
Kui me lubame kasutada predikaate ka predikaatide ja funktsioo-
nide argumentidena, saame tulemuseks tpidega predikaatarvu-
tuse. Deneerime niteks predikaadi
(P)
def
= P(P),
mis tleb, et predikaat P on iseendale rakendatav.
lesanded
1. *Kirjeldage predikaadid P ja Q, nii et (P) on tene ja
(Q) on vr.
Ksime nd, kas predikaati saab iseendale rakendada
vi mitte? Kui ( ) on tene, on predikaadi
definitsiooni tttu tene ka lause ( ). Saime vastuolu.
11.5. Tbiteooria 227
Oletame, et ( ) on vr. Siis on definitsiooni tttu
vr ka lause ( ), mis annab jlle vastuolu.
See Russelli avastatud paradoks nitab, et predikaatsmbolite
kasutamisel predikaatide argumentavaldistes ilma hegi kitsendus-
eta vivad tekkida vastuolud. Paradokside vltimiseks toodi sisse
predikaatide, funktsioonide ja indiviidide tbid:
Boolei konstandid t ja v on tpi o.
Indiviidmuutujad ja indiviidkonstandid on tpi .
Kui ja on tbid, siis on funktsioonitp, mis
seab -tpi objektidele vastavusse -tpi objektid.
Niteks tp thistab indiviididel mratud funktsioone
ning tp o indiviididel mratud hekohalisi predikaate.
Niisugust tbiteooriat kasutatakse niteks funktsionaalse pro-
grammeerimise ssteemides, kus igal predikaadil, funktsioonil ja
indiviidil on kseeritud tp. Tpide phjal deneeritakse ka
objektide tasemed:
Indiviidmuutujad, indiviidkonstandid ja Boolei konstandid
on tasemega 0.
Funktsiooni tase on he vrra suurem tema argumentide
maksimaalsest tasemest.
Niteks esimest ja teist jrku predikaatarvutus on tasemega 1.
Predikaatidele ja funktsioonidele tpide ja tasemete omistamise
kaudu saame rkida ka kolmandat, neljandat jne. jrku loogikast
(s.t. lplikku jrku loogikatest). On selge, et tbiteooria krvaldab
loogikast Russelli paradoksi sarnased vastuolud. Predikaati ei ole
sellisel juhul vimalik iseendale rakendada, sest siis peaks selle
predikaadi aste olema samaaegselt iseendast he vrra suurem.
Loogikat, kus iseendale viitamine ei ole denitsioonides luba-
tud, nimetatakse predikatiivseks. Huvi pakub ka mittepredikatiivne
loogika. Eriti seoses rakendustega andmebaaside teoorias ning
rekursiivsete programmide ja induktiivsete struktuuride analsi-
misel.
228 11. Krgemat jrku loogika
Tbiteooria kaudu on loomulik sisse tuua ka indiviidide
liigid e. sordid. Selleks vtame kasutusele mitu erisugust univer-
sumit, thistades nende elemendid erinevate 0-taseme tpidega
1
,
2
, . . . Tulemuseks on mitmeliigiline e. mitmesordiline predi-
kaatarvutus. Niteks programmeerimiskeeltes vivad protseduuride
ja funktsioonide argumendid olla kas mnda ssteemselt mra-
tud tisarvud, reaalarvud, smbolid vi kasutaja deneeritud
tpi hulgad, kirjed vms.
11.6. Matemaatiline teooria
Esimest jrku loogikal on rida omadusi, mis teist jrku loogikal
puuduvad:
1. Esimest jrku loogika teste valemite hulka saab rekursiiv-
selt loetleda. Ent teist jrku loogika teste valemite hulka ei
saa rekursiivselt loetleda, sest see hulk ei ole mitte heski
krgemat jrku aritmeetikas kirjeldatav.
2. Esimest jrku loogika on kompaktne, aga teist jrku loogika
ei ole kompaktne. Selle phjuseks on aritmeetika standard-
interpretatsiooni hene kirjeldatavus teist jrku loogikas.
3. Esimest jrku loogikas kehtivad Skolemi-Lwenheimi lasku-
misteoreem ja tusmisteoreem. Teist jrku loogikas nad aga
ei kehti, sest seal saab eristada loenduvaid ja kontiinumi
vimsusega hulki.
Selleprast tekib igustatud ksimus:
Kas teist jrku loogikat vib ldse pidada loogikaks?
Vib-olla on teist jrku loogika vaid matemaatiline abstraktsioon.
helt poolt on tal olemas loogikale iseloomulikud tunnused:
sntaks, semantika ja tuletusteooria. Filosoofilises mttes vib
aga loogikat ksitleda kui teadust a priori tdedest, mis ei sltu
praktikast ega meie subjektiivsusest. Seeprast peab Quine teist
jrku loogikat pigem matemaatiliseks teooriaks.
11.7. Rakendused arvutiteaduses ja programmeerimises 229
Samas on selge, et teist jrku loogikal on matemaatilistes
arutlustes thtis koht. Phjalikumalt on uuritud krgemat jrku
hulgateooriat ja analsi. Sajandi alguses kivitunud Hilberti
programmi sisuks oli mittepredikatiivsete testusmeetodite phjen-
damine predikatiivsete vahenditega. Gdeli teoreemid formaalse
aritmeetika mittetielikkusest nitasid aga, et Hilberti ettevtmine
oli liiga optimistlik. Sellegipoolest nnestus muuta mitu niliselt
mittepredikatiivset meetodit oluliselt konstruktiivsemaks.
11.7. Rakendused arvutiteaduses ja
programmeerimises
Universaalsete programmeerimiskeelte aluseks on protseduurid,
mis on krgemat jrku funktsioonid. Juba Algol ja Ada kasu-
tasid tiel mral krgemat jrku loogikate tbistruktuuri. Eriti
arenenud on objektorienteeritud keelte tbissteem. Tbid on
heaegselt nii andmete kirjeldused, mida saab kasutada prog-
rammide vigade avastamiseks, kui ka iseseisvad andmed.
Konstruktiivse loogika ja funktsionaalse programmeerimise va-
hel avastatud seosed on programmide automaatse snteesi aluseks,
kus programmid genereeritakse nende formaalsetest testustest
krgemat jrku loogikas.
Kuna juba esimest jrku loogika on algoritmiliselt mittelahen-
duv, on mittelahenduv ka teist jrku loogika. Selleprast uuritakse
arvutiteaduses intensiivselt tema alamloogikaid nagu monaadi-
list teist jrku loogikat, milles vib kasutada krgemat jrku
muutujatena ainult hekohalisi predikaate (s.t. hulki). Ilma funkt-
sionaalsmboliteta monaadiline teist jrku loogika lahendub nagu
ka monaadiline esimest jrku loogika.
230 11. Krgemat jrku loogika
11.8. lesanded
1. (G. Forbes) Formaliseerige laused, kasutades teist jrku kvanto-
reid:
(a) Platonit ja Sokratest ei ole vimalik eristada.
(b) Igal kahel inimesel on midagi hist.
(c) Mnel inimesel ei ole teiste inimestega midagi hist.
(d) Kui miski on omane igale kahele inimesele, siis on igal
kahel inimesel mingi hine omadus.
2. **Formaliseerige vited. Pdke hinnata kasutatava loogika
jrku. (Allikas: G. Kangro. Matemaatiline anals I. Tallinn,
1982)
(a) Kui igale reaalarvule x hulgast X on heselt vastavusse
seatud reaalarv y, siis eldakse, et hulgal X on deneeri-
tud funktsioon.
(b) Arv A on funktsiooni f piirvrtus kohal a parajasti siis,
kui funktsiooni f mramispiirkonnas iga a-le lheneva
jada {x
n
} puhul, kus x
n
= a, kehtib seos lim
n
f(x
n
) = A.
(c) Kui ksteisesse sisestatud likude jadas likude pikkused
lhenevad nullile, siis neil likudel on parajasti ks hine
punkt, mis kujutab nende likude otspunktide jada piir-
vrtust.
(d) Igast tkestatud jadast saab eraldada koonduva osajada.
(e) Kui funktsioonid f ja g on pidevad kohal a, siis
ka funktsioonid f(x) + g(x), f (x) g(x), f(x) g(x),
f (x)/g(x) on pidevad kohal a, kusjuures jagatise korral
eeldame, et g(a) = 0.
(f) Ligus pidev funktsioon on selles ligus tkestatud.
(g) Ligus pideval funktsioonil on selles ligus ekstremaalsed
vrtused.
(h) Joon y = f(x) on kumer (ngus) piirkonnas X para-
jasti siis, kui f
.
Sellist modaalloogilist ssteemi nimetatakse ka standardseks
modaalloogikaks ehk ssteemiks S5. Me ksitleme Lewise teisi
modaalloogilisi ssteeme nagu T ja S0S4 pgusalt natuke hiljem.
Thistades vljenditega w[p] ja [p] valemi p tevrtused
maailmas w ja intepretatsioonis ning vljendiga w: p t
tevrtuse, mille maailm w omistab valemile p, saame anda
modaalse lauseloogika semantikareeglid:
240 12. Modaalloogika
1. w[p] = t w: p t (p on lausemuutuja).
2. w[ p] = t (u ) u[p] = t .
3. w[ p] = t (u ) u[p] = t .
4. [p] = t w
[p] = t ,
kus w on suvaline vimalik maailm, w
on interpretat-
siooni tegelik maailm ning lausearvutustehete semantika on
sama, mis lauseloogikas.
Me tleme nagu tavaliselt, et valem on loogiliselt tene, kui
ta on tene kigis interpretatsioonides, ning arutlus kehtib, kui ei
leidu interpretatsiooni, milles tema eeldused on tesed ja jreldus
vr.
Vimalike maailmade ssteeme saab kasutada eksijrelduste
mberlkkamiseks.
Nide 12.2. A& B |=
S5
(A& B).
Valime interpretatsiooni = {w
, u} selliselt, et A ja B on vastu-
rkivad laused, mis ei saa olla samaaegselt tesed:
w
u
A v A t
B t B v
Selles interpretatsioonis on eeldus A& B tene, sest
1. u[A] = t (definitsiooni 1. punkti phjal).
2. w
[B] = t (1).
4. w
[ B] = t (3), sest w
[B] = t.
5. w
[ A& B] = t.
12.4. Tuletused modaalloogikas S5 241
Jreldus (A& B) on aga vr:
1. w
[ (A& B)] = v.
lesanded
1. Testage vited:
(a) A |=
S5
A;
(b) (A B) |=
S5
A B;
(c) (A B) |=
S5
( A B).
2. *Nidake, et |=
S5
(p p), kuid |=
S5
p p.
12.4. Tuletused modaalloogikas S5
Kirjeldame modaalloogika tuletusreeglid. Selleks lisame lausear-
vutuse loomuliku tuletuse ssteemi modaalsete operaatorite
sissetoomis- ja eemaldamisreeglid.
Paratamatuse sissetoomisreeglis ( I) ja vimalikkuse eemal-
damisreeglis ( E) peab olema tidetud tingimus (), mis nuab,
et valemeid p, p ja q mjutavad eeldused ja hpoteesid (vlja
arvatud hpotees p vimalikkuseoperaatori eemaldamisel) peavad
olema tielikult modaliseeritud, s.t. nende kik lausemuutujad
peavad olema seotud kas vimalikkuse- vi paratamatuseoperaa-
toriga.
Toome nd mned tuletuste nited.
242 12. Modaalloogika
Sissetoomisreegel Eemaldamisreegel
p
p
( I)
p
p
( E)
p
p
( I)
p
[p]
.
.
.
.
q
q
( E)
tema kanooniline
tlge monaadilise predikaatloogika keelde. Nidake, et valemid p
ja p
, nii et I |= p I
|= p
.
2. ***Testage, et monaadiline predikaatarvutus on lahenduv.
12.6. Erinevad tuletusssteemid
Lewis ti modaalloogika jaoks sisse mitu aksiomaatilist tule-
tusssteemi. Ssteemi T aksioomideks on kik lausearvutuse
tautoloogiad, millele lisatakse aksioomiskeemid
246 12. Modaalloogika
(T) p p;
(K) (p q) ( p q),
s.t. iga paratamatu lause on tene ning juhul, kui vitest p jreldub
paratamatult vide q, jreldub p paratamatusest q paratamatus.
Tuletusreegliteks on modus ponens ja paratamatuse sissetoomine
p
p
(N).
Jttes aksioomiskeemi (T) vlja, saame tuletusssteemi K,
mida kasutatakse deontilises loogikas. Ssteemis K tlgendatakse
smbolit mitte kui paratamatust, vaid kui kohustuslikkust.
Sellisel juhul ei tarvitse aksioomiskeem (T) kehtida, sest meile
vivad olla kohustuslikud asjad, mis ei ole tesed. Niteks vib
olla kohustuslik, et ma teeksin kik eksamid viitele, kuigi see
tegelikult nii ei ole. Teadmiste loogikas thistab smbol seda,
mis on teada. Kuna tavaliselt on meie teadmiste sisuks tesed
vited, jetakse teadmiste loogikas aksioomiskeem (T) alles. Aga
uskumiste loogikas visatakse (T) jlle vlja, sest thistab seal
seda, millesse usutakse.
Lewise tuletusssteemid S4 ja S5 on ssteemi T laiendused.
Ssteemis S4 lisatakse aksioomiskeem
(4) p p,
mis tleb, et kik, mis on paratamatu, on seda paratamatult.
Samuti on kik, mille vimalikkus on vimalik, ka ise vimalik:
(4 ) p p.
Tuletusssteemi S5 saamiseks lisatakse ssteemile S4 aksioo-
miskeem
(5) p p.
Vimalike maailmade semantika abil saab selgitada ka nende
ssteemide vahelisi erinevusi. Selleks toome lisaks maailmade
ssteemile sisse ka maailmadevahelise ligipsetavuse seose R
ning defineerime paratamatuseoperaatori semantika jrgmiselt:
w[ p] = t u(u & w R u u[p] = t ),
s.t. mingi vite paratamatult tesuseks maailmas w peab see
vide olema tene kigis maailmades, kuhu sellest maailmast on
12.7. Modaalne predikaatloogika 247
vimalik ligi pseda. Analoogiliselt deneeritakse ka vimalik-
kuseoperaatori semantika.
Sltuvalt seose R algebralistest omadustest saame erinevate
modaalloogika tuletusssteemide interpretatsioonid. Ssteemis K
ei seata seosele R mingeid tingimusi. Ssteemis T nutakse, et
seos R oleks reeksiivne
3
. S4-s peab R olema lisaks reeksiivsu-
sele ka transitiivne ja ssteemis S5 on R ekvivalentsiseos, s.t. ta
on heaegselt nii reeksiivne, smmeetriline kui ka transitiivne.
Ssteemid K, T , S4 ja S5 on nimetatud interpretatsioonide suh-
tes tielikud, s.t. teste ja tuletatavate valemite hulgad langevad
nendes kokku.
lesanded
1. Nidake, et aksioomiskeemid (4) ja (4 ) on ekvivalentsed.
2. Testage, et aksioomiskeemidest (5) ja (T) jreldub (4).
Kuna ssteemidel K, T , S4 ja S5 on olemas lpliku mudeli
omadus (kui valemite hulgal leidub mudel, siis sellel hulgal leidub
ka lplik mudel), on kik need ssteemid lahenduvad.
Ssteemi S4 interpretatsioone kasutatakse samuti intuitsionist-
likus loogikas, sest me kujutame intuitsionistlikku loogikat ette kui
ajas monotoonselt kasvavat testatud videte hulka. Aja kulgemise
seos on aga reeksiivne ja transitiivne.
12.7. Modaalne predikaatloogika
Modaalsest lausearvutusest on lihtne le minna modaalsesse pre-
dikaatarvutusse. Selleks lisatakse predikaatarvutuse thestikku mo-
daalsete operaatorite smbolid ja . Lihtne on ldistada
ka vimalike maailmade interpretatsioone, lisades maailmadesse
indiviidid ning kujutades iga maailma kui hte vimalikku pre-
dikaatloogika interpretatsiooni. Edasi tekivad aga losoolised
probleemid, sest pole selge, mida sellised maailmad endast tpselt
kujutavad.
3
Binaarne seos R on refleksiivne, kui kehtib x xRx, smmeetriline, kui
xy (xRy yRx), ja transitiivne, kui xyz (xRy &yRz xRz).
248 12. Modaalloogika
Niteks ei tarvitse modaalses predikaatloogikas enam kehtida
vrdusaksioomid. Quine toob niteks vrdsete elementide asenda-
mise seaduse
a = b (Aa Ab),
mille kehtimine on modaalses predikaatloogikas ksitav. Niteks
on pikesessteemis kokku 9 planeeti. On selge, et arv 9 on
paratamatult suurem kui 7. Ent pole tsi, et planeetide arv on
paratamatult suurem kui 7.
lesanded
1. Nidake, et vrdsete elementide asendamise seadus ei kehti tead-
miste ja uskumiste loogikates.
Modaalses predikaatloogikas pakuvad huvi ka Barcani valem
ja selle prdvalem, mis vidavad, et ldisuskvantor ja parata-
matuseoperaator (vi vimalikkuseoperaator ja eksistentsikvantor)
kommuteeruvad omavahel:
x p = x p.
Vtame valemiks p lause Mx, mis tleb, et objekt x on
materiaalne. Vasakpoolne valem vtab nd kokku kontingentse
materialisti seisukoha: kik tegelikus maailmas eksisteerivad asjad
on igas maailmas materiaalsed. Parempoolne valem thendab aga,
et mittemateriaalseid asju ei saagi olla. Kontingentne materialist ei
tarvitse sellega nustuda, sest teistes maailmades vivad esineda
ka mittemateriaalsed asjad: need on objektid, mis oleksid vinud
eksisteerida, kuid tegelikult ei eksisteeri.
13. Intuitsionistlik loogika
On kahte tpi mistusi . . . matemaatiline ja nn.
intuitiivne. Esimene juab oma vaadeteni aeglaselt,
kuid need on kindlad ja ranged; teist on nnista-
tud suurema paindlikkusega ning ta tegeleb samaaeg-
selt armastatud asjade erinevate armastusvrsete osa-
dega.
Blaise Pascal (16231662), Discours sur les pas-
sions de lamour
13.1. Sissejuhatus
Intuitsionistliku loogika tekkimine ja aksiomatiseerimine on selle
sajandi loogikas omamoodi paradoks. Intuitsionism tekkis mate-
maatika aluste uurimisel ja on teiste mitteklassikaliste loogika-
harudega vrreldes rohkem seotud keeruliste matemaatikaprob-
leemidega, eriti aga matemaatiliste objektide olemasolu ja tesuse
mistmisega. Rohkem kui teised mitteklassikalised loogikad on in-
tuitsionistlik loogika matemaatiline selles mttes, et uuritakse just
matemaatika konstruktsioonides ja arvutustes kasutatavat-kehtivat
loogikat. Intuitsionism on ka ainus mitteklassikaline ssteem, mida
kasutades on lbi uuritud suured valdkonnad matemaatikas. Teiselt
poolt on testamise ja arvutamise/konstrueerimise seoste uurimisel
leitud, et intuitsionistlik loogika kirjeldab arvutatavust mrksa pa-
remini kui klassikaline, mis on esile kutsunud arvutiteaduse huvi
intuitsionismi vastu.
250 13. Intuitsionistlik loogika
Intuitsionistliku matemaatikalosooa tekkimise aluseks oli
klassikalisega vrreldes erinev vastus ksimusele, mida uurib ma-
temaatika. Ajalooliselt on domineerinud platonistlik e. realistlik
seisukoht, mida vljendatakse snadega, et matemaatika uurib
matemaatilisi objekte: arve, funktsioone, hulki jne. Matemaatik
kujutab endale ette, et nende objektide maailm eksisteerib umbes
samuti kui fsiliste objektide maailm. Selles maailmas on iga
vide kas tene vi vr, sltumata sellest, kas me seda tevr-
tust teame vi mitte. Niteks Goldbachi hpoteesil (iga paarisarvu,
mis on suurem kui 2, saab esitada kahe algarvu summana) on
matemaatiku arvates kindel tevrtus, kuigi keegi seda praegu ei
tea. Matemaatikute tegevus seisneb realistide arvates videte te-
suse testamises vi vruse kindlakstegemises matemaatikud
uurivad objektiivselt eksisteerivat maailma.
Tegelikult me teame, et matemaatiliste objektide maailm on
inimeste vlja meldud ja arve ega hulki ei eksisteeri kusagil
vljaspool matemaatikat iseseisvana. Matemaatikute maailma on
olemas just niipalju, kui seda seni on vlja meldud. Sealhulgas
on ka niteks naturaalarvude hulgal ainult niipalju omadusi, kui
on kseerinud (aksioomidena, traditsiooniliste arusaamade ja et-
tekujutustena vi mingil muul teel) senine matemaatika. See ei
thenda muidugi, et tesed on ainult need vited, mida keegi juba
on testanud. Niteks on kindlasti selliseid naturaalarve x, y ja z,
mille kohta keegi pole arvutanud, kas vide x + y = z on tene
vi vr. Matemaatikas on aga meetodid, millega saab suvaliste
x, y ja z jaoks kindlaks teha, kas x + y = z kehtib vi mitte ja
seeprast on sellisel vitel kindel tevrtus. Aga me teame, et
saab formuleerida viteid, mille tesus ega vrus ei jreldu seni
matemaatikas paikapandud tdedest, ja matemaatika vib edaspidi
areneda hes vi teises suunas, tehes mne sellise vite teseks
vi vraks. Kurt Gdel ja Paul Joseph Cohen (s. 1934) testa-
sid, et meil pole alust pidada kontiinumhpoteesi ei teseks ega
vraks. Me vime arendada matemaatikat, mille hulkade univer-
sumis kontiinumhpotees on tene, vi matemaatikat, kus see on
vr. Teades juba kolmkmmend aastat selle vite sltumatust,
pole matemaatikud kiirustanud talle tevrtust kseerima, kuigi
13.1. Sissejuhatus 251
Hilbert nimetas aastal 1900 tema kehtimise ksimust matemaatika
lahtistest probleemidest esimesena. See kik aga thendab, et meil
pole phjust eeldada, et tna ja praegu on niteks Goldbachi hpo-
teesil vi kontiinumhpoteesil tevrtus. Seega pole niisugusest
vaatepunktist alust ka A A arvamisel ldkehtivaks.
Intuitsionismi loojaks peetakse hollandi loogikut
L. E. J. Brouwerit (18811966), kes vastukaaluna D. Hilberti
alustatud formalistlikule, aksiomatiseerimisel baseeruvale suunale
matemaatika aluste phjendamisel propageeris matemaatika
ehitamist intuitsiooni abil. Brouweri jrgi seisneb matemaatika
intuitiivsetes konstruktsioonides ja intuitiivsetes arutlustes selliseid
konstruktsioone ksitlevate videte kohta, aga mitte formaalses
deduktsioonis formaalselt kehtestatud aksioomidest. Brouwer oli
ammu enne mittetielikkuseteoreemi testamist Gdeli poolt
(1931) veendunud, et matemaatiliste konstruktsioonide kogu
mitmekesisus ei saa olla hlmatud mingisuguse kseeritud
formaalse ssteemiga. Mis puutub loogikasse, siis Brouwer
tahtis luua intuitsionistlikku matemaatikat ega seadnud mingeid
loogikaprintsiipe vljapoole matemaatikat ega sellest krgemale.
Loomulikult ei eeldanud tema ideed ka intuitsionistliku loogika
aksiomatiseerimist.
Loogikud olid aga huvitatud intuitsionistlikus matemaatikas
kasutatavate printsiipide ekstraheerimisest, mis saigi teoks in-
tuitsionistliku predikaatarvutuse aksiomatiseerimisega A. Heytingi
poolt 1930. aastal. Jrgnenud arengu tulemusena mistetakse t-
napeval intuitsionismi all enamasti intuitsionistlikku loogikat ja
intuitsionistliku loogika all philiselt Heytingi predikaatarvutust.
Sellele uurimistle on stimuleerivalt mjunud intuitsionistliku
tuletatavuse ja arvutatavuse vaheliste seoste avastamine ning tes-
tustest algoritmide eraldamise vimalus.
Intuitsionistliku matemaatika testustes kasutavad aga erine-
vad matemaatikud peale intuitsionistlikus predikaatarvutuses for-
maliseeritud reeglite veel suhteliselt universaalseid, kuid kohati
omavahel vastuolus olevaid printsiipe (Churchi tees, Markovi
printsiip jm.). Nii ei saa me rkida htsest intuitsionistlikust
matemaatikast ega rangelt vttes ka loogikast. Kll aga moodustab
252 13. Intuitsionistlik loogika
Heytingi arvutus hisosa kigist mistlikest intuitsionismidest,
s.t. ainult vrdlemisi radikaalsete vaadetega intuitsionistid ei tun-
nista selles arvutuses tuletatavate valemite ldkehtivust.
13.2. Kaks testuse nidet
Paljudele on teada, et intuitsionistlik matemaatika ei aktsepteeri
nn. puhta olemasolu testusi ega tunnista ldise printsiibina vlis-
tatud kolmanda seadust. Toome kigepealt he lihtsa nite, kuidas
vlistatud kolmanda seadust kasutades saab testada kindlate oma-
dustega objekti olemasolu ilma objekti ennast esitamata.
Teoreem 13.1. Leiduvad sellised irratsionaalsed arvud a ja b, et
a
b
on ratsionaalarv.
Testus. Vaatleme arvu
2
2
. Kui
2
2
on ratsionaalarv, siis
on teoreemi vide tene, sest sobivad a
1
=
2 ja b
1
=
2. Kui
2
on irratsionaalarv, siis on teoreemi vide tene, sest sobivad
a
2
=
2
ja b
2
=
2, kuna a
b2
2
= (
2
)
2
=
2
2
= 2.
Oleme teoreemi klassikaliselt mtleva matemaatiku jaoks tes-
tanud, aga testusest ei saa teada, millised a ja b vrtused
rahuldavad teoreemi tingimusi. Testuses kasutasime vlistatud
kolmanda seadust, pidades teseks disjunktsiooni
2
on ratsionaalne vi
2
2
on irratsionaalne.
Intuitsionistlikus tlgenduses nutakse vite x A(x) testamisel
ka sobiva x vrtuse esitamist (ja tema sobivuse testamist),
disjunktsiooni A B testamisel aga tese liikme nitamist koos
tema kehtivuse testamisega. See thendab, et valemeid kujul
A A ei saa suvalise valemi A jaoks iseenesest teseks arvata,
vaid seda saab teha alles iga valemi A jaoks eraldi, testades
13.2. Kaks testuse nidet 253
disjunktsiooni sobiva liikme. Niteks on tegelikult teada, et
2
2
on irratsionaalne ja seega on teoreem tene arvude a
2
ja b
2
sobivuse tttu. Niisugune testus on muidugi oluliselt keerulisem
kui paarile reale mahtuv klassikaline puhta olemasolu testus, aga
ta annab ka probleemi kohta rohkem informatsiooni.
Toome siin ka he intuitsionistliku testuse nite. Nitame,
et kuigi A A pole intuitsionisti jaoks ldkehtiv, saab testada
selle valemi kahekordse eituse. Mrgime, et valemi A eituse testa-
miseks peavad intuitsionistid piisavaks, et valemist A jreldatakse
vastuolu.
Teoreem 13.2. Valem (A A) on tene.
Testus. Meil tuleb nidata, et (A A) annab vastuolu.
Selleks oletame, et (A A) kehtib. Nitame kigepealt, et
siis kehtib A. Tepoolest. Kui kehtiks A, siis kehtiks esimese
liikme tesuse tttu ka AA ja see oleks vastuolus (AA)
kehtimisega. Et kehtib A, siis vime teise liikme tesuse phjal
vita, et kehtib A A ja oleme saanud vastuolu. Jrelikult on
(A A) vr ja kehtib (A A).
Juhime thelepanu sellele, et siin me ei kasutanud vlistatud
kolmanda seadust A A, vaid jreldasime oletusest (A A)
kigepealt A ja siis nitasime, et oletus ise ei saa kehtida.
Neme ka, et intuitsionistlikus loogikas pole phjust lugeda
valemit A A ldkehtivaks. Valemi A testamiseks piisab
A mberlkkamisest, A testamine vib aga nuda keeruliste
objektide konstrueerimist. Kokkuvttes on intuitsionistlikult seisu-
kohalt loomulik eristada kolme liiki valemeid:
1) tesed (s.t. testatud),
2) vrad (sellised, mille eitus on testatud),
3) praegu teadmata ja isegi olematu tevrtusega valemid.
Viimaste suhtes pole phjust lugeda, et ka A A kehtib.
Intuitsionistlik lhenemine teeb olukorra keerulisemaks kui
klassikaline. Sellegipoolest on konstrueeritud vastuvetavaid in-
tuitsionistlikke teooriaid. Kll aga loobub tsine intuitsionist kigi
254 13. Intuitsionistlik loogika
teste valemite hulga vaatlemisest. Mittetriviaalsetel juhtudel on
see hulk sna piiritlemata. Samuti on he ja sama keele jaoks
tihti erisugused intuitsionistlikud semantikad, s.t. ka he ja sama
valdkonna erinevad intuitsionistlikud teooriad.
13.3. Intuitsionistlik loogikaseoste mistmine
Intuitsionisti seisukohalt pole aritmeetika, matemaatilise analsi,
hulgateooria jt. matemaatiliste distsipliinide videte semantika
lpuni selge, sest pole tpselt selged nende teooriate (lpmatud)
objektid. Ei saa olla ka protseduuri, mis kontrolliks nende teooriate
valemite tesust. Seetttu tuleb piirduda ainult semantiliste kok-
kulepetega, mida valemite tlgendus peaks kindlasti rahuldama.
Nende kokkulepete phjal on ka vimalik formuleerida aksio-
maatilisi teooriaid, mis formaliseerivad teatud aspekte sisulisest
matemaatilisest teooriast (teatud phjusi valemite tesuseks), mitte
aga kogu semantikat.
Iga kinnine valem vljendab mingit (ldiselt mittetielikku)
teadet matemaatilisest konstruktsioonist. Valemi tesust saab ni-
data seda tendava konstruktsiooni esitamisega. See konstruktsioon
peab vastama teatavatele valemi kujust tulenevatele tingimustele
semantilistele kokkulepetele.
Kui valem A on kujul A
1
& A
2
, siis k tendab A parajasti
siis, kui temast vib saada konstruktsioonid k
1
ja k
2
, mis
tendavad vastavalt A
1
ja A
2
. (Vib arvata, et A tenduseks
on paar, mis koosneb A
1
ja A
2
tendustest).
Kui valem A on kujul A
1
A
2
, siis k tendab A parajasti
siis, kui temast vib saada informatsiooni selle kohta, kumb
A
i
on tene, ja selle A
i
tenduse.
Kui valem A on kujul A
1
A
2
, siis k tendab A parajasti
siis, kui k annab ldise meetodi, mis teisendab A
1
suvalise
tenduse A
2
tenduseks.
13.3. Intuitsionistlik loogikaseoste mistmine 255
Kui valem A on kujul B, siis k tendab A parajasti siis,
kui k tendab A , kus thistab standardset vra
lauset.
Kui valem A on kujul x B(x), siis k tendab A parajasti
siis, kui k esitab x muutumispiirkonna mingi elemendi c ja
valemi B(c) tenduse.
Kui valem A on kujul x A(x), siis k tendab A pa-
rajasti siis, kui k annab ldise meetodi, millega saab x
muutumispiirkonna iga elemendi d jaoks leida valemi A(d)
tenduse.
Kommenteerime veel pisut neid kokkuleppeid.
1. Kigepealt, antud tingimusi tuleb tepoolest vaadelda kui
tingimusi, s.t. nad ei ole tehete ja kvantorite matemaatilised
denitsioonid. Esiteks pole neis kseeritud, mis laadi ob-
jektid vivad olla valemite tendused: testused, algoritmid,
nende mingid formaalsed esitused vms. Intuitsionistid ei k-
seeri ka, mida mistetakse ldise meetodina. Siin oleks kl-
lalt loomulik mista meetoditena algoritme mingis formali-
satsioonis. Formaalsete detailide kseerimine vib anda juba
mingi konkreetse intuitsionistliku semantika (niteks Kleene
deneeritud rekursiivse realiseeritavuse). Samuti ei thenda
semantilised kokkulepped keerulisemate mistete taandamist
lihtsamatele. Esitatakse ju tingimused ldisuskvantori ja
implikatsiooni jaoks omakorda ldisuskvantorit kasutades.
2. Millises vahekorras on kokkulepped klassikalise arusaa-
misega testamisest? Kui mista tendavate objektidena
testusi, siis on tingimused kigil juhtudel klassiku jaoks
kindlasti piisavad, ilmselt aga mitte tarvilikud.
3. Vlja arvatud eituse juht, esitatakse valemi tendusele nu-
ded antud valemi osavalemite kaudu, mis viitab testuse
otsimiseks soodsa osavalemi omaduse kehtimisele.
256 13. Intuitsionistlik loogika
4. Intuitsionistliku semantika jrgi on erinevalt klassikalisest
loogikast kik loogikatehted peale eituse iseseisvad ja neid
ei saa avaldada teiste kaudu. Niteks ei kehti samavrsused
he kvantori avaldamiseks teise kvantori ja eituse kaudu.
13.4. Intuitsionistlik predikaatarvutus
Ajalooliselt tekkis intuitsionistlik predikaatarvutus klassikalisest
arvutusest. Me vime uurida klassikalise arvutuse reegleid ja
aksioome ning kontrollida, millised neist on koosklas meie
semantiliste kokkulepetega ja millised tuleb asendada uutega (nr-
gematega). Kui vtame seejuures aluseks paragrahvis 6.1 too-
dud Hilberti tpi lausearvutuse K, siis avastame, et ainsana
ei vasta intuitsionistlikele semantilistele kokkulepetele aksioom
(K10): p p. Klassikalised aksioomid ja reeglid kvantorite
kohta on aga kik aktsepteeritavad. Asendades aksioomi (K10) in-
tuitsionistlikele kokkulepetele vastava aksioomiga p (p q),
saame intuitsionistliku predikaatarvutuse, kus aksioomid on
(K1)(K9)
(I10) p (p q)
(H4)(H5)
ja tuletusreeglid
modus ponens
(Gen)
Et lisatud aksioom (I10) on klassikaliselt tuletatav (samaselt
tene), siis on iga intuitsionistlikus ssteemis tuletatav valem seda
samuti.
Gentzen nitas, et laltooduga samavrse sekventsiaalse in-
tuitsionistliku predikaatarvutuse saame, kui lubame paragrahvis 6.3
formuleeritud ssteemis kasutada vaid selliseid sekventse, mille
suktsedent on thi vi sisaldab ainult hte valemit. Jttes suktse-
dentidest liigsed liikmed vlja, vime loogilised reeglid formulee-
rida tabelis 13.1 toodud viisil, kus on kikjal thi vi koosneb
hest valemist ning muutuja a ei esine reeglites () ja ()
vabalt ja valemites.
13.4. Intuitsionistlik predikaatarvutus 257
A,
A & B,
,
B,
A & B,
(&)
A B
A & B
(&)
A, B,
A B,
()
A
A B
,
B
A B
()
A B,
A B, ,
()
A, B
A B
()
A
A,
()
A,
A
()
A(x/t),
x A(x),
()
A(x/a)
x A(x)
()
A(x/a),
x A(x),
()
A(x/t)
x A(x)
()
Tabel 13.1. Intuitsionistlik tuletusssteem.
Struktuursetest reeglitest kaotavad kahe valemiga suktsedenti
sisaldavad reeglid oma mtte. Et ka intuitsionistliku ssteemi jaoks
saab testada likereegli elimineeritavuse, jvad alles kolm reeglit
antetsedendi jaoks ja ks suktsedendi jaoks:
C,
, C, D,
, D, C,
C, C,
C,
C
Paragrahvis 13.2 toodud valemi (A A) testuse saame
258 13. Intuitsionistlik loogika
formaliseerida jrgmise tuletusena:
A A
A A A
()
(A A), A
()
A, (A A)
(A A) A
()
(A A) A A
()
(A A), (A A)
()
(A A)
(A A)
()
Paragrahvis 6.3 toodud konjunktsiooni kommutatiivsuse sea-
duse tuletuses on suktsedentides ainult ks valem. Jrelikult
kuulub see tuletus ka intuitsionistlikku arvutusse. Sekvents
x P(x) x P(x) tuletatakse seal aga disjunktsiooni teise
eksemplari sissetoomisega suktsedenti. Seega on see testus klassi-
kaline. Veelgi enam. Ainsad reeglid, mille rakendamise tulemusena
viks selle sekventsi saada, on () ja valemi lisamine suktse-
denti. Aga siis peaks olema tuletatav ks sekventsidest x P(x),
x P(x) vi . Need sekventsid aga pole ilmselt isegi klas-
sikaliselt tuletatavad (nad pole samaselt tesed). Neme jlle, et
sekventsionaalse arvutuse jaoks on mnikord lihtne testada ka
mittetuletatavust.
13.5. Kripke mudelid
Intuitsionistlikku tesust on ptud formaliseerida ka Kripke mu-
delitega, mis kirjeldavad teadmiste vimalikku arengut. Aluseks
vetakse modaalloogika S4, mille mudelites saab maailmad anti-
smmeetrilisuse lisatingimuse abil osaliselt jrjestada
1
. Intuitsio-
nistliku loogika Kripke mudelites nutakse, et see osaline jrjestus
1
Binaarne seos R on antismmeetriline, kui xy (xRy & yRx x = y).
Osaline jrjestus on reeksiivne, antismmeetriline ja transitiivne binaarne
seos.
13.5. Kripke mudelid 259
oleks puukujuline
2
, mille juureks (minimaalseks elemendiks) on
tegelik maailm. Puuharud kirjeldavad videte tendamise prot-
sessi vimalikke arenguid, kusjuures juba tendatud vited jvad
teseks ka edaspidi.
Definitsioon 13.3. Intuitsionistliku predikaatloogika Kripke mudel
mingi signatuuri jaoks on
= , , w
, , I,
kus on vimalike maailmade hulk, w
on tegelik maailm, on
maailmadevahelise (puukujulise) jrjestuse seos, annab iga
maailma universumi ja I mrab iga maailma interpretatsiooni.
Me eeldame, et maailmade universumid kasvavad tendatud
videte hulga kasvamisel monotoonselt:
w w
(w) (w
).
Loogiliste tehete semantika anname jrgmiselt:
1. w |= p I (w) |= p (p on atomaarne valem).
2. w |= p & q w |= p ja w |= q.
w |= p q w |= p vi w |= q.
w |= p q iga w
w korral w
|= p w
|= q.
w |= p iga w
w korral w
|= p.
3. w |= x p iga w
w ja iga c (w
) korral
w
|= p {x/c}.
w |= x p leidub c (w), nii et w |= p {x/c}.
4. |= p w
|= p,
kus w on suvaline vimalik maailm ja w
on tegelik maailm.
Thistame intuitsionistliku jreldumist smboliga |=
I
.
2
S.t. tskliteta sidus orienteeritud juurega graaf.
260 13. Intuitsionistlik loogika
Nide 13.4. Nitame, et
(A & B) |=
I
A B.
Valime kolmest maailmast koosneva Kripke mudeli
w
u v
A B
= {w
, u, v}, , w
, , I,
kus vide A tendatakse hes puuharus ja B teises puuharus.
= {(w
, u), (w
, v)},
(w
) = (u) = (v) = ,
I (w
|= A,
sest w
u ja u |= A; samuti w
|= B, sest w
v ja v |= B.
Jrelikult w
|= A B.
Nide 13.5. Testame, et
x (Fx A) |=
I
x Fx A.
Testamiseks valime Kripke mudeli
= {w
, u}, , w
, , I,
kus
= {(w
, u)},
(w
|= Fa A, sest w
|= x (Fx A).
Kuid w
|= A, sest A I (w
), ja w
|= x Fx, sest u w
,
b (u) ja Fb I (u). Seega w
|= x Fx A.
13.6. Rekursiivne realiseeritavus. Nelsoni teoreem 261
Saab nidata, et Kripke semantika on intuitsionistlike tuletus-
ssteemide suhtes korrektne ja tielik.
Teoreem 13.6 (tielikkus).
I
p |=
I
p.
Klassikaliselt tesed laused saab kergesti teisendada intuit-
sionistlikult testeks lauseteks: kirjutame iga valemi ette kaks
eituseseost.
Teoreem 13.7. |= p |=
I
p.
Jrelikult vib intuitsionistlikku loogikat vaadata kui klassikalise
loogika ldistust, millest saab valemite klassi piiramisega eraldada
klassikalise fragmendi.
13.6. Rekursiivne realiseeritavus. Nelsoni
teoreem
Kripke mudeleid vib konstrueerida suvalise signatuuri jaoks.
Vaatleme veel hte konkreetset aritmeetikavalemitele antud intuit-
sionistlikku semantikat, mis seob ka intuitsionistliku tuletatavuse ja
algoritmilise arvutatavuse. Rekursiivse realiseeritavuse deneeris
1945. aastal Stephen Cole Kleene kui he vimaliku intuitsionist-
liku semantika.
Defineerime relatsiooni e r A, kus e ja A on kin-
nine valem signatuuris 0;
, +, ; =: Naturaalarv e realiseerib
valemi A. This
e
thendab denitsioonis funktsiooni, mida
arvutab Turingi masin M
e
, s.t. e on seda funktsiooni arvutava
algoritmi kood.
1. Kui A on atomaarne aritmeetikavalem s = t , kus s ja t on
(kinnised, s.t. muutujateta) termid, siis e r s = t e = 0 ja
s = t on tene.
2. e r A & B e = 2
a
3
b
, kus a r A ja b r B.
3. e r A B e = 2
0
3
a
, kus a r A, vi e = 2
1
3
b
, kus b r B.
262 13. Intuitsionistlik loogika
4. e r A B n [n r A [
e
(n) r B]].
5. e r A e r (A 0 = 1).
6. e r x A(x) e = 2
a
3
b
, kus a r A(b).
7. e r x A(x) n [
e
(n) r A(n)].
See denitsioon vastab intuitsionistliku semantika ldisele
skeemile paragrahvis 13.3, kusjuures tendavateks konstruktsiooni-
deks on valitud naturaalarvud (vaadelduna teatud algoritmi koodi-
dena), ldiseks meetodiks rekursiivsed funktsioonid ja standardseks
vraks valemiks on vetud 0 = 1. Oluline on siin, et indukt-
siooni baas muutujateta termide vrdus on intuitsionisti
jaoks piisavalt heselt mistetav: selliste termide vrtused saab
arvutada ja vrduse kehtimist kontrollida. Teiselt poolt vib re-
kursiivset realiseeritavust mista kui klassikule arusaadavat tpse
denitsiooniga antud intuitsionistlikku semantikat.
Definitsioon 13.8. Vabade muutujatega valemite jaoks deneeri-
takse:
e r A(x
1
, ..., x
n
) k
1
. . . k
n
[
e
(k
1
, . . . , k
n
) r A(k
1
, ..., k
n
)],
s.t. tingimus on sama nagu e r x
1
...x
n
A(x
1
, . . . , x
n
) jaoks.
Definitsioon 13.9. Valemit A nimetame realiseeritavaks ja kirju-
tame r A, kui leidub selline arv e, et e r A.
Millist tendavat informatsiooni sisaldab realiseeriv arv? Nagu
nha, kodeerivad realisatsioonid huvitavamatel juhtudel teatud
algoritme. Uurime, mis (milliste algoritmide olemasolu) on vajalik
nii- vi teistsuguse ehitusega valemi realiseeritavuseks?
1. Vaatleme valemeid kujul A. Definitsiooni jrgi tingimust
lahti kirjutades saame:
e r A
e r (A 0 = 1)
n [n r A [
e
(n) r 0 = 1]].
13.6. Rekursiivne realiseeritavus. Nelsoni teoreem 263
Et 0 = 1 kui vr atomaarne valem ei ole definitsiooni jrgi
realiseeritav, siis saab A olla realiseeritav ainult juhul,
kui kski arv n ei realiseeri A. A mitterealiseeritavus on
aga ka piisav selleks, et suvaline arv e realiseeriks A, sest
implikatsioon on siis vasaku poole vruse tttu tene arvust
e
(n) sltumata. Seega: A on realiseeritav parajasti siis,
kui A pole realiseeritav, ja sellisel juhul realiseerib eitust
iga naturaalarv. Arvutuslikust kljest thendab see, et eituse
realisatsioon ei sisalda mingit informatsiooni.
Samuti kehtib:
r A parajasti siis, kui pole r A,
s.t. parajasti siis, kui r A.
Oleme sellega testanud, et realiseeritavusloogikas kehtib
vlimise kahekordse eituse rajtmise seadus (see ei thenda
aga veel A A realiseeritavust!). Eespool veendusime,
et alati niisugune seadus intuitsionistlikus loogikas ei kehti.
2. Vaatleme valemeid kujul x [A(x) A(x)]. Definitsiooni
lahti kirjutades saame:
e r x [A(x) A(x)]
n [
e
(n) r [A(n) A(n)]]
n [
e
(n) = 2
0
3
a
, kus a r A(n), vi
e = 2
1
3
b
, kus b r A(n)].
Niisiis vime suvalise n korral prast
e
(n) arvutamist
leida, kas see on paaritu vi paarisarv ja nii teada saada,
kas kehtib A(n) vi A(n). Seega kodeerib realiseeriv arv e
muuhulgas omadust A(x) lahendavat algoritmi ja jrelikult
on sellisel kujul oleva valemi realiseeritavuseks tarvilik
omaduse A(x) algoritmiline lahenduvus. Klassikaliselt on
aga iga valem kujul x [A(x) A(x)] tuletatav. Jrelikult
leidub klassikaliselt tuletatav mitterealiseeritav valem.
264 13. Intuitsionistlik loogika
3. Valemid kujul xy A(x, y). Saame:
e r xy A(x, y)
n [
e
(n) r y A(n, y)]
n [
e
(n) = 2
a
3
b
, kus a r A(n, b)].
Seega saab realiseeriva algoritmi abil iga x jaoks arvutada
sellise y, et A(x, y) on realiseeritav, ja ka selle valemi
realisatsiooni.
Matemaatikas testatakse tihti viimati toodud kujul olevaid
teoreeme, mis vidavad, et parameetrite x suvaliste vrtuste kor-
ral leidub vaadeldaval vrrandil vi vrrandissteemil lahend y.
Teoreemi praktiliseks kasutamiseks on vaja ka algoritmi, mis vr-
randi parameetrite jrgi leiab lahendi. Jrgmine teoreem nitab, et
kui teoreem on testatud intuitsionistlikus ssteemis, siis testusest
saab eraldada ka algoritmi.
Teoreem 13.10 (Nelson, 1947). Iga intuitsionistlikus aritmeetikas
tuletatav valem on rekursiivselt realiseeritav. Leidub algoritm, mis
valemi tuletuse jrgi leiab realisatsiooni.
Teoreem testatakse induktsiooniga tuletuse ehituse jrgi, ni-
dates et
1) intuitsionistliku loogika ja aritmeetika aksioomid on reali-
seeritavad;
2) tuletusreeglite kohta kehtib: leidub algoritm, mis lemise
valemi suvalise realisatsiooni jrgi leiab alumise valemi realisat-
siooni.
13.7. lesanded 265
13.7. lesanded
1. Nidake, et
(a) A |=
I
A;
(b) |=
I
A A;
(c) x Fx |=
I
x Fx.
2. Testage, et A
I
A B.
14. Hgusloogika
Et midagi saavutada ning selles kindel olla,
peab sihikule vtma suure.
John Stuart Mill (18061873)
Vale, aga jgitu.
Arg, aga vapper.
Vale, aga tde.
Linnar Priimgi
14.1. Soriitide paradoksid
Vaatleme unte rivi paradoksi. Oletame, et me korjasime aiast
sada una. Jaotame unad punasteks, kollasteks ja rohelisteks.
Jrjestame igat liiki unad vrvi intensiivsuse jrgi, nii et tule-
museks on pikk unte rivi, mis algab pris roheliste untega;
edasi tulevad kollakasrohelised toonid, mis lhevad jrkjrgult le
kollasteks toonideks; kollastele untele jrgnevad kollakaspunased
unad ning rivi lpeb tiesti punaste untega.
Thistame selle rivi unad
o
1
, o
2
, . . . , o
100
.
Me saame snastada unte rivi kohta kolm videt:
14.1. Soriitide paradoksid 267
1. Esimene un o
1
on roheline.
2. Kui o
i
on roheline, siis o
i+1
on roheline (1 i < 100).
3. Viimane un o
100
ei ole roheline.
Vited 1 ja 3 on ilmselt tesed. Vide 2 tundub kll kahtlane,
kuid ta on pigem tene kui vr. Tema vraks tunnistamiseks
peaks rivis leiduma selline jrjestikuste unte paar, kus eelmine
un on roheline, jrgmine un ei ole aga roheline. Niisuguse paari
leidmine on aga ksitav, sest jrjestikused unad on praktiliselt
sama vrvi.
Need kolm videt moodustavad vasturkiva lausete hulga.
Selles veendumiseks piisab ainult lausearvutuse kasutamisest. Kir-
jutades teise vite iga unte paari jaoks eraldi vlja, saame videte
jada:
o
1
on roheline,
o
1
on roheline o
2
on roheline,
o
2
on roheline o
3
on roheline,
. . .
o
99
on roheline o
100
on roheline,
millest jreldub modus ponensi korduva rakendamise teel vide
o
100
on roheline,
mis on vastuolus 3. vitega.
Sellist tpi arutlusi nimetatakse soriitide (aheljrelduste) pa-
radoksideks. Loetleme veel mnda soriitide paradoksi.
Kuhjaparadoks. 100 000 liivatera moodustavad kuhja. he
liivatera kuhjast eemaldamine ei likvideeri kuhja. Jrelikult
moodustab ka ks liivatera kuhja.
268 14. Hgusloogika
Inimeksistentsi paradoks. Iga imik on inimene. Kui miski
on inimene ajahetkel t , siis on ta seda ka ajahetkel t ,
kus on vabalt valitav ajavahemik. Seega on viljastunud
munarakk ka inimene.
Kik need arutlused phinevad samal nhtusel, kus objektide
omadused muutuvad suuremas vahemikus, kui predikaatidega on
vimalik kirjeldada. Vikse muutuse korral jb predikaat samaks,
kuid suure muutuse korral predikaat muutub. Paradoksides annab
vikeste muutuste jada kokkuvttes suure muutuse. Antud juhul ei
ole viga mitte eeldustes, vaid loogilises aparatuuris. ks vimalik
lahendus on leminek kahevalentsest loogikast mitmevalentsesse
loogikasse.
lesanded
1. Kiilaspea paradoks. Testage, et mitte keegi ei ole kiilaspea.
2. Hletamisea paradoks. Testage, et kski inimene pole hlei-
guse omamiseks kunagi piisavalt kps.
14.2. Hgusloogika semantika
Eelmises punktis toodud unte rivi nite korral muutus predikaadi
roheline rakendatavusaste pidevalt viksemaks. Samas suurenes
pidevalt predikaatide kollane ja punane rakendatavus. Klassikalises
loogikas on iga vide kas tene vi vr. Seega kehtib iga
predikaadi p(x) korral
p(x) {t, v}.
Hgusloogikas vetakse predikaadi rakendatavusastme thista-
miseks kasutusele predikaadi tesusaste
p(x) [0, 1],
kus tevrtuste hulk on asendatud reaalarvulise liguga [0, 1], nii
et 0 on vr ja 1 on tene. See thendab, et me loeme lauset p(x)
teseks niivrd, kuivrd predikaat p on objektile x rakendatav.
Eesti keeles ei kasutata mitte ainult kahte tesusastet: tene ja
vr, vaid tesus varieerub sageli kindlas vahemikus. Me vime
14.2. Hgusloogika semantika 269
niteks mingi lause kohta elda, et see on tiesti tene, osaliselt
tene, peaaegu vr vms.
Hgusloogika semantika kirjeldamiseks laiendame klassikalise
interpretatsiooni mistet. Hgusinterpretatsioon on loetelu
= U ; Const ; Pred ,
kus U on interpretatsiooni universum, Const seab signa-
tuuri igale konstantsmbolile c vastavusse universumi U mingi
elemendi c ja Pred mrab kasutatavate predikaatide tesus-
astmed kigil universumi elementidel.
Klassikalist interpretatsiooni saab sellisel juhul vaadelda kui
hgusinterpretatsiooni erijuhtu, kus kasutatakse ainult tesusast-
meid 0 ja 1. Samas peab hgusloogika semantika olema vastavuses
loogikareeglitega ja meie intuitsiooniga ning lahendama soriitide
paradoksid.
Me asendasime tevrtused tene ja vr vastavalt reaalar-
vudega 1 ja 0. Sellisel juhul on mistlik vaadelda tesusastme x
eitust kui tesusastet 1 x. Tesusastmete x ja y konjunktsiooni
vrtuseks vib vtta neist arvudest viksema. Nende disjunkt-
siooni vrtuseks sobib aga suurem arvudest x ja y. Nii annavad
klassikalised loogikatehted ja hgustehted tesusastmetel 1 ja 0
sama tulemuse. Miinimum- ja maksimumfunktsioonide kasuta-
mine on antud juhul loomulik, sest nendel funktsioonidel on
konjunktsiooniga ja disjunktsiooniga palju sarnaseid omadusi. Nad
on niteks kommutatiivsed ja assotsiatiivsed. Samuti on nad oma
argumentide suhtes monotoonselt mittekahanevad.
Nii saame hgusloogika semantikareeglid:
1. Atomaarse valemi p tesusastme [p] mrab tema hgu-
sinterpretatsioon p :
[p] = p .
2. [p] = 1 [p].
3. [p & q] = min { [p], [q]},
[p q] = max { [p], [q]}.
270 14. Hgusloogika
Vttes niteks [A] = 0,75, saame
[A] = 1 [A] = 0,25 .
Seega on peaaegu tese lause eitus praktiliselt vr. Lihtne
on veenduda, et hgusloogikas ei kehti vasturkivusseadus ega
vlistatud kolmanda seadus. Meie nite korral on tesusaste
[A & A] = min { [A], [A]}
= min {0,75 , 0,25}
= 0,25 ,
mis on tunduvalt suurem kui tielik vrus 0 ja
[A A] = max { [A], [A]}
= max {0,75 , 0,25}
= 0,75
pole ka tiesti tene. Vtame tieliku vruse thistamiseks
tarvitusele smboli ning defineerime
[] = 0.
Klassikalises loogikas arvatakse implikatsioon vraks, kui
tema eeldus on tene ja jreldus on vr. Hgusloogikas thendab
see situatsiooni, kus eelduse tesusaste on jrelduse tesusastmest
suurem. Selleprast on loomulik implikatsiooni tesusastmeks pi-
dada tesuse kadu leminekul tema eelduse tesusastmelt jrelduse
tesusastmele:
[p q] =
( )
( )
Kuid Fred on jaanalind ja on seeprast ebanormaalne. Seega
kehtib T |= ( ) ning lause ( ) ei saa esineda
mitte heski T mittevasturkivas laiendis. Jrelikult on mittemo-
notoonse teooria (T, A) laiend heselt mratud:
E = { ( )}.
Kuna
T E |= ( ),
siis on ( ) antud teooria mittemonotoonne jreldus.
278 15. Mittemonotoonne loogika
Republicans Quakers
pacists
Nixon
Joonis 15.3. Nixoni romb.
lesanded
1. Nidake, et
(a) hulk E on vaadeldava mittemonotoonse teooria ainuke
laiend;
(b) T E |= ( ).
Kuid laiend ei tarvitse olla hene. Joonisel 15.3 on toodud
Nixoni romb
T =
(x) &
r
(x) (x)
(x) &
p
(x) (x)
( )
( ) ,
kus predikaat
r
mrgib religioosset ebanormaalsust ja
p
poliitilist ebanormaalsust.
Me soovime eeldada, et Nixon on nii poliitiliselt kui ka
religioosselt normaalne:
A = {
r
( ),
p
( )}.
Ent
T |=
r
( )
p
( ),
15.2. Nite formaalne ksitlus 279
jaanalind lind
lendab
Fred
Joonis 15.4. Fredi romb.
s.t. Nixon peab olema hes mttes ebanormaalne. Seega on
teoorial (T, A) kaks mittemonotoonset laiendit:
E
1
= {
p
( )},
E
2
= {
r
( )},
kuid me ei saa kumbagi laiendit teisele eelistada, sest me ei tea,
kas Nixon on patsifist vi ei ole.
Ka lindude ja jaanalindude nite korral saab konstrueerida
Nixoni rombi sarnase figuuri. Jtame Tweety vaatluse alt vlja ja
uurime, millise otsustuse saab teha Fredi kohta, eeldades, et ta on
igati normaalne:
A = { ( ),
j
( )}.
Fredi rombi korral annab lause
( )
j
( ).
kehtivus (nagu Nixoni rombi korral) vastuolu. Antud juhul on aga
vimalik eelistada hte teooria laiendit teisele: kuna jaanalinnud
moodustavad lindude alamklassi, siis tuleb eelistada jaanalindude
reeglit
(x) &
j
(x) (x).
ldjuhul ei ole kasutatava reegli valik nii lihtne. Seeprast on
280 15. Mittemonotoonne loogika
mitme vimaliku laiendi hulgast he valimise probleem praegu
thtis uurimisvaldkond.
15.3. Suletud maailm
Kogu negatiivset informatsiooni pole mtet tielikult kirjeldada,
sest selle hulk kasvab universumi htlasel suurenemisel geomeet-
riliselt.
Niteks, kui me teame, et Fred on jaanalind, siis me peaksime
ka toonitama, mida Fred ei ole:
( ),
( ),
( ),
. . .
Kui me aga teame, et Jaan on Tartus, siis ta ei saa olla Tallinnas.
Eeldades, et kogu positiivne informatsioon on antud, saab
suletud maailma eelduse (Reiter, 1978) abil teadmiste baasist
negatiivsed faktid lihtsalt tuletada:
p p,
s.t. kui p pole testatav, siis jreldame p.
Kuna reeglid on harilikult implikatiivsed, siis ei saa positiiv-
setest faktidest negatiivset informatsiooni otse tuletada. Me ei saa
niteks tuletada videtest
( ),
(x) (x)
lauset ( ), sest selle videte hulga Herbrandi
baas (mis koosneb antud signatuuri kigist kinnistest elementaar-
valemitest)
B = { ( ), ( )},
15.3. Suletud maailm 281
on ka tema mudeliks. Lause
( ),
tuletamiseks peame kasutama tielikkuse eeldusi (Clark, 1978),
mis muudavad implikatsioonid ekvivalentsideks.
Moodustame iga predikaadi jaoks tielikkuseaksioomi, mis
vidab, et predikaat on tene ainult teadmiste baasis kirjeldatud
juhtudel. Tieliku teadmiste baasi saamiseks tuleb lisada veel
vrduse aksioomid.
Lindude nite korral koosneb tielik teadmiste baas reeglitest
=
x = (x)
(x) (x)
(x) x = (x)
(x) ,
mille kaks viimast reeglit on tielikkuseaksioomid hekohaliste
predikaatide ja jaoks. Neist predikaatidest viimane
on alati vr, sest ei ole esialgses teadmiste baasis mitte
hegi reegli paremas pooles. Nd saab juba lihtsalt tuletada
( ).
Clark lisab ka nimede unikaalsuse aksioomid, mis tagavad,
et erinevad indiviidkonstandid viitavad erinevatele objektidele.
Lisades teadmiste baasi vite
( ),
tuleb tieliku teadmiste baasi saamiseks asendada predikaadi
kirjeldus vitega
(x) x =
ning lisada unikaalsuse aksioom
= .
Toome teadmiste baasi ka lendamise predikaadi
(x) & (x) (x)
282 15. Mittemonotoonne loogika
koos tielikkuseaksioomiga
(x) (x) & (x).
Nd saab tuletada vited
( ),
( ).
Kuid ilma nimede unikaalsuse aksioomita ei oleks saanud mitte
kumbagi neist lausetest tuletada.
Tielik teadmiste baas pole aga heselt mratud, sest lenda-
mise predikaadi tielikkuseaksioomi saab vaadelda ka kui predi-
kaadi tielikku kirjeldust:
(x) & (x) (x),
(x) (x) & (x).
Saadud tielikkuseaksioom ei ole aga eelmisega samavrne (les-
anne 15.3.1). Tielikkuseaksioom vib olla ka vasturkiv. Niteks
valemi
Pa = Pa Pa
= Pa Pa
tielikkuseaksioom
Px x = a & Pa
annab asenduse {x/a} korral vastuolu Pa Pa. Kahjuks pole
tpselt teada, millal vib tielikustamist kasutada ja millal mitte.
lesanded
1. Nidake, et jrgmised laused ei ole loogiliselt samavrsed:
(x) (x) & (x),
(x) (x) & (x).
15.4. Piiramine 283
15.4. Piiramine
McCarthy on esitanud suletud maailma eelduse rakendamiseks
terve hulga reegleid. Need reeglid on sntaktilised (nagu tielikus-
tamine), lisades uusi aksioome, mille eesmrgiks on minimaalsete
suletud maailma mudelite forsseerimine mittetieliku teooria jaoks.
Piiramistest on levinum predikaadi piiramine ja universumi piira-
mine.
Predikaadi piiramise nitena vaatleme maailma, kus kehtib
valem
(A) (B).
Aksioom
x ( (x) x = A) x ( (x) x = B)
suleb plokkide maailma, kasutades vlistavat disjunktsiooni ning
minimeerides predikaadi ekstensiooni.
Universumi piiramise korral kinnitatakse, et eksisteerivad ainult
antud kontekstis mainitavad indiviidid. Vaatleme niteks lihtsat
andmebaasi
petaja
Kask
Tamm
Platon
pilane
Kuusk
Mnd
Aristoteles
Juhendab
Kask Mnd
Tamm Kuusk
Platon Aristoteles
Lpliku indiviidide arvu korral saab universumi suletuse eel-
duse snastada indiviidide loeteluga kujul
x (x = Kask x = Tamm . . . x = Aristoteles).
Nd saab vastata ksimusele Kas kigil pilastel on petaja?
jaatavalt. Muidu oleksime pidanud vastama Pole teada.
Kui indiviidide arv pole fikseeritud, saab universumi piiramise
aksioomi esitada ka vitena
x (petaja(x) pilane(x)).
284 15. Mittemonotoonne loogika
15.5. Vaikimisi-loogika
Vaikimisi-loogikas (Reiter, 1978) ptakse minimaalsete mudelite
asemel mrata meid huvitavad mudelid. Selleks lisatakse esimest
jrku loogikale uued tuletusreeglid vaikimisireeglid. Erinevalt
tavalistest tuletusreeglitest vivad vaikimisireeglite eeldused viidata
nii tuntud faktidele kui ka kaheldavatele videtele, andes vimaluse
kasutada puuduvat negatiivset informatsiooni.
Definitsioon 15.2. Vaikimisiteooria on paar = (D, W), kus D
on vaikimisireeglite hulk ja W on suvaline esimest jrku loogika
valemite hulk.
Vaikimisireeglid on kujul
:
1
, . . . ,
m
,
kus on eeldus,
i
(i = 1, . . . , m) on phjendused ja on
jreldus.
Vaikimisireegel tleb, et kui me teame tema eeldust ja meil
pole midagi toodud phjenduste vastu (s.t. nende eitused ei ole
tuletatavad), siis vib tuletada tema jrelduse.
Kui phjendusi on ks (m = 1), vaadeldakse eraldi kahte
juhtumit:
Kui phjendus on kujul = , siis on tegemist normaalse
vaikimisireegliga.
Kui phjendus on kujul = & (kus on suvaline
valem), on tegemist poolnormaalse vaikimisireegliga.
Kirjanduses vaadeldaksegi philiselt normaalseid ja poolnormaal-
seid reegleid.
Normaalne vaikimisireegel on niteks
(x) : (x)
(x)
,
15.5. Vaikimisi-loogika 285
mis tleb, et iga lind, kelle kohta ei ole teada, et ta ei lenda,
oskab lennata. Poolnormaalne vaikimisireegel on aga
(x) : (x) & (x)
(x)
,
mis vidab, et vaikimisi mittepingviinid lendavad.
Vaikimisi-loogikas saab niteks esitada suletud maailma reegli:
: p
p
,
sest kui meil pole midagi p vastu (niteks p), siis vib p
tuletada.
Vaatame jlle traditsioonilist vaikimisiteooriat
W =
(x) (x)
(x) (x)
(x) (x)
(x) (x)
( ) ,
mille vaikimisireeglite hulk on
D =
(x) : (x)
(x)
.
Selles teoorias saab tuletada vite
( ).
Hiljem vib see lause osutuda mittetuletatavaks. Niteks kui
selgub, et Tweety on pingviin. Me saame selles teoorias tuletada
ka vite
( ) ( ).
Kahjuks ei ole vaikimisi-loogika kikide jrelduste hulk rekur-
siivselt loetletav, s.t. ei leidu algoritmi, mis loetleks kik antud
vaikimisiteooriast jrelduvad vited.
286 15. Mittemonotoonne loogika
15.6. Autoepisteemiline loogika
Autoepisteemiline loogika (Moore, 1983) kasutab maailma kir-
jeldamiseks teadmise modaalset predikaati, mille ta omistab oma
uskumiste le arutlevale ideaalselt mtlevale agendile.
Moore interpreteerib mittemonotoonses loogikas aksioomi
x ( (x) & M( (x)) (x))
mitte kui Tpiline lind lendab, vaid kui Ainsad linnud, kes
ei lenda, on linnud, kelle kohta on teada, et nad ei lenda.
Nii muutub arutluse all olev aksioom viteks agendi (mitte aga
tpilise indiviidi) teadmiste kohta.
Moore mrgib, et vaikimisi-loogika ja autoepisteemiline loo-
gika on erinevatel phjustel mittemonotoonsed. Vaikimisi-loogika
on katseline ja on seeprast mberlkatav. Autoepisteemiline loo-
gika teeb ainult kehtivaid jreldusi ja tema mittemonotoonsus
tuleneb kontekstist, sest videte thendused sltuvad agendi tead-
mistest: kui agent pib midagi juurde, siis muutub ka videte
tesus.
15.7. lesanded
1. *On teada, et kik teed viivad Rooma. Testage, et likooli
tnav ei vii Rooma.
16. Lineaarloogika
Lineaarloogika on klassikalise loogika laiendus, milles ptakse
formaliseerida ressursside liikumisega seotud probleeme. Tema
autoriks on prantsuse loogik Jean-Yves Girard.
Lineaarloogika lahutab hariliku disjunktsiooni ja konjunkt-
siooni n. algosadeks, kummagi kaheks eri komponendiks. Li-
neaarloogika on seega eriti peeneteraline loogika, mis annab
tpsemad kirjeldusvimalused kui harilik loogika.
16.1. Tegevuste ja situatsioonide kordumatus
Kuna klassikalise ja intuitsionistliku loogika aluseks on samasus-
seadus, siis tegeldakse nendes teooriates psivate tdedega. Niteks
kehtib neis arutlus
A, A B
B
,
kus lausete A ja A B tesusest saadakse lause B tesus. Samal
ajal silib ka lause A tesus.
Niisugune stabiilsus on hea matemaatikas, kuid ei kehti reaal-
setes situatsioonides. Vitel, et A-st jreldub B, vib loomulikus
keeles ja tegelikus elus olla mitu thendust. Kige avarama then-
duse formaliseerib klassikaline loogika:
A B = A B.
288 16. Lineaarloogika
Intuitsionistlik loogika formaliseerib jreldust pisut kitsamalt, nu-
des, et A testusest saaks konstrueerida B testuse. Veel rangemalt
ksitleb jreldust relevantsusloogika, mis formaliseerib jrelduse
kausaalset iseloomu: A B vib elda ainult sel juhul, kui B
testamise juures lheb tingimata vaja ka A-d. Niteks ei ole vide
Kuul on lehmi, jrelikult olen kolm meetrit
pikk
relevantselt tsi isegi siis, kui Kuul lehmi pole. Lineaarloogika
lheb relevantsusloogikast teatud mttes sammu kaugemale: A-st
B jreldamine tarvitab A ra, nii et prast jreldusreegli rakenda-
mist enam A-d alles pole. Fsikas ja keemias nimetatakse sellist
protsessi reaktsiooniks. Samas annab lineaarloogika vimaluse k-
sitleda jreldust soovi korral klassikaliselt: lineaarloogika annab
vahendid jrelduse thendust soovi kohaselt mrata.
Kujutame niteks ette olukorda, kus me saame sooritada kahte
tegevust:
A: kulutame 5 krooni.
B: saame paki sigarette.
Thistame tegevuse, kus me ostame 5 krooni eest paki sigarette,
valemiga
A B.
Kuna me saame suitsude ostmisel oma kroonidest lahti, siis ei
saa seda operatsiooni enam korrata. Loomulikult on tihti ka juhtu-
meid, kus reaktsiooni ei toimu vi seda saab ignoreerida. Niteks
matemaatiliste abitulemuste tesus silib ka prast testuse lppu.
Samuti on inimesi, kellel on piiramatul hulgal raha. Loetletud
juhtudel on tegemist stabiilsete olukordadega, mille ksitlemisel
kasutatakse spetsiaalseid seoseid ! ja ?, mida nimetatakse ekspo-
nentideks.
Eksponendid vljendavad tegevuse korratavust, s.t. reaktsiooni
puudumist. Valem !A tleb, et me vime kulutada nii palju
kroone, kui tahame. Smbol thistab lineaarset implikatsiooni,
s.t. implikatsiooni, mis oma eelduse ra tarvitab. Lineaarloogikas
16.2. Kaks konjunktsiooni ja disjunktsiooni 289
saab tavalise implikatsiooni avaldada kujul
A B = (!A) B,
s.t. lausest A jreldub B parajasti siis, kui itereeritud A phjus-
tab B.
Kik klassikalise ja intuitsionistliku loogika laused saab tlkida
lineaarloogika keelde. Jrelikult ei kaota me lineaarloogikasse
leminekuga mitte midagi. Milline on aga saadud kasu?
16.2. Kaks konjunktsiooni ja disjunktsiooni
Lineaarloogikas kasutatakse kahte konjunktsiooni: (korda) ja
& (koos), mis esindavad sna ja erinevaid keelelisi kasutusi:
korral sooritatakse mlemad vaadeldavad tegevused.
& korral sooritatakse ainult ks (meie valitud) tegevus.
Olgu vimalikud tegevused:
A: kulutame 5 krooni;
B: saame paki Rumbat;
C: saame paki Marlborot.
Tegevus A B thendab, et me kulutame viis krooni ja saame
vastu he paki Rumbat. Me ei saa aga sooritada tegevust
A B C,
sest viie krooni eest ei saa osta kahte pakki sigarette, mis maksavad
kokku kmme krooni. Me saame kll sooritada tegevuse
A A B C,
s.t. ostame kmne krooni eest kaks pakki sigarette. Vimalik on
sooritada ka tegevus
A B & C.
Selleks valime tegevuste B ja C hulgast he ning sooritame selle.
290 16. Lineaarloogika
Kuigi seos & sarnaneb disjunktsiooniga, ei ole seda ige
disjunktsioonina ksitleda. Niteks valemid
A& B A ja A& B B
on lineaarloogikas tesed (lesanne 16.6.2), klassikalise disjunkt-
siooni korral need aga ei kehti.
Lineaarloogikas on samuti kaks disjunktsiooni:
(pluss) on duaalne seosega &, vljendades vimalust
sooritada ks vimalikest tegevustest.
(vrdsus) on duaalne seosega ning vljendab tegevus-
tevahelist sltuvust.
Meie nite korral thendab tegevus A B C vimalust saada
viie krooni eest pakk Rumbat vi pakk Marlborot; me ei saa
aga otsustada, kumma paki me saame.
Seose A B saab avaldada lineaarse eituse kaudu, kui
A
B vi B
A.
16.3. Lineaarne eitus
Lineaarne eitus (null, mitte midagi) on thtsaim lineaarne seos.
Tema kaudu saab avaldada lineaarse implikatsiooni
A B = A
B
ning tal on ka transponeeriv toime:
A B = B
.
Lineaarloogikas (nagu klassikalises loogikas) kehtib eituse
eitamise seadus:
A = A
.
Kuid erinevalt klassikalisest loogikast on lineaarloogikal ka vga
lihtne konstruktiivne thendus. Lineaarse eituse keerukas iseloom
tagab De Morgani seaduste kehtivuse kigi seoste ja kvantorite
16.4. Sekventsiaalne tuletus 291
korral:
(A B)
= A
(A B)
= A
(A& B)
= A
(A B)
= A
& B
(!A)
=?A
(?A)
=!A
(x A)
= x A
(x A)
= x A
A, B,
A B,
Liitmisreeglid:
, (aksioom, on suvaline)
A, B,
A & B,
&
A,
A B,
1
B,
A B,
2
1
1 on neutraalne element ja 0 on neutraalne element.
292 16. Lineaarloogika
Eksponentsiaalsed (modaalsed) reeglid:
A,
?A,
(mahajtmine)
?A,
(nrgendamine)
?A, ?A,
?A,
(koondamine)
A, ?
!A, ?
(!-salvestus)
(? thistab sekventsi, mille iga elemendi ette on kirjutatud ?)
Selles ssteemis vib suvaliselt muuta sekventsi elementide jrjes-
tust. Tuleb thele panna ka seda, et siin puudub reegel konstandi 0
jaoks.
Implikatsiooni defineerime seosega
A B = A
B
ja eituse asendusreeglitega
1
= ,
= 1,
= 0, 0
= ,
a
= a (a on atomaarne valem),
(?A)
=!A
, (!A)
=?A
,
(A B)
= A
, (A B)
= A
,
(A B)
= A
& B
, (A& B)
= A
.
Ja lpuks tuletusnide:
A, A
B, B
(A B), A
, B
((A B) B
), A
(((A B) B
) A
)
16.5. Lineaarloogika vljendusvimsus 293
16.5. Lineaarloogika vljendusvimsus
Lineaarloogikat vib vaadelda kui mingi ssteemi seisude ja le-
minekute kirjeldamise vahendit. Niteks malemngus on seisuks
maleseis ja leminekuks malekik. Keemiliste reaktsioonide kor-
ral on seisuks molekulide loetelu ja leminekuks on keemiline
reaktsioon, mis annab esialgse molekulide loetelu phjal uue
molekulide hulga. Me saame thistada keemilistes reaktsioonides
esinevaid seise molekulide konjunktsioonidena ja seisudevahelisi
leminekuid implikatsioonidena. Vaatleme niteks keemilist vale-
mit
2H
2
+ O
2
2H
2
O,
mis tleb, et molekulid H
2
, H
2
ja O
2
annavad keemilise reakt-
siooni tulemusena molekulid H
2
O ja H
2
O. Lineaarloogikas saab
selle valemi les kirjutada kujul
H
2
H
2
O
2
H
2
O H
2
O,
sest keemilistes reaktsioonides tuleb kik komponendid valida ja
samas ei tohi htegi komponenti korduvalt kasutada.
Eksponendid muudavad lineaarloogika sama vimsaks kui
klassikalise ja intuitsionistliku loogika. Lineaarloogika on neist
tegelikult vimsam. Me peame olema selliste videtega ettevaatli-
kud, sest kike, mida saab leldse vljendada, saab vljendada
ka klassikalises loogikas. Ka intuitsionistliku loogika korral saab
nidata, et ta on klassikalisest loogikast vimsam. Me peame
silmas seda, et lineaarloogikas saab mugavamalt kirjeldada lemi-
nekuid, mille ksitlemine klassikalises loogikas on vga keeruline.
Lineaarloogika on praegu populaarne just selleprast, et palju
abstraktseid masinaid ja ssteeme saab temas llatavalt lihtsalt
esitada.
Ent erinevalt klassikalisest ja intuitsionistlikust lausearvutusest
on eksponente sisaldav lineaarne lausearvutus mittelahenduv.
294 16. Lineaarloogika
16.6. lesanded
1. Kirjeldage lineaarloogikat kasutades, kuidas saab sita Tartust
Tallinnasse.
2. Nidake, et valemid A & B A ja A & B B on lineaarloo-
gikas tesed.
3. *Nidake, et klassikalised lihtsustamis- ja idempotentsusreeglid
A & B A,
A A & A
ei kehti seoste ja korral.
IV
Loogika rakendusi
programmeerimises ja
tehisintellektis
17. Automaatne
teoreemitestamine
Nagu nimigi tleb, tegeldakse nimetatud valdkonnas meetodite ot-
simisega loogikateoreemide automaatseks testamiseks arvuti abil.
Kuivrd arvuti kasutamine on seejuures vga olulisel kohal, on
automaatne teoreemitestamine tihedalt seotud teoreetilise arvuti-
teadusega. Kuivrd loogikateoreemidena saab formaliseerida suurt
hulka mtlemislesandeid, on automaatne teoreemitestamine ka
tehisintellektiteaduse ks osa.
tlesime, et eesmrgiks on loogikateoreemide testamine.
Nagu varasematest peatkkidest nha, saab iga konkreetse ma-
temaatikateoreemi ja mitmesugused kombineerimist nudvad prak-
tilised probleemid esitada loogika keeles, s.o. loogikateoreemidena.
Loogika kasutamine universaalse baaskeelena ei kitsenda teoree-
mitestajate rakendussfri, vaid muudab selle, vastupidi, nii laiaks
kui vhegi vimalik.
Teatavasti on mitmesuguseid, eri eesmrkideks sobivaid loo-
gikassteeme. Automaatse teoreemitestamise jaoks pakuvad nad
kik huvi. Enamik pingutusi on siiamaani suunatud klassikalise
predikaatarvutuse teoreemide lahendamisele viimatinimetatud
loogikassteem on kasutatavaim ja ldiselt peetakse seda kige
olulisemaks ssteemiks olemasolevatest.
298 17. Automaatne teoreemitestamine
17.1. Eesmrgid
Automaatse teoreemitestamise otsene eesmrk on luua sellised
arvutiprogrammid ja arvutid, mis suudaksid keerulisi, tpset mt-
lemist nudvaid probleeme mistliku aja jooksul automaatselt
lahendada. Inimesest kasutaja annab arvutile tpselt formaliseeri-
tud probleemi (niteks uue matemaatikateoreemi, programmeeri-
mislesande, elektroonikassteemi korrektsuse kontrolli, inseneri-
lesande vi andmebaasi, millest jreldusi/lahendusi otsida) ning
soovib, et arvuti selle probleemi mistliku aja jooksul lahendaks.
Kriitilise thtsuse omandab fraas mistliku aja jooksul: kui
mingil loogika keeles kirjeldatud probleemil on ldse lahendus,
siis teoreetiliselt suudab ka pris lihtne arvutiprogramm sellise
probleemi alati lahendada. Paraku kulub taolisel lihtsal programmil
peaaegu iga probleemi lahendamiseks lootusetult kaua aega: enne
juab pike kustuda ja maailma lpp ktte juda, kui arvuti
vastuse leiab.
Praktiliselt kasutusklblik automaatse teoreemitestamise ss-
teem peaks suutma lahendada huvipakkuvaid probleeme mistliku
aja, s.o. paari sekundi, tunni vi isegi peva ja kuu jooksul,
olenevalt probleemi thtsusest.
Paraku suudavad olemasolevad automaatse testamise ss-
teemid lahendada mistliku aja jooksul ainult ksikuid teliselt
keerulisi ja praktiliselt olulisi probleeme; rhuva enamiku raskete
probleemide puhul pole neist ssteemidest ksi suuremat kasu.
Kll aga saab neid kasutada interaktiivselt: kasutaja annab ette
suunised ning leiab ise testuse kige keerulisemad osad, jttes
lihtsamad, kuid tmahukad alamlesanded arvutile.
Sestap on automaatse teoreemitestamise ala phieesmrgiks
suurendada automaatsete teoreemitestajate kiirust. Testajate kii-
ruse suurendamise nimel tehakse td kolmes peasuunas:
Otsingumeetodite vljattamine, mis garanteeriksid vanade
meetoditega vrreldes suurema otsingukiiruse iga vimaliku
lesande jaoks.
Siia kuulub paremate insenerilahenduste leidmine nii teoree-
17.2. Sissejuhatus resolutsioonimeetodisse 299
mitestajate tarkvara kirjutamisel kui ka riistvara, s.o. arvu-
tite rakendamisel. Riistvara rakendamisel on aktuaalsemaks
probleemiks testuseotsingu efektiivne jaotamine paljude eri-
nevate, kuid samaaegselt ttavate protsessorite vi arvutite
vahel.
Otsingustrateegiate vljattamine, mis annavad suurema
kiiruse kas enamikul praktilist huvi pakkuvatel juhtudel vi
siis spetsiaalsete lesannete puhul.
Peale testajate kiiruse suurendamise on teine oluline ees-
mrk hlbustada automaatse testaja ja inimesest kasutaja vahelist
suhtlemist. Soovitatavalt peaks testaja kasutajal olema vima-
lik anda testajale npuniteid ehk soovitusi, kuidas probleemi
testust kergemini leida. Kasutaja peaks saama soovi korral osa
testuse sammudest ise leida, suunates automaatse testaja seni la-
hendamata jnud alamprobleemide juurde. Samas peaks kasutaja
saama informatsiooni lpetamata jnud testuseotsingutest, suut-
maks hinnata, kuidas testuseotsingu strateegiat jrgmisel katsel
muuta.
Mitmed olemasolevad ssteemid vimaldavadki taolist inimka-
sutaja ja automaatse testaja koostd, kuid mugavusest, lihtsusest
ja koost sujuvusest on asi veel kllalt kaugel.
17.2. Sissejuhatus resolutsioonimeetodisse
Automaatse teoreemitestamise jaoks on vlja ttatud hulk pris
erinevaid meetodeid. Nende hulgast on ks efektiivsemaid ja kind-
lasti kige levinum resolutsioonimeetod, mille 1965. aastal esitas
J. Robinson. Samaaegselt, kuid Robinsonist sltumatult leiutas
sarnaste phiprintsiipidega prdmeetodi S. Maslov. 1965. aastal
oli resolutsioonimeetod teline murrang automaatses teoreemites-
tamises, vimaldades suhteliselt vikese ajakuluga testada palju
teoreeme, mis olid varasemate meetodite, niteks Davisi-Putnami
meetod (ks viimase leiutajatest, H. Putnam, sai hiljem kuul-
300 17. Automaatne teoreemitestamine
saks funktsionalistliku losooasuuna rajajana), jaoks lootusetult
vljaspool haardeulatust.
ldise resolutsioonimeetodi jaoks on vlja ttatud suur hulk
ksteisest oluliselt erinevaid otsingustrateegiaid. Mitme ksteisest
erineva modikatsiooni tttu on tegu vga paindliku meetodiga:
enamikku praktikas kasutatavaid, niliselt resolutsioonimeetodist
erinevaid testuseotsingu-algoritme on vimalik esitada kui reso-
lutsioonimeetodi spetsiaalseid strateegiaid. Tuntud loogilise pro-
grammeerimise keel Prolog baseerub hel niisugusel resolutsioo-
nimeetodi strateegial, mis sobib kll hsti loogilise programmeeri-
mise, kuid halvasti automaatse teoreemitestamise jaoks.
Resolutsioonimeetod on iseenesest vga lihtne testusmeetod:
meetodi elementaarseima variandi juures kasutatakse ainult kahte
tuletusreeglit, resolutsioonireeglit ja faktoriseerimisreeglit. Enne
testuse alustamist teisendatakse testatav teoreem vimalikult
lihtsale kujule, disjunktide hulgaks. Disjunktiks nimetatakse sellist
disjunktsiooni, mis koosneb ainult positiivsetest ja negatiivsetest
elementaarvalemitest. Taolisi eitusega vi ilma selleta elemen-
taarvalemeid nimetatakse literaalideks. Kik disjunktis esinevad
muutujad on vaikimisi seotud ldisuskvantoriga . Jrgnevas ka-
sutame muutujatena thti x,y,z,u,v,w lejnud smbolid
on kas konstandid, funktsionaal- vi predikaatsmbolid. Mned
disjunktide nited:
hestainsast literaalist koosnev disjunkt, mis vljendab, et
Jaan on Martini isa: isa(Jaan,Martin).
hestainsast literaalist koosnev disjunkt, mis vljendab, et
Riivo ei ole Veiko isa: isa(Riivo,Veiko).
Kahest literaalist koosnev disjunkt, mis vljendab, et Veiko
isa on kas Martin vi Riivo: isa(Martin,Veiko)
isa(Riivo,Veiko).
Teatavasti on jreldust esitav lause A B ekvivalentne
lausega A B. Jrgnev kahest literaalist koosnev dis-
junkt vljendab, et juhul kui Martin on Veiko isa, siis
17.2. Sissejuhatus resolutsioonimeetodisse 301
on Jaan Veiko vanaisa: isa(Martin,Veiko) vana-
isa(Jaan,Veiko).
Jrgnev muutujaid x ja y sisaldav disjunkt tleb, et emad
on alati naissoost: ema(x,y) naissoost(x).
Muutujaid sisaldavat disjunkti on kohane mista jrgmi-
selt: disjunkt kehtib, kskik mis objektid ka muutujate
asemele panna. Viimasest disjunktist saame muutuja x kons-
tandiga Jaan ja muutuja y konstandiga Martin asendades
jrgmise kehtiva disjunkti: ema(Jaan,Martin) nais-
soost(Jaan).
Jrgnev muutujaid x, y ja z sisaldav disjunkt tleb, et
kui x on y isa ja y on z isa, siis x on z vana-
isa: isa(x,y) isa(y,z) vanaisa(x,z). Te-
poolest, lause (A & B) C on ekvivalentne lausega
A B C.
Eelmine disjunkt ei olnud vanaisa-suhte defineerimiseks
siiski piisav. Puudujnud emapoolset liini pidi vanaisaks
olemise mrab disjunkt isa(x,y) ema(y,z)
vanaisa(x,z). Reeglid, mis harilikus predikaatarvutuses
on esitatavad heainsa valemiga, ei pruugi olla esitatavad
heainsa disjunktiga: sageli lheb tarvis mitut disjunkti.
Resolutsioonimeetodi phiprintsiip on fakte ja reegleid esi-
tavate etteantud disjunktide hulgast uute disjunktide tuletamine.
Disjunktide hulka ksitletakse kui disjunktide konjunktsiooni. Re-
solutsioonimeetod on tielik meetod: kui etteantud disjunktide
hulgast jreldub loogiliselt mingi disjunkt D, siis resolutsioo-
nimeetod tuletab alati kas sellesama disjunkti D vi ldisema
disjunkti D
, nii et D on D
(S) =
i
T
i
(S).
304 17. Automaatne teoreemitestamine
Olgu meil antud jrgmised disjunktid 14:
(1) A ,
(2) A B ,
(3) B C ,
(4) C .
Vaatame, milliseid disjunkte viimastest resolutsioonimeetodiga
ldse tuletada saab. Selleks esitame resolutsioonimeetodi t
sammhaaval. Iga tuletussamm koosneb hest resolutsioonireegli
ja kui vimalik, siis ka faktoriseerimisreegli rakendamisest.
Teine tase:
(1 ja 2 annavad disjunkti 5) B,
(2 ja 3 annavad disjunkti 6) A C,
(3 ja 4 annavad disjunkti 7) B.
Kolmas tase:
(5 ja 3 annavad disjunkti 8) C,
(5 ja 7 annavad disjunkti 9) thi disjunkt ehk vastuolu,
(6 ja 1 annavad disjunkti 8 koopia) C,
(6 ja 4 annavad disjunkti 10) A,
(7 ja 2 annavad disjunkti 10 koopia) A,
(7 ja 5 annavad disjunkti 9 koopia) thi disjunkt ehk vastuolu.
Neljas tase:
(8 ja 4 annavad disjunkti 9 koopia) thi disjunkt ehk vastuolu.
(10 ja 1 annavad disjunkti 9 koopia) thi disjunkt ehk vastuolu.
17.2. Sissejuhatus resolutsioonimeetodisse 305
Kuna viimasel, neljandal tasemel on kik disjunktid varasemate
disjunktide koopiad, siis ei ole resolutsioonimeetodiga vimalik
enam htegi disjunkti lisaks tuletada.
Vaadeldud nide on resolutsioonimeetodi kasutamise juures
tpiline: enamasti rakendatakse resolutsioonimeetodit disjunktide
hulga vastuolulisuse testamiseks. Kui vastuolu on leitud, siis
peatatakse t kohe, kuna mingit lisainformatsiooni edasine tu-
letamine ei anna. Meie nites tuleks t peatada kohe prast
disjunkti 9 tuletamist.
Vastuolu otsimise motiiviks on asjaolu, et mistahes valemi F
tuletatavus on ekvivalentne tema eituse F vastuolulisusega.
Uurime niteks, kas mingist disjunktide hulgast jreldub mingi
disjunkt D. Valem D kehtib parajasti siis, kui & D on
vastuoluline, s.t. disjunktide & D hulgast saab tuletada thja
disjunkti. Meenutame, et disjunktide hulka {C
1
, C
2
, . . . , C
n
} vib
vaadelda disjunktide konjunktsioonina C
1
& C
2
& . . . & C
n
.
hes sjatoodud nites tuletasime disjunktidest 14 disjunkti
vanaisa(Jaan,Veiko). Oletame, et meid huvitas algul nimelt
ksimus, kas vanaisa(Jaan,Veiko) on nimetatud disjunktidest
14 tuletatav. Seda ksimust saab formuleerida jrgmiselt: kas
disjunktide hulk 14 pluss vanaisa(Jaan,Veiko) on vastu-
oluline, s.t. kas neist saab tuletada thja disjunkti? Tepoolest:
(1) isa(Jaan,Martin),
(2) isa(Riivo,Veiko),
(3) isa(Martin,Veiko) isa(Riivo,Veiko),
(4) isa(Martin,Veiko) vanaisa(Jaan,Veiko),
(5) vanaisa(Jaan,Veiko).
Tuletus:
(2 ja 3 annavad disjunkti 6) isa(Martin,Veiko),
(4 ja 6 annavad disjunkti 7) vanaisa(Jaan,Veiko),
306 17. Automaatne teoreemitestamine
(7 ja 5 annavad thja disjunkti) vastuolu.
Thja disjunkti saab samadest disjunktidest 15 tuletada ka tei-
sel viisil, alustades otsitava disjunkti eitusest (5) ning liikudes
n. tagasisuunas:
(5 ja 4 annavad disjunkti 6) isa(Martin,Veiko),
(6 ja 3 annavad disjunkti 7) isa(Riivo,Veiko),
(7 ja 2 annavad thja disjunkti) vastuolu.
Vaatame, milliseid disjunkte viimasest hulgast 15 resolutsiooni-
meetodiga ldse tuletada saab. Lisaks nites toodud disjunktidele
saab tuletada veel ainult he:
(3 ja 4 annavad 8) isa(Riivo,Veiko)
vanaisa(Jaan,Veiko)
Testame nd muutujateta resolutsioonimeetodi korrektsuse
ja tielikkuse, ning nitame seejrel, et muutujateta disjunktide
jaoks on resolutsioonimeetod lahendav algoritm.
Definitsioon 17.2. Kui D T
2
, asendades disjunkti L iga esinemise
disjunktiga D, s.o. L, ja teostades kik muudetud resolutsioo-
nisammud uuesti. T
2
on korrektne tuletus hulgast S, mis lpeb
thja disjunkti asemel kas disjunktiga vi
1
. . .
m
.
Viimasel juhul annab m-kordne faktoriseerimisreegli rakendamine
tulemuseks . Seega saab disjunktide hulgast S tuletada dis-
junkti . Kuivrd hulgast S
1
, s.o. (S D) {}, saab eelduse
kohaselt tuletada thja disjunkti ning kehtib (S D) S, siis on
thi disjunkt tuletatav ka hulgast S, mida oligi vaja testada.
Teoreem 17.6. Muutujateta disjunktihulkade jaoks on resolutsioo-
nimeetod lahendav algoritm, s.t. iga uuritava disjunktihulga jaoks
peatub mingil hetkel meetodi t, kusjuures vastuolu leitakse siis
ja ainult siis, kui disjunktihulgal ei ole htegi mudelit.
Testus. Muutujateta resolutsioonimeetodi tielikkuse teoreemi
jrgi tuletab resolutsioonimeetod thja disjunkti igast disjunktihul-
gast, millel pole mudelit. Jb le vaadata olukorda, kus uuritav
disjunktihulk S ei ole vastuoluline, s.t. mudel on olemas. Reso-
lutsioonimeetodi korrektsuse teoreemist jreldub, et vastuolu sel
juhul ei tuletata. Hulk S sisaldab N literaali. On lihtne veenduda,
et tuletatud disjunktid koosnevad ainult hulgas S sisalduvatest
literaalidest. N erinevast literaalist on vimalik konstrueerida 2
N
erinevat disjunkti, seega on tuletatavate disjunktide hulk lplik.
lesanded
1. *(R. Kowalski) Esitage laused disjunktidena, kasutades ainult kons-
tante kass ja mina:
17.2. Sissejuhatus resolutsioonimeetodisse 309
Lindudele meeldivad ussikesed.
Kassidele meeldivad kalad.
Sbrad meeldivad teineteisele.
Minu kass on minu sber.
Minu kass sb kike, mis talle meeldib.
Mida me saame nendest lausetest jreldada selle kohta, mida minu
kass sb?
2. *(R. Kowalski) Oletame, et ma usun jrgmisi fakte:
Leidub draakon.
Draakon kas magab oma koopas vi ktib metsas.
Kui draakon on nljane, siis ta ei saa magada.
Kui draakon on vsinud, siis ta ei saa kttida.
Leidke resolutsiooni abil vastused jrgmistele ksimustele. Mida
teeb draakon siis, kui ta on nljane? Mida teeb draakon siis, kui
ta on vsinud? Mida teeb draakon siis, kui ta on nljane ja vsi-
nud? Ksimustele vastamiseks kasutage eeldust
Kui x ei saa teha toimingut y, siis x ei tee y.
17.2.2. ldjuht: muutujaid sisaldavad disjunktid
Jrgnevalt vaatame resolutsioonimeetodi rakendamist juhul, kui
disjunktid sisaldavad muutujaid. Olgu meil antud andmebaas ni-
mega D:
(1) isa(Jaan,Peeter),
(2) isa(Jaan,Martin),
(3) isa(Martin,Veiko),
(4) isa(Riivo,Leo),
(5) ema(Leena,Leo) isa(Leena,Leo),
(6) isa(Leena,Leo),
310 17. Automaatne teoreemitestamine
(7) isa(x,y) isa(y,z) vanaisa(x,z),
(8) isa(x,y) ema(y,z) vanaisa(x,z).
Pame kigepealt testada, et andmebaasist jreldub vide
A: vanaisa(Jaan,Veiko). Nagu varem mrgitud, kehtib
D A parajasti siis, kui D & A on vastuoluline. Moodus-
tame uue disjunktide hulga D
1
.
Et resolutsioonireegel oleks korrektne, peame nd nudma,
et (muutujaid sisaldavaid) literaale A
1
ja A
1
saab samasugusteks
konkretiseerida ehk unitseerida. S.t. asendades reegli vasakpool-
ses disjunktis osa muutujaid uute objektidega, saame literaali A
1
konkretiseeritud variandi, mille thistame kui A
1
. Oluline on,
et saaksime ka parempoolse disjunkti muutujaid uute objekti-
dega asendades algselt A
1
-st erineva literaali A
1
konkretiseerida
selliseks literaaliks A
1
, et A
1
ja A
1
on tpselt hesugused.
Muutujateta resolutsioonireegli moditseerimise idee on jrg-
mine: ei proovita lbi mitte kiki vimalikke konkretiseeringuid,
vaid ainult neid, mis vimaldavad rakendada resolutsioonireeg-
lit. Viimases nites ei ole mingit mtet katsetada disjunkti 7
konkretisatsiooni isa(Leo,Leo) isa(Leo,Leo)
vanaisa(Leo,Leo), kuna mingeid uusi resolutsioonireegli ra-
kendamisvimalusi see ei anna.
Jtkame nite uurimist. Tahame rakendada resolutsiooni-
reeglit disjunktidele 2 ja 7, s.o. isa(Jaan,Martin) ja
isa(x,y) isa(y,z) vanaisa(x,z). Selleks tuleb
nende esimesed literaalid unitseerida. Esimest disjunkti enam
kuidagi konkretiseerida ei saa, teise disjunkti saame aga
konkretiseerida vajalikule kujule: isa(Jaan,Martin)
isa(Martin,z) vanaisa(Jaan,z). Selleks asendasime
muutuja x konstandiga Jaan ning muutuja y konstandiga Martin.
Taolisi muutujate asendusi nimetatakse substitutsioonideks,
ning neid pannakse kirja jrgmisel viisil: {x
1
/t
1
, . . . , x
n
/t
n
}, kus
312 17. Automaatne teoreemitestamine
iga x
i
on muutuja ning iga t
i
on nimetatud x
i
asemele substituee-
ritav objekt.
Oma nites rakendasime disjunktile substitutsiooni {x/Jaan,
y/Martin}. Prast substitutsiooni rakendamist saame kasu-
tada muutujateta resolutsioonireeglit, mis annab uue disjunkti
isa(Martin,z) vanaisa(Jaan,z). Unitseerivat substi-
tutsiooni (meie nites {x/Jaan, y/Martin}) nimetatakse unit-
seerijaks.
Sooviksime jrgnevalt rakendada resolutsioonireeglit, vt-
tes heks eelduseks viimati tuletatud disjunkti ja teiseks eel-
duseks disjunkti 3: isa(Martin,Veiko). Selleks, et lite-
raalid isa(Martin,z) ja isa(Martin,Veiko) unitsee-
rida, rakendame esimesele eeldusele substitutsiooni {z/Veiko},
mis annab disjunkti isa(Martin,Veiko) vana-
isa(Jaan,Veiko). Resolutsioonireegliga tuletame nd disjunkti
vanaisa(Jaan,Veiko), millest leiame disjunkti 9 abil jrgmisel
sammul vastuolu. Tuletuskik oli kokkuvtlikult jrgmine:
(2 ja 7 annavad disjunkti 10) isa(Martin,z)
vanaisa(Jaan,z),
(10 ja 3 annavad disjunkti 11) vanaisa(Jaan,Veiko),
(11 ja 9 annavad thja disjunkti) vastuolu.
Siiani ji lahtiseks ksimus, kuidas leida vajalikku unit-
seerivat substitutsiooni ja milline see peaks tpselt olema. Eriti
keeruliseks muutub olukord siis, kui mlemad unitseeritavad
literaalid sisaldavad muutujaid. Olgu meil tegu kahe niisuguse
disjunktiga, kus x, y, u ja v on muutujad:
P(a,x,y) S(x,y) ja P(u,v,b) R(u,v).
Esimest kaht aatomit P(a,x,y) ja P(u,v,b) saab unifitseerida
mitmel viisil, niteks konkretiseerides mlemad kas literaaliks
P(a,a,b) vi literaaliks P(a,b,b). Resolutsioonimeetodi idee on
rakendada minimaalseid substitutsioone, jttes alles kik muutujad,
millesse otseselt substitueerida vaja pole. Resolutsioonimeetod
17.2. Sissejuhatus resolutsioonimeetodisse 313
rakendab seega substitutsiooni {u/a, y/b, x/v}, kus komponent
{x/v} lihtsalt nimetab muutuja mber. Mainitud substitutsiooni
{u/a, y/b, x/v} rakendamine annab disjunktid
P(a,v,b) S(v,b) ja P(a,v,b) R(a,v),
millest resolutsioonireegel tuletab uue disjunkti S(v,b)
R(a,v).
Minimaalset unitseerivat substitutsiooni nimetatakse kige
ldisemaks unitseerijaks. Nimi on phjendatud, kuna selline uni-
tseerija konkretiseerib literaale nii vhe kui vimalik. Saab tes-
tada, et mistahes kahel unitseeritaval literaalil on ksainus kige
ldisem unitseerija (muutujate mbernimetamist arvestamata).
Minimaalse unitseerija leidmise juures tekitab lisakeerukust
asjaolu, et literaalis vivad peale muutujate ja konstantide olla ka
keerukamad objektid, funktsionaalsed termid, mis on funktsiooni
rakendused argumentidele. Niteks vime arvu x ruutu vtmise te-
het vljendada funktsionaalse termiga ruut(x), kahe arvu x ja y
korrutamise tehet termiga *(x,y). Arvu x korrutist omaenda ruu-
duga saab siis vljendada funktsionaalse termiga *(x,ruut(x))
ning literaali, mis tleb, et x x = ruut (x), saame kirjutada
vrdub(*(x,x),ruut(x)).
Defineerime miste term.
Definitsioon 17.7.
1. Iga muutuja ning konstant on term.
2. Iga konstruktsioon f (t
1
, . . . , t
n
), kus 0 n, f on funktsio-
naalsmbol ja iga t
i
on term, konkreetsemalt, funktsionaal-
term.
3. Termi saab konstrueerida ainult laltoodud reeglite 1 ja 2
abil.
Mainitud lisakeerukuseks on asjaolu, et ei saa olla substi-
tutsiooni, mis muudaks samaseks mingi muutuja x ja sedasama
muutujat x sisaldava funktsionaaltermi t . Pame niteks unit-
seerida literaale P(x,x) ja P(y,f(y)). Esimeste argumentide x
314 17. Automaatne teoreemitestamine
ja y unitseerimise jrel saadud substitutsiooni {y/x} rakendades
muutub term f(y) termiks f(x) ning meil tuleb jrgmisena uni-
tseerida muutuja x funktsionaalse termiga f(x). Viimane on aga
vimatu!
Defineerime unifitseeritavuse ja kige ldisema unifitseerija.
Definitsioon 17.8. tleme, et termid t
1
ja t
2
on unifitseeritavad,
kui leidub substitutsioon , nii et
t
1
= t
2
.
Termide t
1
ja t
2
kige ldisem unifitseerija on substitutsioon ,
mis rahuldab tingimusi:
1. on termide t
1
ja t
2
unifitseerija.
2. t
1
ja t
2
iga unifitseerija korral leidub substitutsioon , nii
et
= ,
s.t. iga termi t korral (t ) = ((t )).
Literaalide unitseeritavus ja kige ldisem unitseerija de-
neeritakse samamoodi.
Joonisel 17.1 toodud algoritm mgu arvutab literaalide vi
termide x ja y kige ldisema unitseerija. Edaspidi kasutamegi
kahe literaali vi termi x ja y kige ldisema unitseerija t-
histamiseks kirjaviisi (x, y). Lhend mgu tuleb ingliskeelsest
vljendist most general unier ja on resolutsioonialases kirjanduses
standardne. Algoritmi lahtikirjutamata osad thendavad jrgmist.
term ja substitution thistavad termi ja substitutsiooni tpi.
Konstant EMPTYSUBST thistab thja substitutsiooni {}, konstant
NOSUBST thistab, et antud termidel ei saagi olla unitseerivat
substitutsiooni. Funktsioonid variable ja constant kontrol-
livad, kas argument on muutuja vi konstant. Funktsioon length
vtab argumendiks funktsionaalse termi ja annab selle argumen-
tide arvu. Niteks on termi ruut(x) argumentide arv ks, termi
*(x,x) argumentide arv kaks, termi *(x,ruut(x)) argumentide
arv samuti kaks. part(x,i) annab termi x i-nda argumendi,
17.2. Sissejuhatus resolutsioonimeetodisse 315
substitution mgu(x,y)
term x,y;
{
int i;
substitution g;
if x==y return EMPTYSUBST;
else if variable(x) return mguvar(x,y);
else if variable(y) return mguvar(y,x);
else if (constant(x) || constant(y)) return NOSUBST;
else if (length(x) != length(y)) return NOSUBST;
i=0;
g=EMPTYSUBST;
while (i<=length(x)) {
s=mgu(part(x,i),part(y,i));
if s==NOSUBST return s;
g=compose(g,s);
x=substitute(x,g);
y=substitute(y,g);
i=i+1;
}
return g;
}
substitution mguvar(x,y)
term x,y;
{
if occurs_in(x,y) return NOSUBST;
else return makesubstitution(x,y);
}
Joonis 17.1. Unifitseerimisalgoritm.
kusjuures argumendiks 0 loetakse funktsionaalsmbolit. Niteks
on termi *(x,ruut(x)) argumendiks 0 funktsionaalsmbol *,
argumendiks 1 muutuja x ja argumendiks 2 funktsionaalterm
316 17. Automaatne teoreemitestamine
ruut(x). Funktsioon compose annab kahe substitutsiooni hen-
damise resultaatsubstitutsiooni, substitute(x,g) rakendab x-le
substitutsiooni g ja annab tulemuseks saadud resultaattermi. make-
substitution(x,y) konstrueerib substitutsiooni {x/y}. Funkt-
sioon occurs_in kontrollib, kas esimene argument esineb kusagil
teise argumendi sees.
Mned unitseerimisnited (meenutame, et muutujaid thista-
vad meil smbolid x, y, z, u, v, w):
(P(a,x), P(y,b)) = {y/a,x/b}.
(P(x,f(x)), P(f(y),u)) = {x/f(y),u/f(f(y))}.
(L(g(x,x)), L(g(f(a),f(a)))) = {x/f(a)}.
(R(a,b), R(a,b)) = {}.
(P(a,x,x), P(y,b,y)) ei eksisteeri.
(P(f(x),f(x)), P(f(y),y)) ei eksisteeri.
(P(f(x),g(x)), P(f(y),f(y))) ei eksisteeri.
Esitame nd resolutsioonireegli ldkuju. Viimane erineb muu-
tujateta erijuhust selle poolest, et raligatavad literaalid ei pea
olema identsed, vaid unitseeritavad, ning allesjnud literaalidele
rakendatakse raligatud literaalide unitseerijat.
A
1
A
2
. . . A
n
B
1
B
2
. . . B
m
(A
2
. . . A
n
B
2
. . . B
m
)
= (A
1
, B
1
) .
Enne resolutsioonireegli rakendamist tuleb alati kontrollida, kas
disjunktid A
1
A
2
. . . A
n
ja B
1
B
2
. . . B
m
sisaldavad
hiseid muutujaid. Kui jah, siis tuleb hes disjunktis muutujad
mber nimetada, nii et hiseid muutujaid ei jks. Rakendame
niteks resolutsioonireeglit jrgmistele disjunktidele:
P(g(x),x,f(y)) R(x,y) ja P(x,a,z) S(x,z).
Kuna mlemad sisaldavad muutujat x, nimetame teises dis-
junktis x mber u-ks: P(u,a,z) S(u,z). Kom-
mentaariks: kui muutujat mber ei nimetata, pole mainitud
17.2. Sissejuhatus resolutsioonimeetodisse 317
kahe disjunkti esimesed literaalid unitseeritavad. Nd aga
(P(g(x),x,f(y)), P(u,a,z)) ={u/g(a),x/a,z/f(y)}
ja tuletame disjunkti R(a,y) S(a,f(y)).
Jrgnevalt meenutame muutujateta disjunktide faktoriseerimis-
reeglit, mis krvaldas disjunktist learused literaalide koopiad:
A
1
A
1
A
2
. . . A
n
A
1
A
2
. . . A
n
.
ldisel, muutujatega juhul sisaldab ka faktoriseerimisreegel unit-
seerimist:
A
1
A
2
A
3
. . . A
n
(A
2
A
3
. . . A
n
)
= (A
1
, A
2
) .
Faktoriseerimisreegli rakendamise niteid:
Disjunktist P(x,y,y) P(a,y,z) S(x,y,z) tuletame
disjunkti P(a,y,y) S(a,y,y).
Disjunktist R(x,y) R(y,x) R(a,a) tuletame kolm
disjunkti, faktoriseerides vastavalt literaale 1, 2 vi 1, 3 vi
2, 3: R(x,x) R(a,a) ja R(a,a) R(a,a) ja R(a,a)
R(a,a). Igahele saadud disjunktidest saab omakorda
rakendada faktoriseerimisreeglit, mis annab kikidel juhtudel
samasuguse hest literaalist koosneva disjunkti: R(a,a).
Resolutsioonimeetodi tielikkuse ks alus on Herbrandi teo-
reem, mille esitame siin testuseta. Viimane on suhteliselt lihtne:
jtame testuse leidmise harjutuseks lugejale.
Definitsioon 17.9. Disjunktide hulga S Herbrandi universumiks
nimetatakse kigi selliste muutujaid mittesisaldavate termide hulka,
mida saab moodustada hulgas S sisalduvatest konstantidest ja
funktsionaalsmbolitest. Kui hulgas S konstante pole, lubatakse
kasutada suvalist konstanti a.
Teoreem 17.10 (Herbrandi teoreem). Disjunktide hulk S on vas-
tuoluline parajasti siis, kui eksisteerib lplik vastuoluline muu-
tujaid mittesisaldavate disjunktide hulk S
1
. . . S
n
, kus iga
318 17. Automaatne teoreemitestamine
substitutsioon
i
asendab kik hulgas S esinevad muutujad termi-
dega hulga S Herbrandi universumist.
Testame nd resolutsioonimeetodi tielikkuse ldjuhul.
Testus kasutab muutujateta resolutsioonimeetodi tielikkuse tes-
tust koos jrgneva tstmislemmaga. Viimane tleb sisuliselt, et
kige ldisemat unitseerijat kasutav resolutsioonireegel katab
kikvimalikud muutujaid mittesisaldavate konkretisatsioonidega
tehtavad resolutsioonisammud.
Lemma 17.11 (tstmislemma). Olgu D
1
ja D
2
kaks ilma histe
muutujateta disjunkti. Olgu D
1
ja D
2
antud disjunktide konk-
retisatsioonid, mis ei sisalda muutujaid. Olgu disjunkt R tuletatud
disjunktidest D
1
ja D
2
resolutsioonireegli hekordse raken-
damisega. Siis saab disjunktidest D
1
ja D
2
resolutsioonireegli
hekordse rakendamisega tuletada sellise disjunkti R
, et mingi
substitutsiooni jaoks kehtib R = R
.
Testus. Kuna R on saadud disjunktidele D
1
ja D
2
reso-
lutsioonireeglit rakendades, siis sisaldab disjunkt D
1
literaali
L ja disjunkt D
2
literaali L
, nii et L = L
ja
R = (D
1
L) (D
2
L
), kus (D
i
L) thistab
literaali L eemaldamist disjunktist D
i
. Olgu L literaalile L
vastav literaal disjunktis D
1
ja L
literaalile L
vastav literaal
disjunktis D
2
. Kuna literaalidel L ja L
on lemma eelduse
kohaselt unitseerija , siis on neil ka kige ldisem unitseerija
= (L, L
ning andes
tulemuseks disjunkti R
: (D
1
L) (D
2
L
). Kuna
kige ldisema unitseerija denitsiooni jrgi eksisteerib substi-
tutsioon , nii et = , siis kehtib R = R
: S
1
. . .S
n
, kus iga substitutsioon
i
asendab kik hulgas S esinevad muutujad termidega hulga S
Herbrandi universumist. Muutujateta resolutsioonimeetodi tielik-
kuse teoreemist jreldub, et resolutsioonimeetodiga saab hulgast
S
, kus A
on saadud
valemist A, asendades seal muutuja x uue konstan-
diga a. Uue konstandi all mtleme suvalist konstanti,
mida ei ole teisendatavas valemis. Toome nite. Va-
lemis xP(x, a) & yQ(y, y) ei asu yQ(y, y) hegi
ldisuskvantori mjupiirkonnas, seega kaotame ole-
masolukvantori ja asendame muutuja y konstandiga b:
xP(x, a)&Q(b, b). NB! konstanti a ei vi asenduseks
kasutada, kuna ta juba on teisendatavas valemis.
Asugu nd alamvalem xA mingi hulga ldisuskvan-
torite y
1
, y
2
, . . . , y
n
mjupiirkonnas. Asendame
alamvalemi xA valemiga A
, kus A
on saadud
valemist A, asendades muutuja x uue funktsionaal-
termiga f (y
1
, y
2
, . . . , y
n
), kusjuures funktsionaalsm-
bol f on uus, s.t. f ei esine teisendatavas va-
lemis. Nide: valemis xyzP(f (z), x, y, z) asen-
dame muutuja z termiga g(x, y), mis annab valemi
xyP(f (g(x, y)), x, y, g(x, y)).
5. Teisendame valemi F
4
ekvivalentseks valemiks F
5
, eemalda-
des kik ldisuskvantorid . Muutujad valemis F
5
on nd
nn. vabad muutujad.
6. Teisendame valemi F
5
ekvivalentseks konjunktiivsel nor-
maalkujul olevaks valemiks F
6
. Selleks teisendame kik
alamvalemid kujul A (B & C) ekvivalentsele kujule
(A B) & (A C).
7. Valem F
6
on nd kujul C
1
& C
2
& . . . & C
n
, kus iga
C
i
on disjunkt. Teisendame valemi F
6
disjunktide hulgaks
{C
1
, C
2
, . . . , C
n
}.
326 17. Automaatne teoreemitestamine
Nitena toome valemi
x((yP(x, y)) y(Q(x, y) R(x, y)))
sammsammulise teisenduse disjunktide hulgaks:
1. x((yP(x, y)) y(Q(x, y) R(x, y)))
2. x((yP(x, y)) (yQ(x, y) & R(x, y)))
3. x((yP(x, y)) (zQ(x, z) & R(x, z)))
4. x(P(x, f (x)) (Q(x, g(x)) & R(x, g(x))))
5. P(x, f (x)) (Q(x, g(x)) & R(x, g(x)))
6. (P(x, f (x)) Q(x, g(x))) &(P(x, f (x)) R(x, g(x)))
7. {P(x, f (x)) Q(x, g(x)), P(x, f (x)) R(x, g(x))}
Enamik laltoodud teisendussammudest annab tulemuseks lh-
tevalemiga ekvivalentse valemi. Ainsa erandina ei anna lhtevale-
miga ekvivalentset tulemust skolemiseerimine ning seetttu ei ole
ka kogu teisenduse lpptulemus lhtevalemiga loogiliselt ekviva-
lentne. Automaatse teoreemitestamise tarvis piisab aga jrgmisest
Skolemi testatud teoreemist.
Teoreem 17.14. Olgu F esimest jrku predikaatarvutuse valem ja
(F) selle valemi skolemiseeritud kuju. F on vastuoluline siis ja
ainult siis, kui (F) on vastuoluline.
Peamisi ebameeldivusi disjunktideks teisendamisel valmis-
tab eelviimane samm, mis asendab kik alamvalemid kujul
A (B & C) ekvivalentse, kuid suurema kujuga (AB)&(AC).
Viimase asenduse tttu vib alguses suhteliselt vike loogikavalem
teiseneda vga suureks disjunktihulgaks.
17.3. Resolutsioonimeetodi strateegiad ja rakendused 327
17.3. Resolutsioonimeetodi strateegiad ja
rakendused
Resolutsioonimeetodi ks ebameeldivamaid klgi on suure hulga
mittevajalike disjunktide (niteks korduvate disjunktide) tuleta-
mine. Meetodi efektiivsuse suurendamise peamine vahend on
selliste variantide ehk strateegiate vljattamine, mis tuletaksid
vimalikult vhe disjunkte, kaotamata samas tielikkust.
Esitame siin resolutsioonimeetodi mne kasutatavama stratee-
gia.
17.3.1. Neelamisstrateegia ja tautoloogia krvaldamine
Neelamisstrateegia on pea kige universaalsem resolutsioonimee-
todi strateegiatest, seda saab kombineerida enamiku teiste stra-
teegiatega ning ta on realiseeritud praktiliselt kigis automaatse
teoreemitestamise programmides.
Definitsioon 17.15. Disjunkt D
).
Sisuliselt thendab disjunkti D neelamine disjunkti D
poolt,
et D
= D)
kui D: kik, mis tuleneb loogiliselt D-st, tuleneb ka D
-st. Kui
D
D.
Nide: disjunkt p(x) r(y) neelab disjunkti p(a) r(v)
s(z).
Neelamisstrateegia seisneb jrgmises kahes piirangus:
1. Kui viimati tuletatud disjunkti D neelab kas mni va-
remtuletatud vi lhtedisjunkt, siis krvaldatakse D kohe,
s.t. edasises tuletamises teda ei kasutata.
2. Kui viimati tuletatud disjunkt D ise neelab kas mne varem
tuletatud vi lhtedisjunkti R, siis krvaldatakse R kohe.
328 17. Automaatne teoreemitestamine
Teoreem 17.16. Neelamisstrateegia silitab resolutsioonimeetodi
tielikkuse.
Testus. Induktsioon sammude arvu jrgi vastuolu tuletuses. In-
duktsiooni baas on triviaalne. Induktsiooni samm: olgu disjunkt D
tuletatud resolutsioonireegli rakendamisega disjunktidele D
1
ja D
2
.
Kui asendada disjunkt D
1
teda neelava disjunktiga D
1
, siis kehtib
ks kahest: muudetud tuletussammu resultaat D
neelab dis-
junkti D vi D
1
neelab ise disjunkti D. Analoogiline vide kehtib
faktoriseerimisreegli kohta.
Tautoloogia krvaldamise strateegia on sarnane neelamisstra-
teegiaga.
Definitsioon 17.17. Tautoloogiliseks nimetame disjunkte
L L , kus on mingi disjunkt.
Antud strateegia seisneb tautoloogiliste disjunktide koheses
krvaldamises. Strateegia silitab resolutsioonimeetodi tielikkuse:
testuseks piisab, kui mrgata, et disjunktidest L L ja D
resolutsioonireegliga saadud disjunkt D
ja valemi
J disjunktide hulgaks J
. Eesmrgiks on hulgast K
tuletada
vastuolu.
Kui K
-s
17.3. Resolutsioonimeetodi strateegiad ja rakendused 329
leiduvatest disjunktidest tohutu hulga uusi disjunkte, millest ena-
mikku vastuolu tuletamiseks kasutada ei saa. Kll aga phjustab
nende disjunktide tuletamine ajakulu ja muudab vastuolu leidmise
rmiselt raskeks. Resolutsioonimeetod n. ei hooli asjaolust, et
on tarvis nidata nimelt valemi J jreldatavust.
Toetushulga strateegia eesmrgiks on suunata resolutsiooni-
meetodit vastuolu otsimisel alustama nimelt valemist J, liikudes
otsitavast jreldusest tagasisuunas faktide poole.
Olukorras, kus otsitakse K
hulga K
toetushulgaks.
Toetushulga strateegia piirab resolutsioonireegli rakendamist,
nudes, et vhemalt ks reegli kahest eeldusest peab kas kuuluma
toetushulka vi olema toetushulga strateegiaga tuletatud. Pole raske
testada, et toetushulga strateegia silitab resolutsioonimeetodi
tielikkuse.
Vaatame nitena jrgmist disjunktide hulka, vttes disjunkti 4
toetushulga ainsaks elemendiks ja kasutades toetushulga stratee-
giat.
(1) p(x) q(x);
(2) p(a) r(x);
(3) q(x) r(a);
(4) r(a).
Esimesel tasemel saab tuletada kaks disjunkti:
(4 ja 2 annavad disjunkti 5) p(a), mis neelab disjunkti 2;
(4 ja 3 annavad disjunkti 6) q(x), mis neelab disjunkti 3.
Teisel tasemel saab tuletada kaks disjunkti:
(5 ja 1 annavad disjunkti 7) q(a);
(6 ja 1 annavad disjunkti 8) p(x), mis neelab disjunkti 1.
Kolmandal tasemel annavad disjunktid 7 ja 6 vastuolu.
330 17. Automaatne teoreemitestamine
17.3.3. Jrjestatud resolutsioon
Jrjestatud resolutsioon on ks sellistest testuse otsimise stratee-
giatest, mille juures keelatakse osa resolutsioonireegli vimalikke
rakendusi. Jrjestatud resolutsioon ei ole ks konkreetne strateegia,
vaid pigem terve strateegiate perekond, mille iga liige realiseerib
ht kindlat literaalide jrjestamise viisi disjunktis.
Jrjestatud resolutsiooni strateegia on jrgmine:
Defineeritakse literaalide jrjestus disjunktis, s.t. meetod,
mille alusel saab iga kahe literaali A ja B jaoks kontrollida,
kas A B.
Resolutsioonireeglil keelatakse disjunktis selliste literaalide
ralikamine, millest suuremaid (jrjestuse mttes) lite-
raale disjunkt sisaldab. Niisiis, reeglit
A
1
A
2
. . . A
n
B
1
B
2
. . . B
m
(A
2
. . . A
n
B
2
. . . B
m
)
= (A
1
, B
1
)
vib rakendada ainult juhul, kui hegi literaali A
i
korral
ei kehti A
i
A
1
ning hegi literaali B
i
korral ei kehti
B
i
B
1
.
Nide. Defineerime jrjestuse
1
, kasutades jrjestamiseks
literaalis esinevaid predikaatsmboleid:
p
1
q
1
q
1
p
1
r
1
r.
Vaatame, milliseid disjunkte jrgmisest
1
abil jrjestatud dis-
junktihulgast tuletada saab. Paneme thele, et
1
lubab nendest
disjunktidest ra ligata ainult kige esimesi disjunkte:
(1) p(x) q(x);
(2) p(a) r(x);
(3) q(x) r(a);
(4) r(a).
17.3. Resolutsioonimeetodi strateegiad ja rakendused 331
Esimesel tasemel saab tuletada heainsa disjunkti:
(1 ja 2 annavad disjunkti 5) q(a) r(x).
Teisel tasemel saab tuletada kaks disjunkti:
(5 ja 3 annavad disjunkti 6) r(a) r(x);
(6 annab faktoriseerimisel disjunkti 7) r(a).
Disjunkt 7 neelab disjunktid 3 ja 6 ning annab kolmandal tasemel
koos disjunktiga 4 vastuolu.
Vrdluseks: piiranguteta resolutsioonimeetodiga saame sjasest
disjunktihulgast tuletada enam kui kakskmmend uut disjunkti.
Jrjestatud resolutsiooni tielikkuse testamiseks pole leitud
universaalset meetodit ning testus sltub sageli jrjestuse de-
nitsioonist. ldjuhul ei saa jrjestusstrateegiaid kombineerida
toetusstrateegiaga ning mitut eriti tugevat jrjestusstrateegiat ei
saa kombineerida ka neelamisstrateegiaga. Ksimusele, kas kik
sellised jrjestused, mis on sltumatud muutujate mbernimeta-
misest, silitavad resolutsioonimeetodi tielikkuse, pole raamatu
kirjutamise hetkeks vastust veel leitud.
ks lihtsamaid, samas aga vga praktiline jrjestamismeetod
on jrjestada literaale polaarsuse jrgi, niteks lugedes negatiivseid
literaale suuremaks kui positiivseid.
Olgu meil jllegi tegemist reeglite/faktide andmebaasiga K,
millest pame tuletada disjunkti J. Teatavasti saab iga disjunkti
esitada implikatsioonina: kehtib valem
(N
1
. . .N
n
P
1
. . .P
m
) (N
1
&. . .&N
n
P
1
. . .P
m
).
Jrgmises nites kuuluvad disjunktid 12 andmebaasi K, mil-
lest ptakse tuletada disjunkti 3 eitus. Illustratiivsuse huvides
esitame disjunktid krvuti oma implikatsioonikujuga.
(1) M(x) P(x) M(x) P(x)
(2) M(a) M(a)
(3) P(z) P(z)
332 17. Automaatne teoreemitestamine
Kasutame kigepealt jrjestust, kus negatiivsed literaalid tulevad
enne positiivseid. Sel juhul saab esimesel tasemel tuletada vaid
he disjunkti: disjunktid 1 ja 2 annavad P(a), ning viimane an-
nab teisel tasemel vastuolu disjunktiga 3. Testuse otsimine algas
seega faktidest andmebaasis K, judes lpuks soovitud jrelduse
tuletamiseni.
Jrgmisena kasutame vastupidist jrjestust: positiivsed literaa-
lid tulevad enne negatiivseid. Esimesel tasemel annavad nd
disjunktid 3 ja 1 disjunkti M(x), millest teisel tasemel tule-
tame koos disjunktiga 2 vastuolu. Testuse otsimine algas seega
soovitud jreldusest ning judis lpuks faktideni andmebaasis K.
Vga keeruline on vastata ksimusele, milline jrjestus millisel
juhul paremini sobib, s.t. phjustab viksema arvu disjunktide
tuletamise. Vaatame kahte nidet, kus esimeses on eelistatav suund
faktidest jrelduseni, teises aga jreldusest faktideni. Esitame
andmebaasis olevad disjunktid implikatsioonidena.
Esimene nide. Olgu meil jrgmine andmebaas:
putukas(x) elusolend(x)
imetaja(x) elusolend(x)
sipelgas(x) putukas(x)
mesilane(x) putukas(x)
mblik(x) putukas(x)
lvi(x) imetaja(x)
tiiger(x) imetaja(x)
sebra(x) imetaja(x)
Oletame, et Zeke on sebra. Ksime: kas Zeke on elusolend?
Kasutame jrjestatud resolutsiooni, kus negatiivsed literaalid tule-
vad enne positiivseid, s.t. otsingu suund on faktidest jrelduseni.
Kirjutame vlja kik tuletatavad disjunktid, eraldades tasemed
horisontaaljoonega. Disjunktid 1 ja 2 on meie ksimuse eitusele
vastavad lhtedisjunktid.
17.3. Resolutsioonimeetodi strateegiad ja rakendused 333
(1) sebra(Zeke)
(2) elusolend(Zeke)
(3) imetaja(Zeke)
(4) elusolend(Zeke)
(5) vastuolu.
Jrgmisena kasutame vastupidiselt jrjestatud resolutsiooni: po-
sitiivsed literaalid tulevad enne negatiivseid, s.t. otsingu suund
on jreldusest faktideni. Kirjutame jllegi vlja kik tuletatavad
disjunktid.
(1) sebra(Zeke)
(2) elusolend(Zeke)
(3) putukas(Zeke)
(4) imetaja(Zeke)
(5) sipelgas(Zeke)
(6) mesilane(Zeke)
(7) mblik(Zeke)
(8) lvi(Zeke)
(9) tiiger(Zeke)
(10) sebra(Zeke)
(11) vastuolu.
Nagu nha, tuletatakse viimase jrjestuse kasutamise korral palju
rohkem disjunkte kui esimese jrjestuse korral.
Teine nide. Olgu meil jrgmine sebrade andmebaas:
sebra(x) imetaja(x)
sebra(x) triibuline(x)
sebra(x) keskmiselt_suur(x)
imetaja(x) elusolend(x)
334 17. Automaatne teoreemitestamine
elusolend(x) soe(x)
triibuline(x) mittehevrviline(x)
triibuline(x) mittetpiline(x)
keskmiselt_suur(x) mittevike(x)
keskmiselt_suur(x) mittesuur(x)
Uurime, kas asjaolust, et Zeke on sebra, jreldub, et Zeke
on mittesuur. Kasutame kigepealt otsingut suunaga faktidest
jrelduseni. Disjunktid 1 ja 2 on meie ksimuse eitusele vastavad
lhtedisjunktid.
(1) sebra(Zeke)
(2) mittesuur(Zeke)
(3) imetaja(Zeke)
(4) triibuline(Zeke)
(5) keskmiselt_suur(Zeke)
(6) elusolend(Zeke)
(7) mittehevrviline(Zeke)
(8) mittetpiline(Zeke)
(9) mittevike(Zeke)
(10) mittesuur(Zeke)
(11) vastuolu.
Jrgmiseks kasutame otsingut suunaga jreldusest faktideni, mis
vastupidi esimesele nitele on praeguse andmebaasi jaoks tunduvalt
efektiivsem.
(1) sebra(Zeke)
(2) mittesuur(Zeke)
(3) keskmiselt_suur(Zeke)
(4) sebra(Zeke)
(5) vastuolu.
17.4. Niteid ja rakendusi 335
17.4. Niteid ja rakendusi
Ndisaegsed resolutsioonimeetodil phinevad automaatse teoree-
mitestamise programmid tuletavad sekundis mitu tuhat disjunkti.
Seejuures tehakse iga tuletatud disjunktiga tavaliselt veel hulk
mitmesuguseid operatsioone, nagu neelamiskontroll, disjunkti liht-
sustamine jne., mis vivad kulutada tunduvalt rohkem aega kui
disjunkti tuletamine ise.
Kuitahes kiiresti testajad ka disjunkte ei tuletaks, ei pse
keegi mda asjaolust, et tuletatavate disjunktide hulk kasvab ta-
semete likes kiiremini kui eksponentsiaalselt. Sgavate, paljusid
samme sisaldavate testuste tisautomaatne leidmine ei nnestu
kaugeltki alati pigem vastupidi. Keeruliste testuste automaatse
leidmise nimel ttatakse pidevalt vlja uusi strateegiaid ja heuris-
tikaid viimaste efekt on palju suurem kui arvutikiiruste paari-
vi kmnekordsel kasvamisel.
Vaatame nd mningaid mittetriviaalseid, samas aga mitte ka
lemra keerulisi niteid mitmest sfrist.
17.4.1. Algebra
Esimene nide on suhteliselt lihtne teoreem rhmateooriast. Olgu
meil kahekohaline assotsiatiivne tehe * koos prdelemendi vt-
mise funktsiooniga i. Testame, et kui sellisel tehtel on pa-
rempoolne hikelement e, siis on seesama e ka vasakpoolne
hikelement.
Disjunktid 13 formaliseerivad prd- ja hikelemendi ning
tehte * assotsiatiivsuse. Disjunkt 4 on teoreemi x((e, x) = x)
skolemiseeritud eitus.
(1) =(*(x,i(x)),e)
(2) =(*(x,e),x)
(3) =(*(x,*(y,z)),*(*(x,y),z))
(4) =(*(e,c),c)
(5) =(x,x)
336 17. Automaatne teoreemitestamine
Testuse otsimisel kasutame paramodulatsiooni. Automaatne
teoreemitestaja leiab vastuolu sekundi murdosa vltel, prast ligi
poolteise tuhande disjunkti tuletamist. Jrgnevas testuses on kik
sammud peale viimase paramodulatsioonireegli rakendused.
(2 ja 3 annavad 8) =(*(x,*(e,y)),*(x,y))
(1 ja 3 annavad 10) =(*(x,e),*(*(x,y),i(y)))
(8 ja 1 annavad 46) =(*(x,*(e,i(x))),e)
(2 ja 10 annavad 145) =(x,*(*(x,y),i(y)))
(1 ja 145 annavad 175) =(x,*(e,i(i(x))))
(175 ja 46 annavad 206) =(*(i(x),x),e)
(206 ja 145 annavad 233) =(i(x),*(e,i(x)))
(233 ja 175 annavad 560) =(x,i(i(x)))
(560 ja 175 annavad 569) =(x,*(e,x))
(569 ja 4 annavad 1421) =(c,c)
(5 ja 1421 annavad thja disjunkti) vastuolu.
17.4.2. Metaloogika
Teise nite vtame loogika vallast. Uurime selliseid klassika-
lise lausearvutuse valemeid, mis sisaldavad ainult lausemuutujaid
ja implikatsiooni. !ukasiewicz testas, et taoliselt piiratud klas-
sikalise lausearvutuse aksiomatiseerimiseks piisab lisaks modus
ponensi reeglile hestainsast aksioomiskeemist:
((x y) z) ((z x) (u x)).
Tielikkuse testamiseks tuleb nimetatud aksioomist modus po-
nensiga tuletada kik harilikud implikatsiooni formaliseerivad
aksioomiskeemid. Siinses nites tuletame neist ainult he, Peircei
reegli:
(((x y) x) x).
17.4. Niteid ja rakendusi 337
Implikatsiooni x y esitame termi kujul: i(x,y). Literaal
p(t ) tleb, et t on tuletatav lausearvutusvalem. Disjunkt 1 forma-
liseerib modus ponensi reeglit, disjunkt 3 !ukasiewiczi aksioomi
ja disjunkt 2 Peircei reegli ldkehtivuse eitust.
(1) p(x) p(i(x,y)) p(y)
(2) p(i(i(i(a,b),a),a))
(3) p(i(i(i(x,y),z),i(i(z,x),i(u,x))))
Tuletusreeglina kasutame hperresolutsioonireeglit, mis teeb
korraga mitu harilikku resolutsioonisammu. Antud nites vastab
ks hperresolutsioonisamm tpselt hele modus ponensi reegli
rakendusele ja koosneb seega kahest jrjestikusest hariliku re-
solutsiooni sammust. Testuse leidmiseks kulub mitu sekundit,
mille jooksul testaja tuletab ca 20 000 disjunkti, millest 90%
neelatakse.
(3, 1, 3 annavad 4)
p(i(i(i(i(x,y),i(z,y)),i(y,u)),i(v,i(y,u))))
(4, 1, 4 annavad 5) p(i(x,i(i(y,z),i(z,i(y,z)))))
(4, 1, 3 annavad 6) p(i(i(i(x,i(y,z)),i(i(u,y),i(v,y))),
i(w,i(i(u,y),i(v,y)))))
(5, 1, 5 annavad 7) p(i(i(x,y),i(y,i(x,y))))
(7, 1, 3 annavad 12) p(i(i(i(x,i(y,x)),y),i(z,y)))
(6, 1, 12 annavad 15) p(i(x,i(i(y,z),i(z,z))))
(15, 1, 15 annavad 20) p(i(i(x,y),i(y,y)))
(20, 1, 12 annavad 23) p(i(i(x,y),i(x,y)))
(23, 1, 3 annavad 26) p(i(i(i(x,y),x),i(z,x)))
(26, 1, 3 annavad 50) p(i(i(i(x,y),i(y,z)),i(u,i(y,z))))
(50, 1, 3 annavad 94)
p(i(i(i(x,i(y,z)),i(u,y)),i(v,i(u,y))))
(94, 1, 3 annavad 490) p(i(x,i(i(i(i(y,z),u),z),i(y,z))))
338 17. Automaatne teoreemitestamine
(490, 1, 490 annavad 498) p(i(i(i(i(x,y),z),y),i(x,y)))
(498, 1, 3 annavad 507)
p(i(i(i(x,y),i(i(x,y),z)),i(u,i(i(x,y),z))))
(507, 1, 26 annavad 1143) p(i(x,i(i(i(y,z),y),y)))
(1143, 1, 1143 annavad 1162) p(i(i(i(x,y),x),x))
(1162, 2 annavad thja disjunkti) vastuolu.
17.4.3. Programmide verifitseerimine
Kolmanda nitena vaatame arvutiprogrammi korrektsuse testa-
mist.
Kirjutame funktsionaalse programmi inter, mis arvutab kahe
loendi hisosa.
Definitsioon 17.18. Loend on andmestruktuur, mis ehitatakse in-
duktiivselt thjast loendist nil ja suvalistest termidest loendi
elementidest paarikonstruktori c abil. Loendile x elemendi h
lisamisel saadud uus loend on c(h,x).
Niteid: arvuloend 1, 2, 5, 15 kirjutatakse c(1,c(2,c(5,
c(15,nil)))), konstantide loend e,e,d kui c(e,c(e,
c(d,nil))).
Defineerime kigepealt funktsionaalse programmi , mil-
lega saab kontrollida, kas loend sisaldab teatud elementi:
(x, ) =
(x, c(y, z)) = x = y
(x, z)
Avaldis (x, y) annab tese resultaadi siis ja
ainult siis, kui loend y sisaldab elementi x; vastasel korral on
resultaadiks .
17.4. Niteid ja rakendusi 339
Nd saame kirjutada kahe loendi hisosa arvutava programmi
int er, mis kasutab funktsiooni :
( , y) =
(c(x, y), z) = (x, z) c(x, (y, z))
(y, z)
Jrgnevas eeldame, et programmi korrektsus on juba
testatud fakt.
Meie eesmrgiks on testada, et on korrektne, s.t.
arvutab alati ige resultaadi. Enne kui saame hakata otsima
testust, peab olema tpselt defineeritud, milline on hisosa
arvutamise ige resultaat: peame defineerima ehk spetsifitseerima
hisosa miste. On lihtne veenduda, et jrgmine valem sobib
hisosa olemasolu spetsifikatsiooniks:
xyzu(( (u, x) & (u, y)) (u, z)).
Valem tleb, et suvalise kahe objekti x ja y jaoks on selline
objekt z, et mingi objekt u on korraga nii x kui y element
parajasti siis, kui ta on z element.
hisosa olemasolu valemit modifitseerides saame kergesti
valemi, mis vidab, et (x, y) annab alati loendite x ja y
korrektse hisosa:
xyu(( (u, x) & (u, y)) (u, (x, y))).
Viimati toodud valemi testamine ongi meie eesmrk.
Jrgmise sammuna teisendame funktsionaalsed programmid
ja neile ekvivalentseteks loogikavalemiteks. Parema
loetavuse mttes kirjutame edaspidi literaali =(t
1
, t
2
) kujul t
1
= t
2
.
Programm annab:
x( (x, ))) & (x, y, z( (x, c(y, z))
(x = y (x, z))).
Programmi teisendame valemiteks
y( ( , y) = ),
x, y, z( (x, y) (c(x, z), y) = c(x, (z, y)))
340 17. Automaatne teoreemitestamine
ja
x, y, z( (x, y) (c(x, z), y) = (z, y)).
Arve, loendeid ja muid potentsiaalselt lpmatuid objekte k-
sitlevate teoreemide testamiseks ei piisa enamasti puhtast esimest
jrku predikaatarvutusest. Phjuseks asjaolu, et lpmatu struktuur
deneeritakse induktsiooniprintsiibiga ning testuste juures on see-
tttu samuti vaja rakendada induktsiooni. Harilikuks induktsiooni
kasutamise valdkonnaks on aritmeetika ning analoogiliselt vii-
masega kasutatakse induktsiooni teoreemide testamisel loendite
kohta.
Vimalikke induktsiooniskeeme on lpmatu arv, ning kui in-
duktsiooni testamise juures tarvis lheb, siis lheb sageli tarvis ka
mitmesuguseid eraldi testatavaid lisalemmasid. Metamatemaatika
positsioonilt vib selle asjaolu kohta elda lihtsalt, et aritmeetika
ja loendite teooria pole normaliseeritavad. Praktikas thendab see
puhta esimest jrku predikaatarvutusega vrreldes suuri lisaras-
kusi testuse otsimisel: tarvis on leida sobiv induktsiooniskeem
ning vajalikud lisalemmad. On mitu automaatset teoreemitesta-
jat, mis pavad vajalikke induktsiooniskeeme ja lisalemmasid
leida, kuid keerukamatel juhtudel on see tisautomaatssteemi
jaoks vga raske, s.t. otsimine vtab lootusetult kaua aega. Sel
puhul kasutatakse interaktiivseid ssteeme, kus kasutaja suunab
ssteemi sobiva induktsiooniskeemi ning lisalemmade juurde ja
laseb ssteemil alles seejrel automaatselt tegutseda.
Kesoleva teoreemi testamiseks piisab siiski kige lihtsamat
tpi induktsiooniskeemi, struktuurse induktsiooni kasutamisest,
samuti ei lhe vaja lisalemmasid, mida peaksime eraldi tes-
tama hakkama. Seesuguse juhuga saavad automaatsed induktsiooni
kasutavad ssteemid kergesti hakkama.
Jrgmine reegliskeem on selline struktuurse induktsiooni va-
riant loendite jaoks, mis kasutab induktsiooni jaoks muutujat x
1
.
x
2
. . . x
n
.A{x
1
/ }
x((x
2
. . . x
n
.A{x
1
/x})
(hx
2
. . . x
n
.A{x
1
/c(h, x)}))
x
1
. . . x
n
.A
A kohale tuleb paigutada testatav valem. Eeldatakse, et muutuja
17.4. Niteid ja rakendusi 341
x
1
asemele vib substitueerida ainult loendeid, s.t. x
1
on loendi
tpi. Esimene eeldus reegliskeemis on induktsiooni baas: valem A
kehtib, kui muutuja x
1
asendada thja loendiga . Teine eeldus
reegliskeemis on induktsiooni samm: eeldame, et A kehtib suvalise
loendi x jaoks ning jreldame sellest, et A kehtib, kui loendile x
lisada suvaline element h.
17.4.4. Induktsiooni baas
Induktsiooni baasjuht on valem
yu(( (u, ) & (u, y)) (u, ( , y))),
mis tuleb testada, kasutades programmide ja teisen-
dust loogikavalemiteks.
Esitame probleemi teisenduse disjunktihulgaks:
(1) (x = x)
(2) (inter(nil,y) = nil)
(3) mem(u,y) (inter(c(u,x),y) = c(u,inter(x,y)))
(4) mem(u,y) (inter(c(u,x),y) = inter(x,y))
(5) mem(x,nil)
(6) mem(x,c(y,z)) (x = y) mem(x,z)
(7) (x = y) mem(x,c(y,z))
(8) mem(x,z) mem(x,c(y,z))
(9) mem(su,nil) mem(su,sy)
mem(su,inter(nil,sy))
(10) mem(su,nil) mem(su,inter(nil,sy))
(11) mem(su,sy) mem(su,inter(nil,sy))
Disjunktid 2, 3 ja 4 saame programmi teisendusest,
disjunktid 5, 6, 7 ja 8 programmi teisendusest ning disjunktid
9, 10 ja 11 baasjuhu valemi teisendusest. Konstandid su ja sy
saame muutujate u ja y skolemiseerimisel.
Vastuolu tuletame vga lihtsalt:
342 17. Automaatne teoreemitestamine
(2 ja 5, paramodulatsioon: 14) mem(x,inter(nil,y))
(10 ja 5, resolutsioon: 46) mem(su,inter(nil,sy))
(46 ja 14 annavad thja disjunkti) vastuolu.
17.4.5. Induktsiooni samm
Induktsiooni sammuks on valem
x((yu(( (u, x) & (u, y)) (u, (x, y))))
(hy
1
u
1
(( (u
1
, c(h, x)) & (u
1
, y
1
))
(u
1
, (c(h, x), y
1
))))),
mis tuleb testada, kasutades programmide ja teisen-
dust loogikavalemiteks.
Probleemi teisendus disjunktihulgaks:
(11) (x = x)
(10) (inter(nil,y) = nil)
(1) mem(u,y) (inter(c(u,x),y) = c(u,inter(x,y)))
(14) mem(u,y) (inter(c(u,x),y) = inter(x,y))
(2) mem(x,nil)
(3) mem(x,c(y,z)) (x = y) mem(x,z)
(4) (x = y) mem(x,c(y,z))
(5) mem(x,z) mem(x,c(y,z))
(6) mem(u,sx) mem(u,y) mem(u,inter(sx,y))
(7) mem(u,sx) mem(u,inter(sx,y))
(8) mem(u,y) mem(u,inter(sx,y))
(15) mem(su1,c(sh,sx)) mem(su1,inter(c(sh,sx),sy1))
(16) mem(su1,sy1) mem(su1,inter(c(sh,sx),sy1))
(9) mem(su1,c(sh,sx)) mem(su1,sy1)
mem(su1,inter(c(sh,sx),sy1))
17.4. Niteid ja rakendusi 343
Esimesed disjunktid saame jllegi programmide ja
teisendusest. Viimased kuus disjunkti saame sammuvalemi teisen-
dusest. Konstandid sx, sh, sy1 ja su1 saame muutujate x, h,
y
1
ja u
1
skolemiseerimisel.
Saadud disjunktihulgast vastuolu tuletamine on juba kllalt
raske lesanne. Sobiva otsimisstrateegia kasutamisel leiavad n-
disaegsed testajad vastuolu paari minuti jooksul, tuletades le
kmne tuhande disjunkti. Meie kasutatud testaja leitud tuletus
sisaldab le kolmekmne hper- ja paramodulatsioonisammu, tes-
tuse sgavus on 20 taset. Sellise sgavusega testuste leidmiseks ei
ole enam praktiliselt vimalik kasutada strateegiat, kus enne jrg-
mise tasemeni liikumist tuletatakse kik disjunktid antud tasemel.
Selle asemel kasutatakse heuristikaid, mis kontsentreerivad tule-
tuse ssteemile perspektiivsemana nivate disjunktide suunas. Mitu
jrgneva tuletuse sammu sisaldab mitme reegli jrjest rakendamist.
Jtame reeglite leidmise lugeja hooleks.
(11, 4 annavad: 17) mem(x,c(x,y))
(14, 9 annavad: 50) mem(su1,c(sh,sx)) mem(su1,sy1)
mem(su1,inter(sx,sy1)) mem(sh,sy1)
(16, 14 annavad: 67) mem(su1,sy1) mem(su1,inter(sx,sy1))
mem(sh,sy1)
(16, 1 annavad: 69) mem(su1,sy1)
mem(su1,c(sh,inter(sx,sy1))) mem(sh,sy1)
(15, 3 annavad: 118) mem(su1,inter(c(sh,sx),sy1)) su1=sh
mem(su1,sx)
(15, 14 annavad 139) mem(su1,c(sh,sx))
mem(su1,inter(sx,sy1)) mem(sh,sy1)
(67, 8 annavad: 160) mem(su1,sy1) mem(sh,sy1)
(160, 3 annavad: 175) mem(su1,sy1) mem(x,sy1)
mem(sh,c(x,y)) mem(sh,y)
(175 annab: 181) mem(su1,sy1) mem(sh,c(su1,x))
mem(sh,x)
344 17. Automaatne teoreemitestamine
(69, 160 annavad: 500) mem(su1,sy1)
mem(su1,c(sh,inter(sx,sy1)))
(500, 3 annavad: 508) mem(su1,sy1) su1=sh
mem(su1,inter(sx,sy1))
(508, 8 annavad: 534) mem(su1,sy1) su1=sh
(534, 181, 17 annavad: 560) mem(su1,sy1) mem(sh,x)
(560, 2 annavad: 568) mem(su1,sy1)
(568, 3 annavad: 576) mem(x,sy1) mem(su1,c(x,y))
mem(su1,y)
(139, 576 annavad: 798) mem(su1,inter(sx,sy1))
mem(sh,sy1) mem(su1,sx)
(798, 7 annavad: 835) mem(sh,sy1) mem(su1,sx)
(798, 6, 568 annavad: 846) mem(su1,inter(sx,sy1))
mem(sh,sy1)
(835, 5 annavad: 864) mem(sh,sy1) mem(su1,c(x,sx))
(450, 864, 568, 846 annavad: 736) mem(sh,sy1)
(4736, 1 annavad: 4740, 4739) inter(c(sh,x),sy1)=
c(sh,inter(x,sy1))
(118, 4740 annavad: 4748) mem(su1,c(sh,inter(sx,sy1)))
su1=sh mem(su1,sx)
(9, 4740, 568 annavad: 4751) mem(su1,c(sh,sx))
mem(su1,c(sh,inter(sx,sy1)))
(4748, 3 annavad: 4789) su1=sh mem(su1,sx)
mem(su1,inter(sx,sy1))
(4789, 7 annavad: 4793) su1=sh mem(su1,sx)
(4793, 4751, 17 annavad: 4813) mem(su1,c(sh,sx))
mem(su1,sx)
(4813, 4793, 17 annavad: 4876) mem(su1,sx)
(4876, 6, 568 annavad: 4891) mem(su1,inter(sx,sy1))
17.4. Niteid ja rakendusi 345
(4876, 5 annavad: 4899) mem(su1,c(x,sx))
(4891, 5 annavad: 4922) mem(su1,c(x,inter(sx,sy1)))
(4922, 4751, 4899 annavad thja disjunkti) vastuolu.
18. Loogiline
programmeerimine ja
Horni disjunktid
Programmeerimiskeeli ja -meetodeid saab klassitseerida mitmel
moel. Meie raamatu kontekstis sobib jaotada programmeerimis-
keeled kigepealt kahte gruppi.
Imperatiivsed keeled sobivad samm-sammult, kindlas jrjekorras
tidetavate algoritmide esitamiseks. Programmid kujutavad
endast arvutile antavate kskude jada. Tuntumad imperatiiv-
sed keeled on C, Basic, Pascal, Java, objektorienteeritud
keeled ja assemblerkeeled. Teoorias kasutatav Turingi masin
sobib puhtalt imperatiivse keele niteks.
Imperatiivsete keelte peamiseks eeliseks on arvuti tege-
vuse tpse kontrollimise ja suunamise vimaldamine, mis
enamasti tagab maksimaalse tkiiruse.
Miinusteks on programmeerimise suur tmahukus la-
henduskigu kik detailid tuleb ssteemile esitada ning
suured raskused programmide analsimisel, niteks opti-
meerimise, veritseerimise vi paralleliseerimise tarvis.
Deklaratiivsed keeled sobivad algoritmi esitamiseks kskude ja-
dast abstraktsemal viisil. Programmeerija ei pruugi alati
347
kiki algoritmi detaile kirja panna, vaid vib esitada ot-
sitava lahenduse kirjelduse ning juba programmi titmise
kigus otsustab ssteem automaatselt, mis viisil tpselt
lahendust otsida. Deklaratiivseteks keelteks vib arvata loo-
gilise programmeerimise keeled (niteks Prolog) ja mitu
funktsionaalset keelt (niteks Haskell). Teoorias kasutatav
lambda-arvutus on puhtalt funktsionaalse deklaratiivse keele
nide.
Deklaratiivsed keeled vimaldavad kirjutada enamikku prog-
ramme kiiremini ja mugavamalt kui imperatiivsed keeled
programmeerija ei pea kigi detailide eest hoolt kandma.
Tunduvalt lihtsam on ka programmide anals, niteks
programmi automaatsel kohandamisel paralleelarvutile, kus
programmi titmise juures ttab samaaegselt hulk protses-
soreid.
Peamiseks miinuseks on programmide viksem tkiirus
deklaratiivne programm ei pruugi kll alati aeglasem olla
kui imperatiivne, kuid on seda harilikult siiski. Phjuseks
on siin keele automaattranslaatori viksem intelligentsus
kogenud programmeerijaga vrreldes.
Mitte iga lesannet ei ole deklaratiivselt mugavam esitada
kui imperatiivselt mni lesanne sobib oma iseloomu poolest
imperatiivse paradigmaga, mni deklaratiivsega.
Reaalsed programmeerimiskeeled ei ole peaaegu kunagi puhtalt
imperatiivsed vi deklaratiivsed. Imperatiivset ja deklaratiivset
programmeerimisviisi tuleb ksitleda kui programmeerimise para-
digmasid. Konkreetsed programmeerimiskeeled kalduvad rohkem
kas hte vi teise paradigmasse, kuid puhtpragmaatilistel kaalut-
lustel ptakse konkreetsete keelte sisse ehitada vimalusi mitmest
paradigmast.
Ndisaegsed imperatiivsed keeled, niteks C, sisaldavad palju
deklaratiivse keele elemente, ning vastupidi: deklaratiivne keel
Prolog vimaldab soovi korral pris imperatiivse programmeeri-
misstiili kasutamist. Traditsioonilised funktsionaalsed keeled Lisp,
348 18. Loogiline programmeerimine ja Horni disjunktid
Scheme ja ML sisaldavad nii imperatiivseid kui deklaratiivseid
konstruktsioone.
Imperatiivsed keeled jaotatakse edasi protseduraalseteks (C,
Pascal jms.) ja objektorienteeritud keelteks (SmallTalk, Java jms.).
Pikemalt me imperatiivsetel keeltel ei peatu.
Deklaratiivsed keeled jaotatakse loogilise programmeerimise
keelteks (nide: Prolog), kus otsitavat lahendust kirjeldatakse loo-
gika keeles, ja funktsionaalse programmeerimise keelteks (nide:
Haskell), kus lahendust kirjeldatakse funktsioonide koguga ka
viimast saab tegelikult ksitleda kui teatud tpi loogikassteemi.
Peatki lejnud osas tutvustame pgusalt 1970. aastate algu-
ses leiutatud loogilise programmeerimise keelt Prolog, mille nimi
on lhend ingliskeelsest vljendist Programming in logic. Pro-
logi aluseks on inglise arvutiteadlase Robert Kowalski thelepanek,
et Horni reeglit
p q
1
, . . . , q
n
saab lugeda nii protseduraalselt:
Programmi p arvutamiseks tuleb arvutada tema alamprog-
rammid q
1
, . . . , q
n
,
kui ka deklaratiivselt:
Kui q
1
, . . . , q
n
on tesed, siis on ka p tene.
Siiski tuleb mrkida, et ei ole mtet samastada loogilist program-
meerimist ja Prologi. Resolutsiooni asemel vib programmeerimis-
keele aluseks olla ka mni teine loogika tuletusssteem. Ksimus
on ainult programmide kirjutamise mugavuses ning titmise efek-
tiivsuses.
Jrgneva materjali esituse juures eeldatakse varasemat tutvu-
mist automaatse teoreemitestamise peatkiga.
18.1. Prolog
Prolog on esimene ja kasutatavaim loogilise programmeerimise
keel. Prologile lisaks on vlja ttatud mitu uuemat loogilise
18.1. Prolog 349
programmeerimise keelt ja ssteemi, ning nende arendamine on
ulatuslik ja levinud uurimisteema. Siin piirdume ainult standardse
Prologi phimtete esitamisega. Tuleb arvestada, et Prologis pro-
grammeerimise ppimiseks kesoleva peatki mahust ei piisa.
Prologi phiidee on nuda otsitava lahenduse kirjeldamist esi-
mest jrku predikaatarvutuse keeles, kusjuures Prologi ssteem
sisaldab teatud tpi automaatset teoreemitestajat, mis on vime-
line automaatselt otsima ja tuletama lahendust.
Sellegipoolest ei ole Prolog siiski automaatse teoreemitesta-
mise ssteem: viimast realiseeriv mehhanism on Prologis vga
piiratud, spetsiiline ja loogiliselt mittetielik, s.t. loogika mttes
eksisteerivad lahendused vivad vahel leidmata jda.
Prolog on esmajoones programmeerimisssteem ning sobib
eriti hsti ekspertssteemide programmeerimiseks. Programmeeri-
jale antakse vimalus suunata Prologi automaatset teoreemites-
tajat nimetame seda edaspidi Prologi otsingumootoriks
nii, nagu programmist soovib. Prologi mootor otsib lahendust
lihtsa ning kindlalt mratud otsimismeetodiga mingisugust
programmeerijale ennustamatut omaloomingut Prologi mootorile
ei lubata.
Konkreetsemalt on Prologi mootori aluseks resolutsioonimee-
todi teatud mittetielik strateegia.
18.1.1. Horni disjunktid ja otsingumootor
Prologi programm on Horni disjunktide kogu. Horni disjunkt on
selline disjunkt, mis ei sisalda rohkem kui hte positiivset literaali.
Prologi kirjaviisi jrgi on kik suure algusthega snad dis-
junktides muutujad ning vikese algusthega snad kas konstandid,
predikaadid vi funktsioonismbolid. Prolog sisaldab konstantidena
ka numbreid ja snesid.
Prologi kontekstis jaotatakse kik programmi moodustavad
disjunktid ehk laused jrgmiselt.
Faktid on hestainsast positiivsest literaalist koosnevad disjunktid.
Niteks: isa(jaan,peeter).
350 18. Loogiline programmeerimine ja Horni disjunktid
Reeglid on hest positiivsest literaalist ja hest vi mitmest
negatiivsest literaalist koosnevad disjunktid.
Traditsiooniliselt kirjutatakse positiivne literaal disjunkti al-
gusesse, seejrel tuleb eraldussmbol :- ning lpuks ko-
madega eraldatud negatiivsed literaalid, mille eest eituse
smbol on ra jetud. Nagu fakti nii ka reegli lpetab
alati punkt. Eraldussmbolit :- vib lugeda kui vasakule
suunatud implikatsiooni: . Nitena toome isapoolse vana-
isareegli:
vanaisa(X,Z) :- isa(X,Y), isa(Y,Z).
Pringud on hest vi mitmest negatiivsest literaalist koosnevad
disjunktid.
Pring ei ole niivrd Prologi programmi osa kui otsingu
kivitamise ksk. Prologi ssteemi t sisuks on esitatud
pringule vastuse leidmine, kasutades varem antud faktide ja
reeglite andmebaasi. Korraga vib esitada vaid he pringu.
Kuna Prologis kirjutatud andmebaas ise puhtalt negatiivseid
disjunkte ei sisalda, siis ei saa Prologi keeles esitada otse
negatiivset informatsiooni, niteks, et keegi Mihkel ei ole
Peetri isa. Prologis programmeerimisel ksitletakse mitte-
tuletatavust kui eitust, kuigi loogika seisukohalt on need
kaks asjaolu tiesti erinevad. Prologi eituse-kontseptsiooni
nimetatakse suletud maailma eelduseks, s.t. tene on ainult
see, mida antud Prologi programmist (kui suletud maailmast)
tuletada saab.
Vaatleme esimese nitena jllegi sugulussidemete andmebaasi,
konkreetselt niisugust Prologi programmi:
isa(jaan,peeter).
isa(jaan,martin).
isa(martin,veiko).
isa(riivo,leo).
ema(leena,leo).
18.1. Prolog 351
vanaisa(X,Z) :- isa(X,Y), isa(Y,Z).
vanaisa(X,Z) :- isa(X,Y), ema(Y,Z).
Pringule, kas isa(riivo,martin) on antud andmebaasist
tuletatav, vastab otsingumootor eitavalt (?- alustab pringuid,
jrgmisel real trkitu on Prologi vastus):
?- isa(riivo,martin).
no
Lahendust otsib Prologi mootor jrgmiselt: kik andmebaasis
olevad laused vaadatakse jrjest lbi (esimesega alustades ja
viimasega lpetades) ning iga lause esimest literaali ptakse
pringuliteraaliga unifitseerida. Kui see ei nnestu, vastatakse
pringule eitavalt.
Pringule, kas isa(riivo,leo) on antud andmebaasist tule-
tatav, vastab otsingumootor jaatavalt:
?- isa(riivo,leo).
yes
Saime jaatava vastuse, kuna otsingumootor unitseeris pringuli-
teraali andmebaasis oleva faktiga isa(riivo,leo).
Pringud vivad sisaldada muutujaid: sellisel juhul leiab Pro-
logi mootor lahenduse, s.t. muutuja asemele substitueeritava termi:
?- isa(jaan,X).
X=peeter
Kui me ei ole rahul esimese leitud lahendusega, vime instrueerida
otsingumootorit uusi lahendusi otsima, s.t. pdma unifitseerida
pringut jrgmiste andmebaasis olevate lausetega. Selleks trkime
lahenduse jrele semikooloni, ning Prolog esitab kas jrgmise
lahenduse vi kui lahendusi enam pole vastab eitavalt.
?- isa(jaan,X).
X=peeter;
X=martin;
no
352 18. Loogiline programmeerimine ja Horni disjunktid
Mistagi pakub programmeerimise juures peamist huvi reeglite
rakendamine. Vaatame, kuidas reageerib otsingumootor pringule,
kas Jaan on kellegi vanaisa:
?- vanaisa(jaan,X).
Esimene andmebaasi lause, millega pringuliteraal unitseerub,
on reegel vanaisa(X,Z) :- isa(X,Y), isa(Y,Z). Kuna enne
unitseerimist on tarvis muutujad mber nimetada, nimetatakse
pringuliteraalis muutuja X mber muutujaks X1. Substitutsioo-
niks saame siis {X=jaan, Z=X1}. Reegel annab meile kaks
alamlesannet ehk alampringut
isa(jaan,Y), isa(Y,X1),
mis tuleb rahuldada. Otsingumootor asub jrjekorras esimesele
alampringule lahendusi otsima, vaadates selleks andmebaasi al-
gusest lpuni lbi samamoodi, kui oleks reageeritud kasutaja
antud pringule.
Esimene alampringuga isa(jaan,Y) unitseeritav lause on
fakt isa(jaan,peeter) ning substitutsiooniks saame Y=peeter.
Kuna tegu oli faktiga, siis uusi alampringuid ei teki ja jb le
lahendada saadud substitutsiooni rakendamise jrel konkretiseeri-
tud teine alampring isa(peeter,X1). See alampring aga ei
unitseeru hegi lausega meie andmebaasis.
Niisuguses olukorras prdub otsingumootor tagasi viimati
leitud lahenduse juurde, heidab selle krvale ja otsib andmebaasist
edasisi lahendusi. Viimase lahenduse saime esimese alampringu
isa(jaan,Y) unitseerimisel faktiga isa(jaan,peeter): nii-
siis heidab otsingumootor selle lahenduse krvale ning leiab
jrgmise lause, millega saab alampringut unitseerida. Sel-
leks on isa(jaan,martin), mis annab uueks substitutsiooniks
Y=martin. Jllegi, uusi alampringuid ei tekkinud ja jb le la-
hendada saadud substitutsiooni rakendamise jrel konkretiseeritud
teine alampring isa(martin,X1). See pringuliteraal unit-
seerub andmebaasis oleva faktiga isa(martin,veiko), andes
substitutsiooniks X1=veiko. Kuna rohkem lahendamist vajavaid
alampringuid ei ole, siis on esialgsele pringule vastus leitud ja
Prolog trkib:
18.1. Prolog 353
X=veiko
Vaatame edasi, mis juhtub, kui vastame lahendusele semi-
kooloni trkkimisega, s.t. uue lahenduse nudmisega. Prolog
reageerib viimase alampringu viimati leitud lahenduse kr-
valeheitmisega. Kuna viimast pringuliteraali isa(martin,X1)
ei saa unitseerida enam hegi fakti ega reegliga prast fakti
isa(martin,veiko), heidab otsingumootor krvale ka eelmisele
alampringule isa(jaan,Y) leitud lahenduse ning hakkab ot-
sima jrgmist. Kuna kski faktile isa(jaan,martin) jrgnev
lause pringuliteraaliga ei unitseeru, heidetakse taas krvale
jrjekorras viimane leitud lahendus, s.o. meie esialgse prin-
guga vanaisa(jaan,X) unitseeritud reegel vanaisa(X,Z)
:- isa(X,Y), isa(Y,Z). Jrgmisena saab pringuliteraa-
liga vanaisa(jaan,X) unitseerida emapoolse vanaisareeglit
vanaisa(X,Z) :- isa(X,Y), ema(Y,Z), mispeale saame kaks
alampringut isa(jaan,Y), ema(Y,X1). Kumbki esimese alam-
pringu lahendus (s.o. Y=peeter ja Y=martin) ei vimalda leida
lahendusi teisele alampringule. Kigi vimaluste ammendumise
jrel trkib ssteem meile eitava vastuse: no.
18.1.2. Lahenduste hesus
Resolutsioonimeetodit ksitlevas peatkis vaatlesime spetsiaalse la-
hendusliteraaliga lahenduste otsimise meetodit. Prologis kasutatav
meetod on sisuliselt lahendusliteraali kasutamisega ekvivalentne,
erinevus on vaid tehnilises teostuses. Lahendusi ksitledes juhti-
sime thelepanu asjaolule, et klassikalise loogika kasutamisel on
teatud pringutel ainult mittehesed lahendused. Niteks disjunk-
tide hulgast
(1) p(a) p(b)
(2) p(x) lahendus(x)
saab tuletada ainult mittehese lahenduse: lahendus(b) la-
hendus(a).
354 18. Loogiline programmeerimine ja Horni disjunktid
Erinevalt klassikalise loogika ldjuhust on kigil Prologis
esitatud pringutel alati hene lahendus, kuigi selliseid heseid
lahendusi vib pringul olla palju: phjuseks on Horni disjunktide
kasutamine. Prologis ei ole vimalik esitada niteks disjunkti
p(a) p(b), kuna see ei ole Horni disjunkt.
Suhteliselt lihtsalt saab nidata, et Horni disjunktidega piirdu-
mise korral langevad klassikaline ja intuitsionistlik loogika kokku.
Niisiis on iga Prologi otsingumootori leitud tuletus nii klassikali-
selt kui intuitsionistlikult korrektne.
lesanded
1. *Nidake, et lausearvutuse korral saab Horni disjunktide hulga
mittevasturkivust kontrollida polnomiaalse ajaga.
18.1.3. Loendid
Prolog lubab loendite ehitamiseks kasutada thja loendit [] ja
loendile elemendi lisamist ehk paarikonstruktorit, mida thistab
punkt. Loendile x elemendi h lisamisel saadud uus loend on
term .(h,x). heelemendiline, konstanti a sisaldav loend on
.(a,[]). Arvudest 1, 2 ja 3 koosnev loend esitatakse termina
.(1,.(2,.(3,[]))).
Mugavuse mttes lubab Prolog kasutada loendite jaoks ka
teistsugust kirjaviisi, mis otsingumootori kivitamise eel tlgitakse
programmeerija jaoks nhtamatult sisemiseks, paarikonstruktorit
kasutavaks kirjaviisiks.
Mugavamas kirjaviisis kirjutatakse loendi elemendid nurksul-
gude vahele: [a,b,c,c] on neljast konstandist koosnev loend.
[X|Y] thistab loendit, mille esimene element on X ja esimese
elemendi eemaldamise jrel allesjv loendi saba on Y.
Kirjutame nd programmi member, mis kontrollib, kas esi-
mene argument kuulub teiseks argumendiks olevasse loendisse:
member(X,[X|Z]).
member(X,[Y|Z]) :- member(X,Z).
Predikaati member defineerivad ks fakt ja ks reegel. Fakt tleb,
et kui X on loendi esimene element, siis on X loendi element.
18.1. Prolog 355
Reegel tleb, et kui X on loendi saba element, siis on ta loendi
element.
Vaatame, kuidas ksitleb Prolog pringut
?- member(10,[20,30,10,40]).
Pringuliteraal antud faktiga ei unitseeru, kll aga unitseerub
ta antud reegliga, andes alampringu member(10,[30,10,40]).
Viimane unitseerub jllegi ainult reegliga, andes alampringu
member(10,[10,40]), mis unitseerub faktiga. Rohkem alam-
pringuid ei olnud ja ssteem trkib positiivse vastuse: yes.
Teise nitena kirjutame programmi append, mis liidab kaks
loendit kokku. Predikaadi esimene ja teine argument on liidetavad
loendid ning kolmas argument on kokkuliitmise resultaat. Niteks
kehtib: append([a,b],[1,2,3],[a,b,1,2,3]).
append([],Z,Z).
append([X|Y],Z,[X|R]) :- append(Y,Z,R).
Jrgmine pring annab tpselt he lahenduse:
?- append([a,b],[c,d],L).
L=[a,b,c,d];
no
Predikaati append saab kasutada ka tagurpidisuunas: anname
ette juba kokkuliidetud loendi ja otsingumootor genereerib kik
vimalikud lhteloendid:
?- append(X,Y,[a,b,c,d]).
X=[], Y=[a,b,c,d];
X=[a], Y=[b,c,d];
X=[a,b], Y=[c,d];
X=[a,b,c], Y=[d];
X=[a,b,c,d], Y=[];
no
Predikaadi append tagurpidist funktsioneerimist saab kasutada
loendi kiki permutatsioone genereeriva predikaadi deneeri-
miseks:
356 18. Loogiline programmeerimine ja Horni disjunktid
permutation(L,[H|T]) :-
append(V,[H|U],L),
append(V,U,W),
permutation(W,T).
permutation([],[]).
?- permutation([a,b,c],X).
X=[a,b,c];
X=[a,c,b];
X=[b,a,c];
X=[b,c,a];
X=[c,a,b];
X=[c,b,a];
no
Viimase nitena deneerime efektiivset sorteerimisalgoritmi,
quicksorti realiseeriva predikaadi. Eeldame, et meil on antud
sorteerimisel kasutatavat jrjestust deneeriv predikaat suurem-
vordne(X,Y).
qsort([H|T],S) :-
split(H,T,A,B),
qsort(A,A1),
qsort(B,B1),
append(A1,[H|B1],S).
qsort([],[]).
split(H,[A|X],[A|Y],Z) :-
suuremvordne(A,H), split(H,X,Y,Z).
split(H,[A|X],Y,[A|Z]) :-
suuremvordne(H,A), split(H,X,Y,Z).
?- qsort([5,6,1,7,5,3,4,9,0],X).
X=[9,7,6,5,5,4,3,1,0]
18.1. Prolog 357
lesanded
2. Defineerige predikaat slowsort, mis genereerib loendi jrjesta-
miseks selle kikvimalikud permutatsioonid. Kuidas saab seda
programmi efektiivsemaks muuta?
3. Konstrueerige predikaat reverse, mis prab loendi elementide
jrjestuse ringi:
?- reverse([1,3,2],[2,3,1]).
18.1.4. Aritmeetika
Harilik tisarvude ja ujupunktarvudega aritmeetika on Prologi
sisse ehitatud. Arvutuste tegemiseks kasutatakse spetsiaalset pre-
dikaati is, mis analoogiliselt harilike programmeerimiskeeltega
leiab aritmeetikaavaldise vrtuse ja omistab selle muutujale:
?- X is 3+2.
X=5
?- X is 4*2, Y is X+X.
X=8, Y=16
Predikaadil is ei ole pris selget loogilist thendust, tegu on pigem
programmeerimise hlbustamiseks kasutatava spetsiaalmeetodiga.
Kui parempoolne argument on arvutatav aritmeetikaavaldis, on
is loogika mttes siiski korrektne: is realiseerib standardseid
aritmeetikareegleid, mis tkiiruse huvides ei ole Prologis avalikult
aksiomatiseeritud, vaid ssteemi sisse ehitatud.
Aritmeetikatehteid kasutame niteks faktoriaali arvutamiseks:
fact(0,1).
fact(N,R) :-
N > 1, N1 is N-1, fact(N1,R1), R is N*R1.
Selline programmeerimisstiil sarnaneb traditsioonilise imperatiivse
programmeerimisega. Prologi aritmeetikaoperaatorite spetsiifilise
iseloomu tttu saab faktoriaalipredikaati kasutada ainult hes
suunas: esimene argument peab olema arv.
358 18. Loogiline programmeerimine ja Horni disjunktid
?- fact(4,X).
X=24.
Prolog ei luba kirjutada faktoriaaliprogrammi loogika mttes
loomulikumal viisil:
fact(0,1).
fact(N,N*R1) :- N > 1, fact(N-1,R1).
Viimane reegel on kll sntaktiliselt korrektne, kuid Prolog ei ar-
vuta automaatselt aritmeetikaavaldiste vrtust: tarvis on kasutada
spetsiaalpredikaati is.
Nagu nidetest paistab, lubab Prolog aritmeetikaavaldiste juu-
res kasutada harilikku inkskuju, mis sisemiselt teisendatakse
standardseteks prekskujul termideks ja predikaatideks: 2+3 on
sisemises esituses +(2,3) ning X > 1 on seesama, mis >(X,1).
Prolog sisaldab predikaadile is sarnast predikaati =, mis
unifitseerib oma vasakpoolse argumendi parempoolsega, pdmata
seejuures arvutada parempoolse argumendi aritmeetilist vrtust.
Tuleb thele panna, et Prologi = ei ole teline vrduspredikaat.
Sisuliselt on ta aksiomatiseeritud ainult faktiga X=X ning ei
smmeetria, transitiivsus ega asendusreeglid pole selle predikaadi
jaoks aksiomatiseeritud.
18.1.5. Sisend/vljund
Peale aritmeetikaoperaatorite sisaldab Prolog veel muidki spet-
siaalsete loogikavliste omadustega operaatoreid ja predikaate.
Sisend/vljund-predikaadid vimaldavad kasutada Prologi teksti
trkkimisel, arvutigraaka, mngude jms. tpiliste programmee-
rimislesannete juures. Niteks trkib predikaat write vlja talle
argumendiks antud termi ja on seejrel kohe rahuldatud. Jrgmine
mittepeatuv programm trkib vlja tisarvude lputu rea:
arvurida(X) :-
write(X), X1 is X+1, arvurida(X1).
?- arvurida(1).
18.1. Prolog 359
18.1.6. Prologi mittetielikkus ja piiratud korrektsus
Nagu eldud, on Prologi otsimismootor ks resolutsioonimeetodi
mittetielik strateegia. Vaatame nidet, kus Prologi otsingumootor
tskeldub ja loogika mttes eksisteerivat lahendit ei leia. De-
neerime triviaalse predikaadi sama, mis kontrollib, kas esimene
argument on seesama, mis teine. Lisame deneerivale faktile veel
kommutatiivsusreegli:
sama(X,Y) :- sama(Y,X).
sama(X,X).
Kui nd esitada pring ?- sama(a,a), siis unitseerib ot-
singumootor pringu kigepealt reegliga, tekitades alampringu
sama(a,a), mille lahendamiseks kasutatakse jllegi reeglit, mis
tekitab taas sellesama alampringu jne. lpmatuseni. Erinevalt
tielikest resolutsioonimeetodi strateegiatest ei jua Prolog kunagi
faktini sama(X,X), mis annaks kohese positiivse lahenduse.
Lisaks mittetielikkusele ei ole hulk Prologi realisatsioone
ka loogika mttes korrektsed. Phjuseks on unitseerimisalgo-
ritmi lihtsustamine programmi tkiiruse huvides. Teatavasti ei
ole vimalik unitseerida muutujat sedasama muutujat sisaldava
funktsioonaaltermiga, niteks y ja f (y). Kuna muutuja sisaldu-
mise kontroll vtab aega, jtab mitu Prologi realisatsiooni selle
lihtsalt ra ning kitub jrgmiselt:
seesama(X,X).
katse :- seesama(Y,f(Y)).
?- katse.
yes
Programmeerijalt eeldatakse, et ta niisuguste olukordade tekkimist
lihtsalt ei vimalda. Sageli sisaldavad Prologi realisatsioonid llitit,
millega saab valida, kas ssteem kontrollib muutuja sisaldumist
vi ei.
Praktilise programmeerimise seisukohalt pole ei Prologi mitte-
tielikkus ega piiratud korrektsus oluliseks puuduseks.
360 18. Loogiline programmeerimine ja Horni disjunktid
18.1.7. Otsingu blokeerimine: likepredikaat
Prolog sisaldab spetsiaalset loogikavlist likepredikaati, millega
programmeerija saab otsingumootorit juhtida, blokeerides uute
lahenduste otsimist. Likepredikaati (inglise keeles cut) thistab
humrk ! ning seda kasutatakse jrgmistel juhtudel:
Programmeerija teab, et pringul saab olla vaid ks lahendus
ning uute lahenduste otsimine on mttetu: sel juhul suu-
rendab edasise otsingu blokeerimine programmi tkiirust,
kuid ei muuda saadavat tulemust.
Programmeerijale piisab hestainsast lahendusest.
Ainult esimene lahendus on korrektne, teised tuleb eli-
mineerida: sellisel juhul muudab likepredikaat programmi
sisu.
Esimese juhu niteks kasutame predikaati append.
append([],Z,Z).
append([X|Y],Z,[X|R]) :- append(Y,Z,R).
Oletame, et soovime appendi kasutada ainult sel juhul,
kui esimesed kaks kokkuliidetavat loendit on antud ja meid
huvitab nimelt kokkuliitmise resultaadi leidmine. Pringule
append([],[a,b,c],[a,b,c]) vastamisel kasutab otsingumoo-
tor esialgu fakti. Kui aga hiljem nutakse uute lahenduste otsimist,
pab otsingumootor kasutada reeglit, kuigi see alati ebannestub.
Lisame denitsiooni likepredikaadi:
append([],Z,Z) :- !.
append([X|Y],Z,[X|R]) :- append(Y,Z,R).
Esimese lahenduse leidmise juures lahendatakse nd likepredi-
kaat, mis keelab antud pringule uute lahenduste otsimise, teki-
tades olukorra, nagu poleks jrgmisi deneerivaid lauseid enam
olemas.
Likepredikaadiga moditseeritud append ei ole enam ka-
hesuunalise toimega. Pringule append(X,Y,[a,b,c]) leitakse
ainult esimene lahendus, kik edasised on blokeeritud:
18.1. Prolog 361
?- append(X,Y,[a,b,c]).
X=[], Y=[a,b,c];
no
Jrgmiseks vaatame programmi, mis arvutab kigi arvude
summa, alates hest kuni etteantud esimese argumendini:
summa(1,1) :- !.
summa(X,R) :- X1 is X-1, summa(X1,R1), R is R1+X.
Siin takistab likepredikaat definitsiooni teise lause ldjuhu
reegli ekslikku kasutamist baasjuhu jaoks. Tepoolest, kui
siin likepredikaati poleks, siis uute lahendite otsimisel pringule
summa(1,Y) kasutataks ldreeglit ja programm tskelduks!
Konkreetselt keelab likepredikaat uute lahenduste otsimist
talle eelnenud lauseosa jaoks, esimene, s.o. defineeritav literaal
kaasa arvatud. Nide:
p1(X,Y) :- p2(X), !, p3(Y).
p1(X,Y) :- p4(X).
p2(a).
p2(b).
p3(b).
p4(a).
p5(a).
p5(b).
?- p1(a,a).
no
?- p5(X), p1(X,X).
X=b;
no
?- p1(U,V).
U=a, V=b;
no
Esimese pringu puhul leitakse alampringu p2(X) jaoks lahendus
p2(a), kuid p3(a) jaoks lahendust pole. Likepredikaat keelab
uute lahenduste otsimise nii p2(X) kui ka p1(a,a) jaoks.
362 18. Loogiline programmeerimine ja Horni disjunktid
Teise pringu juures blokeeritakse samamoodi p2(X) ja
p1(a,a) teise lahenduse otsimine, kuid p5(X) teine lahendus
X=b annab uue alampringu p1(b,b), mille jaoks nnestub la-
hendada esimese reegli alampring p3(b).
Kolmanda pringu juures blokeeritakse prast esimese lahen-
duse leidmist edasiste lahenduste otsimine nii p2(X) kui ka
p1(U,V) jaoks.
Likepredikaadiga sarnane spetsiaaloperaator on not. Pring
not(P) on rahuldatud siis ja ainult siis, kui otsingumootor ei
suuda rahuldada pringut P. Vaatamata nilisele sarnasusele loogi-
lise eitusega on siin tegu hoopis millegi muuga, suletud maailma
eelduse kasutamisega. Harilikku loogilist eitust Prologi program-
mid sisaldada ei saa. Operaatorit not saab Prologis deneerida
selliste loogikavliste spetsiaalvahenditega:
not(P) :- call(P), !, fail.
not(P).
Esimeses lauses phjustab call(P) termi P esitamise pringuna,
ning fail on pring, mida rahuldada ei saa.
Kokkuvtteks. Likepredikaadi kasutamist saab soovi kor-
ral alati vltida, kuid enamasti muudab see programmeerimise
tunduvalt tmahukamaks tuleb lisada palju erijuhtude kont-
rolle ja programmid vhem efektiivseks. Likereegli sstemaa-
tilise rakendamisega on aga vimalik otsingumootor pea tielikult
blokeerida ning kasutada Prologi sisuliselt funktsionaalse program-
meerimiskeelena, milles lisaks on olemas ka mned imperatiivse
programmeerimise vahendid.
18.1.8. Smbolaritmeetika
Pisut suurema nitena kirjutame programmi, mis leiab avaldise
tuletise ja seejrel lihtsustab resultaati. Seejuures ei tegelda numb-
riliste avaldistega, vaid smbolkujul antud matemaatikavalemitega.
Tuletise leidmiseks kasutame jrgmisi tuntud reegleid:
dc/dx 0
18.1. Prolog 363
dx/dx 1
d(U)/dx (dU/dx)
d(U +V)/dx dU/dx +dV/dx
d(U V)/dx dU/dx dV/dx
d(c U)/dx c dU/dx
d(U V)/dx U dV/dx +V dU/dx
d(U
c
)/dx c U
c1
dU/dx
d(log
e
U)/dx U
1
dU/dx
Defineerime predikaadi d; esimesest argumendist vetakse tuletis
teise argumendi jrgi ning kolmas argument on resultaadiks olev
avaldis.
d(X,X,1) :- !.
d(C,X,0) :- atomic(C).
d(~(U),X,~(A)) :- d(U,X,A).
d(U+V,X,A+B) :- d(U,X,A), d(V,X,B).
d(U-V,X,A-B) :- d(U,X,A), d(V,X,B).
d(C*U,X,C*A) :-
atomic(C), not(C = X), d(U,X,A), !.
d(U*V,X,B*U+A*V) :- d(U,X,A), d(V,X,B).
d(U/V,X,A) :- d(U* ^(V,-1),X,A).
d(^(U,V),X,V*W* ^(U,V-1)) :-
atomic(V), not(C = X), d(U,X,W).
d(log(U),X,A* ^(U,-1)) :- d(U,X,A).
Kasutasime siin Prologi sisseehitatud spetsiaalpredikaati atomic,
mis on rahuldatud siis ja ainult siis, kui tema argumendiks on
konstant ehk atomaarne term, mitte aga funktsionaalterm. Nd
niteks:
364 18. Loogiline programmeerimine ja Horni disjunktid
?- d(x+1,x,X).
X=1+0
?- d(x*x-2,x,X).
X=x*1+1*x-0
Tuletise programmi resultaadid on lihtsustamata avaldised. Kir-
jutame predikaadi simp avaldiste lihtsustamiseks, mis kasutab
predikaadiga s moodustatud lihtsustamisreeglite andmebaasi:
simp(E,E) :- atomic(E), !.
simp(E,F) :-
E =.. [Op,La,Ra],
simp(La,X), simp(Ra,Y), s(Op,X,Y,F), !.
simp(E,F) :-
E =.. [Op,La,Ra],
simp(La,X), simp(Ra,Y), F =.. [Op,X,Y], !.
simp(E,E).
s(+,X,0,X).
s(+,0,X,X).
s(+,X,Y,Z) :- integer(X), integer(Y), Z is X+Y.
s(+,X,Y,X+Y).
s(*,X,0,0).
s(*,0,X,0).
s(*,1,X,X).
s(*,X,1,X).
s(*,X,Y,Z) :- integer(X), integer(Y), Z is X*Y.
s(*,X,Y,X*Y).
Prologi sisseehitatud spetsiaalpredikaat =.. lammutab suvalise
termi koostisosadeks, alustades funktsionaalsmbolist ja jtkates
argumentidega. Antud juhul lammutatakse ainult kahe argumendiga
terme. Spetsiaalpredikaat integer on rahuldatud ainult juhul, kui
argumendiks on arv. Defineerime lihtsustava tuletise-predikaadi ja
esitame talle uuesti lalesitatud pringud:
dsimp(X,Y,Z) :- d(X,Y,Z1), simp(Z1,Z).
18.1. Prolog 365
?- dsimp(x+1,x,X).
X=1
?- dsimp(x*x-2,x,X).
X=x+x-0
Lihtsustamispredikaadi tiustamiseks (niteks lahutamistehte jaoks)
tuleb lihtsalt lisada lauseid predikaati s defineerivasse andmebaasi.
lesanded
4. Kirjutage programm, mis koostab ja kontrollib jrgmise gramma-
tika lauseid:
<Sentence> ::= <Subject><Verbphrase>
<Subject> ::= John | Mary
<Verbphrase> ::= <Verb><Object>
<Verb> ::= eats | drinks | likes
<Object> ::= wine | cheese | soup | chips | beer | fruits | sh | juice
Niteks lausele Mary eats cheese vastab sntaksipuu
Sentence
Subject
Verbphrase
Verb Object
eats cheese Mary
5. Erinevad numbrid on asendatud erinevate thtedega. Lahendage
Prologi abil vrrand
SEND
+ MORE
MONEY
19. Funktsionaalne
programmeerimine ja
vrdusssteemid
Funktsionaalses keeles kirjutatakse programme (matemaatiliste)
funktsioonide defineerimise teel, mramata seejuures tpselt, mis
strateegia jrgi funktsiooni resultaati tuleb arvutada. Funktsioonile
vib anda argumendiks teisi funktsioone ja funktsiooni arvutamise
resultaadiks vib samuti olla funktsioon.
Defineerime niteks faktoriaali funktsiooni fakt ja funkt-
siooni map, mis rakendab oma esimest, funktsionaalset argumenti
teiseks argumendiks oleva loendi igale elemendile. Loend [h|t]
esitatakse sisemiselt kui harilik esimest jrku term .(h, t ).
fakt(x) = if x=0 then 1 else x*fakt(x-1).
map(f,[]) = [].
map(f,[h|t]) = [f(h) | map(f,t)].
Avaldise map(fakt,[3,5,0]) vrtuseks on [6,120,1].
Funktsionaalne programmeerimine on ajalooliselt esimene dek-
laratiivse programmeerimise viis ning enamik ndisaegseid pro-
grammeerimiskeeli C, Pascal, Ada jne. on funktsionaalse
programmeerimise meetoditest mjustatud.
Funktsionaalseid keeli saab jmedalt jagada kahte liiki: puhtad
ja ebapuhtad. Puhtas keeles Haskell, Hope, Miranda, FP
19.1. Deduktsioon ja reduktsioon: termiteisendusssteemid 367
ei ole programmeerijal peale funktsioonide deneerimise ja sis-
seehitatud baasfunktsioonide (aritmeetika, loendid jms.) mingeid
lisavahendeid kik krvalefektid on keelatud. Erinevalt im-
peratiivsetest keeltest, nagu C, Basic ja Pascal, ei luba puhas
funktsionaalne keel muutujatele vrtusi omistada. Ainus efekt,
mida funktsiooni rakendamine argumentidele annab, on resul-
taadi leidmine. Ebapuhtad funktsionaalsed keeled ML, Lisp,
Scheme kombineerivad puhaste funktsionaalsete keelte mehha-
nisme imperatiivsete mehhanismidega.
Jrgnevas ei tegele me konkreetsete funktsionaalsete keelte
ega neis programmeerimise meetoditega. Vaatleme hoopis funkt-
sionaalse programmeerimise teooria vundamendiks olevaid loogi-
kassteeme, nende phiprintsiipe ja -omadusi.
19.1. Deduktsioon ja reduktsioon:
termiteisendusssteemid
Funktsionaalseid programme saab ksitleda kui vga piiratud
loogikakeeles esitatud valemeid. Konkreetsemalt, funktsionaalne
programm on vaadeldav hulga ksikute vrdusliteraalide konjunkt-
sioonina. Nimetame sellist valemiklassi edaspidi vrdusssteemide
klassiks.
ks tpiline probleem, millest me oleme huvitatud, on
ksimus, kas mingist hikvrduste hulgast E jreldub kahe termi
t
1
ja t
2
vrdsus. ldjuhul saame niisuguse probleemi lahendada
ainult deduktsiooni teel, s.o. otsides termide vrduse tuletust.
Vaatame uuesti teoreemitestamise peatkis antud nidet rh-
mateooriast. Olgu R
=
rhma deneerivate vrduste hulk:
(1) 1 x = x
(2) x
1
x = 1
(3) (x y) z = x (y z)
Paremaks loetavuseks esitame vrdused harilikus matemaatilises
kirjaviisis. Predikaatarvutuse standardses kirjaviisis neb niteks
368 19. Funktsionaalne programmeerimine ja vrdusssteemid
vrdusreegel (2) vlja kui literaal =((inv(x), x), 1). Testame
taas, et R
=
(x x
1
= 1). Selleks teisendame vasakpoolse
termi x x
1
parempoolseks termiks 1. Teisenduse juures tuleb
vrdusreegleid 13 kasutada nii suunas vasakult paremale kui
paremalt vasakule.
Kirjutame teisendussammude vahele, millist reeglit ja mis
suunas rakendasime:
x x
1
1
=
1 (x x
1
)
2
=
((x
1
)
1
x
1
) (x x
1
)
3
=
(x
1
)
1
(x
1
(x x
1
))
3
=
(x
1
)
1
((x
1
x) x
1
)
2
=
(x
1
)
1
(1 x
1
)
1
=
(x
1
)
1
x
1
2
=
1.
Kuna vrdusreegleid tuleb rakendada mlemas suunas ja helgi
hetkel pole a priori selge, millist reeglit ja millisele alamtermile
just rakendada tuleb, on teisendusahela leidmine kllalt vaeva-
nudev ritus. Kui teisendusahelat ei eksisteeri (s.t. termid ei
ole vrdsed) siis ahela otsing ldjuhul ka ei peatu, s.t. meil ei
ole algoritmi, millega saaks alati lahendada ksimuse kahe termi
vrdsusest.
Ideaalis sooviksime vaevarikka deduktsiooni asemel ssteemis
R
=
kasutada meetodit, mis oleks kiire, lihtne ja alati peatuks,
s.o. lahendaks suvalise kahe termi vrdsuse ksimuse. Jrgne-
vas nitame, et ssteemi R
=
jaoks taoline meetod tepoolest
eksisteerib. Veel enam, analoogiline efektiivne lahendusalgoritm
eksisteerib mitte ainult ssteemi R
=
, vaid mitme teisegi (kuid
mitte kigi) vrdusssteemi jaoks.
Modifitseerime prooviks ssteemi R
=
, lubades teha teisendusi
ainult vasakult paremale. Saame hesuunaliste teisendusreeglitega
ssteemi R
:
19.1. Deduktsioon ja reduktsioon: termiteisendusssteemid 369
(1) 1 x x
(2) x
1
x 1
(3) (x y) z x (y z)
Definitsioon 19.1. Termiteisendusssteemiks, lhendatult TTS, ni-
metame vasakult paremale orienteeritud vrdusssteemi, kus iga
teisendusreegli jaoks kehtib: reegli vasakpoolne term sisaldab iga
muutujat reegli parempoolses termis.
Ssteem R
on peatuv. Reeglid 1
ja 2 vhendavad termi suurust, reegel 3 jtab suuruse samaks,
kuid nihutab sulgusid alati paremale. Kontranide: kski reeglit
f (x) f (f (x)) sisaldav TTS ei ole peatuv.
Definitsioon 19.3. Term on normaalkujul, kui talle ei saa enam
rakendada htegi teisendust.
370 19. Funktsionaalne programmeerimine ja vrdusssteemid
Niteid ssteemi R
jaoks: termid x x
1
ja 1 on normaalku-
jul, term x (y
1
y) aga mitte, kuna reegliga 2 saab ta teisendada
(normaal)kujule x 1.
Intuitiivselt on selge, et otsitav termide t
1
ja t
2
vrdsuse la-
hendusmeetod viks vlja nha jrgmine: teisendame termid nor-
maalkujule (t
1
) ja (t
2
) ning kontrollime, kas (t
1
)
ja (t
2
) on sntaktiliselt samased. Kui jah, siis on termid
vrdsed, kui ei, siis nad ei ole vrdsed. Paraku ei vimalda
ssteemi R
teisendusreeglite muutmisega
harilikeks vrdusteks. Siis on TTS E
vrdusssteemi E
=
jaoks
tielik.
Tielik, peatuv ja kokkuvoolav TTS E
annabki otsitava
lahendusalgoritmi vrduste jaoks:
1. Leiame ssteemi E
modifikatsiooni R+
,
mis oleks R
=
jaoks korrektne ja oleks nii peatuv (seda on ka R
)
kui ka kokkuvoolav.
Esimene ksimus: kuidas testada, et mingi TTS R
on
kokkuvoolav? Ei ole ju vimalik kontrollida lpmatu hulga termide
kigi teisendatud kujude kokkuvoolavust. Peatuvate TTS-de jaoks
annab vastuse jrgmine Donald Knuthi ja Bendixi 1970. aastal
testatud fundamentaalne teoreem, mille esitame siin testuseta.
Enne teoreemi esitamist defineerime kriitilise paari miste.
372 19. Funktsionaalne programmeerimine ja vrdusssteemid
Definitsioon 19.10. Sisaldagu TTS R reegleid
1
1
ja
2
2
. Olgu
2
unitseeritav termi
1
mingi alamtermiga g.
Olgu unitseerimise tulemuseks substitutsioon . Termi
1
saab
siis teise reegliga teisendada, olgu resultaadiks term
1
. Selge,
et termi
1
saab ka esimese reegliga teisendada, olgu resultaa-
diks term
1
. Konstrueerime vrduse
1
=
1
. Viimast vrdust
nimetatakse kriitiliseks paariks.
Toome nite ssteemist R
. Kolmanda reegli (x y) z
x (y z) vasaku poole alamtermi (x y) saab unifitseerida teise
reegli v
1
v 1 vasakpoolse termiga. Saadud unifikaator on
{x/v
1
, y/v} ning ((x y) z) on (v
1
v) z. Konstrueeritud
termile (v
1
v) z saab rakendada teist reeglit, mis annab termi
1z. Term (v
1
v)z on ka kolmanda reegliga teisendatav, nimelt
termiks v
1
(v z). Kriitiline paar on seega v
1
(v z) = 1 z.
Kokkuvtteks: kriitilise paari saame juhul, kui he reegli
vasak pool on unifitseeritav teise reegli vasakus pooles sisalduva
alamtermiga. Niimoodi saame termi, mida on vimalik teisendada
kahe erineva reegliga, s.o. kahel viisil. Kui TTS on kokkuvoolav,
siis peab olema vimalik neid kahte teisendustulemust uuesti
heks termiks kokku teisendada. Selge, et igal lpliku arvu
reeglitega TTS-l on lplik arv kriitilisi paare. Knuthi-Bendixi
teoreem tleb, et peatuva TTS-i kokkuvoolavuse testamiseks pole
vaja kontrollida kiki vimalikke terme, piisab vaid kriitiliste
paaride kokkuvoolavuse kontrollimisest.
Teoreem 19.11 (Knuth-Bendix). Olgu S peatuv TTS. Kui ss-
teemi S iga kriitilise paari t
= t
c kui t
c, siis on ssteem S
kokkuvoolav.
Kuna iga peatuva TTS-i kigi kriitiliste paaride kokkuvoolavust
saab algoritmiliselt kontrollida, annab Knuthi-Bendixi teoreem
efektiivse vahendi kokkuvoolavuse probleemi lahendamiseks.
Varasemas kontrollisime, et meie poolt nitena vaadeldav ss-
teem R
, mis oleks R
=
jaoks korrektne, seega tielik.
Knuthi-Bendixi teoreem annab Knuthi-Bendixi tielikustamisalgo-
ritmi, millega on esialgu mittetielikku TTS-i sageli vimalik
tiendada uute reeglitega, nii et kokkuvttes saadakse tielik TTS.
Knuthi-Bendixi algoritm:
1. Olgu S peatuv TTS. Olgu S
kriitilised paarid
t
= t
)
ja norm(t
). Kui ssteemi S
) ja
norm(t
on termiteisendusree-
gel ning S
{t
ssteemi S
on termiteisendusreegel ning
kas S
{t
ssteemi S
on kokku-
voolavad, siis on S
.
Peamine raskus Knuthi-Bendixi tielikustamisalgoritmi juures
on uue reegli lisamisel saadava ssteemi peatuvuse kontrollimine.
Oluline on ka kriitilisest paarist saadava reegli sobival viisil
orienteerimine (kui mlemad suunad on lubatavad). On vimalik,
et ebasobiva valiku korral peatub algoritm ebannestumisega,
samas, kui sobiva valiku korral oleks vimalik leida tielik
ssteem.
Tielikustamisalgoritmi saab mitmel moel optimeerida. Ni-
teks on lihtne veenduda, et iga teisendusreegli l r parempoolse
termi r saab asendada normaliseeritud termiga norm(r), kaota-
mata seejuures korrektsust vi tielikkust. Samuti vib kasutada
resolutsioonimeetodi juurest tuttavat neelamisstrateegiat: kui TTS
374 19. Funktsionaalne programmeerimine ja vrdusssteemid
sisaldab reegleid l r ning l
, mis on peatuv,
kokkuvoolav ja rhmateooria aksiomaatika R
=
jaoks tielik. Esi-
mesed kolm reeglit prinevad ssteemist R
, lejnud on lisatud
Knuthi-Bendixi tielikustamisalgoritmiga.
(1) 1 x x
(2) x
1
x 1
(3) (x y) z x (y z)
(4) x
1
(x z) z
(5) y 1 y
(6) (y
1
)
1
y
(7) 1
1
1
(8) y y
1
1
(9) y (y
1
x) x
19.1. Deduktsioon ja reduktsioon: termiteisendusssteemid 375
(10) (x y)
1
y
1
x
1
Niisiis on rhmateooria aksiomaatikast tuletatavate vrduste
jaoks deduktsioon asendatud reduktsiooniga ning kahe termi vrd-
suse ksimuse saab alati lahendada.
Tielikud TTS-d ei eksisteeri kaugeltki mitte kigi vrdus-
ssteemide jaoks. Piisab niteks vrduse x x = 1 lisamisest
rhmateooria aksiomaatikale R
=
ning lplikku ja tielikku TTS-i
enam ehitada ei saa. Ka hestainsast kommutatiivsest vrdusest
x y = y x koosneva ssteemi jaoks ei leidu tielikku TTS-i (ei
leidu ka peatuvat TTS-i). Spetsiilistel juhtudel, nagu kommuta-
tiivsuse ja assotsiatiivsuse esinemisel aksiomaatikas, saavutatakse
TTS-i peatuvus erivahenditega: aksioomidena esitamise asemel
saab kommutatiivsuse ja assotsiatiivsuse ehitada otse unitseeri-
misalgoritmi sisse.
Siiani uurisime peatuvate termiteisendusssteemide omadusi.
Samas on mitu programmeerimises ja arvutamise teoorias kasu-
tatavat TTS-i mittepeatuvad. Ka mittepeatuv TTS vib olla kok-
kuvoolav, nitena toome hest reeglist koosneva ssteemi a a
ning kahest reeglist ssteemi x a, a f (a).
Mittepeatuva TTS-i jaoks Knuthi-Bendixi teoreem ei kehti.
Kontraniteks toome konstante teisendava mittepeatuva ssteemi:
{a b, b a, a c, b d}.
Mlemad kriitilised paarid b = c ja a = d on kokkuvoolavad, vas-
tavalt termideks c ja d. Ssteem tervikuna ei ole aga kokkuvoolav:
a c ja a d, kuid c ja d on mlemad normaalkujul.
Lpetuseks tasub meenutada loogilise programmeerimise pea-
tkki, kus mainisime, et Horni lausetena antud valemite jaoks
langevad klassikaline ja intuitsionistlik loogika kokku. Kuivrd
harilik vrduse aksiomaatika koosneb Horni lausetest, siis lan-
gevad ka vrdusssteemide jaoks klassikaline ja intuitsionistlik
loogika kokku.
376 19. Funktsionaalne programmeerimine ja vrdusssteemid
19.2. Lambda-arvutus
Lambda-arvutuse keel on 1930. aastatel Alonzo Churchi leiuta-
tud lihtne ja universaalne meetod funktsioonide kirjapanekuks.
Lambda-arvutuse teooria tegeleb arvutatavuse ja arvutatavate
funktsioonide uurimisega, kasutades selleks lambda-arvutuse keelt
kui universaalset programmeerimiskeelt. Churchi tees vidab, et
iga algoritmi saab lambda-arvutuse keeles kirja panna. On vima-
lik nidata, et lambda-arvutus, nagu ka Prolog, C ja Basic on ks
paljudest universaalsetest programmeerimiskeeltest. Konkreetselt
on lambda-arvutuse keel ja teooria funktsionaalsete programmee-
rimiskeelte aluseks.
Esitame kigepealt informaalse sissejuhatuse.
ks harilikumaid praktikas kasutatavaid funktsioonide kirjapa-
neku viise on selline:
f (x) = x x + 1.
Funktsioon esitatakse, andes talle samas nime, konkreetses ni-
tes f . Lambda-arvutuses esitatakse funktsioone, vastupidi, kui
anonmseid, nimeta terme. sjatoodud nide on lambdakirjavii-
sis
x.x x + 1.
Lambdasmboli jrele kirjutatakse funktsiooni formaalseks pa-
rameetriks olev muutuja, seejrel punkt ja funktsiooni keha.
Parameetrit nimetatakse seotud muutujaks, analoogiliselt muutuja
sidumisele kvantoriga. Mitme formaalse parameetriga funktsioone
esitatakse mitme ksteise sees oleva heparameetrilise funktsioo-
nina: x.y.x x +y y.
Funktsiooni rakendamiseks kirjutatakse traditsioonilise f (3)
asemel (x.x x + 1)3 viimase vrtuseks on 10. Analoo-
giliselt annab ((x.y.x x + y y)2)3 vrtuseks 13. Lamb-
datermi rakendamisel asendatakse seotud muutuja termi kehas
termile antud argumendiga. Seotud muutujate asendamine ongi
lambda-arvutuse phiidee. Pisut keerukam termi rakendamise
ehk redutseerimise nide: ((f.f(f 2))(x.x x + 1)) annab
(x.x x + 1)((x.x x + 1)2) annab (x.x x + 1)(2 2 + 1)
19.2. Lambda-arvutus 377
annab (x.x x +1)5 annab 55+1 annab 26. Resultaat seejuures
asenduste tegemise jrjekorrast ei sltu.
Siirdume nd lambda-arvutuse formaalse esituse juurde.
Definitsioon 19.12. Lambdaterm on kas muutuja, konstant, raken-
dusterm (F, A) vi abstraktsiooniterm x.M, kus F, A ja M on
lambdatermid.
Edaspidises kirjutame rakendustermi (F, A) lihtsamalt: FA.
Definitsioon 19.13. Lambda-arvutuse annab ksainus fundamen-
taalne aksioomiskeem, -reduktsioon ehk lihtsalt reduktsioon:
(x.M)N = M[x := N],
kus M[x := N] thistab termi M prast muutuja x asendamist
termiga N.
Muutuja x olemasolu termis M ei ole kohustuslik. Muutuja x vib
aksioomiskeemis asendada mistahes muutujaga. Mingis termis
sisalduv lambdasmboliga seotud muutuja on vabalt mberni-
metatav. Muutuja mbernimetamine formuleeritakse vahel eraldi
-reduktsiooni reeglina.
Tuleb thele panna, et -reduktsioon ei ole otseselt esita-
tav esimest jrku vrdusena: tegu on nimelt aksioomiskeemiga.
Reduktsioonile lisaks kasutatakse standardset aksiomaatikat vr-
duspredikaadi aksiomatiseerimiseks (vaata niteks automaatse teo-
reemitestamise peatkki). Kui orienteerida reduktsioonireeglis
vrdus, saab lambda-arvutust vaadelda erilist tpi termiteisendus-
ssteemina.
Vahel lisatakse lambda-arvutusele teisigi reduktsioonireegleid,
kuid nende olemasolu vi puudumine ei muuda arvutuse phi-
omadusi.
Reduktsiooni rakendamisel tuleb prata thelepanu seotud ja
vabadele muutujatele: asendatakse ainult vabu muutujaid. Niteks
yx(x.x)[x := N] = yN(x.x), kuna alamtermis (x.x) on
muutuja x seotud. ldjuhul tuleb muutujanimede sassimineku
378 19. Funktsionaalne programmeerimine ja vrdusssteemid
vltimiseks seotud muutujad enne asendussammu tegemist mber
nimetada.
Vaadeldes lambda-arvutust termiteisendusssteemina, mrkame
kigepealt, et lambda-arvutus ei ole peatuv. Thistame rakendus-
termi (x.xx)(x.xx) thega . Term redutseerub he sam-
muga uuesti iseendaks, vimaldades seega ehitada lputu redukt-
siooniahela. Vaatame nd rakendustermi ((x.y.x)(x.x)) ja
pame seda redutseerida normaalkujule. Alustades redutseerimist
argumentidest (seestpoolt vljapoole) nagu harilikes programmeeri-
miskeeltes tavaks, peame kigepealt normaalkujule viima termi ,
kuid sel termil normaalkuju puudub, seega satume lpmatule
reduktsiooniahelale. Alustades redutseerimist, vastupidi, tervest
termist, s.o. vljastpoolt sissepoole ehk vasakult paremale, saame
termi ((y.(x.x)) ning jrgmisena (x.x), mis on normaal-
kujul. Meie nites ei viinud seestpoolt vljapoole redutseerimine
normaalkujule, kll aga leidsime normaalkuju vljastpoolt sis-
sepoole redutseerides. Nide illustreeris jrgmist Haskell Curry
testatud teoreemi.
Definitsioon 19.14. Redeks on rakendusterm, mille vasakpoolne
argument on abstraktsiooniterm.
Redeks on niteks ((x.x)y), aga mitte (xx) vi (((x.x)y)y).
Teoreem 19.15 (normaliseerimine). Kui lambdatermil M on nor-
maalkuju, siis alati kige vasakpoolsemat redeksit eelistav redut-
seerimisstrateegia juab normaalkujuni.
Esitame he suhteliselt lihtsama teoreemi koos testusega:
Teoreem 19.16 (psipunktiteoreem).
1. Iga lambdatermi F jaoks eksisteerib lambdaterm X, nii et
FX = X.
2. Psipunktifunktsioonil f.(x.f (xx))(x.f (xx)) nimega Y
on jrgmine omadus: iga lambdatermi F jaoks kehtib
F(YF) = YF, s.t. Y arvutab termi psipunkti.
19.2. Lambda-arvutus 379
Testus.
1. Olgu W term x.F(xx). Termiks X vtame WW. Tepoo-
lest, WW = (x.F(xx))W = F(WW).
2. Kasutame eelmist punkti, pannes thele, et YF =
(x.F(xx))(x.F(xx)), mis on samane termiga X.
Lambda-arvutuse kige fundamentaalsem teoreem on Alonzo
Churchi ning Barkley Rosseri testatud kokkuvoolavuse teoreem:
Teoreem 19.17 (Church-Rosser). Lambda-arvutus on kokkuvoo-
lav TTS, s.t. iga lambdatermi M jaoks kehtib: kui eksisteerivad
kaks termi A ja B, nii et M A ja M B, siis eksisteerib term
C, nii et A C ja B C.
Kokkuvoolavuse teoreemist jreldub muu hulgas, et igal nor-
maalkujuga lambdatermil on ksainus normaalkuju. Kuna lambda-
arvutus ei ole peatuv, siis ei jreldu kokkuvoolavusest termide
vrdsuse probleemi lahenduvus. Saab nidata, et ei eksisteeri uni-
versaalset lahendavat algoritmi ksimuse jaoks, kas mingi vrdus
t = t
on lambda-arvutuses tuletatav.
Jrgmiseks nitame, kuidas esitada lambda-arvutuses mitte-
triviaalseid programme. Kigepealt tuleb rhutada, et puhta, li-
sanditeta lambda-arvutuse selline kasutamine ei ole praktilise
programmeerimise seisukohalt ratsionaalne. Lambda-arvutusel ba-
seeruvad funktsionaalse programmeerimise keeled sisaldavad peale
puhta lambda-arvutuse veel muid konstruktsioone ja vahendeid,
niteks arve, aritmeetikat, loendeid jms., mis muudavad program-
mid efektiivseteks ja mugavalt kirjapandavateks. Meie eesmrk
on demonstreerida, et selliseid praktilisi lisakonstruktsioone on
teoreetiliselt vimalik esitada puhta lambda-arvutuse vahenditega.
Terviklikku formaalset tielikkuse testust me siinkohal ei esita.
Tisarvude esitamise skeem Churchi jrgi:
0: f.x.x
1: f.x.f x
380 19. Funktsionaalne programmeerimine ja vrdusssteemid
2: f.x.f (f x)
3: f.x.f (f (f x))
ldiselt n: f.x.f
n
x
Rosseri esitatud peamised aritmeetikafunktsioonid, meldud
Churchi jrgi kodeeritud arvudele rakendamiseks:
+: x.y.p.q.(xp)((yp)q)
*: x.y.z.x(yz)
: x.y.yx
Toodud aritmeetikafunktsioonide esimesed kaks parameetrit on
sisulised: neid kasutatakse arvutamise juures redutseerimisel. le-
jnud parameetrid jvad resultaadi komponentideks.
Niteks: ( 2)2 = ((x.y.yx)2)2 = (y.y2)2 = 2 2 =
(f
.x
.f
(f
))2 = (x
.2(2 x
)) = (x
.x.(2 x
)((2 x
)x)) =
(x
.x.x
(x
((2 x
)x)) = (x
.x.x
(x
(x
(x
x)))) = 4.
Loogilised tevrtused tsi ja vr, harilik programmeeri-
miskonstruktsioon if B then P else Q ning predikaat null
thendusega x vrdub arvuga 0 on suhteliselt lihtsalt esitatavad:
tsi: x.y.x
vr: x.y.y
if B then P else Q: (BP)Q
null: x.((x (y.z.vr)) (x.x)) tsi
Harilikes programmeerimiskeeltes kasutatakse rekursiivsete
funktsioonide deneerimise juures funktsiooni nime. Niteks fak-
toriaali denitsiooni
fakt(x) = if x=0 then 1 else x*fakt(x-1)
kehas kasutatakse defineeritavat nime fakt. Lambda-arvutuses aga
funktsioonidel nime ei ole. Kuidas sellises olukorras rekursiivseid
funktsioone defineerida?
19.2. Lambda-arvutus 381
Lahenduseks on psipunktiteoreemi testuses toodud psi-
punktifunktsiooni Y kasutamine. Meenutame, et funktsioonil Y on
jrgmine omadus: iga termi F jaoks kehtib F(YF) = YF. Psi-
punktifunktsiooni kasutamise skeem on jrgmine. Olgu rekursiivne
funktsioon f deneeritud kui f (x) = M, kus M vib sisaldada
nime f . Asendame denitsiooni lambdatermiga (Y f.x.M),
muutes funktsiooni nime seotud muutujaks ja rakendades termile
psipunktifunktsiooni.
Thistame thega F faktoriaali definitsioonist saadud termi
fakt.x.if x = 0 then 1 else x (x 1).
Faktoriaali funktsiooni defineerime kui rakendustermi (YF).
Saadud faktoriaalifunktsiooni (YF) niteks arvule 4 rakenda-
des saame seestpoolt vljapoole redutseerides ehitada mittepeatuva
teisendusahela
(YF)4 = (F(YF))4 = (F(F(YF)))4 = . . .
Normaalkujuga termide jaoks garanteeritult peatuvat vljast-
sissepoole-, vasakult-paremale-reduktsioonistrateegiat kasutades
aga teisendusahel peatub, andes normaalkuju, mis ongi fakto-
riaali arvutamise resultaadiks:
(YF)4 =
F(YF)4 =
( .x.if x = 0 then 1 else x (x 1))(YF)4 =
(x.if x = 0 then 1 else x (YF)(x 1))4 =
if 4 = 0 then 1 else 4 (YF)(4 1) =
4 (YF)3 =
4 F(YF)3 =
. . .
4 3 (YF)2 =
. . .
4 3 2 (YF)1 =
. . .
382 19. Funktsionaalne programmeerimine ja vrdusssteemid
4 3 2 (YF)0 =
4 3 2 1 =
24.
19.3. Kombinatoorne loogika
Lambda-arvutuse reduktsioonimehhanismil on puudusi:
-reduktsiooni aksioom ei ole esimest jrku vrdus.
-reduktsiooni sammu alustades peab seotud muutujad m-
ber nimetama, vltimaks muutujate omavahel sassiminekut.
Mainitud puudustest on vaba lambda-arvutusega analoogi-
line, peamiselt teoorias kasutatav programmeerimiskeel, kombina-
toorne loogika, mille 1920. ja 1930. aastatel leiutasid Curry ja
Schnfinkel.
Kombinatoorne loogika on kahe vi kolme rmiselt lihtsa
vrdusega esitatav esimest jrku aksiomaatika, mis sisaldab kons-
tante K, S ja I ning kahekohalist rakendusfunktsiooni (F, M),
mida edaspidi kirjutame parema loetavuse huvides kujul F M.
(1) ((S x) y) z = (x z) (y z)
(2) (K x) y = x
(3) I x = x
Konstant I on deneeritav kui term (S K) K ning kolmas
vrdus on seepeale tuletatav kahest esimesest. Kombinatoorse loo-
gika esitamiseks piisab seega kahest esimesest vrdusest, kolmas
vetakse aksiomaatikasse mugavuse mttes.
Kui orienteerida kombinatoorse loogika aksiomaatika vrdused
13 termiteisendusreegliteks, saame mittepeatuva, kuid kokkuvoo-
lava ja tieliku TTS-i. Analoogiliselt lambda-arvutusega ei eksis-
teeri universaalset lahendavat algoritmi ksimuse jaoks, kas vrdus
t = t
nii, et U
I
=
I
= {w
1
, . . . , w
n
}, w
i
[A] = t w
i
[A] ja vabad muutujad asenda-
takse tegeliku maailmaga w
I
I
.
lesannete vastused 389
12.5.2. Vihje: jagage predikaatide ekstensioonid ekvivalentsiklassi-
desse.
14.2.2. Olgu [A] = [A B] = 1. Implikatsiooni semantika phjal
saame vrduse 1 (1 [B]) = 1. Jrelikult [B] = 1.
15.7.1. Kirjeldame vaikimisiteooria
W =
Tartu_tnav(x) tee(x)
Tartu_tnav(x) viib_Rooma(x)
Tartu_tnav(likooli_tnav)
D =
tee(x) : viib_Rooma(x)
viib_Rooma(x)
Selles teoorias saab modus ponensiga tuletada vite
viib_Rooma(likooli_tnav).
16.6.3. Lihtsustamis- ja idempotentsusreeglid
A B A,
A A A
ei kehti keemiliste reaktsioonide korral, sest aatomite hulgad peavad
enne ja prast reaktsiooni olema samad.
17.2.1. Minu kass sb mind.
17.2.2. Kui draakon on nljane, siis ta ktib. Kui draakon on vsinud,
siis ta magab. Draakon ei saa olla korraga nljane ja vsinud.
17.2.4.
x
2
= g(x
1
, x
1
),
x
3
= g(g(x
1
, x
1
), g(x
1
, x
1
)),
x
4
= g(g(g(x
1
, x
1
), g(x
1
, x
1
)), g(g(x
1
, x
1
), g(x
1
, x
1
))),
. . .
x
n
= g(g(. . . g(x
1
, x
1
) . . .), g(. . . g(x
1
, x
1
) . . .)).
18.1.1. Vihje: pdke igal jrgneval hulga lbimisel muuta teseks
vhemalt ks vaadeldava hulga disjunktidest.
Kirjandus
Sissejuhatus
Loogika ajalugu:
J. Bochenski. A history of formal logic. University of Notre Dame
Press, 1951.
J. van Heijenoort. From Frege to Gdel. Harvard University Press,
1967.
W. Kneale, M. Kneale. The development of logic. Clarendon Press,
1962.
Loogikafilosoofia:
M. A. Boden (toim.). The philosophy of articial intelligence. Oxford
University Press, 1990.
D. Gabbay, F. Guenthner (toim.). Handbook of philosophical logic.
Kluwer, 19831989.
S. Haack. Philosophy of logics. Cambridge University Press, 1978.
G. Polya. Kuidas lahendada lesannet. Tallinn, 1967.
W. V. O. Quine. Philosophy of logic. Prentice-Hall, 1970.
S. Read. Thinking about logic: an introduction to the philosophy of
logic. Oxford University Press, 1995.
B. Russell. Uurimus thendusest ja test. Tallinn, 1995.
G. H. von Wright. Minerva kull. Tallinn, 1996.
Kirjandus 391
I Klassikaline loogika
Eestikeelsetes formaalloogika pikutes ksitletakse philiselt
traditsioonilist sllogistlikku loogikat:
E. Grauberg. Loogika, keel ja mtlemine. Tallinn, 1996.
I. Meos. Loogika. Argumentatsioon. Mtlemiskultuur. Tallinn, 1996.
A. Prl. Otsustuspetus hes sissejuhatusega viteloogikasse ja
formaalloogilised mtlemisseadused. Tartu, 1970.
G. Vuks. Formaalse loogika ehk ige mtlemise alused. Tartu, 1992.
Ingliskeelsed pikud:
J. Allwood, L.-G. Andersson, . Dahl. Logic in linguistics. Cambridge
University Press, 1977.
M. Bergmann, J. Moor, J. Nelson. The logic book. McGraw-Hill,
1990.
G. Forbes. Modern Logic: a text in elementary symbolic logic. Oxford
University Press, 1994.
W. Hodges. Logic. Pelican, 1977 (Penguin, 1991).
J. Lyons. Linguistic semantics: an introduction. Cambridge University
Press, 1996.
T. J. McKay. Modern formal logic. Macmillan, 1989.
B. H. Partee, A. T. Meulen, R. E. Wall. Mathematical methods in
linguistics. Kluwer, 1990.
II Matemaatiline loogika
Eestikeelsed pikud:
I. Kull. Matemaatiline loogika. Tallinn, 1964.
J. Penjam. Loogika arvutiteaduses. Tallinn, 1995,
[greta.cs.ioc.ee/pub/CompLog/].
J. Penjam. Teoreetiline informaatika III. Tallinn, 19931995,
[greta.cs.ioc.ee/pub/TeorInf/].
392 Kirjandus
R. Prank. Matemaatiline loogika ja diskreetne matemaatika IIII.
Tartu, 19781983.
Ingliskeelsed pikud:
M. Ben-Ari. Mathematical logic for computer science. Prentice-Hall,
1993.
A. G. Hamilton. Logic for mathematicians. Cambridge University
Press, 1988.
S. C. Kleene. Introduction to metamathematics. Van Nostrand, 1952.
S. C. Kleene. Mathematical logic. John Wiley & Sons, 1967.
E. Mendelson. Introduction to mathematical logic. Van Nostrand,
1964.
A. Nerode, R. A. Shore. Logic for applications. Springer-Verlag, 1993.
C. H. Papadimitriou. Computational complexity. Addison Wesley, 1994.
W. V. Quine. Mathematical logic. Cambridge University Press, 1951.
J. R. Shoenfield. Mathematical logic. Addison Wesley, 1967.
Algoritmiteooria ja rekursiooniteooria pikud:
G. S. Boolos, R. C. Jeffrey. Computability and logic. Cambridge
University Press, 1989.
N. Cutland. Computability: an introduction to recursive function
theory. Cambridge University Press, 1980.
A. J. Kfoury, R. N. Moll, M. A. Arbib. A programming approach to
computability. Springer-Verlag, 1982.
Tnapeval saab loogikast parema levaate, lugedes
teatmeteoseid:
J. Barwise (toim.). Handbook of mathematical logic. North-Holland,
1977.
D. V. Gabbay, C. J. Hogger, J. A. Robinson (toim.). Handbook of
logic in articial intelligence and logic programming. 4 kd., Clarendon
Press, 19931995.
J. van Leeuwen (toim.). Handbook of theoretical computer science.
Volume B. Formal models and semantics. Elsevier, 1990.
Kirjandus 393
S. C. Shapiro (toim.). Encyclopedia of articial intelligence. 2 kd.,
John Wiley & Sons, 1992.
III Mitteklassikaline loogika
Universaalsed pikud lisaks eespool mainitud Susan Haacki ja
Graeme Forbese raamatutele:
L. Bolc, P. Borowik. Many-valued logics: 1 Theoretical foundations.
Springer-Verlag, 1992.
M. Ginsberg. Essentials of articial intelligence. Morgan Kaufmann,
1993.
S. Reeves, M. Clarke. Logic for computer science. Addison Wesley,
1990.
R. Turner. Logics for articial intelligence. Ellis Horwood Limited,
1984.
Modaalloogika:
B. F. Chellas. Modal logic. Cambridge University Press, 1975.
G. E. Hughes, M. J. Cresswell. A new introduction to modal logic.
Routledge, 1996.
Intuitsionistlik loogika:
M. Dummett. Elements of intuitionism. Clarendon Press, 1977.
Mittemonotoonne loogika:
D. W. Etherington. Reasoning with incomplete information. Pitman,
1988.
M. Ginsberg (toim.). Readings in nonmonotonic reasoning. Morgan
Kaufmann, 1987.
Lineaarloogika:
J.-Y. Girard. Linear logic: its syntax and semantics. Advances
in Linear Logic, Cambridge University Press, 1995, 142.
[lmd.univ-mrs.fr/pub/girard/Synsem.ps.Z].
394 Kirjandus
J.-Y. Girard. Linear logic. Theoretical Computer Science, 50 (1987),
1102.
IV Loogika rakendusi programmeerimises ja
tehisintellektis
Automaatne teoreemitestamine:
M. Koit. Resolutsioonimeetod. Tartu, 1989.
C.-L. Chang, R. C.-T. Lee. Symbolic logic and mechanical theorem
proving. Academic Press, 1973.
M. Fitting. First-order logic and automated theorem proving.
Springer-Verlag, 1996.
D. Loveland. Automated theorem proving: a logical basis.
North-Holland, 1978.
U. Schning. Logic for computer scientists. Birkhuser, 1989.
Loogiline programmeerimine:
R. Kowalski. Logic for problem solving. North-Holland, 1979.
J. W. Lloyd. Foundations of logic programming. Springer-Verlag, 1987.
L. Sterling, E. Shapiro. The art of Prolog. MIT Press, 1994.
Funktsionaalne programmeerimine:
H. P. Barendregt. The lambda calculus: its syntax and semantics.
North-Holland, 1984.
R. Bird, P. Wadler. Introduction to functional programming.
Prentice-Hall, 1988.
L. C. Paulson. ML for the working programmer. Cambridge University
Press, 1991.
Indeks
115, 214
+ 214
:- 350
; 353
? 288
?- 351
* 60
** 60
0 214, 291
1 291
! 288, 360
:= 377
= 63, 154, 321, 358
=.. 364
[] 354
w
239
& 68, 289
. 68, 354
145, 172, 201, 226, 255,
270, 290
377, 382
181
def
= 168
74
99
1 216
98, 221
205
206
72
155
LN 213
376, 377
370
74
288
290
290
289
179
132
H 169
|= 59, 62, 104, 106
|=I 259
Mn 205
57, 63, 73, 74, 76
72, 76
76
fn 205
235
69
70
p 69
m 215
p(n) 201
235
R= 367
R 368
e r A 261
72
69, 74
155
330
e 261
68
{x/t } 81, 104, 311
1-aksioom (1-axiom) 291
!-salvestus (!-storage) 292
396 Indeks
4 246
4 246
5 246
aatom (atom) 76, 97, 100
Abelard, P. 26
abstraktsioonialgoritm 383
abstraktsiooniterm 377
absurd 3, 24
Ackermann, W. 37
Add 134
aeg 10
agent 286
aju 2
aksiomaatika 3537, 120
aksiomatiseerima 18
aksiomatiseeritav
lplikult 222
aksioom (axiom) 11, 16, 40,
157, 159, 161
alamtuletus 141
alamvalem (subformula) 77
alamvalemi omadus (subformula
property) 178, 255
al-Farabi, A. N. 25
-reegel 179
algebra 35, 335
algebraline ssteem 162
al-Ghazali 25
algoritm (algorithm) 10, 12, 39,
4446, 118, 255
disjunktideks teisendamise
324
algoritmiteooria (computability
theory) 46, 165
alguspunkt 26
al-Kindi 25
-reduktsioon 377
Anaximenes 64
and 68
andmebaas (data base) 12, 227
sebrade 333
sugulussidemete 12
Anselm 26
antetsedent 174
antiikloogika 27
antismmeetriline 258
apooria 20
append 355, 360
Aquino, T. 26
araabia 25
argument 58, 96
Aristoteles 6, 2027, 56, 95,
235
aritmeetika (arithmetic) 15, 18,
34, 37, 133, 161, 178,
213, 218, 221, 225,
340
arutlemise 28
esimest jrku 222, 224
formaalne (formal) 45, 115
keel 213
mittestandardne mudel
(nonstandard model)
214, 222, 224
Presburgeri 18
standardinterpretatsioon 214,
222
smbol- 362
teist jrku 222, 225
aritmeetikas vljendatav
funktsioon 216
predikaat 215
aritmeetiline predikaat 215
Arnauld 27
arutlus (argument) 19, 58, 65
kehtiv (valid) 59, 60, 82,
85, 86, 88, 240, 387
korrektne (sound) 60
arutluse standardkuju 59
arutlusvorm (argument form) 82,
85
kehtiv (valid) 86, 88
arvutama (compute) 198
arvutatav funktsioon 197
arvutatavus (computability) 197,
249, 251
arvuti 198, 298
abstraktne 44
programmeeritav 44
universaalne 44
Indeks 397
arvutigraafika 358
arvutiteadus (computer science)
34, 46, 249
teoreetiline 34, 37, 297
arvutus (calculus) 12, 133
arvutusmasin 44
asendus (substitution) 104
literaali 321
termi 322
asendusreegel (replacement rule,
equivalence rule) 133,
135, 191
Assoc 135
assotsiatiivsus 79, 135
parempoolne 79
vasakpoolne 79
atomaarne valem 100
atomic 363
atomism 47
automaatne snteesimine 39
automaatne teoreemitestamine
297299
Averroes 25
Avicenna 25
baas 189
Babbage, C. 44
Barcani valem (Barcan formula)
248
-funktsioon 217
-reduktsioon 377
-reegel 179
Bendix 371
Bernays, P. 37
Bernoulli, J. 29
Bethi tabelimeetod (Beth
tableaux) 179
Bic 135
binaarne (binary) 96
Blake, W. 168
Bochenski, J. 50
Boethius 25, 26
Bolyai, J. 94, 218
Boole, G. 2832, 65
Boolei
algebra (Boolean algebra)
30, 32, 65, 120
funktsioon (Boolean
function) 66, 67, 71
interpretatsioon 117
konstant 227
loogika 65
Boyer, R. 307
Brouwer, L. E. J. 3839, 251
Buridan, J. 27
Burley, W. 27
call 362
Cantor, G. 29, 32, 34, 206, 218
Capella, M. 25
Carnap, R. 34, 40, 47, 48
CD 134
CE 135
Chomsky, A. N. 51
Chrysippus 24
Church, A. 33, 4446, 131,
197, 208, 319, 376,
379
Churchi tees (Churchs thesis)
45, 46, 197, 207, 251,
376
Cicero 25
Clark, K. L. 281
Cohen, P. J. 250
Comm 135
Conj 134
Contra 135
CP 140
Curry, H. 378, 382
Cut 176, 177
Davisi-Putnami meetod 299
Dedekind, R. 32, 213
deduktsioon 20, 375
definitsioon 51, 73
induktiivne 76, 187
matemaatiline 73
nominaalne 28
reaalne 28
deklaratiivne
keel 346, 347
programmeerimine 366
DeM 135
398 Indeks
De Morgan, A. 29, 31
De Morgani seadused 135, 290
diagonaliseerimismeetod 204
Diodorus Cronus 24
disjunkt (clause) 300
tautoloogiline 328
thi (empty) 305
disjunktide hulk 325
disjunktiivne sllogism 82, 132,
134
disjunktsioon 38, 69
hgus- 269
intuitsionistlik 38
vlistav (exclusive or) 70
Dist 135
distributiivsus 135
DN 135
DNK 137
259
DS 132, 134
duaalne 290
valem 189
duaalsusreeglid 108, 112
eeldus (premise) 22, 58
efektiivne 197
EG 151, 152
EI 151
Einstein, A. 41, 87, 218
eitus (negation) 69
hgus- 269
intuitsionistlik 38
eituse eitamise seadus 290
eksijreldus (fallacy) 240
eksistentsikvantori (existential
quantier) 99
eemaldamine (existential
instantiation) 152, 172
sissetoomine (existential
generalization) 152
eksperiment 158
ekspertssteem 349
eksponent (exponent) 288
eksponentsiaalne keerukus 130
ekstensionaalne 84
ekstensioon 103
ekvivalentne (equivalent) 197
ekvivalents (equivalence) 73, 74
ekvivalentsireegel (rule of
biconditional) 135
ekvivalentsiseos (equivalence
relation) 247
elementaardisjunktsioon 137
elementaarkonjunktsioon 137
elementaarselt ekvivalentne 118
elementaarteooria 118, 119, 219,
225
empirism 47
enamus (most) 129
episteemiline (epistemic) 236
erand 4
erijuht (instance) 81, 150
erikuju (instance) 14, 81, 86
esteetika 48
Eudemus 23
Eukleides 24, 133, 157, 213
Eukleidese geomeetria 217
Euler, L. 29
ex falso quodlibet 173
Exp 135
fact 357
fail 362
fakt 366, 380
fakt (fact) 301, 349
faktoriseerimisreegel 300, 302,
317
Fermat, P. de 16, 196
Fermat suur teoreem 16
figuur 22
filosoofia 47
analtiline 34, 47, 50
niitne (nite) 37
finitism 37
formaalne
aksiomaatika 43
aksiomaatiline
ssteem 133
teooria 161
ssteem (formal system)
40, 42
formaliseeritud aksiomaatiline
teooria 158
Indeks 399
formalism 33, 36, 38, 43
Frege, G. v, 2935, 41, 94
funktsionaalmuutuja 222
funktsionaalne
keel 347, 366
programm 367
programmeerimine 229, 366
funktsionaalsmbol 115
funktsionaalterm 313
funktsionalism 50
funktsioon 29, 66, 230
injektiivne (injective,
one-to-one) 224
intuitiivselt arvutatav 197
karakteristlik 205
psipunkti- 378
srjektiivne (surjective, onto)
224
Turingi mttes arvutatav
(Turing computable)
204
fsika 26, 51
Gen 171
Gentzen, G. 41, 172, 174, 178,
256
geomeetria 157, 213
Girard, J.-Y. 287
Goldbachi hpotees (Goldbachs
conjecture) 250
Gorgias 20
grammatika (grammar) 76
Gdel, K. 18, 19, 3234, 37,
4143, 48, 50, 133,
214, 217, 250, 251
Gdeli
mittetielikkuse teoreemid
(incompleteness
theorems) 229
numeratsioon (Gdel
numbering) 204, 219
teoreemid mittetielikkusest
(incompleteness
theorems) 236
hajuv 231
haru (branch) 179
avatud lpetatud (completed
open) 181
suletud (closed) 181
Hegel, G. W. F. 29, 47
Henkin, L. 224
Herbrand, J. 37, 170
Herbrandi
baas 280
universum 317
heuristika 335, 343
Heyting, A. 38, 39, 251
Heytingi arvutus 252
Hilbert, D. 3238, 41, 133, 187,
218, 251
Hilberti
probleemid 33, 36
programm 37, 43, 218, 229
tpi tuletusssteem 168
Hippias 20
Horni
disjunkt (Horn clause) 349,
354
reegel 348
HS 134
hulga element 154
hulgateooria 32, 33, 35, 39, 41,
156, 218
Cantori 32
intuitsionistlik 39
paradoksid 36, 38
hulk (set) 229
kigi hulkade 36
lplik 224
lpmatu (innite) 32, 39,
41, 187, 224
Hume, D. 47
hperresolutsioonireegel 337
hpoteetiline sllogism 134
Ibn Rushd 25
Ibn Sina 25
iff 74
if-then 72
imperatiivne keel 346, 347, 367
implikatsioon 38, 71, 238
400 Indeks
hgus- 270
intuitsionistlik 38
lineaarne 288
range (strict) 238
implikatsiooni
eeldus (antecedent) 72
jreldus (consequent) 72
implikatsiooni paradoksid
(paradoxes of
(material) implication)
238
implikatsioonireegel (conditional
exchange) 135
implikatsiooni sissetoomisreegel
(conditional proof )
140
indiviid 21
indiviidmuutuja 95
indiviidterm 100
induktiivne
struktuur 227
induktsioon 4, 5, 188, 340
matemaatiline 5
struktuurne 340
induktsiooni
baas 187, 188
eeldus 190
samm 187, 188
induktsiooniaksioom 214, 221
induktsiooniprintsiip 340
induktsioonireegel 178
induktsiooniskeem 340
infikskuju 97, 358
informatsioon 51
inimene 43, 198
injektiivne 214
integer 364
intensionaalne 51, 84
339
interaktiivne ssteem 340
interpretatsioon (interpretation,
structure) 103, 117,
239
hgus- 269
lplik 223
interpretatsiooni kandja 103, 117
introspektsioon 51
intuitsionism 33, 3739, 249,
251
intuitsionistlik
funktsiooniteooria 39
hulgateooria 39
loogika 39
matemaatika 39
mduteooria 39
IP 144
is 357
islami fundamentalism 26
isomorfism 118
isomorfne 214
Jevons, W. S. 30
Johannes XXI 26
jumalatestus 26
jreldama (conclude, imply) 5
jreldub loogiliselt 106, 162
jrelduma (imply) 90
jreldus (consequence, conclusion)
22, 58
nrk (weak) 271
tugev (strong) 271
jreldusreegel 7, 9
jreldustehe 31
K 246
kahekordse eituse reegel 135
kanooniline tlge 244
Kant, I. 29, 39
kaudse testuse reegel 144
kausaalne (causal) 288
keel (language) 40, 49
eesti 76, 81
formaalne 8, 10, 12, 40
lausearvutuse 9
loomulik (natural) 10, 49,
50, 76
lplik 41
predikaatarvutuse 10, 11
programmeerimis- 10
keelefilosoofia 48, 50
kehtestatav (satisable) 88, 106
kiirkontrolli meetod 89
Indeks 401
Kleene, S. C. 170, 255, 261
KNK 137
Knuth, D. 371
Knuthi-Bendixi tielikustamisalgo-
ritm 373
kognitiivsusteadus (cognitive
science) 51
kohtupraktika 57
kohustuslikkus (obligation) 246
Kolmogorov, A. 167
kombinaator 383
super- 385
kommutatiivsus 135
kompaktne 228
kompaktsus 133
kompilaator
optimeeriv 385
konditsionaalse testuse reegel
140
konfiguratsioon 199, 211
konjunktsioon (conjunction) 68,
72, 79
hgus- 269
konjunktsioonireegel 134
konkretiseerimine 310
konstantmuutuja 151
konstantsmbol 96
konstrueerima 38, 288
konstruktiivne (constructive) 229
dilemma 134
konstruktivism 37
kontiinum (continuum) 126, 221
kontiinumhpotees (continuum
hypothesis) 250
kontingentne (contingent) 61, 63,
88, 89, 106
kontingentne materialist 248
kontradiktsioon 88, 110
kontranide 90, 113
koolkond
Bagdadi 25
funktsionalistlik 50
intuitsionistlik 39
koondamine (contraction) 292
koonduv 231
koos (with) 289
koosklaline (consistent) 57
korda (times) 289
korrektne (sound) 160, 164
korrektsus (soundness) 15, 132,
192
Kowalski, R. 348
kriitiline paar 372
Kripke, S. A. 34, 50, 239
Kripke
mudel 259
semantika 261
kumer 230
kvantor (quantier) 29, 31
olemasolu- (existential) 38,
99
ldisus- (universal) 98
kvantorite
distributiivsusreeglid
(quantier distribution)
146
eemaldamisreeglid 151
eitamisreeglid (quantier
negation) 146
ettetoomisreeglid 148
jrjestusreeglid (quantier
(in)dependence) 147
liigutamisreeglid (quantier
movement) 147
sissetoomisreeglid 151
kllaldase aluse seadus 56
Laar, M. 84
lahendamatuse astmed (degrees on
unsolvability) 46
lahendus (solution) 351
mittehene 353
hene 354
lahendusliteraal (goal) 320, 353
lahenduv (decidable, solvable)
12, 23, 45, 120, 159,
162, 164
raskesti (hard, intractable)
130
lahenduvus (solvability) 46
lambda-arvutus (lambda calculus)
45, 46, 347, 376
402 Indeks
lambdaterm 377
Lambert, J. H. 29
lause (sentence) 65, 76, 101
atomaarne 97
osaeitav 109
osajaatav 109
ldeitav 109
ldjaatav 108
lausearvutus (propositional
calculus) 12, 23, 25,
29, 30, 65, 77
klassikaline 45
lausearvutuse
tehe (connective) 66
valem (formula, wff ) 76
lauseloogika (propositional
(sentential) logic) 65
lausemuutuja 6, 76
lausevorm (propositional
(sentential) form) 81,
90
Leibniz, G. W. 2830, 34, 44,
56, 222, 236
Leibnizi vrduse printsiip (Leibniz
principle of equality)
222
Lewis, C. I. 235, 238, 239, 245
ligipsetavuse seos (accessibility
relation) 246
lihtlause 387
laiendamata 387
laiendatud 387
lihtsustamisreegel 132, 134
liiasusreegel (redundancy) 135
liik (sort) 228
liikumine 20
liitlause 76, 387
Lindemann, C. L. F. von 197
lindithestik 198
lineaarne implikatsioon 288
lineaarsus 124
lingvistika (linguistics) 51
lingvistiline pre vi
lisalemma 340
lisamisreegel 134
literaal 137, 179, 300
negatiivne 300
positiivne 300
literaalide jrjestus 330
Lobat"evski, N. 218
loend (list) 338, 354, 366
thi ( ) 338
loendi
esimene element (head)
354
saba (tail) 354
loenduv (enumerable) 126
logitsism 3234, 36, 43, 47, 48,
50
logitsistika 50
loodusteadused 51
loogika 1, 6, 12, 19, 3941, 51,
228, 236
algebra 30
Aristotelese 22, 23, 31, 95,
131
autoepisteemiline (autoepiste-
mic) 286
deontiline (deontic) 235,
246
dialektiline 1
episteemiline (epistemic)
50, 235
esimest jrku (rst-order)
222, 228
filosoofiline 32
formaalne 1, 10
hgus- (fuzzy) 268
intuitsionistlik (intuitionistic)
38, 39, 50, 175, 226,
249, 261, 288, 293,
354, 375
kaasaegne 30
kahevalentne 56
keskaegne 27
klassikaline (classical) 9,
38, 39, 261, 268, 287,
293, 354, 375
kombinatoorne 382
konstruktiivne 229
krgemat jrku (higher-
order) 222
Indeks 403
lineaar- (linear) 50, 287,
288, 293
lplikku jrku (nite order)
227
matemaatiline 1, 10, 28
mitmeliigiline (many-sorted)
228
mitmevalentne (many-valued)
268
mitteklassikaline (non-
classical) 9, 34, 50,
65
mittemonotoonne (non-
monotonic) 50,
273
mittepredikatiivne (impre-
dicative) 227
modaal- (modal) 50, 235
monaadiline esimest jrku
(monadic rst-order)
229
monaadiline teist jrku
(monadic second-order)
229
naiste 167
Port-Royali 27
predikaat- 94
predikatiivne (predicative)
227
relevantne (relevance) 50
relevantsus- (relevance) 288
skolastiline 27
smbol- (symbolic) 2729
teadmiste (of knowledge)
246
teist jrku (second-order)
222, 224, 226, 228
temporaal- (temporal) 235
terminite 21
tnapeva 29
uskumiste (of belief ) 246
vaikimisi- (default) 284
loogikareegel 32
loogikaseadus 55
loogikateadus 19, 34
loogiline
jreldumine 60, 62, 63,
238
konstant 77
positivism 40, 47, 48, 50
programmeerimine (logic
programming) 300,
348
ruut (square of opposition)
111
seos (connective, relation)
66
smbol 102
tehe 76
loogiliselt (logically) 61
ekvivalentne (equivalent)
62, 63, 74, 80
mittevimalik (impossible)
236
samavrne (equivalent)
118
tene (true) 6163, 88, 91,
106, 240
vimalik (possible) 236
vr (false) 61, 63, 88,
106
loomuliku tuletuse ssteem 131,
172
!ukasiewicz, J. 34, 336
!ukasiewiczi aksioom 337
Lull, R. 28
Luther, M. 27
likepredikaat (cut) 360
likereegel (cut) 176, 257, 362
likereegli elimineerimine (cut
elimination) 178
likevaba (cut-free) 178
lplik (nite) 17
lpliku mudeli omadus (nite-
model property)
247
lpmatus 32, 36, 37
potentsiaalne 340
Lwenheim, L. 41, 46
MacColl, H. 238
mahajtmine (dereliction) 292
404 Indeks
male 293
map 366
Markovi printsiip 251
masin
Babbagei 44
Leibnizi 44
Pascali 44
Turingi (Turing machine)
44, 46
Maslov, S. 299
matemaatika 34, 43, 48, 157,
196, 218, 250
alused 33, 36, 37, 249
intuitsionistlik 39
kaasaegne 30
matemaatiline
anals 35, 158
induktsioon 5, 187
matemaatilise induktsiooni
meetod 189
printsiip 35, 41, 189, 214
reegel 17
McCarthy, J. 283
Melissus 64
338
member 354
metakeel 40, 80
metamuutuja 81
metateoreem 32
mgu 314
Mill, J. S. 213, 266
Minsky, M. L. 235
mitteekvivalents 70
mitteeukleidiline geomeetria 218
mittelahenduv (undecidable) 12,
45, 131
mittelahenduvus (unsolvability)
46
mitteloogiline smbol 102
mittepredikatiivne (impredicative)
229
mittetielik (incomplete) 133,
218, 349
mittetielikkus (incompleteness)
19
mittevastuoluline (consistent) 36,
37
mittevasturkiv (consistent) 57,
163
modaalne (modal) 23
modaalsus (modality) 23
modus ponens 7, 132, 134, 169,
271, 302
modus tollens 134
monaadiline predikaatarvutus
(monadic) 244
monotoonne (monotonic) 276
Montague, R. 50
Moore, G. E. 47
Moore, R. 286
moraal 20, 48
MP 132, 134
MT 134
mudel (model) 40, 41, 50, 104,
161, 223
muutuja (variable) 14, 21, 101
asendamine 147
seotud (bound) 101, 376
seotud esinemine 101
sisaldumise kontroll (occur
check) 359
vaba esinemine 101
vaba (free) 101
muutujate mbernimetamine
(standardising apart)
313, 316, 324, 352
miste 21, 222
defineerimine 73
mistekiri v
misteloogika 21, 23, 25
mte 3, 65
mtlemine 26, 19, 47, 49
selge 47
mng (game) 49, 160, 358
116, 187, 213, 246
214
Naeris, V. 273
naturaalarv (natural number)
187
naturaalarvud (natural numbers)
206, 213
Indeks 405
naturaalarvude hulk 187
neelama 327
neelamisstrateegia 327, 373
negatiivne
informatsioon 280, 350
tulemus 196
Neumann, J. von 37, 196
Newton, I. 87, 218
Nicole, P. 27
nil 338
nimede unikaalsuse aksioomid
281
nimi 21
Nixoni romb (Nixon diamond)
278
Nobeli auhind 34
(a) 371
normaalkuju
disjunktiivne 137
konjunktiivne 137, 325
preeneks- (prenex) 146
Skolemi 150
tielik
disjunktiivne 137, 138
konjunktiivne 137, 138
not 362
not 69
null (nil) 290
nullfunktsioon 216
nrgendamine (weakening) 292
objektkeel 40, 80
objektorienteeritud keel 348
Ockham, W. 27
Ockhami habemenuga 27
olemasolukvantor 324
omaaksioom 162
omadus (property) 35, 46, 222
or 70
osahulk 155
osaline jrjestus (partial order)
258
osavalem (subformula) 77
otsingu suund
faktidest jrelduseni
(bottom-up) 332, 334
jreldusest faktideni
(top-down) 332334
otsustus 65
P 201
paarikonstruktor 354
palju (many) 129
paradoks (paradox) 24, 33, 36
Cantori 33, 35, 206, 218
habemeajaja 35
hletamisea (voting age)
268
inimeksistentsi (of human
existence) 268
kiilaspea (of the bald man)
268
kuhja- (of the heap) 267
Russelli 35, 218, 227
soriitide (sorites, of
vagueness) 267
Zenoni 20
valetaja (liar) 24, 35, 41,
42, 214
unte rivi 266
parajasti siis, kui 63
paralleelide aksioom (parallel
postulate) 128, 217
paramodulatsioon 323, 336, 369
paramodulatsiooni
tielikkus 323
paramodulatsioonireegel 323
paratamatu (necessary) 2, 6, 16
paratamatult tene 236
paratamatus (necessity) 10, 50,
235, 238, 246
paratamatuse sissetoomine
(necessitation) 238,
246
Parmenides 19
Pascal, B. 28, 44, 94, 213, 249
patsifism (pacism) 34
Peano, G. 34, 35
Peano
aksiomaatika (Peanos
axioms, Peanos
postulates) 162, 164,
213
406 Indeks
aritmeetika 42
postulaadid 35, 37
peatehe (main connective) 77
peatumisprobleem (halting
problem) 204, 205,
208
Peirce, C. S. 3032
Peircei reegel 38, 336
permutation 355
permutatsioon 137
Petrus Hispanus 26
Philon 24
pidevusaksioom 221
piiramine (circumscription) 283
predikaadi 283
universumi (domain) 283
piisav (sufcient) 76, 387
Platon 20
platonism 43, 250
Ploucquet, G. 29
pluss (plus) 290
Porphyrios 25, 26
positivism 40
predikaadi aarsus (arity) 96
predikaat (predicate) 46, 95
predikaatarvutus (predicate
calculus) 12, 23, 30,
42, 45, 46, 65, 94
esimest jrku (rst-order)
31, 41
tpidega 226
predikaatarvutuse
mittelahenduvus 319
valem 100
predikaatmuutuja 222
predikatiivne (predicative) 229
prefikskuju 97, 146, 149, 358
Priimgi, L. 55, 266
prioriteet 78
probleem (problem) 196
endal peatumise (self-
halting) 205
keeruline (hard) 298
kurjuse (of evil) 166
mittelahenduv 201
peatumis- (halting) 205
ringi kvadratuuri (squaring
the circle) 197
termide vrdsuse 368, 379,
382
tesuse 208
vaba tahte (of free will)
237
virga kopra (busy beaver)
201, 203, 205
ldine peatumis- (general
halting) 205, 220
Prodicus 20
produktiivsusfunktsioon 201
programmeerimine 10, 44
deklaratiivne 366
funktsionaalne 45, 366
programmeerimise paradigma
347
programmeerimiskeel
Ada 229, 366
Algol 229
assembler 346
Basic 346, 367, 376
C 346348, 366, 367, 376
deklaratiivne 346
FP 366
funktsionaalne 376
funktsionaalse programmeeri-
mise 227, 348
Haskell 347, 348, 366, 385
Hope 366
imperatiivne 346
Java 346, 348
Lisp 347, 367
loogilise programmeerimise
348
Miranda 366, 385
ML 348, 367
objektorienteeritud 229,
346, 348
Pascal 346, 348, 366, 367
Prolog 300, 347, 348, 350,
354, 376
protseduraalne 348
Scheme 348, 367
SmallTalk 348
Indeks 407
programmide automaatne sntees
229
programmi verifitseerimine 338
Prolog 348
standardne 349
Prologi
= 358
aritmeetika 357
eitav vastus (fail, no) 351
eitus 350, 362
mittetielikkus 359
otsingumootor (engine) 349,
354
programm 349
vastus (answer) 351
propositsioon (proposition) 65
Protagoras 20
protseduraalne keel 348
puhas mistus 29
Putnam, H. 50, 299
puu 259
avatud (open) 181
suletud (closed) 181
phjendama 19, 58
phjus 49
pring (goal, query) 350
Pts, K. 83
prdmeetod 299
psipunkt (xpoint) 378
psipunktifunktsioon 378
Pythagoras 20
QD 147, 148
QI 148
QM 148
QN 148
qsort 356
quicksort 356
Quine, W. V. O. 50, 228, 248
rakendusfunktsioon 382
rakendusterm 377
Ramus, P. 27
ratsionaalarvud (rational numbers)
116
ratsionaalarvude jrjestus 125
Raudam, T. 65, 130
reaalarvud (real numbers) 116,
123, 206
reaalarvude jrjestus 123
reaktsioon 288
realiseeritav (realizable) 262
realism 250
Red 135
redeks 378
reductio ad absurdum 20, 22
reduktsioon 375, 377
redutseerima 376
reegel (rule) 4, 5, 16, 49, 301,
350
refleksiivne 247
refleksiivsus 321
Reiter, R. 280, 284
rekursiivne
programm 227
realiseeritavus 255, 261
rekursiivselt loetletav (recursively
enumerable) 165, 220,
285
rekursiooniteooria (recursion
theory) 46
religioon 48, 50
renessanss 27
resolutsioon
jrjestatud 330
resolutsioonimeetod 131,
299303, 349, 353
resolutsioonimeetodi
korrektsus 306
lahendav algoritm 308
tielikkus 307, 319
resolutsioonireegel 300302, 311,
316, 330
ressurss 287
retoorikud 20
reverse 357
Riemann, G. F. B. 218
ring (niaring) 36
Robinson, J. 299, 307
Rosser, B. 380
Rummo, L. 94
408 Indeks
Russell, B. 1, 3236, 39, 41,
43, 47, 48, 50, 227
ruum 20
rhm (group) 158, 162
Abeli 162
rhmateooria 119, 161, 335, 367
samaselt (logically) 61
tene (true) 61, 118
vr (false) 61
samastama 222
samasus (identity) 10
samasusseadus (law of identity)
55, 58, 61, 89, 90,
287
Savisaar, E. 84
Schlick, M. 47
Schrder, E. 31, 32
Schnfinkel, M. 382
Scotus, J. 26
see (the) 107
seis (state) 293
seisund (state) 198
sekvents (sequence) 174
semantika (semantics) 40, 41,
48, 50, 79, 80, 160,
222
vimalike maailmade
(possible world) 50
semantiline puu 307
seos (relation) 83
avaldatav 73
tevrtusfunktsiooniline
(truth-functional) 83
vljendatav 73
signatuur (vocabulary, signature)
102, 103, 115
Siimann, M. 84
simp 364
Simp 132, 134
simuleerima 44, 45
sisu 29, 160
skolastiline 22
Skolem, T. 41, 46, 214, 225,
325
Skolemi
funktsioon (Skolem function)
150
konstant 150
skolemiseerimine (Skolemization)
324, 326
slowsort 357
sofistid 20
Sokrates 20, 21
sorteerimisalgoritm 356
spetsifitseerima 339
split 356
standardkonfiguratsioon 200
statistiline 4
stoikud 24, 25
strateegia
jrjestatud resolutsiooni 330
jrjestus- 331
neelamis- 327, 331
tautoloogia krvaldamise
328
toetus- 331
toetushulga 329
struktuur 116, 118
lplik 121
struktuuride klass 119
substitutsioon 81, 82, 311
minimaalne 312
successor-funktsioon 217
sugulussidemete
andmebaas 350
lesanne 12
suhe (relation) 46
suktsedent 174
suletud maailma
eeldus (closed-world
assumption) 280, 350,
362
reegel 285
sna (word) 49
sllogism (syllogism) 2123,
112, 133
kategooriline 27
sllogismifiguur 112
sllogismi moodused 133
sllogistika 23, 95
smbolaritmeetika 362
Indeks 409
smbolarv (numeral) 215
smmeetria 321
smmeetriline 247
sntaks 40, 76, 80, 160
sntaksipuu (parse tree) 78, 365
209
Zenon 20
Zermelo-Fraenkeli hulgateooria
157
T 246
t (T) 67, 79
tagasiprdumine (backtracking)
352
taju 48
Tarski, A. 40, 41, 102
tarvilik (necessary) 387
tarvilikkus (necessity) 76
tase (level) 227
tautoloogia (tautology) 8891
tautoloogiliselt ige 6
teadmine (knowledge) 10, 49,
51, 235, 286
teadmiste baas (knowledge base)
280
teaduslik 47
teadvus 2
tegelik maailm (real world) 239
tegevus (action) 198
tehisintellektiteadus 34, 51, 297
teist jrku predikaatloogika 221
teoloogia 26
katoliiklik 26
teooria (theory) 12, 223
aksiomatiseeritav 120
esimest jrku (rst-order)
118, 162
lahenduv 120
loendite 340
matemaatiline 115
mittelahenduv 120
mittemonotoonne (nonmono-
tonic) 276
mittenormaliseeritav 340
mudel 162
N 213
struktuuri 120
struktuuride klassi 120
vaikimisi- (default) 284
teoreem (theorem) 12, 143, 157
asendus- (replacement) 134,
136
Cantori 33
Churchi 208
Churchi-Rosseri 379, 385
deduktsiooni- 170
duaalsus- (duality) 190
Fermat 196
Gdeli esimene 219
Gdeli teine 220
Henkini 224
Herbrandi 317
Knuthi-Bendixi 372
kompaktsus- (compactness)
223, 224
korrektsuse- (soundness)
162, 193
loetlemis- (enumeration)
207
matemaatika- 175
mitteolemasolu 196
mittetielikkuse (incomplete-
ness) 18, 19, 32, 41,
42
mudeli- 163
Nelsoni 264
normaliseerimis- 378, 385
psipunkti- (xpoint) 378,
385
Skolemi 225
Skolemi-Lwenheimi 41,
223
Skolemi-Lwenheimi
laskumis- (downward)
223, 228
Skolemi-Lwenheimi
tusmis- (upward)
223, 228
substitutsiooni- 384
tielikkuse- (completeness)
41, 163, 195
410 Indeks
mbertstmis- 137
term 116, 313
muutuja asendamiseks vaba
171
termi
normaalkuju 369
rakendamine 376
termiteisendusssteem (re-write
system) 369
kokkuvoolav (conuent)
370
korrektne 370
mittepeatuv 375
peatuv 369
tielik (complete) 370
tertium non datur 172
Theophrastus 23
tihedus 124
toetushulk 329
transitiivne 247
transitiivsus 321
TTS 369
tuletama 5
tuletamine (deduction, inference,
derivation) 160
tuletatav (derivable) 305, 306
vahetult 159
tuletis 362
tuletus (derivation, deduction) 8,
10, 132
loomulik (natural) 172
tuletusreegel (inference rule) 11,
40, 82, 90, 131, 132,
134, 158, 159
tuletusssteem
H 168, 171, 192
K 170, 246
172
S4 246, 258
S5 239, 246
T 238, 245
Turing, A. M. 44, 46, 197, 319
Turingi masin 44, 45, 197, 198,
346
arvutab funktsiooni 201,
204
universaalne 207
Turingi masina
graaf (graph) 199
produktiivsus 201
Turingi tees (Turings thesis)
197
tde (truth) 2, 19, 38
absoluutne 19
matemaatiline 19
paratamatu 19
platooniline 38
tehulk 103
tendama 254
tene (true) 56, 67, 79, 269
interpretatsioonis 105
testama 5, 157
testus (proof ) 8, 10, 58, 158
finiitne (nitary) 218
induktiivne 187
intuitsionistlik 39
kaudne (indirect) 144
klassikaline 39
konditsionaalne (conditional)
140
mitteformaalne (informal)
156, 207
otsene 144
vastuviteline (indirect,
reductio ad absurdum)
56, 57, 144
testuste teooria (proof theory)
178
tesus (true) 3, 41
analtiline 50
loogiline 50
tesusaste (degree of truth) 268
tesuspuu (truth-tree) 179
tesuspuude meetod 131, 179
tevrtus (truth value) 56, 66,
79
tevrtustabel (truth table) 68,
8587, 130
osaline 86
tstmislemma 318
thendus (meaning) 40, 51
thestik (lexicon) 76, 100, 159
Indeks 411
tielik (complete) 17, 41, 160,
164, 301
tielikkus 133, 192
tielikkuse (completeness) 281
aksioom 281
eeldus (assumption) 281
tielikult modaliseeritud (fully
modalized) 241
tielikustamine (completion) 281
tisarvud (integers) 17, 35,
3941, 43, 116, 379
thikusmbol 198
tbiteooria 39, 226
lihtne 36
tp (type) 36, 227, 229
funktsiooni- 227
tpide hierarhia 36
UG 150, 151
UI 151
unaarne 96
unitseerija (unier) 312
kige ldisem (most general,
mgu) 313, 314
unitseerima (unify) 311, 314
hepoolselt 369
unitseerimisalgoritm 315
universaalne
funktsioon 207
Turingi masin 207
universaalsus 36
universum (universe) 30, 31, 95,
103
arutluse (of discourse) 31
universumi suletuse eeldus
(domain-closure
assumption) 283
uskuma 19
uskumine (belief ) 235
v (F) 67, 79
vaatlus 158
vaikimisireegel (default rule) 10,
274, 284
normaalne (normal) 284
poolnormaalne (semi-normal)
284
valem (formula, wff ) 100, 116
atomaarne (atomic) 76
kinnine (closed) 101
lahtine (open) 101
lausearvutuse 76
vastandid (contraries) 110, 111
vastuolu (contradiction) 36, 38,
145
vastuoluline (inconsistent) 37,
57, 305
vasturkiv (inconsistent) 57, 62,
63, 110, 111, 193
vasturkivus (contradiction) 24
vasturkivusseadus (law of
non-contradiction) 55,
61, 90, 270
verifitseerima 48
Victorinus, M. 25
Viini ring 47
vorm 29
vimalike maailmade semantika
239
vimalikkus (possibility) 10, 50,
235, 387
vimalik maailm (possible world)
236, 239
vimsus 33
vrdsete asendamise seadus
(substituivity of equals)
248, 322
vrdsus (par) 290
vrdus (equality) 321
hulkade 154
vrduse aksioomid 162
vrdusssteem 367, 375
vtmesna (keyword) 59
vhe (few) 129
vide 6, 35, 65
analtiline 50
empiiriline 50, 51
kategooriline 21
tinglik (conditional) 31
viteskeem 24
vlistatud kolmanda seadus (law
of excluded middle)
56, 57, 90, 252, 270
412 Indeks
vljaviimisreegel (exportation)
135
vljendatavus 49
vr (false) 56, 67, 79, 269
vrtustus (valuation) 85, 90
Walden, A. 130
Whitehead, A. N. 32, 34, 36,
39, 41, 47
Wiles, A. 196
Wittgenstein, L. 1, 31, 32, 34,
4749
write 358
ppima 4
hisosa 339
ldistama 4
ldistamisreegel (generalization)
171
ldisuskvantor (universal
quantier) 98
ldisuskvantori
eemaldamine (universal
instantiation) 150
sissetoomine (universal
generalization) 150,
172
leminek (transition) 293
mberpramisreegel (contraposi-
tion) 135
xor 70