T-79.3001 Kevät 2009 Logiikk tietotekniikss: perusteet Lskuhrjoitus 7 (Predikttilogiikk 9.1 10.2) 19.3. 23.3. 2009 Rtkisuj demotehtäviin Tehtävä 9.1 Rtkisuss on käytetty usen otteeseen rjoitettuj universli- j eksistentilikvnttoreit. Jos hlutn ilmist, että jokin ominisuus φ() pätee kikille prediktin P() toteuttville lkioille, kirjoitetn (P() φ()). Se, että ominisuus φ() pätee jollekin prediktin P() toteuttvlle lkiolle, ilmistn luseell (P() φ()). Yksipikkinen prediktti P() ilmisee siis usein lkion tyyppiä (esimerkiksi on portti). Vstvsti kksipikkinen prediktti ilmisee khden lkion välistä suhdett (esimerkiksi on y:tä nopempi). ) (P() V()), kun P() = on portti j V() = on villinen. P Q b) A() ( (A() ( = ) N(,)), kun = ko. lgoritmi, A() = on lgoritmi j N(,y) = on y:tä nopempi.
A N A = c) (K() y(t(y) R(,y))), kun K() = osllistuu kurssille, T() = on työsem j R(,y) = käyttää y:tä. d) (T() y z(p(y) P(z) K(y,) K(z,) y = z)), kun P() = on prosessi, T() = on tiedosto j K(, y) = kirjoitt y:hyn. Esitetyt rtkisut eivät ole inoit mhdollisi. Vlinnn vr on prediktti-, funktio- j vkiosymbolien määrittelyssä j luseiden rkenteess. Tehtävä 9.2 Sulkujen poistmisess käytettiin peritett, että uloimmt sulut voi jättää pois j lisäksi, mikäli sulkujen sisällä olev opertio on presedenssiltään ulkopuolell olev vhvempi, sulut voidn poist. ) y(( (P() Q())) L()) Tässä kv on esitetty ilmn uloimpi sulkuj. Trksteltess nyt uloimpi sulkuj, niin sisällä olev opertio on impliktio j ulkopuolell universlinen kvntifiointi. Kvntifiointi on vhvempi, sulkuj ei voi poist. Trkstelln seurvksi sulkuj eksistenttikvnttorin ympärillä. Sisällä siis edellä minittu kvntifionti j ulkopuolell impliktio. Sulut voi poist j kv s muodon y( (P() Q()) L()). Jäljellä on vielä sulut konjunktion ympärillä. Ulkopuolell olev kvntifiointi on vhvempi, sulkuj ei voi poist. b) y(p(,y) Q(y,)) K( f())
c) y(a B) Tehtävä 9.3 Käyttämällä inostn elementtejä c j f, voidn muodost seurv joukko termejä: {c, f(c), f 2 (c), f 3 (c),...}. Edelleen termejä voidn lti käyttämällä hyväksi funktiot g. Sen rgumenteiksi voidn vlit mikä thns pri edellisistä, esim. sdn termit g(c,c) j g( f 3 (c), f 108 (c)). Luonnollisesti sekä g:n että f :n rgumenteiksi voidn edelleen vlit mitkä thns näin sduist termeistä. Näin syntyy esim. f(g( f 5 (c), f 13 (c))) j g(g(c, f(c)), f 8 (c)). Funktioiden sisennystä voi näin jtk mielivltisen mont skelt.
Tehtävä 9.4 Yleistys tphtuu käyttämällä hyväksi sekä listojen että puiden nottiot. Perite on, että mielivltinen puu esitetään sisäkkäisinä listoin, jotk kertovt kunkin solmun lpset. Olkoon tehtävässä esitetyt 3 vkio- j funktiosymboli: e (tyhjä list), c F 2 (ensimmäinen rgumentti listn ensimmäinen lkio j toinen rgumentti loput listst), j l F 1 (lehtisolmu). Trkstelln seurvi puit: b d b f Näistä ensimmäisen esitys nnetull nottioll on l(), toisen c(l(), c(l(b), e)) j kolmnnen c(l(), c(l(d),c(c(l(b),c(l( f),e)),e))). Tehtävä 9.5 Kv on luse, jos siinä ei ole vpit muuttujesiintymiä. Tehtävännnoss todetn, että φ() on luse. φ(t) trkoitt kv, joss jokinen :n vp esiintymä on korvttu termillä t. Kosk t on muuttujton, niin φ(t) on myös luse. Tehtävä 10.1 Muodostetut lukuprit voi sett kksiulotteiseen tulukkoon vikkp seurvsti: 0,0 0,1 0,2 0,3 1,0 1,1 1,2 1,3 2,0 2,1 2,2 2,3....... Tehtävän ide on sm kuin todistettess sitä, että khden luonnollisen luvun prej on yhtä mont kuin luonnollisi lukuj (joukot siis ovt yhtä mhtvt). Todistuksess lditn bijektiivinen kuvus luonnollisilt luvuilt lukupreille. Kuvuksess f(0) = 0, 0 j muill rvoill se etenee in tulukon digonlej pitkin. Esim. f(1) = 0,1, f(2) = 1,0 jne. Mikäli kuvus etenisi rivejä ti srkkeit pitkin, ei joukkojen yhtäsuuruutt stisi osoitettu, kosk rivit (srkkeet) jtkuvt äärettömiin. Mielivltinen digonli puolestn on äärellinen. Sovelluttun logiikkn, universumi sdn peitettyä, mikäli vkion c tulkint on c S = 0,0, j funktio lditn em. sääntöjen pohjlt, siis: f(c) S = 0,1 f(f(c)) S = 1,0 f 3 (c) S = 0,2 f 4 (c) S = 1,1..
Funktion f S lusekkeen voi esittää muodoss: f S :,y,y Tässä g() on nk. pulssifunktio: = g()(y+1)+(1 g())( 1) y = (1 g())(y+1) g() = { 1, jos = 0. 0, muutoin. Tehtävä 10.4 Tämä mllivstus koskee seurv tehtävää (vuodelt 2008): Grfi muodostuu solmujen joukost S j solmujen välisten krien K S S joukost. Grfin solmut s j s ovt vierekkäiset, jos niitä yhdistää kri ( s,s K ti s,s, K). Olkoon C jokin värien joukko. Grfin väritysongelmss on trkoituksen löytää grfin solmuille värit joukost C siten, että kikill vierekkäisillä solmuill on eri värit. ) Määrittele grfin väritysongelmn rtkisu predikttilogiikn vull. b) Ann edellisen kohdn lusejoukolle mlli j c) struktuuri, joss se ei toteudu. Rtkisu: ) Grfist meitä kiinnostvt erityisesti kret, joiden esittämistä vrten määritellään prediktti K(, y) (grfiss on kri solmust solmuun y). Värien esittämiseen on useit mhdollisuuksi. (i) Yksi mhdollisuus on kiinnittää värien joukko j esittää värit prediktein. Jos joukoss C on värejä n kpl määritellään niille kullekin yksipikkinen prediktti C i (). Prediktti C i () trkoitt, että solmu on väritetty värillä i. Ongelmn määrittelyssä vditn, että jokisell solmull on yksikäsitteinen väri, j jos solmujen välillä on kri, solmut ovt eriväriset. Ensimmäisestä vtimuksest sdn seurvt luseet: (C i () C 1 () C i 1 () C i+1 () C n ()) indeksin i rvoill 1,...,n (huom, että C i () ei esiinny ekvivlenssin oiken puolen konjuktioss). Toinen vtimus esitetään jokisen prediktin C i () oslt erikseen: y(k(,y) (C i () C i (y))).
(ii) Toinen mhdollisuus on jättää värien määrittely voimeksi j ott käyttöön prediktti V(, y) (solmun väri on y). Solmun värin yksikäsitteisyys voidn ilmist luseell: y z(v(,y) V(,z) y = z). Siis, jos solmull on värit y j z, nämä ovt itsesiss sm väri (yhtäsuuruus prediktti = on tosi rkenteess S, jos j vin jos prediktin rgumenttien tulkinnt ovt smt rkenteess S). Vierekkäisten solmujen erivärisyys sdn puettu luseeksi: y z(k(,y) (V(,z) V(y,z)). Eli, jos grfiss on kri solmust solmuun y j solmu on väriltään z, solmu y ei ole väriltään z. (iii) Kolmnten mhdollisuuten on esittää väri funktiosymbolin v vull. Termi v() trkoitt solmun väriä. Tässä tpuksess värin yksikäsitteisyyttä ei trvitse erikseen määritellä (funktion rvo on in yksikäsitteinen). Erivärisyydelle sdn luse: y(k(,y) (v() = v(y))). b) Annetn mlli kohdn (i) luseille tpuksess n = 2. Määritellään rkenne S, jonk universumin on U = { 1, 2 } (kksi solmu). Prediktin K tulkint on K S = { 1, 2, 2, 1 } (grfiss on kret solmust 1 solmuun 2 j solmust 2 solmuun 1 ). Predikttien C 1 j C 2 tulkinnt ovt C S 1 = { 1 } j C S 2 = { 2} (toinen solmuist on siis väriä C 1 j toinen väriä C 2 ). Trkistetn nyt totuusmääritelmän vull, että luseet (C 1 () C 2 ()), y(k(,y) (C 1 () C 1 (y)), j y(k(,y) (C 2 () C 2 (y)) toteutuvt rkenteess S (eli S on luseiden mlli). Huom että luseist ensimmäinen on ekvivlentti luseen (C 2 () C 1 ()) knss, jok myös kuuluu lusejoukkoon tpuksess n = 2. Nyt S = (C 1 () C 2 ())
jos j vin jos S[ 1 ] = (C 1 () C 2 ()) j S[ 2 ] = (C 1 () C 2 ()) Kosk 1 C S 1, pätee S[ 1] = C 1 (). Vstvsti, kosk 1 C S 2, pätee S[ 1 ] = C 2 (). Siis S[ 1 ] = (C 1 () C 2 ()) Vstvsti osoitetn, että S[ 2 ] = (C 1 () C 2 ()), joten S = (C 1 () C 2 ()) seur. Nyt S = y(k(,y) (C 1 () C 1 (y)) jos j vin jos kv on tosi rkenteiss K(,y) (C 1 () C 1 (y)) S[ 1,y 1 ], S[ 1,y 2 ], S[ 2,y 1 ] j S[ 2,y 2 ]. Kosk prit 1, 1 j 2, 2 eivät kuulu tulkintn K S tomikv K(,y) on epätosi ensimmäisessä j viimeisessä rkenteess, joten impliktion totuusmääritelmän nojll edellännettu kv on tosi näissä rkenteiss. Kosk pri 1, 2 kuuluu tulkintn K S, S[ 1,y 2 ] = K(,y) j nnettu kv on tosi rkenteess S[ 1,y 2 ] jos j vin jos S[ 1,y 2 ] = C 1 () C 1 (y). Tämä pitää pikknss, sillä 1 C S 1 j 2 C S 2, joten S[ 1,y 2 ] = C 1 () j S[ 1,y 2 ] = C 2 (y). Kv on tosi myös 3. struktuuriss. Eron edelliseen on, että impliktio C 1 () C 1 (y) on tosi rkenteess S, kosk S[ 2,y 1 ] = C 1 (). Siis S on mlli luseelle y(k(,y) (C 1 () C 1 (y)). Symmetrisyistä S on myös luseen y(k(,y) (C 2 () C 2 (y)) mlli. Olemme siis osoittneet, että S on lusejoukon mlli. Sm rkenne on mlli myös tpuksess, joss värejä on usempi kuin kksi. Mlleist tulee monimutkisempi, jos solmujen väritys esitetään vihtoehtojen (ii) j (iii) mukisesti. c) Määritellään rkenne S tpuksess n = 2, joss lusejoukko ei toteudu. Vlitn universumiksi U = {} (yksi solmu) j prediktin K tulkinnksi esim. K S = {, }. Nyt (C 1 () C 2 ())
ei toteudu rkenteess S, jos S[ ] = C 1 () C 2 () Vlitn siis väripredikttien tulkinnt siten, että S[ ] = C 1 () j S[ ] = C 2 () settmll C S 1 = CS 2 = {} Tällöin S ei voi oll lusejoukon mlli.