1. Primitiivirekursiiviset funktiot muodostetaan kolmesta perusfunktiosta käyttäen. succ(n) = n + 1

Samankaltaiset tiedostot
Chomskyn hierarkia. tyyppi 0 on juuri esitelty (ja esitellään kohta lisää) tyypit 2 ja 3 kurssilla Ohjelmoinnin ja laskennan perusmallit

TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 26. kesäkuuta 2013

3SAT-ongelman NP-täydellisyys [HMU ]

Algoritmit 2. Luento 13 Ti Timo Männikkö

(0 1) 010(0 1) Koska kieli on yksinkertainen, muodostetaan sen tunnistava epädeterministinen q 0 q 1 q 2 q3

Epädeterministisen Turingin koneen N laskentaa syötteellä x on usein hyödyllistä ajatella laskentapuuna

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

C C. x 2. x 3 x 3. Lause 3SAT p m VC Todistus. Olk. φ = C 1 C 2 C m 3-cnf-kaava, jossa esiintyvät muuttujat. φ toteutuva:

Induktiotodistus: Tapaus n = 0 selvä; ol. väite pätee kun n < m.

Muita vaativuusluokkia

T Syksy 2004 Logiikka tietotekniikassa: perusteet Laskuharjoitus 7 (opetusmoniste, kappaleet )

= k 0 NTIME(n k + k) Siis polynomisessa ajassa epädeterministisellä Turingin koneella tunnistettavien kielten joukko

Vaihtoehtoinen tapa määritellä funktioita f : N R on

Rekursio. Funktio f : N R määritellään yleensä antamalla lauseke funktion arvolle f (n). Vaihtoehtoinen tapa määritellä funktioita f : N R on

Todistus: Aiemmin esitetyn mukaan jos A ja A ovat rekursiivisesti lueteltavia, niin A on rekursiivinen.

Lisää pysähtymisaiheisia ongelmia

Chomskyn hierarkia ja yhteysherkät kieliopit

M =(K, Σ, Γ,, s, F ) Σ ={a, b} Γ ={c, d} = {( (s, a, e), (s, cd) ), ( (s, e, e), (f, e) ), (f, e, d), (f, e)

TKT20005 Laskennan mallit (syksy 2018) Kurssikoe, malliratkaisut

4. Tehtävässä halutaan todistaa seuraava ongelma ratkeamattomaksi:

TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 31. maaliskuuta 2011

S BAB ABA A aas bba B bbs c

Säännöllisen kielen tunnistavat Turingin koneet

on rekursiivisesti numeroituva, mutta ei rekursiivinen.

Laskennan teoria (kevät 2006) Harjoitus 3, ratkaisuja

T Syksy 2006 Tietojenkäsittelyteorian perusteet T Harjoitus 7 Demonstraatiotehtävien ratkaisut

Algoritmit 1. Luento 1 Ti Timo Männikkö

Algoritmit 1. Luento 2 Ke Timo Männikkö

verkkojen G ja H välinen isomorfismi. Nyt kuvaus f on bijektio, joka säilyttää kyseisissä verkoissa esiintyvät särmät, joten pari

T Syksy 2002 Tietojenkäsittelyteorian perusteet Harjoitus 8 Demonstraatiotehtävien ratkaisut

Tehtävä 1. Päättele resoluutiolla seuraavista klausuulijoukoista. a. 1 {p 3 } oletus. 4 {p 1, p 2, p 3 } oletus. 5 { p 1 } (1, 2) 7 (4, 6)

Muita universaaleja laskennan malleja

Täydentäviä muistiinpanoja laskennan rajoista

SAT-ongelman rajoitetut muodot

ITKP102 Ohjelmointi 1 (6 op)

Rekursiiviset palautukset [HMU 9.3.1]

Diskreetin matematiikan perusteet Laskuharjoitus 2 / vko 9

Pysähtymisongelman ratkeavuus [Sipser luku 4.2]

HY / Matematiikan ja tilastotieteen laitos Johdatus logiikkaan I, syksy 2018 Harjoitus 5 Ratkaisuehdotukset

811120P Diskreetit rakenteet

Lause (Cook-Levin) Kieli SAT = { on toteutuva lausekalkyylin kaava } on NP-täydellinen.

4.3. Matemaattinen induktio

T kevät 2007 Laskennallisen logiikan jatkokurssi Laskuharjoitus 1 Ratkaisut

Turingin koneen laajennuksia

Esimerkkejä polynomisista ja ei-polynomisista ongelmista

T Logiikka tietotekniikassa: perusteet Kevät 2008 Laskuharjoitus 5 (lauselogiikka ) A ( B C) A B C.

1. Esitä rekursiivinen määritelmä lukujonolle

Predikaattilogiikan malli-teoreettinen semantiikka

Äärellisten automaattien ja säännöllisten kielten ekvivalenssi

MS-A0402 Diskreetin matematiikan perusteet

Säännöllisten kielten sulkeumaominaisuudet

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 8. syyskuuta 2016

V. V. Vazirani: Approximation Algorithms, luvut 3-4 Matti Kääriäinen

Algoritmit 1. Demot Timo Männikkö

Algoritmit 1. Demot Timo Männikkö

4 Matemaattinen induktio

5.3 Ratkeavia ongelmia

b) Määritä myös seuraavat joukot ja anna kussakin tapauksessa lyhyt sanallinen perustelu.

T Syksy 2004 Logiikka tietotekniikassa: perusteet Laskuharjoitus 2 (opetusmoniste, lauselogiikka )

Säännölliset kielet. Sisällys. Säännölliset kielet. Säännölliset operaattorit. Säännölliset kielet

Taulun avoimista haaroista saadaan kelvolliset lausejoukot

Algoritmit 2. Luento 14 Ke Timo Männikkö

Laskennan vaativuus ja NP-täydelliset ongelmat

1. Universaaleja laskennan malleja

δ : (Q {q acc, q rej }) (Γ k {, }) Q (Γ k {, }) {L, R}.

Taulumenetelmä modaalilogiikalle K

Automaatit. Muodolliset kielet

9.5. Turingin kone. Turingin koneen ohjeet. Turingin kone on järjestetty seitsikko

Ratkeavuus ja efektiivinen numeroituvuus

Laskennan rajoja. TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 10. joulukuuta 2015 TIETOTEKNIIKAN LAITOS.

13. Loogiset operaatiot 13.1

Laskennan mallit (syksy 2008) 2. kurssikoe , ratkaisuja

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 19. syyskuuta 2016

Laskennan mallit (syksy 2009) Harjoitus 11, ratkaisuja

Algebralliset tietotyypit ym. TIEA341 Funktio ohjelmointi 1 Syksy 2005

LOGIIKKA johdantoa

-Matematiikka on aksiomaattinen järjestelmä. -uusi tieto voidaan perustella edellisten tietojen avulla, tätä kutsutaan todistamiseksi

Alkuarvot ja tyyppimuunnokset (1/5) Alkuarvot ja tyyppimuunnokset (2/5) Alkuarvot ja tyyppimuunnokset (3/5)

Rajoittamattomat kieliopit (Unrestricted Grammars)

ALGORITMIT 1 DEMOVASTAUKSET KEVÄT 2012

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset

kaikki kielet tunnistettavat A TM HALT TM { a n } { a n b n } { a n b n c n } TOTAL TM EQ TM

formalismeja TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho 15. joulukuuta 2015 TIETOTEKNIIKAN LAITOS

Luonnollisen päättelyn luotettavuus

Tietorakenteet (syksy 2013)

Approbatur 3, demo 5, ratkaisut

TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 19. tammikuuta 2012

Diskreetin matematiikan perusteet Laskuharjoitus 1 / vko 8

ITKP102 Ohjelmointi 1 (6 op)

TIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 8. maaliskuuta 2012

Graafit ja verkot. Joukko solmuja ja joukko järjestämättömiä solmupareja. eli haaroja. Joukko solmuja ja joukko järjestettyjä solmupareja eli kaaria

3. Laskennan vaativuusteoriaa

Toinen muotoilu. {A 1,A 2,...,A n,b } 0, Edellinen sääntö toisin: Lause 2.5.{A 1,A 2,...,A n } B täsmälleen silloin kun 1 / 13

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti

Se mistä tilasta aloitetaan, merkitään tyhjästä tulevalla nuolella. Yllä olevassa esimerkissä aloitustila on A.

Graafin 3-värittyvyyden tutkinta T Graafiteoria, projektityö (eksakti algoritmi), kevät 2005

Harjoitustyön testaus. Juha Taina

811120P Diskreetit rakenteet

Laskennan rajoja. TIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 6. maaliskuuta 2012 TIETOTEKNIIKAN LAITOS.

Transkriptio:

Tik-79.148 Kevät 2001 Tietojenkäsittelyteorian perusteet Laskuharjoitus 11 Ratkaisut 1. Primitiivirekursiiviset funktiot muodostetaan kolmesta perusfunktiosta käyttäen kahta yhdistämissääntöä. Perusfunktioita ovat (a) Nollafunktiot zero k (n 1,..., n k ) = 0 kaikille k, n 1,..., n k N. (b) Identiteettifunktio id k,j (n 1,..., n k ) = n j, kaikille k j > 0, n 1,..., n k N. (c) Seuraajafunktio succ(n) = n + 1 kaikille n N. Perusfunktioista zero ja succ määrittelevät luonnolliset luvut: zero() = 0 succ(zero()) = 1 succ(succ(zero())) = 2. succ(n) = n + 1 Perusfunktioita voidaan yhdistää käyttäen kompositiota ja primitiivirekursiota. (a) Olkoon k, l 0, g k-paikkainen funktio (g : N k N) ja h 1,..., h k joukko l-paikkaisia funktioita. Nyt g:n kompositio h 1,..., h k :n kanssa on l-paikkainen funktio f(n 1,..., n l ) = g(h 1 (n 1,..., n l ),..., h k (n 1,..., n l )) Kompositiossa annetaan yhden funktion palauttama arvo toisen funktion argumentiksi. Kaikkien h i -funktioiden ei tarvitse olla erilaisia. Esimerkiksi funktio f(n, m) = n 2 + m 2 saadaan muodostettua kompositiolla funktioista plus ja times seuraavasti: f(n, m) = plus(times(n, n), times(m, m)) Tässä l = k = 2, g = plus ja h 1 = h 2 = times. (b) Kaikille k 0, olkoon g k-paikkainen funktio ja h k + 2-paikkainen funktio. Näistä saadaan muodostettua primitiivirekursiolla k + 1- paikkainen funktio f seuraavasti: f(n 1,..., n k, 0) = g(n 1,..., n k ) f(n 1,..., n k, m + 1) = h(n 1,..., n k, m, f(n 1,..., n k, m)) kaikille n 1,..., n k, m N. Primitiivirekursiossa on yksinkertainen perustapaus (m = 0), sekä joukko rekursiokaavoja, joita käyttämällä saadaan funktion arvon laskeminen palautettua perustapaukseen. 1

Primitiivirekursiivisia funktioita ovat kaikki perusfunktiot sekä niistä kompositiolla ja primitiivirekursiolla saatavat funktiot. Tehtävässä piti todistaa, että funktio f(n) = n + 1:s pariton luonnollinen luku on primitiivirekursiivinen. Funktio voidaan palauttaa perusfunktioihin muutamallakin eri tavalla, tässä yksi niistä: f(0) = 1 f(m + 1) = f(m) + 2 Koska luvut 1 ja 2 eivät ole perusfunktioita, korvataan ne vielä käyttämällä succ-funktion kompositiota: f(0) = succ(zero()) f(m + 1) = succ(succ(f(m))) Tässä k = 0, g = succ(zero()) ja h = succ(succ(f(m))). 2. Lisäämällä primitivirekursiivisten funktioiden määritelmään uusi operaatio, minimointi, saadaan muodostettua laajempia funktioluokkia. Minimointilause on muotoa µz.[p (z)], missä z on muuttuja ja P (z) on jokin predikaatti (eli funktio, jolla on kaksi mahdollista arvoa: tosi ja epätosi), jonka arvo riippuu muuttujasta z. Minimointioperaattorin arvo on pienin mahdollinen z:n arvo, jolla predikaatti P (z) on tosi. Formaalimmin: Olkoon g funktio, jolla on k+1 argumenttia, k 0. Tällöin g:n k-argumenttinen minimointifunktio f on määritelty seuraavasti: { pienin m, jolla g(n 1,..., n k, m) = 1, jos m on olemassa f(n 1,..., n k ) = 0, muulloin Predikaattia g kutsutaan säännölliseksi, jos ehdon toteuttava m on olemassa kaikille mahdollisille g:n argumenteille. Yleisessä tapauksessa on mahdotonta sanoa onko g säännöllinen vai ei, joten predikaatin minimiä ei välttämättä voida laskea. Ongelma on pohjimmiltaan sama kuin Turingin koneen pysähtymisongelma. Funktiota kutsutaan µ-rekursiiviseksi (tai pelkästään rekursiiviseksi), mikäli se saadaan muodostettua perusfunktioista käyttäen kompositiota, primitiivirekursiota ja säännöllisten predikaattien minimointia. Tavallisen minimoinnin lisäksi voidaan käyttää myös rajoitettua minimointia. Rajoitettu minimointi on muotoa: µz x.[p (z)], missä x on z:n suurin mahdollinen arvo. Mikäli mikään z x ei toteuta predikaattia P (z), asetetaan minimoinnin tulokseksi 0. Rajoitetun minimoinnin arvo voidaan aina laskea, koska x asettaa ylärajan mahdollisten 2

laskenta-askelien määrälle. Rajoitettu minimointi voidaan toteuttaa primitiivirekursiolla, joten primitiivirekursiivisten funktioiden luokka on suljettu sen suhteen. Intuitiivisesti rajoitettu minimointi voitaisiin kuvata ohjelmallisesti rajoitetulla for-silmukalla: for i := 1 to n do Oleellista silmukassa on se, että tarvittavien iteraatiokertojen lukumäärälle voidaan esittää jokin yläraja. Yksinkertaisena nyrkkisääntönä voidaan pitää, että funktio on primitiivirekursiivinen, jos sen voi toteuttaa joukolla sisäkkäisiä for-silmukoita. Vastaavasti rajoittamaton minimointi vastaisi ohjelmarakennetta while not end do Tässä tapauksessa oleellista on se, että ei ole mahdollista esittää etukäteen jotain tiettyä ylärajaa silmukan suorittamiskertojen määrälle, vaan silmukassa pysytään niin kauan, kunnes lopetusehto toteutuu. Funktio on µ-rekursiivinen, jos se voidaan laskea joukolla sisäkkäisiä whilesilmukoita, joiden lopetusehdot tulevat aina lopulta voimaan. Kahden kokonaisluvun jakojäännös voidaan laskea seuraavalla µ-rekursiivisella funktiolla: { 0, x = 0 y = 0 mod (x, y) = µz x. [µw x. [y w + z = x]], muulloin. Itseasiassa ylläoleva funktio on myös primitiivirekursiivinen, koska kummatkin minimoinnit ovat rajoitettuja. Funktio vastaa seuraavanlaista C-kielen ohjelmaa: int modulo(int x, int y) { int z, w; if (x == 0 y == 0) return 0; } for (z = 0; z <= x; z++) { for (w = 0; w <= x; w++) { if (w*y + z == x) return z; } } 3. Koska rekursiiviset funktiot saavat argumenteikseen luonnollisia lukuja, niillä ei voi suoraan käsitellä merkkijonoja. Mikäli näin kuitenkin halutaan tehdä, täytyy merkkijonot koodata numeroiksi systemaattisella tavalla. Tällaista koodausta kutsutaan Gödel-numeroinniksi (loogikko Kurt 3

Gödelin 1906 1978 mukaan). On olemassa monia vaihtoehtoisia tapoja määritellä Gödel-numerointi. Kirjassa koodataan n-kirjaimisen aakkoston merkkijonot n + 1-kantaiseksi kokonaisluvuiksi, jotka edelleen muutetaan kymmenjärjestelmän luvuiksi. Tehtävän aakkoston = {a, b, c} symbolit asetetaan järjestykseen d 1 = a d 2 = b d 3 = c Gödel-numeroinnin kantaluvuksi saadaan β = + 1 = 4. Merkkijono w = d i1 d i2... d ik muutetaan numeroksi käyttäen tavallista tapaa lukujärjestelmän vaihtamiseksi: gn(w) = β k 1 i 1 + β k 2 i 2 + + β 1 i k1 + i k Oppikirjassa määritellään lisäksi symboli d 0, joka vastaa tyhjää merkkijonoa e. Symboli on lisätty sen vuoksi, että muussa tapauksessa olisi olemassa lukuja (kuten β), joita ei vastaisi mikään merkkijono. Tyhjän merkkijonon lisääminen puolestaan aiheuttaa sen, että yhdellä merkkijonolla on monta Gödel-numeroa, jotka saadaan lisäämällä jonon symbolien väliin tyhjiä merkkejä. Tällöin merkkijonon varsinainen Gödel-numero on se, jossa ei ole yhtään tyhjää merkkiä. (a) Merkkijonon abc Gödel-numero löydetään seuraavasti. gn(abc) = 1 4 2 + 2 4 1 + 3 4 0 = 27 (b) Gödel-numeroa 19 vastaava merkkijono on: 19 = 1 4 2 + 0 4 1 + 3 4 0 gn 1(19) = d 1 d 0 d 3 = aec = ac Gödel-numeroinnin käytännön merkitys on siinä, että sen avulla voidaan määritellä funktioita, jotka käsittelevät toisia funktioita. Tällöin funktio saa argumentikseen toista funktiota vastaavan Gödel-numeron. Gödel itse käytti numerointiaan kuuluisassa epätäydellisyystodistuksessaan, jossa hän osoitti, että millä tahansa riittävän ilmaisuvoimaisella 1 formalismilla voidaan esittää väitteitä, joiden totuusarvoa ei pystytä selvittämään. Tällä kurssilla esiintulleista formalismeista riittävän ilmaisuvoimaisia ovat Turingin koneet (Turingin koneen pysähtymisongelma), µ-rekursiiviset funktiot (löytääkö rajoittamaton minimointi vastauksen) sekä tyypin 0 kieliopit (voidaanko sana w johtaa). 4. Ongelmaluokkaan NP kuuluvat kaikki ne ongelmat, jotka voidaan ratkaista epädeterministisellä Turingin koneella polynomisessa ajassa syötteen 1 Formalismi on riittävän ilmaisuvoimainen, mikäli kielellä pystytään esittämään luonnollisten lukujen teoria. 4

pituuteen. Käytännössä tämä tarkoittaa sitä, että kaikki ongelmat, joiden vastauksen oikeellisuus voidaan tarkistaa polynomisessa ajassa, ovat NP-luokassa. Ongelma on NP-täydellinen, mikäli kaikki NP-luokan ongelmat voidaan palauttaa siihen polynomisessa ajassa. Tässä perusajatuksena on osoittaa, että ongelma A on vähintään yhtä vaikea ratkaistavaksi kuin ongelma B. Tämä tehdään näyttämällä, miten ongelma B voidaan muuttaa ongelmaksi A. Muunnoksesta käytetään termiä reduktio. Ongelman todistaminen NP-täydelliseksi tapahtuu yleensä kahdessa vaiheessa: (a) Todistetaan, että ongelma kuuluu luokkaan NP. (b) Osoitetaan, että jokin NP-täydellinen ongelma voidaan redusoida tutkittavaan ongelmaan. 2 Graafin ydin on joukko solmuja, joille pätevät seuraavat ehdot: (a) Ytimeen kuuluvien solmujen välillä ei ole kaaria. (b) Kaikkiin ytimeen kuulumattomiin solmuihin päästään yhdellä askeleella jostain ytimeen kuuluvasta solmusta. Graafin ytimen löytämisongelma kuuluu selvästikin luokkaan NP, koska se voidaan ratkaista epädeterministisellä Turingin koneella seuraavasti: (a) Arvataan solmujoukko K. Tähän kuluu O( K ) askelta. (b) Käydään läpi kaikki K:n solmuista lähtevät kaaret (a, b). Mikäli kaari menee johonkin toiseen K:hon kuuluvaan solmuun, hylätään vastaus. Muussa tapauksessa merkitään solmu b tarkistetuksi. Tähän kuluu O( E ) askelta. (c) Lopuksi tarkistetaan, että kaikki ytimeen kuulumattomat solmut ovat merkittyjä. Tämä voidaan tehdä ajassa O( V ). Seuraavaksi täytyy redusoida jokin NP-täydellinen ongelma peittävän joukon etsimisongelmaan. Yksi perustavinta laatua olevista NP-täydellisistä ongelmista on niin kutsuttu 3-sat-ongelma. Ongelmassa on annettuna joukko lauselogiikan klausuuleita, joissa kaikissa on täsmälleen kolme literaalia, ja tarkoituksena on löytää jokin tapa asettaa loogisille muuttujille totuusarvot siten, että kaikissa klausuuleissa on vähintään yksi tosi literaali. Esimerkiksi klausuulijoukko: {{x 1, x 2, x 3 }, { x 1, x 2, x 3 }} on toteutuva, koska valitsemalla x 1 :n ja x 2 :n arvoiksi tosi sekä x 3 :n arvoksi epätosi, on kummassakin klausuulissa on vähintään yksi tosi literaali. Muuttuja x 1 tekee ensimmäisen klausuulin todeksi ja muuttuja x 3 2 Tarkkaavainen lukija voi tässä kohtaa ihmetellä, miten ensimmäinen ongelma todistettiin NP-täydelliseksi. Tämä tehtiin simuloimalla suoraan deterministisen Turingin koneen laskentaa. Useimmiten on huomattavasti helpompaa käyttää jotain NP-täydelliseksi ongelmaksi tunnettua ongelmaa todistuksen tekemiseen. 5

tekee toisen klausuulin todeksi ( x on tosi täsmälleen silloin, kun x ei ole tosi). Tällaista muuttujien arvojen valintaa kutsutaan valuaatioksi, ja siitä käytetään merkintää V = {x 1, x 2, x 3 }, tai V(x 1 ) = V(x 2 ) = T, V(x 3 ) = F. 3-sat-ongelma voidaan muuntaa graafin peittämisongelmaksi seuraavalla tavalla: Olkoon 3-sat-ongelmassa esiintyvien muuttujien joukko x 1,..., x n ja klausuulien joukko C = {C 1,..., C m } Muodostetaan graafi G = (V, E) siten, että jokaista klausuulia C i kohden verkkoon tulee yksittäinen solmu c i ja jokaista muuttujaa x i kohden tulee kaksi solmua: x i ja x i. Graafin kaarirelaatio E määritellään seuraavasti: (a) Kaikilla x i, kaaret (x i, x i ), ( x i, x i ) E. (b) Kaikilla x i C j, (x i, c j ) E. (c) Kaikilla x i C j, ( x i, c j ) E. (d) Kaikilla c i, (c i, c i ) E. Esimerkiksi ylläolevaa klausuulijoukkoa vastaava verkko on: x 1 x 1 x 2 x 2 x 3 x 3 c 1 c 1 Graafin rakenne on suunniteltu siten, että solmu x i kuuluu ytimeen, jos ja vain jos muuttuja x i on tosi valuaatiossa, joka toteuttaa klausuulijoukon. Samoin solmu x i kuuluu ytimeen, mikäli x i ei ole tosi toteuttavassa valuaatiossa. Solmujen x i ja x i välinen keskinäinen poissulkevuus toteutetaan sillä, että niiden välillä on kaaret kumpaankin suuntaan, joten niiden molempien mukaanottaminen rikkoisi ytimen määritelmän. Toisaalta, jomman kumman solmuista täytyy kuulua ytimeen, sillä niihin ei tule mitään muita kaaria, eikä määritelmän toinen ehto voi muutoin toteutua. Mitään muita solmuja ei ytimeen voi kuulua, sillä kaikista solmuista c i on kaari takaisin itseensä. Ylläolevassa verkossa on ydin K = {x 1, x 2, x 3 }, joka vastaa valuaatiota x 1 = T, x 2 = T, x 3 = F. Todistetaan vielä formaalisti, että graafilla on ydin tismalleen silloin, kun klausuulijoukko on toteutuva. Mikäli graafilla G on ydin K, voidaan klausuulijoukon toteuttava valuaatio muodostaa seuraavasti: V(x i ) = T, joss x i K, muuten V(x i ) = F. Koska K on ydin, on jokaista c i :tä kohden K:ssa ainakin yksi solmu x siten, että (x, c i ) E. Graafin rakenteen perusteella x C i, joten klausuuli C i toteutuu. Koska sama pätee kaikille klausuuleille, toteuttaa valuaatio V klausuulijoukon. 6

Mikäli klausuulijoukko C on toteutuva, sillä on ainakin yksi valuaatio V, joka toteuttaa sen. Muodostetaan K siten, että x i K, jos V(x i ) = T, ja x i K, jos V(x i ) = F. Koska kaikille klausuuleille löytyy ainakin yksi literaali x, joka on tosi, on kaikilla solmuilla c i graafin rakenteen perusteella vähintään yksi ytimeen kuuluva edeltäjä. Valuaatiossa on kullakin loogisella muuttujalla tismalleen yksi arvo, joten K:ssa ei voi olla kahta solmua, joiden välillä on kaari. Näin ollen K on ydin. 7