ALGORITMUSOK ÉS BONYOLULTSÁGELMÉLET Matematika MSc hallgatók számára. 9. Előadás. Előadó: Hajnal Péter Jegyzetelő: Hajnal Péter április 12.

Hasonló dokumentumok
ALGORITMUSOK ÉS BONYOLULTSÁGELMÉLET Matematika MSc hallgatók számára. 11. Előadás

ALGORITMUSOK ÉS BONYOLULTSÁGELMÉLET Matematika MSc hallgatók számára

ALGORITMUSOK ÉS BONYOLULTSÁGELMÉLET Matematika MSc hallgatók számára. 6. Előadás

definiálunk. Legyen egy konfiguráció, ahol és. A következő három esetet különböztetjük meg. 1. Ha, akkor 2. Ha, akkor, ahol, ha, és egyébként.

Algoritmusok bonyolultsága

Algoritmuselmélet. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem. 13.

Deníciók és tételek a beugró vizsgára

Számításelmélet. Második előadás

Logika és számításelmélet. 10. előadás

Logika és számításelmélet. 11. előadás

Hadamard-mátrixok Előadó: Hajnal Péter február 23.

Bonyolultságelmélet. Thursday 1 st December, 2016, 22:21

ALGORITMUSOK ÉS BONYOLULTSÁGELMÉLET Matematika MSc hallgatók számára. 3. Előadás

Az informatika elméleti alapjai 2 elővizsga december 19.

ALGORITMUSOK ÉS BONYOLULTSÁGELMÉLET Matematika MSc hallgatók számára. 12. Előadás. 2 αn. Σ n 1. 2 αn < 1, vagyis az előző megállapítás valóban

Turing-gépek. Kiegészítő anyag az Algoritmuselmélet tárgyhoz. Friedl Katalin BME SZIT augusztus 16.

A digitális számítás elmélete

Turing-gépek. Kiegészítő anyag az Algoritmuselmélet tárgyhoz VIII. Friedl Katalin BME SZIT március 18.

Shor kvantum-algoritmusa diszkrét logaritmusra

Diszkrét matematika 2.C szakirány

Diszkrét Matematika MSc hallgatók számára. 11. Előadás. Előadó: Hajnal Péter Jegyzetelő: Szarvák Gábor november 29.

Automaták mint elfogadók (akceptorok)

13. Előadás. 1. Összeszámolási problémák bonyolultsága

KOVÁCS BÉLA, MATEMATIKA I.

NP-teljesség röviden

19. AZ ÖSSZEHASONLÍTÁSOS RENDEZÉSEK MŰVELETIGÉNYÉNEK ALSÓ KORLÁTJAI

Algoritmuselmélet. Bonyolultságelmélet. Katona Gyula Y.

ALGORITMUSOK ÉS BONYOLULTSÁGELMÉLET Matematika MSc hallgatók számára

Formális nyelvek - 9.

11. Előadás. 1. Lineáris egyenlőség feltételek melletti minimalizálás

Diszkrét matematika 2.

Bonyolultságelmélet. Monday 26 th September, 2016, 18:27. Bonyolultságelmélet

Logika és számításelmélet. 12. előadás

Kiterjesztések sek szemantikája

1. Alapfogalmak Algoritmus Számítási probléma Specifikáció Algoritmusok futási ideje

Kombinatorikus számítási modellek MSc hallgatók számára. 4. Hét

Véges automaták, reguláris nyelvek

Turing-gép május 31. Turing-gép 1. 1

Diszkrét Matematika MSc hallgatók számára 7. Előadás Párosítási tételek Előadó: Hajnal Péter Jegyzetelő: Kovácsházi Anna

Bonyolultságelmélet. Monday 26 th September, 2016, 18:28

Algoritmuselmélet. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem. 12.

Logika és számításelmélet

Ellenőrző kérdések. 36. Ha t szintű indexet használunk, mennyi a keresési költség blokkműveletek számában mérve? (1 pont) log 2 (B(I (t) )) + t

5. előadás. Programozás-elmélet. Programozás-elmélet 5. előadás

Algoritmuselmélet 12. előadás

Általános algoritmustervezési módszerek

ALGORITMUSOK ÉS BONYOLULTSÁGELMÉLET Matematika MSc hallgatók számára. 13. Előadás

10. Előadás P[M E ] = H

Diszkrét Matematika MSc hallgatók számára. 4. Előadás

Optimalizálási eljárások/operációkutatás MSc hallgatók számára

Nagy Gábor compalg.inf.elte.hu/ nagy ősz

Nagy Gábor compalg.inf.elte.hu/ nagy ősz

Online migrációs ütemezési modellek

ALGORITMUSOK ÉS BONYOLULTSÁGELMÉLET Matematika MSc hallgatók számára. 1. Előadás

Turing-gépek. Számításelmélet (7. gyakorlat) Turing-gépek 2009/10 II. félév 1 / 1

út hosszát. Ha a két várost nem köti össze út, akkor legyen c ij = W, ahol W már az előzőekben is alkalmazott megfelelően nagy szám.

GPK M1 (BME) Interpoláció / 16

Programkonstrukciók A programkonstrukciók programfüggvényei Levezetési szabályok. 6. előadás. Programozás-elmélet. Programozás-elmélet 6.

... S n. A párhuzamos programszerkezet két vagy több folyamatot tartalmaz, melyek egymással közös változó segítségével kommunikálnak.

Számításelmélet. Will június 13. A kiszámíthatóság fogalma és a Church-Turing tézis

10. Előadás. 1. Feltétel nélküli optimalizálás: Az eljárás alapjai

Kriptográfia 0. A biztonság alapja. Számítás-komplexitási kérdések

14. Előadás: Kitekintés

Egészrészes feladatok

Formális nyelvek és automaták vizsgához statisztikailag igazolt várható vizsgakérdések

Az informatika logikai alapjai

Előfeltétel: legalább elégséges jegy Diszkrét matematika II. (GEMAK122B) tárgyból

Diszkrét matematika 2. estis képzés

Alap fatranszformátorok II

Szimmetrikus kombinatorikus struktúrák MSc hallgatók számára. Ramsey-gráfok

A Formális nyelvek vizsga teljesítése. a) Normál A vizsgán 60 pont szerezhet, amely két 30 pontos részb l áll össze az alábbi módon:

ALGORITMUSOK ÉS BONYOLULTSÁGELMÉLET Matematika MSc hallgatók számára. Alapok

MBNK12: Permutációk (el adásvázlat, április 11.) Maróti Miklós

Véletlenített algoritmusok. 4. előadás

Az optimális megoldást adó algoritmusok

A Formális nyelvek vizsga teljesítése. a) Normál A vizsgán 60 pont szerezhet, amely két 30 pontos részb l áll össze az alábbi módon:

Nagy Gábor compalg.inf.elte.hu/ nagy

Kvantum-számítógépek, univerzalitás és véges csoportok

Diszkrét matematika I.

Logika és számításelmélet. 7. előadás

Diszkrét matematika 2. estis képzés

24. szakkör (Csoportelméleti alapfogalmak 3.)

Funkcionálanalízis. n=1. n=1. x n y n. n=1

f(x) vagy f(x) a (x x 0 )-t használjuk. lim melyekre Mivel itt ɛ > 0 tetszőlegesen kicsi, így a a = 0, a = a, ami ellentmondás, bizonyítva

Modern irányzatok a bonyolultságelméletben: éles korlátok és dichotómia tételek

KOMBINATORIKA ELŐADÁS osztatlan matematika tanár hallgatók számára. Szita formula

Diszkrét matematika 2.C szakirány

Arany Dániel Matematikai Tanulóverseny 2015/2016-os tanév 1. forduló Haladók III. kategória

Diszkrét matematika 2.C szakirány

Predikátumkalkulus. 1. Bevezet. 2. Predikátumkalkulus, formalizálás. Predikátumkalkulus alapfogalmai, formalizálás, tagadás, logikailag igaz formulák.

Logika és informatikai alkalmazásai kiskérdések február Mikor mondjuk, hogy az F formula a G-nek részformulája?

Specifikáció. B logikai formula, a bemeneti feltétel, K logikai formula, a kimeneti feltétel, A az algoritmus, amelyre az állítás vonatkozik.

Hajnal Péter. Bolyai Intézet, TTIK, SZTE, Szeged április 8.

Leképezések. Leképezések tulajdonságai. Számosságok.

A Számítástudomány alapjai

Más szavakkal formálisan:, ahol olyan egész szám, hogy. Más szavakkal formálisan:, ahol olyan egész szám, hogy.

Logikai szita (tartalmazás és kizárás elve)

Gráfelmélet/Diszkrét Matematika MSc hallgatók számára. 3. Előadás

A szemantikus elemzés elmélete. Szemantikus elemzés (attribútum fordítási grammatikák) A szemantikus elemzés elmélete. A szemantikus elemzés elmélete

Számelmélet (2017. február 8.) Bogya Norbert, Kátai-Urbán Kamilla

Átírás:

ALGORITMUSOK ÉS BONYOLULTSÁGELMÉLET Matematika MSc hallgatók számára 9. Előadás Előadó: Hajnal éter Jegyzetelő: Hajnal éter 2010. április 12. Alternáló polinomiális idő Emlékeztető. Σ i, Π i Definíció. Legyen T egy nem-detereminisztikus Turing-gép, amelyre S S 0 {, }, azaz minden állapotának van egy komponense, ami egszisztenciális ( ) vagy univerzális ( ). Egy adott ω-n gépünk lehetséges futásai szerteágaznak és egy fát alkotnak, amely levelei az ELFOGAD/ELVET állapotokban van (ezek esetén az univerzális/egzisztenciális jelleg nem számít). Ekkor T -t alternáló Turing-gépnek nevezzük. Akár a nem-determinisztikus gépek esetén a kiszámolt érték (elfogadás/elvetés) leírása problémás. Definíció. Minden konfigurációhoz egy értéket rendelünk. A leálló konfigurációk esetén az állapot mondja meg a kiszámolt értéket. Nem leálló konfigurációk esetén megnézzük milyen értéket rendeltünk a rákövetkezőkhöz. Ha a konfiguráció állapota univerzális, ez akkor és csak akkor lesz elfogadó csúcs, ha minden rákövetkező konfigurációja elfogadó. Ha a konfiguráció állapota egzisztenciális, ez akkor és csak akkor lesz elfogadó csúcs, ha van olyan rákövetkező konfigurációja, amely elfogadó. A gép egy ω inputot akkor és csak akkor fogad el, ha a kiinduló konfiguráció elfogadó. Definíció II. változat. Egy L nyelv Σ i nyelvosztályhoz tartozik, ha van olyan őt elfogadó T alternáló Turing-gép, amelyre teljesül: ( ) minden futása polinomiális az input hosszában, (Σ) a kiinduló konfiguráció egzisztenciális, (A i ) minden futása során az egzisztenciális és univerzális állapotok i 1-szer változnak (i darab blokkban következnek) Definíció. Egy L nyelv Π i nyelvosztályhoz tartozik, ha van olyan őt elfogadó T alternáló Turing-gép, amelyre teljesül ( ), (A i ) és (Π) a kiinduló konfiguráció univerzális. A következő tételt bizonyítás nélkül említjük meg. 1. Tétel. A múltkor és a most bevezetett Σ i és Π i nyelvosztályok ugyanazok. 9-1

Megjegyezzük, hogy azon konfigurációk, amelyeknek egyetlen rákövetkezője van címkézetlenek maradhatnak. Ugyanis akár akár címkét kapnak a kiértékelésnél egyetlen rákövetkezőjük eredményét öröklik, bármelyik kvantorral lássuk is el. Így beszélhetünk a Σ 0 és Π 0 nyelvosztályokról, amik mögött lévő Turing-gépek determinisztikusak. Észrevétel. (i) Σ 0 = Π 0 = (ii) Σ 1 = N, Π i = co-n (iii) co-σ i = Π i, co-π i = Σ i, (iv) Σ i Σ i+1, Π i+1, Π i Π i+1, Σ i+1 Az utolsó észrevétel egy kissé másként is megfogalmazható egy definíció segítségével. Definíció. i = Σ i Π i. Ekkor Σ i i+1 Σ i+1, Π i i+1 Π i+1. Természetesen a fenti osztályok indexe az alternálást korlátozza. korlátozás nélküli alternáló Turing-gépet. Vehetjük a Definíció. A azokat az L nyelveket tartalmazza, amikhez van olyan L-et elfogadó alternáló Turing-gép, ami teljesíti ( )-t. Elhagytuk az alternálás korlátozására vonatkozó feltételt. ersze a polinomiális futás korlátozza az alternálások számát is. A kiinduló konfiguráció típusára tett feltétel elhagyása természetes. Ha az alternálások száma nem korlátozott, akkor a kvantorok blokkjai elé/mögé egy új kvantor-blokk tehető az elfogadott nyelv megváltoztatása nélkül. Így elérhető, hogy egzisztenciális állapotból induljon a gép (mint ahogy az is, hogy univerzálisból). Emlékeztető. H = i N Σ i. Az eddigi osztályok viszonyai könnyen szemléltethetők Észrevétel. N H A. Bizonyítás nélkül megemlítjük a következő fontos alaptételt. 2. Tétel. (i) A = SACE, (ii) QBF, a KVNATIFIKÁLT-BOOLE-FORMULA, nyelv teljes a A és SACE osztályokra is. 9-2

Nem-uniform polinomiális idő Emlékeztető. L akkor és csak akkor ha van olyan {C n } n 1 polinomiális méretű hálózat sorozat, amely (K) C n input bitjei Σ n elemeit kódolják (ω input kódja ω bitsorozat), továbbá ω L akkor és csak akkor, ha C n ( ω ) = 1, azaz C n ω kódján az 1 logikai értéket számolja ki, (U) C n hálózat kódja 1 n ismeretében L-ben kiszámolható. Az (U)-val jelölt feltételt uniformitásnak nevezzük. Felmerül az uniformitás szerepének fontossága. A (K) feltétel kombinatorikus jellegű. fenti definíciójában a számítás ketté van osztva, (K)-ban adott inputméret esetén 0-1 bitekkel történő egyszerű operálás történik. Az, hogy a számítás minden inputméretre egységesen kódolt, az (U)-ban jelenik meg. A következő definíció motivációja, hogy megpróbálunk a kombinatorikus összetevőre koncentrálni. Definíció. L nem-uniform akkor és csak akkor ha van olyan {C n } n 1 polinomiális méretű hálózat sorozat, amelyre (K) teljtesül. A nyelvosztály egy kicsit furcsa az eddigiekhez képest. Kilóg az eddig ismert legbővebb kiszámíthatósággal kapcsolatos S osztályból, a felsorolható nyelvek osztályából. Ehhez legyen N S N a természetes számok egy nem felsorolható részhalmaza. L = {1 l : l NS} Σ nyilván nem felsorolható. Másrészt nyilván hálózatsorozattal kiszámolható: ha l N S, akkor a hálózat azaz egyszerű hálózat amelyik az összes változót ÉS-sel köti össze, különben pedig egy ellentmondást (például x x-et) kiszámoló hálózat. A trükk a hálózat sorozat rapszódikus, algoritmikusan leírhatatlan váltakozása. Az alábbiakban a nem-uniform osztály alternatív leírásáit közöljük 3. Tétel. Az alábbiak ekvivalensek: (i) L nem-uniform, (ii) L-hez van olyan tanúszalagos Turing-gép, amely csak az input hosszától függő tanúval elfogadtatja L-et. Azaz van olyan t n Σ p(n) és polinomiális Turinggép, hogy akkor és csak akkor teljesül, hogy ω L, ha T (ω, t ω ) elfogadó. (iii) Alkalmas S ritka nyelvre L T uring S. A tétel utolsó pontjában szereplő jelöléseket meg kell magyaráznunk. Definíció. Egy S nyelv akkor ritka, ha benne az n hosszú szavak száma n-ben polinomiális (azaz nagy n-re jóval kevesebb mint a teljes lehetőségek Σ n exponenciális száma). L T uring L a redukció egy erősített változata (az erdetihez képest, amit Karp nevével is szoktak fémjelezni). Definíció. L T uring L ha van olyan polinomiális Turing-gép, ami ω ismeretében eldönti az L-hez tartozást, amennyiben kérdéseket tehet fel az L nyelvbeliséggel kapcsolatban. (Ezen kérdések feltétele után, a következő konfigurációban már tudjuk a választ, azaz 1 a költsége az időbonyolultság szempontjából.) 9-3

A fenti redukció megvalósítását úgy lehet elképzelni, hogy egy új, kérdező szalagot vezetünk be. Erre írhatjuk fel azt a szót, aminek L -beliségét szeretnénk tudni. Egy új? állapotunk lesz. Ebbe jutva a gép a következő állapotban BENNE-VAN vagy NINCS-BENNE állapotba jut, a szerint, hogy a kérdező-szalag tartalma L - beli, vagy nem. Az ilyen gépeket L -orákulumos gépeknek nevezik. Az ezek által elfogadott nyelvosztály jele L. Természetesen más nyelvosztályokra is definiálhatók orákulumos gépek. Bizonyítás. (i) (ii) Legyen t n a megfelelő hálózat kódja. A (ii)-t igazoló gép a tanú alapján rekonstruálja a hálózatot, kiértékeli ω kódján. (ii) (iii) Legyen S = {t(n, i) : t n első i karaktere} egy ritka nyelv. Könnyű S-hez tartozásra kérdézéssel ω-hoz kiszámítani t ω -t, aminek ismerete megoldja az L-hez tartozás kérdését. (iii) (i) Legyen S a megfelelő ritka nyelv az (iii) feltételből. A polinomiális redukálógép időigényéből egy tudott inputméret esetén fel tudjuk sorolni a leheséges kérdések polinomiális hosszú listáját (a kérdező-szalagra nem írhatunk polinomnál hosszabb szót (nincs rá időnk)). A redukciót végrehajtó gép számolását kódoljuk hálózattal, ahogy azt korábban tettük -beli gépekkel (ezen része a konstukciónknak uniform). Az egyetlen probléma az orákulumhoz intézett kérdések szimulálása. A fentiek alapján ez egy polinomhosszú kódlistához tartozással egyenértékű. Ezt könnyű hálózattal szimulálni (VAGY-olni kell az egyes szavakkal azonosnak lenni leírását, ami a karakterenkénti egyezés ÉS-elése). Az L nyelvről csak a ritkaságot tettünk/használtunk fel. (Konstrukciónk ezen részénél nem beszélhetünk uniformitásról.) Karp, Lipton Sipser-tétel A SAT nyelv N -teljességének egy megfogalmazása a következő állítás. Emlékeztető. Ha SAT, akkor = N Ennek interpretálása a N sejtés fényében, hogy nem várható, hogy SAT polinomiális időben megoldható. De vajon a nem-uniform osztályhoz tartozással mi a helyzet? A következő tétel azt állítja, ha hisszük, hogy a polinomiális hierarchia nem esik össze, akkor SAT ehhez a nyelvosztályhoz sem tartozhat hozzá. 4. Tétel (Karp Lipton, Sipser tétele). Ha SAT nem-uniform, akkor Π 2 Σ 2. Bizonyítás. A feltétel alapján tudjuk, hogy SAT kiszámolható egy {C n } hálózatsorozattal. A bizonyítandóhoz legyen L Π 2, azaz alkalmas polinomiális Turing-gépre x Σ p( ω ) y Σ p( ω ) T (ω, x, y) akkor és csak akkor teljesül, ha ω L. Azt kell bizonyítanunk, hogy L Σ 2. A továbbiakban n := ω. Legyen ω + = ω, x. Az L-beli inputok Π 2 -beli leírásának belseje y Σ p( ω ) T (ω +, y), ami egy N -beli leírás, ha ω + -t tekintjük inputnak. Így ez a probléma viszavezethető SAT -ra: kiszámolhatunk egy ϕ(ω + ) = ϕ(ω, x) CNF-formulát, ami akkor és 9-4

csak akkor lesz kielégíthető (C l ( ϕ(ω, x) ) = 1, ahol l az ω, x hossza, azaz n+p(n)), ha ω-hoz x olyan, hogy a belső formula igaz legyen. Egy ÖTLET: Tippeljük meg C l kódját. Nem lesz jó az L nyelv leírására a következő? C l x Σ p( ω ) C l ( ϕ(ω, x) ) = 1, ahol C l az a Turing-gép, ami C l -ből kicsomagolja C l -et és kiértékeli azt, majd teszteli, hogy az 1 bitet számoltuk-e ki. Ha ω L, akkor minden rendben van: a jó tipp elfogadáshoz vezet. Ha ω / L, akkor a C l tipp rossz, de ez lehet egy vad rosszság. Ötletünk finomításra szorul. 5. Lemma. Legyen C l egy hálózat. Ekkor polinomiális időben kiszámolunk egy C l hálózatot, ami a következőket tudja: (i) ha C l a SAT -ot oldotta meg, akkor C l is, (ii) ha C l az 1 bitet számolja ki, akkor kielégíthető formulát kódol az input. A lemma bizonyítása után már készen vagyunk az L nyelv leírására Σ 2 nyelvvel: C l x Σ p( ω ) Cl ( ϕ(ω, x) ) = 1, ahol Cl az a Turing-gép, ami C l -ből kicsomagolja C l -et, a lemma alapján egyik irányban hibajavítóvá teszi és kiértékeli azt a redukált belső részen, majd bejelenti, hogy az 1 bitet számoltuk-e ki. Mahaney-tétel A Karp Lipton, Sipser tételében szerepő feltételt úgy is megfogalmazhatjuk, hogy SAT Turing S valamely S ritka nyelvre. Mi történik, ha nem Turing, hanem az eredeti/karp redukcióval dolgozunk? (Azaz erősebb feltételünk van.) Előadáson nem szerepelt, de természetes folytatás lett volna a következő tétel. 6. Tétel (Mahaney-tétel). Tegyük fel, hogy SAT S valamely ritka nyelvre. Ekkor = N. Bizonyítás. Először a SAT egy élesítését fogalmazzuk meg. Ehhez definiálunk egy rendezést {0, 1} n halmazon, a legfeljebb n hosszú 0-1 szavakon. (A pontosan n hosszú 0-1 szavakon van egy természetes rendezés: értelmezzük kettes számrendszerbeli számként és N-ből örökítsük a rendezést, vagy másképpen az első (balról-jobbra menve) eltérő bit dönt.) Definíció. x, y {0, 1} n esetén x < y, ha x és y első eltérő bitje 0 az x-ben és 1 az y-ban vagy pedig y valódi kezdőszelete x-nek. élda. {0, 1} 3 rendezett sorrendje: 000, 001, 00, 010, 011, 01, 0, 100, 101, 10, 110, 111, 11, 1, ɛ. Definíció. Legyen SAT az a nyelv, amely inputja egy ϕ CNF-et (n a változó szám) és egy t {0, 1} n szót tartalmaz. ontosan akkor kell elfogadni, ha van olyan b {0, 1} n kielégítő értékadás, amire b t. 9-5

Nyilván ha a (ϕ, ɛ) inputról döntjük el a SAT -hoz tartozását, akkor ϕ kielégíthetőséget döntjük el. De az is nyilvánvaló, hogy SAT is N -beli. Speciálisan SAT SAT (SAT N -teljes). Így feltételünk miatt SAT S a tétel feltételét bizonyító S ritka nyelvre. olinom időben megoldjuk a SAT problémát: A leírandó eljárás során majd a ϕ input és mellé írt legfeljebb n hosszú bitsorozaton futtatjuk a redukciós algoritmust. Ez alapján becsülhetjük a redukció során S-ből kapott értékeket t(n)-nel valamely t polinommal (ahol n az inputformula változószáma). Algoritmusunk futása alatt mindig lesz egy polinomiális hosszú listánk {0, 1} n elemeiből, amelyek hossza mindig ugyanaz lesz (a futás során egyenletesen fog nőni). Kezdőlistánk tartalmazza azon hosszú 0-1 sorozatokat, amik ugyanolyan hosszúak és számuk éppen t(n) felett van. (Listánk hossza legfeljebb 2t(n).) Mindegyik elemre végezzük el a Karp-redukciót. Ha egy érték többször fordul elő, akkor csak a legelső 0-1 sorozatot hagyjuk listánkon azok közül, amelyek ugyanazon sorozatra vezetődtek vissza. Ha listánk túl hosszú, akkor csak az utolsó t(n) darab elemét tartjuk meg. Ezzel elértük, hogy listánk hossza legfeljebb t(n) legyen. Vegyük listánk elemeinek összes 1 bittel való kiterjesztettjét. Legfeljebb 2t(n) hosszú listához jutunk és ismételjük meg korábbi lépésünket. Ahogy az ismételgetést végezzük 0-1 sorozataink hossza 1-gyel nő. Ismételgessük ezt addig, amíg teljes kiértékeléseink lesznek (legfeljebb t(n) sok). Ezek mindegyikére ellenőrizzük kielégíti-e ϕ-t. Ha bármelyik kiélegítő értékadás, akkor elfogadjuk az inputot. Különben elvetjük. Eljárásunk nyilván polinomiális. Csak helyességét kell ellenőrizni. Egyetlen módon tévedhet: Egy kielégíthető formulát elvet. Belátjuk, hogy ha ϕ-nek van kielégítő értékadása, akkor az első (lásd rendezésünket) ilyen értékadás megfelelő hosszú kezdőszelete listánkon lesz. Ez kezdetben nyilván teljesült. A duplikátumok kihúzása során nem veszthettük el. Később csak úgy lehetett baj, ha nála nagyobb elem t(n) elem volt a listánkon, amik különböző elemekre redukálódtak. Mindegyik ilyen elem nagyobb mint az első kielégítő értékadásunk. Így a redukciójuk S-beli elemhez kellett hogy vezessen. A kapható S-beli elemek száma viszont maximum t(n) lehet. Az ellentmondás az algoritmus helyességét és így a tétel igaz mivoltát bizonyítja. 9-6