Ralph-Johan Back Matematiikkaa logiikan avulla Rakenteiset päättelyketjut yleisenä todistusmuotona Turku Centre for Computer Science IMPEd Resource Centre TUCS Lecture Notes No 12, Jan 2009
Matematiikkaa logiikan avulla Rakenteiset päättelyketjut yleisenä todistusmuotona Ralph-Johan Back Tammikuussa 2009, Turku, Suomi Copyright Ralph-Johan Back All rights reserved TUCS Lecture Notes No 12 IMPEd Series
Esipuhe Rakenteiset päättelyketjut on menetelmä, jonka avulla voidaan luoda matemaattisia todistuksia ja johtoja Menetelmää on testattu hyvin tuloksin lukio- ja korkeakoulutason opetuskokeiluissa Menetelmä perustuu kiinteään muotoon, jossa matemaattinen todistus esitetään, sekä yksinkertaisen logiikan käyttöön Kiinteän muodon ansiosta johdettuja todistuksia on kohtalaisen helppo havainnoida ja ymmärtää, minkä lisäksi muoto edesauttaa todistusten oikeellisuuden varmentamista sekä todistuksen kirjoittaneelle henkilölle että sitä lukevalle henkilölle Tässä lyhennelmässä kuvataan rakenteiset päättelyketjut ja esitellään menetelmän yleinen rakenne ja semantiikka Rakenteiset päättelyketjut voidaan nähdä kolmen erilaisen todistustyypin yhdistelmänä: Hilberttyyppisen eteenpäinkulkevan todistuksen, Gentzen-tyyppisen taaksepäinkulkevan todistuksen sekä Dijkstra-tyyppisen laskelmoivan todistuksen yhdistelmänä Osoitamme, että rakenteisten päättelyketjujen ilmaisuvoima on sama kuin Gentzen-tyyppisten todistusten näyttämällä, että jokainen rakenteinen päättelyketju voidaan redusoida ekvivalentiksi Gentzen-tyyppiseksi todistukseksi ja päinvastoin Täten jokainen Gentzen-tyyppinen todistus voidaan nähdä rakenteisena päättelyketjuna Matematiikkaa logiikan avulla Tämä julkaisu kuuluu rakenteisia päättelyketjuja ja niiden soveltamisesta matematiikan opettamisessa kuvailevien artikkelien sarjaan Sarjassa on ilmestynyt tähän mennessä seuraavat julkaisut: Rakenteiset päättelyketjut lukion matematiikassa (Back, von Wright [8]) Lyhyt lukuteorian kurssi (Back, von Wright [6]) Pitkän matematiikan ylioppilastehtävät, kevät 2003 (Back, von Wright[7]) Johdatus rakenteisiin päättelyketjuihin (Back [1]) Logiikka ja rakenteiset päättelyketjut (Back [2]) Rakenteiset päättelyketjut yleisenä todistusmuotona (Back [3]) Sarjan muut artikkelit tarjoavat kiinnostuneille materiaalia menetelmän monipuolisempaan ymmärtämiseen ja sen käytännön soveltamiseen Kiitossanat Työtä rakenteisten päättelyketjujen kehittämiseksi ja kokeilut menetelmän soveltuvuudesta opetukseen on tehty läheisessä yhteistyössä Learning and Reasoning -laboratorion jäsenten kanssa Tutkimuslaboratorio on Åbo Akademin ja Turun yliopiston yhteishanke Haluan erityisesti kiittää seuraavia 2
henkilöitä menetelmään liittyvistä kiintoisista ja antoisista keskusteluista sekä myötävaikuttamisesta menetelmän kehitykseen (lista on aakkosjärjestyksessä): Stefan Asikainen, Johannes Eriksson, Tanja Kavander, Linda Mannila, Martin Nylund, Mia Peltomäki, Viorel Preoteasa, Teemu Rajala, Tapio Salakoski, Petri Sallasmaa, Fredrik Sandström, Patrick Sibelius, Solveig Wallin ja Joakim von Wright Erityinen kiitos Petri Sallasmaalle ja Paula Steinbylle, jotka ovat kääntäneet alkuperäisen ruotsinkielisen raportin suomeksi Suomen Akatemia ja Teknologiateollisuuden 100 vuotissäätiö ovat rahoittaneet tämän julkaisun perustana olevaa tutkimusta 3
Sisältö 1 Johdanto 5 2 Rakenteiset päättelyketjut 7 3 Gentzen-tyyppiset todistukset 12 4 Rakenteiset päättelyketjut ja Gentzen-tyyppiset todistukset 19 5 Erilaisten todistustyylien yhdistelmä 25 4
1 Johdanto Tässä artikkelissa luodaan yleiskatsaus rakenteisiin päättelyketjuihin matemaattisten todistusten ja johtojen esitysmuotona Muoto sallii tavallisten matemaattisten väitteiden tarkan todistamisen käyttäen logiikkaa apuna ratkaisuissa Tavoitteena on, että todistuksia olisi helppo ymmärtää jo ensilukemalta Lisäksi todistuksen oikeellisuuden tarkistamisen pitäisi olla entistä helpompaa sekä todistuksen kirjoittajalle että lukijalle Keskeisenä tavoitteena on lisätä rakenteisten päättelyketjujen avulla muodollisen loogisen argumentoinnin sekä matemaattisten todistusten käyttöä lukio- ja korkeakoulutasolla Tämä tapahtuu kahdella eri tasolla Ensinnäkin rakenteiset päättelyketjut kirjoitetaan kiinteään todistusmuotoon, joka on Dijkstran lineaaristen johtojen, Hilbert-tyyppisen todistusjärjestelmän sekä Gentzen-tyyppisen todistusjärjestelmän yhdistelmä Toisekseen käytämme loogista merkintätapaa ja loogisia päättelysääntöjä aritmetiikan ja algebran tavoin johdonmukaisena ja loogisena ratkaisukeinona Rakenteiset päättelyketjut jatkavat tietotekniikan suuren tienraivaajan Edsger W Dijkstran aloittamaa perinnettä Dijkstra ja hänen kollegansa (Wim Feijen, Carel Scholten ja Nettie van Gasteren) halusivat tehdä matemaattisista todistuksista tarkkoja mutta yksinkertaisia He kehittivät merkintätavan, joka alalla tunnetaan nimellä calculational proof [9, 14, 10] Termin sanatarkan suomennoksen laskennallinen todistus sijaan kutsumme näitä todistuksia lineaarisiksi johdoiksi tai päättelyketjuiksi Pyrkimys on esittää matemaattiset päättelyt ja todistukset yhtälönratkaisun, lausekkeen sievennyksen tai kertoja jakolaskun kaltaisina laskutoimituksina Päämäärä saavutetaan käyttämällä hyväksi logiikkaa ikään kuin kokoelmana laskusääntöjä, joilla voidaan todentaa matemaattisten väitteiden oikeellisuus Dijkstran todistustekniikka kehitettiin ohjelmointimetodiikaksi (tai ohjelmoinnin formaaleiksi menetelmiksi) kutsutulla tietotekniikan tutkimusalueella Sen keskeisenä teemana on tietokoneohjelmien matemaattisen oikeellisuuden varmentaminen Merkittävä määrä kyseisen tutkimusalueen tutkijoista ovat viimeisten 15-20 vuoden aikana ryhtyneet käyttämään julkaisuissaan Dijkstran laskennallista tapaa kirjoittaa todistuksia, ja menetelmää voidaan nykyään syystä pitää alan standardina David Gries ja Fred Schneider ovat tutkineet ja puoltaneet menetelmän käyttöä matematiikan opetuksessa [11, 13] sekä ovat julkaisseet kirjan menetelmän soveltamisesta yliopistojen logiikan ja diskreetin 5
1 Johdanto matematiikan opetuksessa [12] Joakim von Wright ja minä kehitimme rakenteiset päättelyketjut Dijkstran lineaaristen johtojen pohjalta Menetelmä esiteltiin alun perin tarkennuskalkyylia käsitelleessä kirjassamme [5] sekä eräässä aikakausjulkaisussa [4] Kirjassa rakenteisia päättelyketjuja käytetään lukuisiin, vaikeustasoltaan vaihteleviin, ohjelmointiloogisiin todistuksiin Dijkstran lineaariset johdot pohjautuvat ensimmäisen asteen predikaattilogiikan muunnelmaan sekä Hilbert-tyyppisiin todistusjärjestelmiin Rakenteiset päättelyketjut taas rakentuvat klassisen standardilogiikan (ns korkeamman asteen logiikan) ja Gentzen-tyyppisten todistusjärjestelmien ympärille Rakenteisia päätelyketjuja on myöhemmin kehitetty edelleen, ja tässä esitetty versio sallii myös Hilbert-tyyppiset todistukset Täten menetelmä voidaan nähdä klassisten Gentzen-tyyppisten todistusten, Hilberttyyppisten todistusten ja Dijkstran lineaaristen johtojen yhdistelmänä Rakenteiset päättelyketjut on käytännöllinen tekniikka, jonka avulla muodostetut todistukset ovat tarkkoja, mutta eivät vaadi taustalla olevan teorian kokonaisvaltaista aksiomatisointia Todistusten oikeellisuus on täten kiinni siitä, että taustalla olevan teorian argumentointi on paikkansapitävää Mikäli näin on niin, todistus on oikea Tämäntyylinen lähestymistapa antaa mahdollisuuden erottaa toisistaan todistusten kirjoittamiseen tarvittava tekniikka ja siihen liittyvän teorian aksiomatisointi, minkä johdosta rakenteisia päättelyketjuja voidaan käyttää millä tahansa matematiikan alueella Tekstissä on tarkoitus määritellä rakenteisten päättelyketjujen syntaksi ja semantiikka Aloitamme kuvailemalla luvussa 2 rakenteiset päättelyketjut yleisesti ja erityisesti sen, miten rakenteisia päättelyketjuja kirjoitetaan ja sovelletaan Luvussa 3 annetaan pikainen yleiskatsaus Gentzen-tyyppisiin todistuksiin Luvussa 4 määritellään rakenteisten päättelyketjujen semantiikka näyttämällä, miten jokainen rakenteinen päättelyketju voidaan redusoida ekvivalentiksi Gentzen-tyyppiseksi todistukseksi Viimeisessä kappaleessa osoitetaan, kuinka rakenteiset päättelyketjut voidaan nähdä kolmen keskeisen todistustyypin - Hilbert-tyyppisten todistusten, Gentzen-tyyppisten todistusten ja Dijkstran lineaaristen todistusten - yhdistelmänä 6
2 Rakenteiset päättelyketjut Rakenteiset päättelyketjut tarjoavat yleisen mallin ongelmanratkaisuun Rakenteisten päättelyketjujen avulla voidaan esittää matemaattisia väitteitä (lause, lemma, tehtävä) ja niiden todistuksia, laskutehtäviä, joissa halutaan systemaattisesti määrittää jokin arvo, konstruktiotehtäviä, joissa systemaattisesti työstetään matemaattinen tehtävän reunaehdot toteuttava ratkaisu Aloitetaan kuvaamalla rakenteisten päättelyketjujen syntaksi ja kirjoitusmuoto Viittaamme artikkeliin [1] rakenteisten päättelyketjujen intuitiivisempaan esittelyyn esimerkkikokoelman avulla Siinä havainnollistetaan erilaisia tapoja soveltaa menetelmää matemaattisessa argumentoinnissa Päättelyketju (Rakenteinen) päättelyketju muodostuu ratkaistavasta tehtävästä, kokoelmasta havaintoja, jotka työstetään osana ratkaisua, sekä todistuksesta, joka näyttää sen, miten tehtävä ratkaistaan Tehtävänä voi olla loogisen väittämän oikeaksi todistaminen, konstruktiotehtävän ratkaiseminen tai laskutehtävä, jossa pitää määritellä jokin tietty arvo Päättelyketjulla on yleinen muoto: Päättelyketju= tehtävä havainto 1 havainto n [todistus] missä n 0 Aluksi siis kirjoitetaan tehtävä, sen jälkeen kokoelma havaintoja ja lopuksi todistus (ratkaisu) tehtävälle Jos n = 0, päättelyketjussa ei ole lainkaan havaintoja Todistus on kirjoitettu hakasulkeisiin osoittamaan, että se voidaan tarvittaessa jättää pois Myös todistuksettomat päättelyketjut ovat sallittuja Syntaksi on tarkoitettu tukemaan myös keskeneräisiä päättelyketjuja, joissa on mahdollisesti tehtävä ja 7
2 Rakenteiset päättelyketjut havaintoja, muttei vielä varsinaista todistusta Tällainen päättelyketju on syntaktisesti oikein (toisin sanoen se on rakenteinen päättelyketju), mutta se ei ole täydellinen Päättelyketju on täydellinen, jos siinä on kaikki tarvittavat todistukset Täydellinen päättelyketju ei välttämättä ole virheetön siinä mielessä, että jokainen todistusaskel olisi oikein Vasta jos päättelyketju on virheetön, tiedetään että päättelyketjun väittämä on tosi Tehtävä Tehtävä koostuu ratkaistavasta tai todistettavasta väittämästä sekä joukosta oletuksia, jotka tehdään tehtävän ratkaisemiseksi Tehtävällä on yleinen muoto: Tehtävä= [väite] oletus 1 oletus n missä n 0 Jos n = 0, ei oletuksia ole Hakasulkeet väitteen ympärillä merkitsevät, ettei päättelyketjussa tarvitse välttämättä olla eksplisiittistä väitettä Jos väite puuttuu, oletetaan sen olevan pääteltävissä suoraan itse todistuksesta Syntaksimäärittelyissä palstat on erotettu pystysuoralla viivalla, jotta syntaksi olisi helpompi ymmärtää Näitä viivoja ei ole kuitenkaan käytännössä tarkoitus piirtää näkyviin Väite sekä oletus 1,, oletus n ovat loogisia lausekkeita (loogisia väittämiä) Tehtävää merkitään tavallisesti merkillä Merkin sijaan voidaan käyttää myös tarkempia tunnisteita, esimerkiksi lause 3, tehtävä 7a tai ongelma 14 Oletukset merkitään tavallisesti symbolilla Viivan sijaan oletukset voidaan merkitä tarkemmin tunnistein, esimerkiksi [1], [2], [3] tai [a], [b], [c] Yksi käyttämämme vaihtoehto on kirjoittaa oletukset hakasulkeiden sisään, jolloin ne erottuvat selvästi itse päättelyn termeistä Huomaa, että tehtävä kirjoitetaan kahteen palstaan Vasemmanpuoleiseen palstaan kirjoitetaan erikoissymbolit kuten ja, kun taas oikeanpuoleiseen palstaan kirjoitetaan varsinainen teksti Havainto Havainto rakentuu väitteestä, jota seuraa argumentti siitä, miksi väite on tosi Havaintoa merkitään tavallisesti merkillä + Sille voidaan myös antaa tarkempi tunniste kuten Apulause 3, Huomio 1, tai [1], [2], [3], jne Syntaksi on seuraavanlainen: 8
2 Rakenteiset päättelyketjut havainto= + väite [argumentti] Argumentti perustelee, miksi väite pätee Väite voi olla ilman argumenttiakin Tästä on hyötyä todistusta työstettäessä Yleensä on hyvä kirjoittaa näkyviin väitteet, joita haluaa todistuksessa käyttää, ja todistaa niistä myöhemmin ne, joita siinä todella käytetään Päättelyketju on täydellinen vasta, kun kaikki havainnoissa esiintyvät väitteet on todistettu Todistus Todistuksella on yleinen muoto todistus= [argumentti] [todistusketju] [ ] Todistuksen aloittavan argumentin voi jättää pois mikäli se on asiayhteydessä itsestään selvä Todistusketju ei myöskään ole todistuksessa välttämätön Todistusaloitetaan merkillä Se voidaan lopettaa merkkiin tai vastaavaan merkintään, kuten esimerkiksi mot ( mikä on todistettu ) Todistussymboli merkitsee, että kaikki tehtävän oletuksetovat voimassasekä todistuksessa että sen osatodistuksissa Mikäli todistuksen oletusten ei haluta olevan voimassa osatodistuksissa, voidaan käyttää merkkiä 0 merkin sijaan Yleensä todistus rakentuu todistusketjusta, ja argumentti puuttuu Tietyissä tapauksissa argumentti kirjoitetaan, jos ei ole ilmeistä, miksi todistusketju ratkaisee väitteen On myös mahdollista tehdä todistus ilman todistusketjua Tällöin argumentti todistaa väitteen suoraan, eikä todistusketjua tarvita Molemmista todistusmuodoista on esimerkki artikkelissa [1] Todistusketju Todistusketjulla on yleinen muoto todistusketju= termi 0 rel 1 argumentti 1 termi 1 termi n 1 rel n argumentti n ] termi n ] 9
2 Rakenteiset päättelyketjut missä n 1 Todistusketjussa täytyy siis aina olla vähintään yksi relaatiotermi Tässä rel 1,, rel n ovat relaatiosymboleja Termi on tässä tapauksessa jokin (esimerkiksi looginen, aritmeettinen tai algebrallinen) lauseke Argumentti Argumentti koostuu perustelusta sekä sitä mahdollisesti seuraavista alijohdoista Perustelu selittää, miksi argumenttiin liittyvä väite on totta, jos jokainen alijohto todistetaan Alijohto on päättelyketju itsessään, toisin sanoen todistuksen määritelmä on rekursiivinen Argumentilla on yleinen muoto argumentti = [ { perustelu } ] alijohto 1 alijohto n missä n 0 Jos n = 0, ei alijohtoja ole lainkaan Tällöin perustelun on selitettävä suoraan, miksitehtävä ratkeaa On myös mahdollista, että argumentissa on alijohtoja, mutta perustelu puuttuu Tätä muotoa voi käyttää, jos perustelu on selvä asiayhteydestä Määrittelemättömät rakenteet Edellä esitelty syntaksi jättää monet konkreettiset yksityiskohdat määrittelemättä Ajatuksena on, että ne määräytyvät käytettävän loogisen teorian ja halutun tarkkuustason mukaan Jotta rakenteisten päättelyketjujen rakenne olisi täydellinen, pitäisi vielä määritellä seuraavat käsitteet: väittämät miten ratkaistava tehtävä tai todistettava väittämä ilmaistaan oletukset miten päättelyketjussa olevat oletukset ilmaistaan perustelut miten perustelut kirjoitetaan termit minkälaisia termejä saa käyttää päättelyketjuissa ja miten ne ilmastaan relaatiot mitä relaatioita saa käyttää päättelyketjuissa 10
2 Rakenteiset päättelyketjut Nämä kategoriat jätetään määrittelemättä Tällöin todistusmenetelmää voidaan soveltaa vaihtelevalla tarkkuudella matematiikan eri osa-alueilla Tämä mahdollistaa myös matemaattisten tehtävien ratkaisemisen rakenteisten päättelyketjujen avulla ilman, että tarvitsee hylätä yleisiä matemaattisia käytäntöjä, merkintätapaa, sääntökokoelmia ym joita kyseisen tehtävän alueelle kuuluu Rakenteisen päättelyketjun rakentaminen Rakenteinen päättelyketju noudattaa tarkoja sääntöjä Ongelmaa ratkaistaessa pitää rakenteisen päättelyketjun rinnalla kirjoittaa myös yleinen pohdinta tehtävästä Pohdinnan tarkoitus on kuvata sitä ympäristöä, jossa tehtävä ratkaistaan Siihen voidaan kirjoittaa esimerkiksi päättelyketjussa käytettäviä yleisiä sääntöjä (mukaan voidaan liittää sääntöjen perustelut), tai siinä voidaan tarkastella todistukseen liittyviä kuvioita ja taulukoita Pohdintaan voidaan myös kirjoittaa päättelyketjuun tai tehtävään liittyviä havaintoja, jotka auttavat lukijaa ymmärtämään, mitä tehtävässä tehdään ja miten päättelyketju on rakennettu Rakenteisten päättelyketjujen rakenne sallii alusta loppuun - ja lopusta alkuun -todistuksien sekaisin kirjoittamisen, mikä lisää todistuksen kirjoittajan mahdollisuuksia Alusta loppuun -todistuksissa muotoillaan ensin havainnot (väitteet, lemmat), joiden arvellaan olevan hyödyllisiä, kun itse päätodistusta ryhdytään kirjoittamaan Havainnot voidaan todistaa heti, jos halutaan olla varmoja, että ne ovat voimassa, tai niiden todistuksen voi jättää myöhemmäksi, mikäli ei ole varma siitä, että havaintoa tarvitaan todistuksessa Lopusta alkuun -todistuksissa muotoillaan ensiksi päätehtävä, ja vasta sen jälkeen ryhdytään kirjoittamaan itse todistusta Mikäli jotakin tulosta tarvitaan suuremman askeleen perustelemiseksi, se todistetaan johdon sisällä askeleen alijohtona Vaihtoehtoisesti tarvittavan tuloksen voi kirjoittaa havaintona, ja se voidaan todistaa joko heti tai vasta myöhemmin, kun on selvää, että päälauseen todistus on mahdollista tehdä käytössä olevien havaintojen avulla 11
3 Gentzen-tyyppiset todistukset Gentzen-tyyppiset todistukset muodostavat rakenteisten päättelyketjujen matemaattisen ja loogisen perustan Tässä luvussa luodaan katsaus näihin todistuksiin Seuraavassa luvussa kuvaillaan, miten rakenteiset päättelyketjut voidaan nähdä Gentzen-tyyppisinä todistuksina, varustettuina erityisellä merkintätavalla ja omilla sopimuksilla, joiden tarkoituksena on tehdä puolimuodollisesta todistamisesta helpompaa Loogiset väittämät Looginen väittämä on joko tosi tai epätosi, esimerkiksi sataa tai lämpötila on -10 Looginen väittämä saattaa sisältää loogisia muuttujia, kuten esimerkiksi x lausekkeessa x on alkuluku tai x ja y lausekkeessa x 2 + y 2 10 Silloin totuus on riippuvainen loogiselle muuttujalle annetusta arvosta, esimerkiksi väittämä x on alkuluku on tosi, kun x = 2 tai x = 5, mutta epätosi, kun x = 4, ja väittämä x 2 + y 2 10 on tosi, kun x = 2, y = 2, mutta epätosi, kun x = 3, y = 2 Arvon a sijoittaminen loogiseen muuttujaan x merkitään x := a Samalla kertaa voidaan sijoittaa arvot useammalle muuttujalle, jolloin merkitään x, y, z := a, b, c (tai x := a, y := b, z := c) Looginen seuraus Looginen seuraus on lauseke, joka on muotoa A 1,, A m B, missä A 1,, A m, B ovat loogisia lauseita ja m 0 Lauseet A 1,, A m ovat loogisen seurauksen oletuksia ja B on loogisen seurauksen väittämä Olkoot x 1,, x k lauseissa A 1,, A m, B esiintyvät loogiset muuttujat Tällöin intuitiivisesti väitetään, että jos oletukset A 1,, A m ovat totta joillain loogisten muuttujien arvoilla x 1 := a 1,, x k := a k, myös väittämä B on tosi samoilla arvoilla Kaava A 1,, A m B luetaan oletuksista A 1,, A m seuraa väittämä B Myös arvo m = 0 on mahdollinen, eli oletuksia ei välttämättä ole lainkaan Tällöin merkitään B Useimmiten seuraus kirjoitetaan muotoon Φ B, 12
3 Gentzen-tyyppiset todistukset missä Φ ={A 1,, A m } Merkkiä Φ ajatellaan tässä pikemminkin väittämien joukkona (eikä niinkään jonona), sillä väittämien järjestyksellä ei ole merkitystä Seurauksen B voi kirjoittaa muotoon B Johtopäätös Johtopäätös on muotoa H 1,, H n C missä H 1,, H n ja C ovat lauseita ja n 0 Lauseet H 1,, H n ovat johtopäätöksen hypoteesit ja seuraus C on päättelyn johtopäätös Päättelyllä ei tarvitse olla hypoteeseja (n = 0) Hypoteesitonta johtopäätöstä kutsutaan aksioomaksi Intuitiivisesti päättelyssä väitetään, että mikäli lauseet H 1,, H n pätevät, johtopäätös C toteutuu Aksioomajärjestelmä Aksiomaattinen järjestelmä kuvailee, millaisia loogisia lauseita saa kirjoittaa, sekä minkälaisia päättelyjä voi käyttää, kun lauseiden totuusarvoa punnitaan On olemassa useita eri aksioomajärjestelmiä, mutta käytännössä vain muutamat näistä ovat käytössä Eniten käytetään propositiologiikkaa, predikaattilogiikkaa, aksiomaattista joukko-oppia, korkeamman asteen logiikkaa sekä konstruktiivista tyyppiteoriaa Yhdessä nämä aksioomajärjestelmät kattavat suurimman osan nykymatematiikasta Päättelysäännöt Tavallisesti aksiomaattisessa järjestelmässä on sallittu ääretön määrä päättelyitä Kaikkien sallitujen päättelyiden joukon kuvaamiseen käytetään päättelysääntöjä Päättelysäännön muoto on seuraavanlainen: N : H 1[X],, H n [X], jos V [X] C[X] missä n 0 Päättelysääntö kirjoitetaan päättelynä, mutta se voi sisältää erilaisia syntaktisia rakenteita vastaavia syntaktisia muuttujiax = X 1,, X n (joita usein kutsutaan metamuuttujiksi) Seuraus S kirjoitetaan muotoon S[X], millä ilmaistaan se, että S sisältää metamuuttujia muuttujajoukosta X N on päättelysäännön nimi Päättelysäännöllä voi olla ehtov [X], joka rajoittaa säännön käyttömahdollisuuksia Päättelysääntö on kaavio, jonka mukaisesti sallitut päättelyt kirjoitetaan Syntaktisten lauseiden E = E 1,, E h arvon antaminen metamuuttujille X = X 1,, X h merkitään X := E Jos se tapahtuu säännössä N, niin kirjoitetaan N[X := E], ja saadaan päättely N : H 1[E],, H n [E] C[E] 13
3 Gentzen-tyyppiset todistukset eli jokainen päättelysäännössä esiintyvä metamuuttuja X i, on korvattu syntaktisella lauseella E i, i = 1,, h Tämä päättelysääntö on sallittu,mikäli ehto V [E] täyttyy Yleensä käytössä on rajaton määrä syntaktisia lauseita, joita voi asettaa metamuuttujien arvoiksi Tästä syystä päättelysääntö voi kuvata äärettömän määrän sallittuja päättelyjä Esimerkkejä päättelysäännöistä: Seuraava aritmetiikan transitiivisuussääntötoimikoon esimerkkinä: Transitiivisuus: Φ 1 t R t Φ 2 t R t Φ 1 Φ 2 t R t, jos R {=,,, <, >} Säännön mukaan oletusjoukoille Φ 1 ja Φ 2 sekä mielivaltaisille aritmeettisille termeille t, t, t pätee seuraava: jos voidaan osoittaa, että oletuksista Φ 1 seuraa t R t, ja että oletuksista Φ 2 seuraa t R t, voidaan tehdä johtopäätös, että t R t toteutuu oletusyhdisteellä Φ 1 Φ 2 Tämä sääntö on voimassa relaatioilla =,,, <, > Ehto on siis rajoitus sille, miten säännön seurauksissa esiintyvät väittämät voidaan konstruoida Päättely saadaan päättelysäännöstä korvaamalla metamuuttujat oikeilla syntaktisilla termeillä Esimerkiksi seuraava päättely seuraa transitiivisuussäännöstä: x < 0, y 1 x + 1 y x < y, y 1 y x 2 x < 0, y 1, x < y x + 1 x 2 { Transitiivisuus; X := E; V [E] } Päättelyn perusteluon päättelyn perässä aaltosulkeissa Perustelu ilmaisee päättelysäännön, jota on käytetty päättelyn muodostamiseksi; tässä käytetään transitiivisuussääntöä säännössä käytetyn sijoituksen; tässä käytetään sijoitusta X := E, joka on Φ 1 := {x < 0, y 1}, Φ 2 := {x < y, y 1}, R :=, t := x + 1, t := y, t := x 2 14
3 Gentzen-tyyppiset todistukset minkä lisäksi todetaan, että säännön ehdot toteutuvat; tässä ehto V [E] on että {=,,, <, >} Toinen esimerkki päättelysäännöstä on sijoitussääntö Φ a = b Sijoitus: Φ u[a] = u[b] Sijoitussäännön mukaan hypoteesista Φ a = b seuraa, että johtopäätöksen väittämä Φ u[a] = u[b] on tosi jokaiselle syntaktiselle muuttujalle Φ, a, b ja u Hypoteesi Φ a = b merkitsee tässä sitä, että väittämä a = b on tosi mikäli oletukset Φ ovat tosia Väittämä Φ u[a] = u[b] tarkoittaa, että u[a] = u[b] on tosi oletuksilla Φ Tässä u[a] on lause u[x], jossa X on korvattu arvolla a ja u[b] on sama lause, jossa X on korvattu arvolla b Tällä säännöllä ei ole ehtoja, joten kaikki sijoitussäännöstä saatavat päättelyt ovat sallittuja Seuraavassa esimerkki sijoitussäännöllä saadusta sallitusta päättelystä y 0 x/y = 1, {Sijoitus; X := E} y 0 1 + x/y + x y = 1 + 1 + x y missä X := E on Φ := {y 0}, a := x/y, b := 1, u[x] := 1 + X + x y Huomattakoon, että a ja b sijoitetaan samaan lauseen u[x] osalauseeseen X Kolmannessa esimerkissä hyödynnetään oletuksia: Oletus: Φ, B B 15
3 Gentzen-tyyppiset todistukset Tämän säännön mukaan jokainen oletuksissa mainittu väittämä on suoraan tosi, eli se on aksiooma Esimerkki päättelystä, joka saadaan tästä säännöstä on {Oletus;Φ := {x < 0}, B := y 1} x < 0, y 1 y 1 Useimmiten käytännössä jätetään lukijan tehtäväksi päätellä, mitä sijoitusta johtopäätöksen tekemisessä on käytetty, sekä tarkistaa, että käytetty sijoitus täyttää päättelysäännön ehdot Perusteluksi riittää mainita, mitä päättelysääntöä päättelyssä on käytetty Yleisenä periaatteena on, että lukijan olisi mahdollisimman helppo nähdä käytetyt sijoitukset Usein sijoituksessa mainitaan vain ne syntaktiset muuttujat, joiden kohdalla päättelystä on hankala nähdä, mitä sijoitusta on käytetty Ne syntaktiset muuttujat, joiden arvot ovat ilmeisiä asiayhteydestä, jätetään pois Päättelysäännöt, päättelyt ja seuraukset Huomaa päättelysääntöjen, päättelyiden ja seurausten eroavaisuudet: Päättelysääntöä käytetään sallittujen johtopäätösten vetämiseen Päättelyssä yksi lause (johtopäätös) on tosi, mikäli tietyt muut lauseet (hypoteesit) voidaan osoittaa todeksi Seuraus kuvailee tutkimuksen kohdetta, väittämä on tosi joillakin oletuksilla Todistus Todistusyhdistää yksittäiset päättelyt suuremmiksi argumenteiksi TodistusrakenteellaS on seuraavanlainen muoto S ::= S 1,, S n {N; X := E; V [E]} Φ B Määrittely on rekursiivinen, myös S 1,, S n ovat todistusrakenteita Tässä N viittaa johonkin käytettävän aksiomaattisen järjestelmän päättelysääntöön, X := E on arvojen E sijoitus päättelysäännön syntaktisiin muuttujiin X, ja V on ehto sille, että sääntöä saa käyttää Todistusrakenne S on loogisen seurauksen Φ B todistus, jos seuraavat ehdot toteutuvat: 16
3 Gentzen-tyyppiset todistukset 1 S i on jonkin seurauksen Φ i C i todistus, i = 1,, m 2 Päättely Φ 1 C 1,, Φ m C m {N; X := E; V [E]} Φ C on sallittu, eli se on saatu päättelysäännöstä N sijoituksella X := E siten, että ehto V [E] toteutuu 3 Todistusrakenne S on päättyvä Rekursiivinen määritelmä mahdollistaa päättymättömät todistusrakennelmat Kolmas ehto takaa kuitenkin sen, ettei päättymättömiä todistusrakennelmia hyväksytä todistuksiksi Todistus on päättyvä, jos kaikki päättelyt enemmin tai myöhemmin päättyvät aksioomiin, eli päättelyhin, joilla ei ole hypoteeseja Seuraavassa on esimerkki yksinkertaisesta todistuksesta: y 0, x/y = 1 x/y = 1 {oletus} y 0, x/y = 1 1 + x/y + x y = 1 + 1 + x y {sijoitus} Toinen esimerkki on summan ja erotuksen tulon kaavan todistus (a b)(a + b) = a 2 + ab ba b 2 {D} a 2 + ab ba + b 2 = a 2 b 2 {A} (a b)(a + b) = a 2 b 2 {T} Tässä D tarkoittaa osittelulakia, A yhteenlaskusääntöä ja T transitiivisuuttakyseinen todistus kasvaa ylöspäin kuin puu Todistus on kuitenkin päättyvä, sillä molemmat kasvavan puun oksat päättyvät aksioomiin Kyseinen muoto todistusten esittämiseen on kehitetty nimenomaan yksinkertaisen matemaattisen rakenteen takia, jossa todistuksia voidaan analysoida yleisesti Käytännön matemaattiseen todistamiseen muoto sopii huonosti, sillä paperilla todistuksista tulee helposti liian pitkiä ja monimutkaisia Johdetut päättelysäännöt Suoraan aksioomista seuraavat päättelysäännöt ovat käytännössä usein liian primitiivisiä ja yksinkertaisia Jotta päättelyn yhden vaiheen aikana voitaisiin tehdä enemmän, yhdistetään usein monta päättelyä yhdeksi askeleeksi Näin 17
3 Gentzen-tyyppiset todistukset saadaan toisista päättelysäännöistä johdettuja päättelysääntöjä, joiden oikeellisuus on todistettu Johdettu päättelysääntö voi sisältää syntaktisia muuttujia, joiden sisältö pysyy samana koko todistuksen ajan, sekä ehtoja, jotka ovat peräisin todistuksessa käytetyistä päättelysäännöistä Esimerkkinä voidaan yleistää alla oleva todistus seuraavanlaiseksi johdetun päättelysäännön todistukseksi: Φ, a = b a = b {oletus} Φ, a = b u[a] = u[b] {sijoitus} Tämän voi kirjoittaa yhtenä ainoana päättelysääntönä, Φ, a = b u[a] = u[b Toisin sanoen voidaan suoraan päätellä yhtäsuuruus u[a] = u[b], mikäli a = b on yksi oletuksista Tätä sääntöä voidaan käyttää seuraavan päättelyn muodostamiseksi y 0, x/y = 1 1 + x/y + x y = 1 + 1 + x y, {Sijoitus,oletus} Käytännössä käytetään useinjohdettuja päättelysääntöjä Johdettu päättelysäätö voidaan todistaa suoraan, kuten yllä on tehty, mutta useimmiten tyydytään mainitsemaan kyseisen säännön johtamiseen tarvittavat päättelysäännöt 18
4 Rakenteiset päättelyketjut ja Gentzen-tyyppiset todistukset Gentzen-tyyppisettodistukset ovat standardeja matemaattisessa logiikassa, ja niitä käytetään mm interaktiivisissa lauseentodistusohjelmissa kuten PVS, HOL ja Isabelle Tässä luvussanäytetään, että rakenteiset päättelyketjut voidaan nähdä Gentzen-tyyppisen todistuksen muunnelmina Aluksi näytetään, että jokainen Gentzen-tyyppinen todistus voidaan kirjoittaa rakenteisena päättelyketjuna Jokainen rakenteinen päättelyketju voidaan vuorostaan redusoida ekvivalentiksi Gentzen-tyyppiseksi todistukseksi Rakenteiset päättelyketjut sisältävät rakenteita, joilla ei ole suoranaisia vastineita Gentzen-tyyppisissä todistuksissa, mutta nämä voidaan korvata Gentzen-tyyppisten todistusten vastaavilla rakenteilla Rakenteiset päättelyketjut tarjoavat siis Gentzen-tyyppisille todistuksille uuden merkintätavan sekä joukon konventioita, jotka helpottavat todistuksen muodostamista ja ymmärtämistä käytännössä Rakenteisten päättelyketjujen matemaattinen perusta on sama kuin Gentzen-tyyppisten todistusten Rakenteisten päättelyketjujen merkitys (semantiikka) on sama kuin niitä vastaavien Gentzentyyppisen todistusten Gentzen-tyyppinen todistus rakenteisena päättelyketjuna todistuksessa todistusaskeleella on yleinen muoto Gentzen-tyyppisessä Φ 1 C 1,, Φ m C m Φ C {N; X := D; V [E]} missä m 0, sekä Φ, Φ 1,, Φ m ovat kukin joukko loogisia väittämiä, Φ ={A 1,, A n } ja Φ i ={A i,1,, A i,ni }, missä i = 1,, m, n, n 1,, n m 0 ja C, C 1,, C m ovat loogisia väittämiä Päättelyn Φ C pelkistämiseksi hypoteeseiksi Φ C 1,, Φ C m on käytetty päättelysääntöä N, jonka syntaktiset muuttujat on korvattu sijoituksella X := E Perusteluissa on tämän lisäksi mainittu, että ehtoa V [X] sovelletaan sijoituksella X := E Ehdon toteuminen mahdollistaa päättelysäännön N käytön, eli ehdon V [E] pitää toteutua Todistusaskel kirjoitetaan rakenteisena päättelyketjuna seuraavasti: 19
4 Rakenteiset päättelyketjut ja Gentzen-tyyppiset todistukset C - Φ 0 {N; X := D; V [D]} C 1 - Φ 1 C m - Φ m Alijohdoissa merkintä Φ i vastaa listaa A i,1 A i,ni Huomaa, että todistuksessa käytetään merkkiä 0 eikä tavanomaista merkkiä Tämä tarkoittaa, että pääjohdon oletukset eivät ole automaattisesti voimassa alijohdoissa Todistus rakennetaan nyt samaan tapaan rakenteisena päättelyketjuna ja perinteisenä Gentzen-tyyppisenä todistuksena hajottamalla todistus osatehtäviin Todistus on täydellinen silloin, kun jokaisella osatehtävällä on todistus Rakenteinen päättelyketju Gentzen-tyyppisenä todistuksena Käänteisesti voidaan kysyä, voidaanko jokainen rakenteinen päättelyketju kirjoittaa Gentzentyyppisenä todistuksena Tämä on tärkeä kysymys, koska se kertoo, kuinka havainnollinen todistusjärjestelmä on Jos on rakenteisia päättelyketjuja, joita ei voi muuntaa Gentzen-tyyppisiksi todistuksiksi, voisi rakenteisilla päättelyketjuilla todistaa väitteitä, joita ei pystytä todistamaan Gentzen-tyyppisillä todistuksilla Tällöin rakenteisilla päättelyketjuilla voisi todistaa liikaa, toisin sanoen myös epätosia väitteitä Tätä ei kuitenkaan tarvitse murehtia, sillä voidaan osoittaa, että jokainen rakenteinen päättelyketju voidaan redusoida ekvivalentiksi Gentzen-tyyppiseksi todistukseksi Tästä saadaan rakenteisten päättelyketjujen semantiikka: rakenteisella päättelyketjulla on sama merkitys kuin sitä vastaavalla Gentzen-tyyppisellä todistuksella Alla näytetään, miten mielivaltainen rakenteinen päättelyketju voidaan muuttaa ekvivalentiksi Gentzen-tyyppiseksi todistukseksi Rakenteisilla päättelyketjuilla on kolme rakennetta, joita ei suoraan löydy Gentzen-tyyppisestä todistuksista: havainnot, todistusketjut ja perityt oletukset Seuraavaksi osoitetaan, kuinka rakenteisessa päättelyketjuissa voidaan järjestelmällisesti korvata nämä kyseiset rakenteet vastaavilla rakenteilla, joita 20
4 Rakenteiset päättelyketjut ja Gentzen-tyyppiset todistukset käytetään rakenteisten päättelyketjujen Gentzen-tyyppisiä todistuksia vastaavassa rajoitetussa muodossa 1) Havaintojen eliminointi Tarkastellaan ensin havaintoja Havainnon todistus näyttää periaatteessa sellaiselta kuin vasemmanpuoleisessa ruudussa on esitetty Samalla rakenteella on kuitenkin oikeanpuoleisessa ruudussa esitetyn kaltainen ekvivalentti esitys C - Φ C - Φ + L {perustelu L } H 1 H k {perustelu C } C 1 - Φ 1 C m - Φ m {perustelu C, lemmasääntö} L {perustelu L } C 1 - L - Φ 1 C m - L - Φ m H 1 H k Toisin sanoen havainnosta Ψ L muodostuu ylimääräinen hypoteesi päättelyn C todistuksessa Hypoteesi todistetaan oletusten Φ avulla Mutta konjunktiota Ψ L voidaan silloin käyttää ylimääräisenä oletuksena hypoteesien C 1,, C m todistamisessa Samalla tavalla kaikki havainnot voidaan poistaa yksi kerrallaan, kunnes yhtään havaintoa ei ole jäljellä Seuraava sääntö nimetään lemmasäännöksi: Ψ L Φ, L C {lemmasääntö} Φ Ψ C 21
4 Rakenteiset päättelyketjut ja Gentzen-tyyppiset todistukset 2) Todistusketjujen eliminointi Tarkastellaan tämän jälkeen todistusketjuja Vasemmanpuoleisessa ruudussa oleva todistus on kirjoitettu todistusketjuna Oikeanpuoleisessa ruudussa on ekvivalentti kirjoitusmuoto, joka on tehty puhtaana reduktiivisena todistuksena: {perustelu} {perustelu} alijohto 1 alijohto 1 alijohto k alijohto k t 0 t 0 R 1 t 1 R 1 argumentti 1 t 1 R 2 argumentti 2 argumentti 1 t 1 R 2 t 2 argumentti 2 R n t 2 t n 1 argumentti n t n t n 1 R n t n argumentti n Tässä on korvattu lineaarinen johto kokoelmalla alijohtoja, jotka yhdessä todistavat saman asian Tämä osoittaa, että kaikki todistusketjut voidaan eliminoida rakenteisista päättelyketjuista 3) Periytyvien oletusten eliminointi Lopuksi tarkastellaan periytyviä oletuksia Perinteisessä Gentzen-tyyppisessä todistuksessa ei käytetä periytyviä oletuksia, vaan kaikki päättelyssä käytettävät oletukset on kirjoitettava eksplisiittisesti Käytännössä tämä johtaa siihen, että saman oletuksen joutuu kirjoittamaan useita kertoja samassa todistuksessa Rakenteisissa päättelyketjuissa oletusten periytymisen voi välttää käyttämällä systemaattisesti merkkiä 0 merkin sijaan Vasemmanpuoleisessa ruudussa olevassa todistuksessa käytetään periytyviä oletuksia ( ), mutta se voidaan kirjoittaa ilman periytyviä oletuksia kuten oikeanpuoleisessa ruudussa on tehty 22
4 Rakenteiset päättelyketjut ja Gentzen-tyyppiset todistukset C - Φ C - Φ {perustelu} 0 {perustelu} C 1 C 1 - Φ 1 - Φ - Φ 1 C m - Φ m C m - Φ - Φ m Toisin sanoen, ne oletukset toistetaan, jotka muutoin periytyisivät jokaiseen alijohtoon Näin periytyviä oletuksia sisältävän rakenteisen päättelyketjun voi vaiheittain kirjoittaa uuteen muotoon, joka ei sisällä periytyviä oletuksia Milloin oletusten ei haluta periytyvän? Eräissä tapauksissa ei periytyviä oletuksia haluta käyttää Tämä liittyy Gentzen-tyyppisen todistusjärjestelmän postuloituihin todistussääntöihin Esimerkkinä voidaan käyttää vaikka transitiivisen relaation yleistä todistussääntöä, esimerkiksi : Φ 1 p 0 p 1 Φ 2 p 1 p 2 Φ 1 Φ 2 p 0 p 2 {transitiivisuus} Todistussääntö on muotoiltu siten, että todistuksissa luetellaan ainoastaan siinä tarpeelliset oletukset Edellisessä tapauksessa ainoastaan oletukset Φ 1 ovat tarpeellisia ensimmäisen implikaation todistamiseksi, kun taas oletukset Φ 2 riittäisivät toisen implikaation todistamiseen Mikäli tätä vertaillaan todistussääntöön, jossa käytetään periytyviä oletuksia Φ p 0 p 1 Φ p 1 p 2 Φ p 0 p 2 {transitiivisuus} on selvää, että todistussääntö voi tuoda implikaation todistukseen sellaisiakin oletuksia, joita ei välttämättä sen todistuksessa tarvita On siis olemassa todistussääntöjä, joita ei suoraan voida muotoilla periytyvien oletusten avulla ja jotka siten vaativat todistussymbolin 0 käyttämistä 23
4 Rakenteiset päättelyketjut ja Gentzen-tyyppiset todistukset Käytännössä tällaisia todistuksia kohtaa äärimmäisen harvoin Useimmissa tapauksissa halutaan nimenomaan, että pääjohdon oletukset ovat voimassa myös kaikissa alijohdoissa 24
5 Erilaisten todistustyylien yhdistelmä Aksiomaattinen menetelmä periytyy Euklideelta, joka käytti sitä geometristen matemaattisten teorioiden johtamiseen Tämän menetelmän formalisoi David Hilbert 1800-luvun lopussa ja siitä tuli matemaattisen logiikan standardi Gerhard Gentzen esitteli 1930-luvulla vaihtoehtoisen todistusmuodon tarkoituksenaan tehdä todistusten matemaattinen analysointi helpommaksi Lineaarisilla johdoillaon pitkät perinteet matematiikassa mm yhtälöiden ratkaisemisen ja lausekkeiden sieventämisen saralla Tietojenkäsittelytieteen tutkimuksessa menetelmän popularisoivat ja kehittelivät EW Dijkstra ja hänen kollegansa 1980-luvulla Rakenteiset päättelyketjut ovat Gentzen-tyyppisten todistusten, Hilbert-tyyppisten todistusten sekä lineaaristen johtojen yhdistelmä Tämä tarkoittaa, että kaikki nämä todistusmuodot voidaan nähdä rakenteisten päättelyketjujen erikoistapauksina Edellisessä luvussa osoitettiin, miten Gentzen-tyyppiset todistukset voidaan kirjoittaa rakenteisina päättelyketjuina Rakentaiset päättelyketjut ovat lineaaristen johtojen yleistys, johon on lisätty laajempien todistusten tekemistä helpottavia mekanismeja Lineaarisen johdon rakenne on seuraavanlainen: t 0 R 1 {perustelu 1 } t 1 R 2 {perustelu 2 } t 2 t n 1 R n {perustelu n } t n 25
5 Erilaisten todistustyylien yhdistelmä Tämä on rakenteinen päättelyketju, mutta ilman eksplisiittistä tehtävää ja oletuksia, havaintoja ja alijohtoja (ja edelleen ilman perittyjä oletuksia) Hilbert-tyyppinen todistus Myös Hilbert-tyyppinen todistus voidaan kirjoittaa rakenteisena päättelyketjuna havaintojonon avulla Hilbert-tyyppinen todistus kirjoitetaan tavallisesti seuraavaan tapaan 1 väittämä 1 (oletus) m väittämä m (oletus) m + 1 väittämä m+1 (perustelu m+1 ) m + k 1 väittämä m+k 1 (perustelu m+k 1 ) m + k väittämä m+k (perustelu m+k ) Johto koostuu jonosta numeroituja väittämiä Jokainen väittämä on joko oletus (väittämä 1,, väittämä m ) tai johtopäätös, joka saadaan edeltävistä väittämästä jonkin todistussäännön avulla (väittämä m+1,, väittämä m+k ) Jokainen johtopäätös perustellaan jollain todistussäännöllä Johtopäätöksen väittämä i, i = 1, 2, perään voidaan kirjoittaa onko kyseessä (a) oletus tai (b) saadaanko se sopivan todistussäännön avulla hypoteeseista, jotka on kirjoitettu todistukseen aiemmin (toisin sanoen hypoteesit ovat joukossa väittämä 1,,väittämä i 1 ) Todistussääntö, jota on käytetty johdettaessa väittämä i, sekä todistussäännössä käytetyn väittämän numero kerrotaan perustelussa i Viimeinen väittämä on se, jota todistetaan,vastaava rakenteinen päättelyketju on esitetty alla 26
5 Erilaisten todistustyylien yhdistelmä väittämä m+k [-1] oletus 1 [-m] oletus m [m + 1] väittämä m+1 {perustelu m+1 } [m + k 1] väittämä m+k 1 {perustelu m+k 1 } {perustelu m+k } Rakenteisissa päättelyketjuissa kirjoitetaan todistettava väittämä ensin Sen jälkeen kirjoitetaan oletukset, jotka tässä on numeroitu negatiivisin luvuin erotukseksi positiivisin luvuin numeroiduista havainnoista Rakenteisessa päättelyketjussa käytetään samoja väittämiä ja perusteluja kuin Hilbert-tyyppisessä todistuksessa, ainoastaan todistuksen asettelu on erilainen Todistuksen loppuunsaattamiseksi riittää viitata aiempiin väittämiin, toisin sanoen riittää esittää perustelu m+k Erilaisten todistusmuotojen yhdistäminen Rakenteiset päättelyketjut antavat yhdenmukaisen merkintätavan erilaisille todistustyypeille Nämä todistustyypit edustavat itse asiassa todistuksen rakentamisen eri perusperiaatteita Hilbert-tyyppinen todistus on tyypillisesti eteenpäin ketjuttuva: lähdetään siitä mitä tiedetään, näiden tietojen perusteella tehdään kokoelma perättäisiä havaintoja, kunnes lopuksi saadaan enemmän tai vähemmän suoraan argumentti sille, miksi väittämä pitää paikkaansa Gentzen-tyyppinen todistus taas on tyypillisesti taaksepäin ketjuttuva: lähdetään todistettavasta väittämästä, ja yritetään redusoida se yksinkertaisemmiksi väittämiksi, kunnes lopulta päädytään ilmeisiin totuuksiin tai oletuksiin Lineaarinen johto taas on ajatusmalli laskelmalle: lähdetään annetusta lausekkeesta ja vähitellen muunnellaan siitä lauseke, joka täyttää ennalta määrätyn ehdon riittävän yksinkertaisuudesta (esim yhtälön ratkaiseminen) Kun kaikki nämä todistustyypit kuvaillaan yhdenmukaisella merkinnällä, saadaan siitä se hyöty, että voidaan samassa todistuksessa vapaasti yhdistel- 27
5 Erilaisten todistustyylien yhdistelmä lä erilaisia todistusparadigmoja Hilbert-tyyppinen todistus rakenteisessa päättelyketjussa alkaa kokoelmalla oletuksia ja sen jälkeen luetellaan kokoelma havaintoja Nämä havainnot pitää voida perustella suoraan yksinkertaisella todistussäännöllä Hilbert-tyyppisessä todistuksessa Rakenteisissa päättelyketjuissa voidaan havainnolle antaa paljon kattavampi todistus Jokaiselle havainnolle voidaan valita, todistetaanko se Gentzen-tyyppisellä todistuksella (reduktiivinen todistus), lineaarisella johdolla vai Hilbert-tyyppisellä todistuksella Lineaarisessa johdossa jokainen relaatio kahden termin välillä pitää perustella suoraan selityksellä Rakenteisessa päättelyketjussa voidaan relaatio todistaa enemmän tai vähemmän laajalla alipäättelyketjulla Tämä alipäättelyketju voi olla muodoltaan Gentzen-tyyppinen todistus, Hilbert-tyyppinen todistus, tai se voi olla uusi lineaarinen johto Lopuksi, jos jollain tasolla on Gentzen-tyyppinen todistus, missä väittämä on redusoitu kokelmaksi hypoteeseja, voidaan hypoteesit todistaa lineaarisella johdolla, Hilbert-tyyppisellä todistuksella, tai Gentzen-tyyppisellä todistuksella Päätämme esimerkkiin rakenteisesta päättelyketjusta, joka näyttää, miten voidaan yhdistää havaintoja (Hilbert-tyyppinen todistustyyli) lineaariseen johtoihin (Dijkstra-tyyppinen todistustyyli) ja alipäättelyketjuihin (Gentzen-tyyppinen todistustyyli) Esimerkki 1 Halutaan määrittää se paraabelin y = x 2 2x 3 piste, jossa tangentin suuntakulma on +45 Ongelma muotoillaan uudelleen seuraavasti: Määritä se paraabelin y = x 2 2x 3 piste (x, y), jossa paraabelin tangentin suuntakulma α on +45 Tässä tehtävässä merkitään oletuksia kirjaimin ja havaintoja numeroin 28
5 Erilaisten todistustyylien yhdistelmä Määritä piste (x, y), kun [a] [b] y = f(x) = x 2 2x 3 ja paraabelin tangentilla on pisteessä (x, y) suuntakulma α = 45 [1] f (x) = 1 {todistus} paraabelin tangentilla on pisteessä (x, y) suuntakulma 45 {kulmakerroin k saadaan suuntskulmasta α kaavalla k = tan α} tangentin kulmakerroin pisteessä (x, y) on tan 45 { tan 45 = 1} tangentin kulmakerroin pisteessä (x, y) on 1 {kulmakerroin saadaan funktion derivaatasta} f (x) = 1 {lemmasääntö} (x, y) = {määrätään muuttujan x arvo, havainto [1]} f (x) = 1 {oletus [a], lasketaan derivaatta} 2x 2 = 1 {ratkaistaan x} x = 3 2 ( 3 2, y) = {määrätään muuttujan y arvo oletuksen [a] avulla} ( 3 2, ( 3 2 )2 2( 3 2 ) 3) = {lasketaan} ( 3 2, 15 4 ) 29
Kirjallisuutta [1] Ralph-Johan Back Matematiikkaa logiikan avulla: Johdatus rakenteisiin päättelyketjuihin TUCS Lecture Notes 10, Abo Akademi, Dept of Information Technologies, October 2008 [2] Ralph-Johan Back Matematiikkaa logiikan avulla: Logiikka ja rakenteiset päättelyketjut TUCS Lecture Notes 11, Abo Akademi, Dept of Information Technologies, October 2008 [3] Ralph-Johan Back Matematiikkaa logiikan avulla: Rakenteiset päättelyketjut yleisenä todistusmuotona TUCS Lecture Notes 12, Abo Akademi, Dept of Information Technologies, October 2008 [4] Ralph-Johan Back, Jim Grundy, and Joakim von Wright Structured calculational proofs Formal Aspects of Computing, 9:469 483, 1998 [5] Ralph-Johan Back and Joakim von Wright Refinement Calculus: A Systematic Introduction Springer-Verlag, 1998 Graduate Texts in Computer Science [6] Ralph-Johan Back and Joakim von Wright Matematiikkaa logiikan avulla: Lyhyt lukuteorian kurssi TUCS Lecture Notes 5, Abo Akademi, Dept of Information Technologies, October 2008 [7] Ralph-Johan Back and Joakim von Wright Matematiikkaa logiikan avulla: Pitkän matematiikan ylioppilaskoe, kevät 2003 TUCS Lecture Notes 6, Abo Akademi, Dept of Information Technologies, October 2008 [8] Ralph-Johan Back and Joakim von Wright Matematiikkaa logiikan avulla: Rakenteiset päättelyketjut lukiomatematiikassa TUCS Lecture Notes 4, Abo Akademi, Dept of Information Technologies, October 2008 [9] Edsger W Dijksta and C S Scholten Predicate Calculus and Program Semantics Springer-Verlag, 1990 [10] EW Dijkstra The notational conventions i adopted, and why Formal Aspects of Computing, 14:99 107, 2002 30
Kirjallisuutta [11] David Gries Teaching calculation and discrimination: A more effective curriculum Communications of the ACM, (34):45 54, 1991 [12] David Gries and Fred Schneider A Logical Introduction to Discrete Mathematics Springer-Verlag, 1993 [13] David Gries and Fred Schneider Teaching math more effectively through calculational proofs Am Math Monthly, pages 691 697, October 1995 [14] A J M van Gasteren On the Shape of Mathematical Arguments Lecture Notes in Computer Science Springer-Verlag, Berlin, 1990 31
Turku Centre for Computer Science TUCS Lecture Notes 1 Ralph-Johan Back och Joakim von Wright, Matematik med lite logik: Strukturerade härledningar i gymnasiematematiken 2 Ralph-Johan Back och Joakim von Wright, Matematik med lite logik: En kort kurs i talteori 3 Ralph-Johan Back och Joakim von Wright, Matematik med lite logik: Studentexamen i lång matematik, våren 2003 4 Ralph-Johan Back och Joakim von Wright, Matematiikkaa logiikan avulla: Rakenteiset päättelyketjut lukiomatematiikassa 5 Ralph-Johan Back och Joakim von Wright, Matematiikkaa logiikan avulla: Lyhyt lukuteorian kurssi 6 Ralph-Johan Back och Joakim von Wright, Matematiikkaa logiikan avulla: Pitkän matematiikan ylioppilaskoe, kevät 2003 7 Ralph-Johan Back och Joakim von Wright, Matematik med lite logik: Introduktion till strukturerade härledningar 8 Ralph-Johan Back och Joakim von Wright, Matematik med lite logik: Logik för strukturerade härledningar 9 Ralph-Johan Back och Joakim von Wright, Matematik med lite logik: Strukturerade härledningar som allmänt bevisformat 10 Ralph-Johan Back och Joakim von Wright, Matematiikkaa logiikan avulla: Johdatus rakenteisiin päättelyketjuihin 11 Ralph-Johan Back och Joakim von Wright, Matematiikkaa logiikan avulla: Logiikka ja rakenteiset päättelyketjut 12 Ralph-Johan Back och Joakim von Wright, Matematiikkaa logiikan avulla: Rakenteiset päättelyketjut yleisenä todistusmuotona
Turku Centre for Computer Science Joukahaisenkatu 3-5 B, 20520 Turku, Finland wwwtucsfi University of Turku ldepartment of Information Technology ldepartment of Mathematics Åbo Akademi University ldepartment of Information Technologies Turku School of Economics linstitute of Information Systems Sciences ISBN 978-952-12-2232-0 ISSN 1797-8831
Ralph-Johan Back Matematiikkaa logiikan avulla: Rakenteiset päättelyketjut yleisenä todistusmuotona