VÍTĚZSLAV ŠVEJDAR LOGIKA q q q q &b ¢¢ f f  0 t t t“ T T q ¬q ¬q q q q q q q q q q q q q q q q q q q q q q q q q q q q q   }   } & & &&b & & &&b ¢ ¢¢ ¢ ¢¢ ¢ ¢¢ ¢ ¢¢ ¢ ¢¢ ¢ ¢¢ f ffw f ffw f ffw f ffw f ffw f ffw  0  0   0   0 t tt“ t tt“ t t t“ t t t“ T T T T T T T T q q q q¬q ¬q ¬q ¬q q q¬q ¬q q ¬q q q q ¬q ˆˆˆˆ $$$$$$$$$$X r rrr rr‰       ¨¨¨¨¨¨B d d ds neúplnost, složitost a nutnost Tento dokument ve formátu pdf pořídil a zpřístupnil autor knihy za podmínek, které byly domluveny s nakladatelstvím Academia. Dokument nesmí být nijak modifikován a žádná jeho část nesmí být tisknuta. Publikace vyšla s podporou Akademie věd České republiky VitÏzslavävejdar ACADEMIA c Vítězslav Švejdar, 2002 ISBN 80-200-1005-X Předmluva V letech 1992–94 přednášel Petr Hájek logiku pro studenty informatiky na Matematicko-fyzikální fakultě UK a já jsem vedl cvičení. K této výuce jsme napsali učební text [32], který však byl velmi stručný a na desítkách míst se odvolával na skripta P. Štěpánka [88]. Tehdy Petr nadhodil, že by bylo dobré všechny chybějící důkazy vypracovat, a pořídit tak kompletní skripta či knihu. Protože jsem chtěl, aby nějaký učební text doprovázel i kurs logiky, který učím na FF UK, rychle jsem tuto myšlenku přijal za svou. Tak vznikl projekt napsat společně knihu o logice, která je určena nikoliv čtenářům, kteří se chtějí naučit logicky myslet, nýbrž čtenářům, kteří logicky myslet už dávno umějí, a to zpravidla proto, že udělali nějakou zkušenost s univerzitní matematikou. Zejména by měli mít určitou představu o teorii množin a o programování. Rozumělo se přitom, že kniha položí důraz na ty části logiky, jejichž výzkum má v pražském či středoevropském prostředí dobrou tradici, zejména na problematiku Gödelových vět o neúplnosti a obecně metamatematiky teorií obsahujících aritmetiku, na souvislosti logiky a teoretické informatiky a na (některé) neklasické logiky. Po více než pěti letech, když byl text už téměř hotov, Petr usoudil, že nemůže být spoluautorem, neboť jeho podíl je příliš malý. To je formalistické stanovisko — Petr sice fakticky napsal pouze oddíl 5.2 o Gödelově fuzzy logice, avšak podstatně větší část a možná všechno inspiroval. Chci mu tedy alespoň co nejsrdečněji poděkovat za jeho příspěvek, za stálou podporu a za všechna ta léta, kdy byl mým učitelem. Za cenné poznámky k textu chci poděkovat kolegům, studentům a přátelům Tomáši Auerovi, Kamile Bendové, Radku Honzíkovi, Petru Jansovi, Petru Jirků, Janu Krajíčkovi, Ladislavu Nebeskému, Michalu Pelišovi, Petru Savickému, Jiřímu Sgallovi, Haně Skřivanové, Jiřímu Vaňkovi a Martě Vlasákové. Mnoha dalším studentům děkuji za podnětné poznámky a otázky, které kladli při mých hodinách. Za zájem a podporu děkuji Pavlu Pudlákovi, Petru Štěpánkovi a Petru Vojtášovi. Zvlášť chci poděkovat Janu Štěpánkovi, který velkou část textu přepsal na počítači a měl přitom užitečné připomínky, a Emilu Jeřábkovi, který odhalil řadu závad v přípravných verzích. Děkuji také Grantové agentuře UK, která grantem podpořila přípravu knihy, Ediční radě AV ČR, která dotovala její vydání, a Vladimíru Petkevičovi, který finální text v krátké době přečetl a měl užitečné poznámky k využívání a zneužívání 6 Předmluva češtiny. Nakonec a především děkuji své rodině. Haně za zázemí, které mi vytvářela, a za rady a poznámky, které mi byly mnohokrát užitečné v pedagogické práci, a dcerám Idě a Sylvě za to, že mi občas připomněly, jak některé věci vypadají z pohledu studenta. Vítězslav Švejdar, březen 2002 Obsah Úvod 9 1 Výroková logika 13 1.1 Formule a sémantika výrokové logiky . . . . . . . . . . . . . . . . . . 13 1.2 Věta o kompaktnosti . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 1.3 Hilbertovský výrokový kalkulus . . . . . . . . . . . . . . . . . . . . . 28 1.4 Gentzenovský výrokový kalkulus . . . . . . . . . . . . . . . . . . . . 40 2 Algoritmy a úlohy 49 2.1 Programování v jazyce RASP . . . . . . . . . . . . . . . . . . . . . . 52 2.2 Základní pojmy z teorie rekurzívních funkcí . . . . . . . . . . . . . . 82 2.3 Pár slov o výpočtové složitosti . . . . . . . . . . . . . . . . . . . . . 113 3 Predikátová logika 137 3.1 Formule a sémantika predikátové logiky . . . . . . . . . . . . . . . . 137 3.1.1 Jazyky, termy a formule . . . . . . . . . . . . . . . . . . . . . 137 3.1.2 Struktury . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 3.1.3 Substituce, důsledek, logicky platné formule . . . . . . . . . . 145 3.2 Hilbertovský predikátový kalkulus . . . . . . . . . . . . . . . . . . . 156 3.2.1 Korektnost a úplnost . . . . . . . . . . . . . . . . . . . . . . . 156 3.2.2 Příklady důkazů a teorií . . . . . . . . . . . . . . . . . . . . . 170 3.3 Gentzenovský predikátový kalkulus . . . . . . . . . . . . . . . . . . . 182 3.4 Vlastnosti modelů a teorií . . . . . . . . . . . . . . . . . . . . . . . . 205 3.5 Eliminace kvantifikátorů . . . . . . . . . . . . . . . . . . . . . . . . . 228 3.6 Rozhodnutelnost, definovatelnost, interpretovatelnost . . . . . . . . . 256 4 Peanova a Robinsonova aritmetika 275 4.1 Axiomy a modely . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275 4.2 Aritmetizace logické syntaxe . . . . . . . . . . . . . . . . . . . . . . . 291 4.3 Hierarchie aritmetických formulí . . . . . . . . . . . . . . . . . . . . 309 4.4 Σ-úplnost Robinsonovy aritmetiky . . . . . . . . . . . . . . . . . . . 322 4.5 Autoreference, Druhá Gödelova věta . . . . . . . . . . . . . . . . . . 347 8 Obsah 5 Některé neklasické logiky 365 5.1 Intuicionistická logika . . . . . . . . . . . . . . . . . . . . . . . . . . 365 5.1.1 Sémantika intuicionistické výrokové logiky . . . . . . . . . . . 368 5.1.2 Rozhodnutelnost, úplnost, složitost . . . . . . . . . . . . . . . 371 5.1.3 Sémantika intuicionistické predikátové logiky . . . . . . . . . 383 5.2 Gödelova fuzzy logika (napsal Petr Hájek) . . . . . . . . . . . . . . . 395 5.2.1 Gödelova výroková fuzzy logika . . . . . . . . . . . . . . . . . 396 5.2.2 Gödelova predikátová fuzzy logika . . . . . . . . . . . . . . . 405 5.3 Logika dokazatelnosti . . . . . . . . . . . . . . . . . . . . . . . . . . 415 5.3.1 Modální formule, aritmetická sémantika . . . . . . . . . . . . 417 5.3.2 Logické kalkuly . . . . . . . . . . . . . . . . . . . . . . . . . . 420 5.3.3 Kripkovská sémantika . . . . . . . . . . . . . . . . . . . . . . 426 5.3.4 Některé aplikace v metamatematice . . . . . . . . . . . . . . 434 5.3.5 Aritmetická úplnost . . . . . . . . . . . . . . . . . . . . . . . 438 Literatura 447 Rejstřík 453 Úvod The reader (. . . ) learns the language of say predicate logic in much the same way as the notion of polynomial; he is not tempted to that misplaced pedantry which led to the odd idea that logic is the hygiene of mathematics (. . . ). (G. Kreisel, J. L. Krivine v [51]) V matematice jsou velmi často užívány symbolické zápisy. Mohou označovat výroky, například ∀x∀y(x · y = y · x), vlastnosti objektů, například ∃v(v2 = x), nebo vztahy mezi objekty, například x ∈ y. Lze říci, že jejich užití je všeobecné a pro matematiku typické. Zdaleka to však neznamená, že se vyskytují jen v matematice. Symbolické zápisy výroků, vlastností a vztahů mezi objekty budeme nazývat formulemi. Uvažujme nyní těchto pět formulí (axiomů): Ax1: ∀x∀y(x ≤ y ≡ ∃v(v + x = y)), Ax2: ∀x∀y∀z(x + z ≤ y + z → x ≤ y), Ax3: ∀x∀y∀z((x + y) + z = x + (y + z)), Ax4: ∀x∀y(x · y ≤ x & x · y ≤ y), Ax5: ∀x∀y∀z(z ≤ x & z ≤ y → z ≤ x · y), a položme si otázku, zda z uvedených formulí vyplývá následující formule D ∀a∀b∀c((a + c) · (b + c) ≤ (a · b) + c), tj. zda formule D je důsledkem axiomů Ax1–Ax5. Na první pohled by se mohlo zdát, že než se na tuto otázku pokusíme odpovědět, musíme vědět, o čem se mluví (zda například o číslech nebo o jiných objektech) a jaký význam mají symboly +, · a ≤ vyskytující se v našich formulích. Pak budeme moci rozhodnout o pravdivosti všech formulí. Například o formulích Ax1–Ax3 lze říci, že platí v oboru nezáporných čísel, pokud symboly + a ≤ mají obvyklý význam. Formule D by platila, kdyby + a · označovalo operace spojení a průsek v nějaké booleovské algebře. Každá z operací 10 Úvod spojení a průsek je totiž v každé booleovské algebře distributivní vůči druhé. V tom případě by platily i formule Ax1 a Ax3–Ax5, ale neplatila by formule Ax2. Na otázku, zda D vyplývá z Ax1–Ax5, lze ve skutečnosti odpovědět kladně i bez informace, o čem se mluví a jaký význam mají symboly +, · a ≤. Formuli D lze totiž z formulí Ax1–Ax5 odvodit následující úvahou: Nechť a, b a c jsou dány. Pišme d místo (a + c) · (b + c). Máme ověřit, že d ≤ (a · b) + c. K c lze něco přičíst zleva (totiž a) tak, aby výsledek byl a + c. Z předpokladu Ax1 tedy plyne c ≤ a+c. Ze stejného důvodu platí také c ≤ b+c. V tom případě ale vzhledem k Ax5 platí c ≤ d. Použijme nyní Ax1 ve směru zleva doprava: existuje q takové, že q+c = d. Podle Ax4 použitého na x := a+c a y := b + c platí q + c ≤ a + c a q + c ≤ b + c. Teď použijme Ax2: máme q ≤ a a q ≤ b. Ax5 dává q ≤ a · b. To je téměř to, co jsme potřebovali, neboť Ax1 a Ax3 dávají q + c ≤ a · b + c a q + c je d. Místo odvození se také říká důkaz. Čtenář se při svém studiu matematiky jistě už setkal s větším množstvím důkazů více nebo méně podobných našemu příkladu. S trochou nadsázky můžeme říci, že matematika se neskládá z ničeho jiného než z důkazů. Přestože zdůrazňujeme, že naše formule D vyplývá z Ax1–Ax5 bez ohledu na význam symbolů +, · a ≤, prozraďme, kde má náš příklad původ. Všechny předpoklady Ax1–Ax5 platí v oboru nenulových přirozených (případně celých) čísel, pokud + znamená násobení a x·y je největší společný dělitel čísel x a y. V tom případě ≤ musí znamenat relaci dělitelnosti (Ax1 je vlastně její definice) a formule D vyjadřuje ne zcela triviální fakt, totiž víceméně to, že v oboru přirozených nebo celých čísel pro operace největší společný dělitel a násobení platí distributivní pravidlo. Intuitivně je téměř jasné, jaká posloupnost symbolů je a jaká není formulí, čili jaká posloupnost symbolů je správně utvořeným zápisem nějakého vztahu mezi objekty či správně utvořeným zápisem nějakého (pravdivého nebo nepravdivého) výroku. Není překvapivé, že na této intuici lze založit formální definici syntakticky správné formule. Lze něco podobného jako o formulích říci i o důkazech, tj. • Lze formálně definovat pojem důkazu? Uvidíme, že odpověď na tuto otázku je ANO. To se může zdát překvapivé, víme přece, že nalézt důkaz určitého tvrzení často vyžaduje značnou dávku invence a nelze předem říci, jaké obraty budou v onom důkazu použity. Přesto je tomu tak; ukazuje se, že všechny dosud vytvořené důkazy vyhovují definici, která se skládá z několika jednoduchých pravidel. Tento fakt lze pokládat za důležitý objev a úspěch logiky. Formální definice formule a důkazu umožňuje s formulemi a důkazy zacházet jako s matematickými objekty, to znamená řešit problémy, které se jich týkají, a dokazovat o nich tvrzení. Představme si například, že máme odpovědět na otázku, zda existuje důkaz nějakého konkrétního tvrzení z nějaké dané množiny předpokladů. Tvrdíme-li, že ano, můžeme se případně obejít bez jakékoliv logické teorie Úvod 11 a důkaz prostě napsat. Čtenář si to může vyzkoušet na tomto cvičení: formule ∀a∀b∀c((a · b) + c ≤ (a + c) · (b + c)) a ∀a∀b∀c(a ≤ b & b ≤ c → a ≤ c) jsou také odvoditelné z našich předpokladů Ax1–Ax5. Teorie pracující s pojmem formálního důkazu a obsahující jeho přesnou definici je ale nezbytná, tvrdíme-li, že ne, dané tvrzení není dokazatelné z dané množiny předpokladů. Pěkným příkladem tohoto druhu je tvrzení známé jako hypotéza kontinua: každá nespočetná podmnožina množiny R všech reálných čísel má tutéž mohutnost, jako celá množina R. Po mnoho desetiletí selhávaly všechny pokusy dokázat hypotézu kontinua z axiomů teorie množin a otázka, zda takový důkaz existuje, byla velmi známým otevřeným problémem. Až v roce 1963 dokázal P. Cohen, že odpověď na tuto otázku je negativní, hypotézu kontinua z axiomů teorie množin dokázat nelze.1 Definice důkazu spolu s faktem, že formule a důkazy jsou dosti konkrétními objekty, skládajícími se ze znaků, umožňují kromě otázek o dokazatelnosti jednotlivých formulí položit také otázky týkající se množin důkazů nebo množin formulí: • Existuje algoritmus, který pro danou posloupnost znaků rozhodne, zda je nebo není důkazem z daných předpokladů? Každá posloupnost symbolů vyhovující definici důkazu je důkazem a zdůraznili jsme, že důkaz je důkazem bez ohledu na význam symbolů v něm obsažených. To znamená, že typickou odpovědí na tuto otázku je ANO. Přesněji, odpověď je ANO za podmínky, že existuje algoritmus schopný rozhodovat o tom, co je a co není předpokladem, tj. za podmínky, že množina předpokladů je algoritmicky rozhodnutelná. Tato podmínka je ovšem automaticky splněna ve všech případech, kdy množina předpokladů je konečná. Domyšleno trochu dále, odpověď ANO na naši otázku znamená, že kdybychom autora jakéhokoliv důkazu přinutili napsat jeho důkaz dostatečně podrobně, mohl by pak správnost důkazu zkontrolovat počítač. Zkontrolovat správnost již existujícího důkazu může být užitečné, ale v době, kdy důkaz ještě nemáme, bychom jistě velice uvítali informaci, zda hledaný důkaz existuje. Uvidíme, že na otázky • Existuje algoritmus, který pro danou formuli rozhodne, zda je nebo není dokazatelná z daných předpokladů? • Existuje algoritmus, který pro danou formuli rozhodne, zda platí v určitém konkrétním oboru, například v oboru reálných čísel nebo v oboru přirozených čísel? neexistuje žádná typická odpověď. Pro některé množiny předpokladů nebo číselné (nebo jiné) obory je odpověď ANO a pro jiné NE. Odpověď ANO na otázku po algoritmické rozhodnutelnosti znamená, že máme algoritmus, který správně vyřeší všechny instance dané úlohy. Odpověď NE však znamená víc než to, že jej nemáme. Nemáme jej z dobrého důvodu, totiž proto, 1Za předpokladu, že existuje vůbec nějaké tvrzení, které nelze z axiomů teorie množin dokázat. 12 Úvod že neexistuje. Ve 30. letech dvacátého století, tedy dříve, než byly vyvinuty elektronické počítače, vznikly teoretické modely počítačů a o některých úlohách vyskytujících se v logice bylo skutečně dokázáno, že nejsou algoritmicky rozhodnutelné. Od té doby logika úzce souvisí s teoretickou informatikou. Mezi pojmy algoritmus, výpočet a důkaz existují četné analogie, algoritmicky zajímavé úlohy často vznikají právě v logice a logické metody se naopak uplatňují v informatice. Jsme přesvědčeni, že pojem algoritmu dnes patří spolu s pojmy důkaz a důsledek k základním logickým pojmům. Úmluva, že s formulemi a důkazy zacházíme jako s čísly, funkcemi, množinami a ostatními matematickými objekty a v úvahách o nich užíváme matematické prostředky, na první pohled nebudí žádné podezření. Už v kapitole 1 se ale čtenář možná pozastaví nad důkazem věty o kompaktnosti ve výrokové logice, ve kterém použijeme topologické pojmy a vlastně i Tichonovovu větu o kartézském součinu topologických prostorů. Čtenáře by mohlo napadnout, že než si dovolíme užívat metod teorie množin při studiu konkrétních objektů, měli bychom teorii množin prozkoumat hlouběji a nezpochybnitelným způsobem prokázat oprávněnost jejích prostředků. Případně bychom to mohli udělat ve více krocích: v každém kroku bychom pomocí prostředků, o kterých dosud víme, že jsou oprávněné a nezpochybnitelné, prokázali správnost, oprávněnost a nezpochybnitelnost dalších prostředků, které by pak bylo dovoleno užívat v příštím kroku. Toto je zhruba obsah tzv. Hilbertova programu (budování matematiky a logiky). V kapitole 4 se seznámíme s Gödelovými větami o neúplnosti, z nichž slavnou Druhou větu o neúplnosti interpretujeme tak, že Hilbertův program je neproveditelný. Z matematických metod nelze vydělit ty, které jsou finitní, tj. nezpochybnitelné a nezávislé na formálních teoriích. Teorie množin nebo některá jiná formální teorie nutně hraje v logice dvojakou roli: poskytuje prostředky k výzkumu logických objektů, tedy i formálních teorií, a zároveň jako formální teorie je předmětem výzkumu. • Lze se v důkazech tvrzení o konkrétních objektech, jako jsou formule, důkazy nebo počítačové programy, vždy obejít bez náročnějších a abstraktnějších pojmů a prostředků, jako jsou funkce na nekonečných množinách, prostory různého druhu nebo třeba ordinální indukce či ordinální rekurze? Odpověď na tuto poněkud vágní otázku tedy zní NE. Bohužel, chtělo by se dodat. Má ale dobrý smysl říci bohužel, když se nepodařilo udělat něco, co udělat nelze? V kapitole 4 a v oddílu 5.3 uvidíme, že Gödelovy věty o neúplnosti lze chápat také pozitivně, tj. jako něco, co lze hlouběji prozkoumat a osvětlit a co může sloužit jako nástroj k řešení problémů. Takže formule, důkazy, důsledek, úlohy a algoritmy. To, co vypadá jako rozumný plán výzkumu, nemusí být vždy také proveditelné a někdy lze dokázat, že proveditelné není. A netýká se to jen Hilbertova programu. O tom to všechno bude. 1 Výroková logika Všechny důležité matematické věty mají tvar ekvivalence. (J. Krajíček) Nebo jsou to spodní odhady. (J. Sgall) 1.1 Formule a sémantika výrokové logiky V příkladu obsaženém v úvodu jsme viděli, že v symbolických zápisech výroků, vlastností a vztahů se uplatňují symboly několikerého druhu: symboly pro relace mezi objekty a pro operace s objekty (například ≤ a +), proměnné x, y, . . . , pomocné symboly, totiž závorky, a konečně logické symboly, které můžeme rozdělit na logické spojky (&, ∨, → a ¬) a kvantifikátory (∀ a ∃). Složitější formule jsou sestaveny z jednodušších pomocí logických spojek a kvantifikátorů. V této kapitole se zabýváme výrokovou logikou, ve které se z logických symbolů uvažují pouze logické spojky. Kvantifikátory se ignorují spolu se vším, co k nim patří. Formule začínající kvantifikátorem a také formule jako v·v ≤ x, jež neobsahují žádné logické symboly, se ve výrokové logice považují za dále nedělitelné. Složitější výrokové formule jsou tedy sestaveny z jednodušších pomocí logických spojek. Předpokládejme, že jsme pevně zvolili neprázdnou množinu symbolů At neobsahující žádný ze šesti symbolů (, ), &, ∨, →, ¬. Prvkům množiny At říkejme výrokové atomy nebo jen atomy. Následující definice říká, které z výrazů sestavených z prvků množiny At ∪ {(, ), &, ∨, →, ¬} jsou výrokovými formulemi. Definice 1.1.1 Množina všech výrokových formulí je nejmenší množina výrazů splňující podmínky ◦ každý výrokový atom je výroková formule, ◦ je-li ϕ výroková formule, pak ¬ϕ je výroková formule, ◦ jsou-li ϕ a ψ výrokové formule, pak (ϕ & ψ), (ϕ ∨ ψ) a (ϕ → ψ) jsou výrokové formule. 14 1 Výroková logika Jsou-li p, q a r výrokové atomy, pak ((p∨¬q)→r), dále ¬(p&¬p) a ovšem také p a ¬p jsou příklady výrokových formulí. Výrazy ¬(p), p & ¬q, p ∨ q → r podle naší definice výrokovými formulemi nejsou, ale přinejmenším druhý a třetí z nich posuzujme shovívavě. Domluvme se, že úplně vnější pár závorek je povoleno vypouštět, a dále, že spojkám & a ∨ přisuzujeme vyšší prioritu než spojce →. Výraz p ∨ q → r je tedy přípustný zápis pro výrokovou formuli ((p ∨ q) → r). Formule označujeme malými řeckými písmeny nebo velkými latinskými písmeny ze začátku abecedy. Množiny formulí označujeme velkými latinskými písmeny T, S, T1, . . . nebo velkými řeckými písmeny. Spojky &, ∨, → a ¬ nazýváme konjunkce, disjunkce, implikace a negace. Formule ϕ & ψ, ϕ ∨ ψ, ϕ → ψ, ¬ϕ čteme „ϕ a ψ (případně „ϕ et ψ ), „ϕ nebo ψ (případně „ϕ vel ψ ), „pokud ϕ, pak ψ (případně „ϕ implikuje ψ nebo neutrálně „ϕ šipka ψ ) a „non ϕ (případně „není pravda, že ϕ nebo „ne ϕ ). V literatuře se vyskytují i jiné značky pro logické spojky: ∧ pro konjunkci, | pro disjunkci,  ¡ nebo ⇒ pro implikaci, ∼ pro negaci. Termíny konjunkce, disjunkce, implikace a negace vztahujeme nejen na samotné logické spojky, ale i na formule, které jsou z nich utvořeny. Říkáme například, že formule ¬ϕ je negací formule ϕ. Má-li formule χ tvar ϕ→ψ, pak formuli ϕ nazýváme premisou a formuli ψ závěrem implikace χ. Definice 1.1.2 Pravdivostní ohodnocení je každá funkce v z množiny všech výrokových formulí do množiny {0, 1}, která pro libovolné formule ϕ a ψ splňuje podmínky ◦ v(ϕ & ψ) = 1, právě když v(ϕ) = 1 a v(ψ) = 1, ◦ v(ϕ ∨ ψ) = 1, právě když v(ϕ) = 1 nebo v(ψ) = 1, ◦ v(ϕ → ψ) = 1, právě když v(ϕ) = 0 nebo v(ψ) = 1, ◦ v(¬ϕ) = 1, právě když v(ϕ) = 0. Zápis v(ϕ) = 1 čteme „formule ϕ je splněna (pravdivostním) ohodnocením v nebo „(ohodnocení) v splňuje formuli ϕ . Místo v(ϕ) = 1 se někdy píše také v |= ϕ. Sémantika klasické výrokové logiky je založena na představě, že každému výroku lze přisoudit právě jednu ze dvou pravdivostních hodnot 1 a 0. Hodnota 1 reprezentuje pravdu, 0 nepravdu. Podmínky v definici 1.1.2 určují, jak souvisí pravdivost výrokové formule s pravdivostí jejích komponent. Lze je schematicky znázornit následujícími tabulkami: & 1 0 1 1 0 0 0 0 ∨ 1 0 1 1 1 0 1 0 → 1 0 1 1 0 0 1 1 ¬ 1 0 0 1 , 1.1 Formule a sémantika výrokové logiky 15 kterým říkáme pravdivostní tabulky logických spojek. K tabulce implikace pro jistotu poznamenejme, že řádky se vztahují k premise a sloupce k závěru implikace, tj. že v(ϕ→ψ) = 1 platí právě (pouze) tehdy, platí-li současně v(ϕ) = 1 a v(ψ) = 0. E Z tabulky disjunkce je zřejmé, že spojku „nebo chápeme v obvyklém, tj. nevylučovacím smyslu: disjunkce ϕ ∨ ψ je nějakým ohodnocením v splněna i v případě, kdy jsou jím splněny obě formule ϕ a ψ. Příklad 1.1.3 Je-li ϕ formule (¬p ∨ q) & (¬p → q) a v je ohodnocení takové, že v(p) = v(q) = 0, pak platí v(¬p) = 1 a v(¬p → q) = 0, a tedy v(ϕ) = 0. Každé pravdivostní ohodnocení je jednoznačně určeno svými hodnotami na výrokových atomech, a ty mohou být voleny libovolně a navzájem nezávisle. Někdy se pravdivostní ohodnocení definuje trochu jinak než v 1.1.2, totiž jako libovolná funkce z množiny At všech výrokových atomů do {0, 1}. Pravdivostní tabulky pak jednoznačně určují rozšíření v libovolného ohodnocení v na všechny výrokové formule. Je zřejmé, že takováto definice se od naší liší jen nepodstatně. O některých formulích lze říci, že jsou automaticky pravdivé, tj. pravdivé díky své logické struktuře. Říká se také, že jsou logicky platné. Ve výrokové logice takovým formulím říkáme tautologie. Definice 1.1.4 Řekneme, že výroková formule ϕ je splnitelná, jestliže existuje pravdivostní ohodnocení v takové, že v(ϕ) = 1. Formule ϕ je tautologie, jestliže v(ϕ) = 1 pro každé pravdivostní ohodnocení v. Množinu všech splnitelných výrokových formulí a množinu všech tautologií značíme Sat resp. Taut. Příklad 1.1.5 V příkladu 1.1.3 je uvedena formule ϕ a pravdivostní ohodnocení v takové, že v(ϕ) = 0. Formule ϕ tedy není tautologie. Pro libovolné ohodnocení v takové, že v(p) = 0 a v(q) = 1, platí v(ϕ) = 1. Formule ϕ je tedy splnitelná. Slovem „libovolné v předchozím příkladu chceme zdůraznit, že pravdivostní ohodnocení je definováno na množině všech výrokových formulí, tj. je definováno i na atomech jiných než p a q, a může tedy existovat mnoho (dokonce nespočetně mnoho, je-li množina At všech výrokových atomů nekonečná) ohodnocení v s vlastností v(p) = 0 a v(q) = 1. Je ale zřejmé, že pravdivostní hodnota v(ϕ) závisí na ohodnocení jen těch atomů, které se ve ϕ vyskytují. Chceme-li určit, zda nějaká formule je tautologie, stačí probrat všechny funkce z F do {0, 1}, kde F je (konečná!) množina všech výrokových atomů, které se vyskytují v dané formuli. Ukažme si postup na formuli B = ¬(p ∨ q → p & r) → (r → q). Množina F všech atomů vyskytujících se v B má v našem případě tři prvky a všech funkcí z F do {0, 1} je osm. Označme C formuli p ∨ q → p & r a utvořme tabulku jako na obrázku 1.1.1. V záhlaví tabulky jsou všechny podformule formule B a v prvních třech sloupcích jsou všechny možnosti, jak lze přiřadit pravdivostní hodnoty atomům p, q a r. Řádky tabulky odpovídají pravdivostním ohodnocením a pravdivostní tabulky logických spojek jednoznačně určují, jak v daném řádku na základě prvních tří hodnot stanovit pravdivostní hodnoty ostatních (neatomických) formulí. Pro 16 1 Výroková logika p q r r → q p ∨ q p & r C ¬C ¬C → (r → q) 1 1 1 1 1 1 1 0 1 1 1 0 1 0 1 1 1 0 1 1 0 0 1 1 0 1 1 1 1 0 1 0 1 1 0 0 1 0 0 0 1 0 1 0 0 0 1 1 Obrázek 1.1.1: Tabulková metoda přehlednost jsme nepodstatné hodnoty ponechali nevyplněné. Ve všech případech, kdy v(q) = 1 nebo v(r) = 0, platí v(r → q) = 1, a tedy v(B) = 1 bez ohledu na hodnotu v(¬C). A ve zbývajících dvou případech rovněž platí v(B) = 1 díky tomu, že v(¬C) = 0. Zjistili jsme, že formule B je tautologie. Při určování pravdivostních hodnot jsme ovšem mohli postupovat čistě mechanicky, čili systematicky vyplnit všechny hodnoty v tabulce bez úvah o tom, které jsou a které nejsou podstatné. Právě popsaný postup, kterým lze zjistit, zda daná formule je nebo není tautologií nebo splnitelnou formulí, se nazývá tabulková metoda. Díky ní můžeme říci, že problém určit, zda daná formule je tautologie, je algoritmicky rozhodnutelný. Tabulková metoda ale není příliš efektivním algoritmem. Vyskytuje-li se v dané formuli n výrokových atomů, příslušná tabulka má 2n řádků. Velikost pravdivostní tabulky formule, která se vejde do jediného řádku, může značně přesáhnout velikost průměrné knihy! Definice 1.1.6 Řekneme, že výroková formule ϕ je (tautologickým) důsledkem množiny formulí T nebo že ϕ vyplývá z T, a píšeme T |= ϕ, jestliže ϕ má pravdivostní hodnotu 1 při každém pravdivostním ohodnocení v, které přiřazuje hodnotu 1 všem formulím v T. Symbolicky: T |= ϕ ⇔ ∀v(∀ψ ∈ T(v(ψ) = 1) ⇒ v(ϕ) = 1). O množině T v této souvislosti mluvíme jako o množině předpokladů nebo o množině axiomů. Formule ϕ je důsledkem formule ψ, jestliže {ψ} |= ϕ. Formule ϕ a ψ jsou ekvivalentní, jestliže ϕ je důsledkem ψ a zároveň ψ je důsledkem ϕ. Znaménko |= jsme již dříve použili v jiném významu. V kontextu v |= ϕ vlevo od |= stojí pravdivostní ohodnocení a zápis znamená, že ono ohodnocení splňuje formuli ϕ. V kontextu T |= ϕ vlevo stojí množina formulí a znaménko |= znamená důsledek. Mohlo by se zdát, že kolizi bychom se mohli vyhnout tak, že znaménko |= bychom vyhradili pouze pro vztah důsledku a místo v |= ϕ bychom vždy psali v(ϕ) = 1. Ve výrokové logice je to asi pravda, ale se znaménkem |= budeme pracovat i v predikátové logice a tam je jeho užití ve více významech natolik rozšířené, že je asi měnit nelze. 1.1 Formule a sémantika výrokové logiky 17 Příklad 1.1.7 Předpokládejme, že množina At všech výrokových atomů je nekonečná spočetná, At = {p0, p1, p2, . . . }, položme T = {pn→pm; n < m} a uvažujme, které formule tvaru pn → pm vyplývají z T. Když n < m, pak pn → pm vyplývá z T; je zřejmé, že každý prvek jakékoliv množiny T vyplývá z T. Když n = m, pak pn →pm také vyplývá z T, neboť má pravdivostní hodnotu 1 při každém pravdivostním ohodnocení, které přiřazuje hodnotu 1 všem prvkům z T (a při každém jiném pravdivostním ohodnocení ovšem také). Když n > m, pak pravdivostní ohodnocení v, pro které platí v(pi) = 0 pro i ≤ m, a v(pi) = 1 pro i > m, splňuje všechny formule v T, ale nesplňuje formuli pn → pm. Formule pn → pm tedy pro n > m nevyplývá z T. Věta 1.1.8 (a) T ∪ {ψ} |= ϕ, právě když T |= ψ → ϕ. (b) Je-li T konečná, pak T |= ϕ, právě když { T} |= ϕ, kde T je konjunkce všech formulí v T (v libovolném pořadí). (c) ∅ |= ϕ, právě když ϕ je tautologie. (d) Formule ϕ a ψ jsou ekvivalentní, právě když pro každé pravdivostní ohodnocení v platí v(ϕ) = v(ψ). Důkaz ponecháváme za cvičení. Z tvrzení (a)–(c) plyne, že je-li T konečná, pak T |= ϕ, právě když T → ϕ je tautologie. To znamená, že úloha, zda daná formule vyplývá z dané konečné množiny předpokladů, je algoritmicky rozhodnutelná a k jejímu řešení lze užít tabulkovou metodu. Snadno lze ověřit, že každé dvě formule umístěné ve stejném řádku následující tabulky jsou spolu ekvivalentní (pro každou volbu formulí A, B a C): A ∨ (B ∨ C) (A ∨ B) ∨ C asociativní zákony A & (B & C) (A & B) & C . . . A ∨ (B & C) (A ∨ B) & (A ∨ C) distributivní zákony A & (B ∨ C) (A & B) ∨ (A & C) . . . ¬(A & B) ¬A ∨ ¬B de Morganovy zákony ¬(A ∨ B) ¬A & ¬B . . . ¬¬A A zákon dvojné negace. V posledním sloupci je u každé ekvivalence uveden tradiční název. A když už jsme u vyjmenovávání tradičních „zákonů : ¬(A & ¬A) (přesněji řečeno fakt, že každá formule tohoto tvaru je tautologií) se nazývá zákon sporu a A ∨ ¬A se nazývá princip vyloučeného třetího (lze se setkat i s latinským názvem tertium non datur). Domluvme se, že vzhledem k platnosti asociativního zákona budeme často vypouštět závorky ve výrazech obsahujících několik konjunkcí nebo několik disjunkcí za sebou a například místo A ∨ ((B ∨ C) ∨ D) budeme psát jen A ∨ B ∨ C ∨ D. 18 1 Výroková logika Nazvěme literálem každou formuli tvaru p nebo ¬p, kde p je výrokový atom. Disjunkce několika literálů se nazývá klauzule. Řekneme, že formule A je v konjunktivním normálním tvaru, jestliže A je konjunkcí klauzulí. Formule A je naopak v disjunktivním normálním tvaru, jestliže A je disjunkcí formulí, z nichž každá je konjunkcí literálů. Příklad 1.1.9 Formule p i ¬p ∨ q jsou klauzule, takže formule p & (¬p ∨ q) je v konjunktivním normálním tvaru. Formule ¬p∨¬q∨r je (jednočlennou) konjunkcí klauzulí a zároveň je disjunkcí tří (jednočlenných) konjunkcí literálů. Je to tedy formule, která je jak v konjunktivním, tak v disjunktivním normálním tvaru. Věta 1.1.10 Každá výroková formule je ekvivalentní s jistou formulí, která je v disjunktivním normálním tvaru, a také s jistou formulí, která je v konjunktivním normálním tvaru. Důkaz Dokážeme indukcí podle počtu výskytů logických spojek v A, že libovolná formule A je ekvivalentní s nějakou formulí v disjunktivním a také s nějakou (jinou) formulí v konjunktivním normálním tvaru. Když A neobsahuje logické spojky, pak A je atomem, a tedy formulí v konjunktivním i v disjunktivním normálním tvaru. Není-li A atomem, pak A je tvaru ¬B, B∨C, B&C nebo B→C. Probereme všechny čtyři případy. Každá z formulí B, C obsahuje méně logických spojek než A, a dle indukčního předpokladu je tedy každá z nich ekvivalentní s formulí v konjunktivním i s formulí v disjunktivním normálním tvaru. Existují tedy klauzule E1, . . , En, En+1, . . , En+m a formule v disjunktivním normálním tvaru D takové, že B je ekvivalentní s E1 & . . & En, dále C je ekvivalentní s En+1 & . . & En+m a konečně B je ekvivalentní s D. Utvořme z D formuli D tak, že navzájem zaměníme konjunkce a disjunkce, odstraníme všechny negace, a naopak připíšeme negaci ke každému atomu, který ji dosud neměl. Je zřejmé, že při každém pravdivostním ohodnocení mají D a D opačné pravdivostní hodnoty. Protože D je ekvivalentní s B, znamená to, že D je ekvivalentní s ¬B. Navíc D je konjunkcí klauzulí. Dokázali jsme, že ¬B je ekvivalentní s nějakou formulí v konjunktivním normálním tvaru. Nechť A je tvaru B & C. Pak A je ekvivalentní s formulí E1 & . . & En & En+1 & . . & En+m, která je v konjunktivním normálním tvaru. Nechť A je tvaru B ∨ C. Pak A je ekvivalentní s formulí (E1 & . . & En) ∨ (En+1 & . . & En+m) a snadno lze ověřit, že také s formulí 1≤i≤n 0 je zřejmá, neboť instrukce shr X vždy dělí u dvěma a instrukce add Y,Y násobí v dvěma. Třetí rovnost se snadno dokáže indukcí podle j. Když (x div 2j ) čili u je sudé, pak (x mod 2j+1 ) = (x mod 2j ), dvojnásobné odečtení čísla (u div 2) od u dá nulu a z se nemění. Když naopak číslo (x div 2j ) je liché, čili když (j + 1)-ní nejnižší číslice v binárním zápisu čísla x je 1, pak dvojnásobné odečtení čísla (u div 2) od u dá nenulový výsledek, instrukce add Y,Z se provede, nová hodnota z je v + z, tj. y · 2j + y · (x mod 2j ), a platí (x mod 2j+1 ) = 2j + (x mod 2j ). Po n-násobném provedení instrukce shr X je u nulové, skok jgt L1A se neprovede, (x mod 2n ) je x, platí z = y·x a program skončí činnost provedením instrukce halt. Program z obrázku 2.1.2 tedy správně spočítá součin kterýchkoliv dvou celých čísel. V instrukcích programů jsme zatím vystačili se dvěma druhy operandů, přímými a běžnými. Přímý operand má tvar # výraz a jeho hodnotou je hodnota výrazu výraz . Kdyby například v kontextu programu z obr. 2.1.1 byly použity operandy #Done+3 nebo #Z, oba by měly tutéž hodnotu 20. Běžný operand má tvar výraz a jeho hodnotou je číslo uložené na adrese, která je hodnotou výrazu výraz . Například, opět v kontextu programu z obr. 2.1.1, operand Done+3 má zpočátku hodnotu 0 a v okamžiku provedení instrukce halt je jeho hodnotou součin obou vstupních čísel. Kromě přímých a běžných operandů připouští jazyk RASP ještě operandy vzdálené. Vzdálený operand může mít tvar @ výraz1 ( výraz2 ), @( výraz )+ nebo -@( výraz ). Hodnotou operandu @ výraz1 ( výraz2 ) je číslo, které je uloženo na adrese, která vznikne přičtením čísla výraz1 k číslu uloženému na adrese výraz2 . Přitom toto sčítání procesor provádí interně, bez modifikace obsahu adresy výraz2 a podmínkových bitů. Například je-li návěští Done přiřazena hodnota 17 a je-li v určitém stadiu výpočtu v X uloženo číslo 2, pak operandy @Done+1(X) a Done+3 mají tutéž hodnotu, totiž číslo uložené na adrese Done+3. Hodnotou operandu @( výraz )+ je číslo, jehož adresa je uložená na adrese výraz . Znaménko plus znamená, že po přečtení obsahu adresy výraz je tento obsah zvětšen o jedničku. Přitom modifikace obsahu adresy výraz nemá vliv na hodnoty 2.1 Programování v jazyce RASP 57 podmínkových bitů. Je-li například v X číslo 140, instrukce mov #-4,@(X)+ zvětší obsah buňky X na 141, uloží číslo −4 na adresu 140 a vynuluje bity Z a G (protože číslo −4 je nenulové a nekladné). Operand -@( výraz ) procesor vyhodnotí tak, že sníží obsah adresy výraz o jedničku (opět beze změny podmínkových bitů), a pak onen obsah použije jako adresu hodnoty operandu. Domluvme se, že místo @0( výraz2 ) je dovoleno psát pouze @( výraz2 ). Vzdálené operandy usnadňují práci se složitějšími datovými strukturami, než jsou jednotlivá čísla. Například pracujeme-li se seznamem čísel, která jsou uložena na adresách Tab, Tab+1, Tab+2 atd., můžeme se rozhodnout, že obsah adresy X bude sloužit jako ukazatel do tohoto seznamu. Provedení instrukce mov #Tab,X pak znamená, že ukazatel X byl nasměrován na začátek našeho seznamu. Je-li kdykoliv později provedena instrukce mov @(X)+,Y, znamená to, že program si do Y uložil jeden prvek seznamu a přesměroval ukazatel X na prvek těsně následující. Jednou z velmi užitečných standardních datových struktur je zásobník. Zásobník je seznam, jehož délka se může měnit odebíráním položek a přidáváním nových položek. O položce naposled uložené do zásobníku se říká, že je umístěna na vrcholu zásobníku. Ze zásobníku může být odebrána pouze položka umístěná na vrcholu. To znamená, že položka uložená do zásobníku může být odebrána pouze tehdy, byly-li odebrány všechny položky, které do zásobníku byly uloženy později než ona. Zásobník je obvyklé realizovat jako souvislou část paměti plus ukazatel (zásobníkový ukazatel), který vždy obsahuje adresu vrcholu zásobníku. V jazyce RASP předpokládáme, že zásobníkovým ukazatelem je paměťová buňka SP (stack pointer) a že vrchol zásobníku má nižší adresu než všechny ostatní prvky. Při uložení nového prvku do zásobníku tedy musí být snížen obsah adresy SP, a naopak zvýšení obsahu adresy SP znamená odebrání prvku (prvků) ze zásobníku. Návěští SP se nemusí deklarovat, překladač mu automaticky přiřadí hodnotu 0. To znamená, že paměťová buňka 0 slouží jako zásobníkový ukazatel. Zásobník se dobře hodí k implementaci volání podprogramů. Například součástí programu z obrázku 2.1.3 je podprogram Cnv. V hlavním programu začínajícím na adrese Sta se vyskytují dvě instrukce jmp Cnv, neboli podprogram Cnv je volán ze dvou různých míst. Vždy před provedením instrukce jmp Cnv je ale pomocí instrukce mov #C1,-@(SP) resp. mov #C2,-@(SP) uložena do zásobníku tzv. návratová adresa, čili informace o tom, kde má činnost hlavního programu po návratu z podprogramu pokračovat. Uvnitř podprogramu se předpokládá, že na vrcholu zásobníku je uložena návratová adresa; ta se uplatní v okamžiku, kdy je ze zásobníku odebrána provedením instrukce jmp @(SP)+ na adrese L1C. Zásobník se užívá také k implementaci lokálních dat podprogramu, což v programu z obrázků 2.1.3 a 2.1.4 nebylo třeba, a k předávání parametrů podprogramu, což, jak si za chvíli vysvětlíme, se v tomto programu skutečně děje. Programy z obrázků 2.1.1 a 2.1.2 nejsou zcela kompletní. Pominuli jsme totiž otázku, jak se vstupní čísla, která se mají násobit, octnou v buňkách X a Y. Obecněji řečeno, pominuli jsme vstupní a výstupní operace. Neřekli jsme také, kde je určeno, že program začíná práci provedením instrukce na adrese 1. Vysvětleme si nejprve to druhé, začátek činnosti programu. 58 2 Algoritmy a úlohy K tomu, že překladač určí strojový kód každé instrukce a stanoví mu místo v paměti počítače RASP, nyní dodejme, že při obsazování paměti začíná od adresy 0. Start programu probíhá tak, že obsah adresy 0 je vynulován (tím je inicializován zásobníkový ukazatel) a program je spuštěn od instrukce, jejíž adresa byla předtím (před vynulováním) umístěna na adrese 0. Stanovením obsahu adresy 0 tedy při psaní programu určujeme startovací adresu programu, čili iniciální hodnotu čítače instrukcí (nikoliv iniciální hodnotu zásobníkového ukazatele, ta je vždy nulová). Například v programu z obr. 2.1.3 je umístěním čísla Sta na adresu 0 (tj. do prvního řádku programu) určeno, že program má svou činnost začít provedením instrukce mov #C1,-@(SP) na adrese Sta. Adresa 0, tj. adresa SP, v tom okamžiku obsahuje číslo 0. Ukládání položek do zásobníku pak znamená ukládat je na (nižší a nižší) záporné adresy. Nulový obsah buňky 0 znamená prázdný zásobník. Data, která má program zpracovat, jsou uložena na vstupní pásce. Vstupní páska je rozdělena na pole, která jsou očíslována celými nezápornými čísly. Pole vstupní pásky mohou obsahovat znaky. Máme k dispozici kódovou tabulku, která znakům přiřazuje celé nezáporné číselné kódy. Kódová tabulka je něco jako tabulka ASCII; skutečnou tabulku ASCII jsme nepoužili pouze proto, že v ní nejsou zahrnuty některé znaky důležité pro logiku, například logické spojky. Předpokládáme, že kódová tabulka obsahuje znaky všech abeced, které jsme kdy potřebovali či budeme potřebovat, a že kdyby snad ne, můžeme ji rozšířit o další znaky. Jeden ze znaků je mezera, kterou lze podle potřeby zapisovat jako „ nebo jako „ , žádným zvláštním číselným kódem ani ničím jiným však významná není. Vstupní páska je nekonečná, ale jen v konečně mnoha počátečních polích jsou znaky. Ve všech zbývajících polích vstupní pásky je koncová značka , kterou nepokládáme za znak (nemůže být prvkem žádné abecedy) a která má kód −1. Čtení znaků ze vstupní pásky se děje pomocí instrukce read. Tato instrukce má dva operandy: druhý operand určuje, kam se má do paměti uložit číselný kód znaku umístěného v poli, které je určeno prvním operandem. Například instrukce read 2,-@(SP) uloží do zásobníku číselný kód znaku umístěného ve třetím (počítáme od nuly) poli vstupní pásky. Obsah vstupní pásky se během činnosti počítače nemůže měnit. Témuž programu mohou ovšem být ke zpracování předložena různá data, tj. různé obsahy vstupní pásky. Opačný význam než vstupní páska má výstupní páska, na tu program může zapsat výstupní data. Výstupní páska je také rozčleněna na pole číslovaná přirozenými čísly. Při zahájení činnosti programu je výstupní páska prázdná, tj. obsahuje samé koncové značky. Zapisování znaků na výstupní pásku se děje instrukcí write. První operand instrukce write udává číselný kód znaku, druhý udává pole výstupní pásky, na které má být tento znak zapsán. Abychom se při psaní programu nemuseli zabývat číselnými kódy znaků, připouští překladač jazyka RASP výrazy tvaru ‘ znak (levý apostrof následovaný jedním znakem). Hodnotou výrazu ‘ znak je číselný kód znaku znak . Například je-li v paměťové buňce I číslo 0, instrukce write X,@(I)+ zapíše do nejlevějšího pole výstupní pásky znak, jehož číselný kód je uložen v buňce X. Je-li později provedena instrukce write #‘7,@(I)+ a nebyl-li mezitím změněn obsah buňky I, je do druhého nejle- 2.1 Programování v jazyce RASP 59 Sta Sta Cnv: mov @(SP),-@(SP) Cnv: mov @(SP),-@(SP) mov #0,@1(SP) mov #0,@1(SP) L1A: loop read @(Inp)+,X read @(Inp)+,X sub #‘0,X sub #‘0,X jgt I1A if lt then exit jeq I1A ; jmp L1C ; I1A: cmp X,#1 if X gt #1 then exit jgt L1C ; add @1(SP),@1(SP) add @1(SP),@1(SP) add X,@1(SP) add X,@1(SP) jmp L1A endloop L1C: jmp @(SP)+ ret Inp: 0 Inp: 0 Out: 0 Out: 0 X: 0 X: 0 Sta: mov #C1,-@(SP) Sta: call Cnv jmp Cnv ; C1: mov #C2,-@(SP) call Cnv jmp Cnv ; C2: add @(SP)+,@(SP) add @(SP)+,@(SP) Obrázek 2.1.3: Kompletní program pro výpočet součtu, první část vějšího pole vstupní pásky (tj. do pole s číslem 1) zapsán znak 7. Program může do určitého pole výstupní pásky zapisovat i opakovaně, a to jak (různé) znaky, tak koncovou značku. Program ale nemá možnost číst po sobě znaky, které zapsal na výstupní pásku. Po provedení instrukce read op1 , op2 či write op1 , op2 , kterým je čten nebo zapisován znak s číselným kódem x, mají bity Z a G tutéž hodnotu, jako kdyby bylo číslo x přenášeno instrukcí mov. Nyní si můžeme podrobněji prohlédnout program na obrázcích 2.1.3 a 2.1.4. Program sečte dvě přirozená čísla, o nichž předpokládá, že jsou na vstupní pásce zapsaná ve dvojkové soustavě a oddělená jedním znakem různým od znaků 0 a 1. Program užívá buňku X jako pomocnou proměnnou. Dále užívá buňky Inp a Out jako vstupní a výstupní ukazatel, tj. jako ukazatel do vstupní resp. výstupní pásky. Zpočátku každý z ukazatelů ukazuje na nejlevější pole své pásky, tj. na pole s číslem 0. Program volá „konverzní podprogram Cnv, od kterého očekává, že určí hodnotu jednoho sčítance a uloží ji na vrchol zásobníku. Protože máme dva sčítance, podprogram Cnv je volán dvakrát. Po druhém volání jsou v zásobníku dvě položky (tj. v buňce SP je číslo −2). Instrukce add @(SP)+,@(SP) na adrese C2 dělá vlastně 60 2 Algoritmy a úlohy mov @(SP)+,X mov @(SP)+,X L2A: loop mov X,-@(SP) mov X,-@(SP) shr X shr X sub X,@(SP) sub X,@(SP) sub X,@(SP) sub X,@(SP) add #‘0,@(SP) add #‘0,@(SP) cmp X,#0 endloop X eq #0 jeq L2C ; jmp L2A ; L2C: ; L3A: loop write @(SP)+,@(Out)+ write @(SP)+,@(Out)+ cmp SP,#0 endloop SP eq #0 jeq L3C ; jmp L3A ; L3C: halt halt Obrázek 2.1.4: Kompletní program pro výpočet součtu, dokončení vše podstatné: jednu ze dvou položek ze zásobníku odebere a druhou nahradí jejich součtem. Připomeňme, že @(SP) znamená totéž co @0(SP). Nyní se věnujme podprogramu Cnv. Podprogram nejprve provede instrukci mov @(SP),-@(SP). Tím je zásobník prodloužen o jednu položku, stále však platí, že na vrcholu je uložena návratová adresa. Výsledek v svého výpočtu čili výstupní parametr podprogram uloží do buňky, kde byla návratová adresa původně a kterou lze nyní adresovat jako @1(SP). Až podprogram svou činnost skončí, tj. až bude návratová adresa ze zásobníku odebrána instrukcí jmp @(SP)+, výstupní parametr v se octne na vrcholu zásobníku. Zpočátku platí v = 0. Každým provedením instrukce read @(Inp)+,X je přečten jeden znak ze vstupní pásky a vstupní ukazatel je přesměrován na následující znak. Zjistí-li se, že právě přečtený znak není číslice 0 ani 1, čtení znaků končí a vstupní ukazatel je správně nastaven pro případné druhé volání podprogramu Cnv. V opačném případě, tj. jestliže byla přečtena číslice, číslo v uložené v buňce @1(SP) je pomocí dvou instrukcí add nahrazeno číslem 2v nebo 2v+1 podle toho, zda přečtená číslice byla 0 nebo 1. Podprogram předpokládá, že číselný kód znaku 1 je o jedničku větší než číselný kód znaku 0. To znamená, že provedením instrukce sub #‘0,X je číselný kód znaku 0 nebo 1 převeden na číslo 0 resp. 1. Poté, co program přečetl oba vstupy a sečetl je instrukcí add @(SP)+,@(SP), provádí „výstupní konverzi , tj. převádí výstup z číselné do znakové podoby. To je vidět na obrázku 2.1.4. Číslice výsledku jsou nejprve uloženy do zásobníku, a teprve pak, v obráceném pořadí, zapsány na výstupní pásku. Všimněme si ještě, že program nemá žádné nároky na formát vstupních dat: nevadí mu, začíná-li zápis nenulového čísla nulami, prázdnou posloupnost číslic považuje za zápis čísla 0, znaky případně umístěné na vstupní pásce za oběma sčítanci ignoruje. 2.1 Programování v jazyce RASP 61 Činnost programu pracujícího na počítači RASP může skončit provedením instrukce halt, ale také detekováním chybového stavu. Chybový stav může například nastat provedením instrukcí mov #X,Y a jmp Y, neboť pravděpodobně ne každé číslo X je strojovým kódem nějaké instrukce. Jiným příkladem chybového stavu je pokus zapsat na výstupní pásku do pole se záporným číslem nebo číst ze vstupní pásky z pole se záporným číslem. Můžeme si představovat, že zastaví-li se procesor provedením instrukce halt, na jeho panelu se rozsvítí zelené signální světlo, kdežto zastaví-li se po detekování chyby, na panelu se rozsvítí červené signální světlo. Během práce počítače jsou obě světla zhasnutá. Zastavení procesoru a rozsvícení červeného signálního světla lze z programu dosáhnout provedením instrukce error. To je poslední instrukce jazyka RASP, o které jsme se dosud nezmínili. Daný program může instrukci error dát libovolný předem dohodnutý význam. Rozsvícení červeného světla může například indikovat nesprávný formát vstupních dat. Má-li program pouze dva možné výstupy (ANO a NE), je také možné stanovit, že na výstupní pásku se nic nezapisuje a že výsledkem činnosti programu je pouze rozsvícení toho nebo onoho signálního světla. V tom případě provedení instrukce error neznamená žádnou „chybu . Shrňme a nepatrně rozšiřme své poznatky o jazyce RASP a o počítači RASP. Program v jazyce RASP se člení na řádky. Každý řádek může mít tři pole. Pole návěští končí dvojtečkou, pole komentáře začíná středníkem, zbývající (střední) část řádku je pole instrukce. Pole komentáře slouží pouze pro pisatele nebo čtenáře programu, překladač jazyka RASP je ignoruje. Pole instrukce může obsahovat výraz, nebo skutečnou instrukci. Výraz je sestaven z návěští, čísel a výrazů tvaru ‘ znak pomocí znamének. Příklady výrazů jsou Res-Tab+4, ‘A+64 nebo -4. Je-li v nějakém řádku programu uvedeno návěští a přitom chybí pole instrukce, návěští se vztahuje k nejbližšímu následujícímu řádku s neprázdným polem instrukce. Není-li v poli instrukce výraz, může tam být skutečná instrukce. Výraz se v programu může vyskytnout samostatně, tj. jako jediný obsah pole instrukce, nebo jako součást operandu instrukce. Překladač jazyka RASP převádí výrazy na jejich hodnoty E a instrukce na jejich strojové kódy a určuje jim místo v paměti počítače RASP. V jazyce RASP máme celkem třináct instrukcí. Je to osm aritmetických instrukcí, které mohou měnit obsah paměti i podmínkové bity, nemohou ale měnit čítač instrukcí v tom smyslu, že po provedení aritmetické instrukce je vždy provedena ta instrukce, která v paměti bezprostředně následuje. Dále máme tři skokové instrukce, ty mohou měnit čítač instrukcí, nemění ale podmínkové bity a nemění ani obsah paměti až na výjimku, že při vyhodnocení vzdáleného operandu takové instrukce může dojít ke zvětšení nebo zmenšení obsahu určité paměťové buňky o jedničku. A konečně máme instrukce halt a error. Dvě posledně jmenované instrukce jsou instrukce bez operandů, instrukce add, sub, cmp, mov, read a write jsou instrukce se dvěma operandy, zbývající instrukce neg, shr, jeq, jgt a jmp mají jeden operand. Operandy jsou přímé, běžné a vzdálené. Operand jednooperandové instrukce a druhý operand dvouoperandové instrukce musí být běžný nebo vzdálený s výjimkou instrukce cmp, jejíž druhý operand může být i přímý. První operand dvouoperandové instrukce může být libovolný s výjimkou instrukce read, 62 2 Algoritmy a úlohy jejíž první operand může být pouze běžný nebo vzdálený. Překladač jazyka RASP převádí výrazy na jejich hodnoty a instrukce na jejich strojové kódy a určuje jim místo v paměti počítače RASP. Činnost programu začíná přenesením obsahu paměťové buňky 0 do čítače instrukcí a jejím vynulováním. Činnost programu končí provedením jedné z instrukcí halt nebo error nebo detekováním chybového stavu. Pro určitost definujme, že v okamžiku startu počítače jsou oba podmínkové bity nulové a že instrukce halt a error podmínkové bity nemění. Není zaručeno, že každý program při zpracování libovolných dat někdy skončí. Například program z obrázku 2.1.1 dospěje k výsledku právě tehdy, je-li počáteční obsah buňky X nezáporný. V opačném případě program pracuje donekonečna, tj. zacyklí se. Počítač RASP pracuje s čísly, s okolím ale komunikuje pomocí znaků zapsaných na vstupní a výstupní pásce a pomocí dvou signálních světel. Obsah vstupní pásky se během činnosti programu nemění. Označení RASP jsme převzali z knihy [1]. V této knize se kromě počítače RASP užívá také (hlavně) počítač RAM (random access machine). Modely RAM a RASP mají tutéž množinu instrukcí, liší se ale tím, že program počítače RAM není uložen v paměti. Pro model RASP jsme se rozhodli proto, že implementace volání podprogramů, kterou považujeme za dost důležitou, by na počítači RAM byla mnohem méně přirozená. Počítače RAM se uvažují také v knihách [62] a [52]. Na rozdíl od všech tří knih jsme připustili, aby aritmetické operace probíhaly ve všech paměťových buňkách, nikoli jen v jedné k tomu určené. Připustili jsme také paměť se zápornými adresami. Ani jedno totiž nic nestojí a přitom to značně usnadňuje programování. Stejně jako v knize [62] a na rozdíl od knih [1] a [52] jsme mezi instrukce jazyka nepřijali instrukce pro násobení a dělení. Ty by totiž nic podstatného nepřinesly, ale komplikovaly by úvahy, které povedeme dále, o časové a paměťové náročnosti úloh a programů. V pravých částech obrázků 2.1.2, 2.1.3 a 2.1.4 jsou tytéž programy přepsány s použitím „konstruktů call, if–endif a loop–endloop. Tyto konstrukty nejsou novými instrukcemi, nýbrž textovými zkratkami, pod nimiž se skrývají fragmenty programů, tj. instrukce a návěští. Takovýmto textovým zkratkám se zpravidla říká makra. Užití maker může někdy zkrátit zápis programu, jejich hlavní význam je ale v tom, že naznačují „logiku programu , čili zpřehledňují význam skokových instrukcí. Značně také omezují potřebu návěští. O textu, který se skrývá pod určitým makrem, říkáme, že je oním makrem generován. Nadále budeme makra při psaní programů hojně využívat a budeme se spoléhat na to, že čtenář, který si pečlivě prohlédl obrázky 2.1.2 až 2.1.4, dovede kterýkoliv program obsahující makra přepsat na program bez maker. Vysvětleme si nyní podrobněji syntax a význam (některých) maker. Nejprve se zabývejme makrem if. Podmínka cnd umístěná mezi if a then může mít tvar op1 rel op2 nebo tvar rel . Jako „relační znaménko rel se připouštějí mnemoniky gt a eq, které jsou opsány z mnemonik podmíněně skokových instrukcí, dále k nim komplementární mnemoniky le (less or equal, menší nebo rovno) a ne (not equal, nerovno), a konečně lt (less than, menší než) a ge (greater or equal, větší nebo rovno). Makro if generuje jednu až tři skokové instrukce a případně 2.1 Programování v jazyce RASP 63 loop ; Všechny znaky read @(Inp)+,X ; Přečti další znak if lt then exit ; Koncová značka mov X,-@(SP) ; Vše kromě pravé závorky if X ne #‘) then repeat ; pouze ulož do zásobníku add #1,SP ; Odeber pravou závorku if @3(SP) ne #‘( then error ; Zkontroluj uložené if @2(SP) ne #‘0 then ; znaky if @2(SP) ne #‘1 then error endif mov @(SP)+,X ; Pravý operand mov @(SP)+,Op ; Znaménko operace if X eq #‘0 then if Op eq #‘+ then goto Res ; 0+x=x if Op ne #‘* then error mov #‘0,@(SP) ; 0*x=0 else ; Pravý operand není nula if X ne #‘1 then error ; Musí to být jednička if Op eq #‘* then goto Res ; 1*x=x if Op ne #‘+ then error mov #‘1,@(SP) ; 1+x=1 endif Res: mov @(SP)+,@(SP) ; Jeden znak místo pěti endloop ; Po zpracování if SP ne #-1 then error ; vstupu musí být v záif @(SP) eq #‘0 then goto Done ; sobníku jediný znak, if @(SP) ne #‘1 then error ; nula nebo jednička, Done: write @(SP)+,0 ; který je výsledkem halt Obrázek 2.1.5: Výpočet hodnoty booleovského výrazu jedno návěští. Má-li podmínka cnd složitější tvar op1 rel op2 , makro if generuje ještě instrukci cmp op1 , op2 . V opačném případě, má-li podmínka cnd tvar pouze rel , se předpokládá, že podmínkové bity byly nastaveny instrukcemi předcházejícími řádek s makrem if. Mezi if a endif může, ale nemusí být použito else. Kdyby mezi if a endif nebylo else a byl by tam pouze jeden řádek, je povoleno psát jednořádkový if s instrukcí zapsanou za then a bez užití makra endif. Makra loop a endloop vymezují cyklus. Za loop i za endloop může následovat podmínka cnd téhož tvaru jako v makru if. Na rozdíl od makra if je jak podmínka za loop, tak podmínka za endloop nepovinná. Podmínka za loop je podmínkou pro vstup do cyklu, podmínka za endloop je podmínkou pro opuštění cyklu. Dvojice loop a endloop cnd odpovídá konstruktu repeat–until v jazyce 64 2 Algoritmy a úlohy Get: mov @(SP),-@(SP) ; Posuň návratovou adresu read @(Inp)+,@1(SP) ; V @1(SP) bude výsledek if @1(SP) eq #‘0 then ret ; Hotovo, když jen if @1(SP) eq #‘1 then ret ; jedna číslice if @1(SP) ne #‘( then error ; Jinak je nutná závorka call Get ; Čti levý podvýraz, read @(Inp)+,-@(SP) ; operační znaménko call Get ; a pravý podvýraz if @1(SP) eq #‘+ then ; Logický součet if @0(SP) eq #‘1 then mov #‘1,@2(SP) else ; Logický součin if @1(SP) ne #‘* then error ; nebo nesprávný formát if @0(SP) eq #‘0 then mov #‘0,@2(SP) endif read @(Inp)+,-@(SP) ; Následovat musí if @(SP)+ ne #‘) then error ; pravá závorka add #2,SP ; Dvě položky už zbytečné mov @(SP)+,@1(SP) ; třetí je výsledek ret ; Hotovo, zpět Sta: call Get ; Přečti celý výraz read @(Inp)+,-@(SP) ; Následovat musí if @(SP)+ ge #‘0 then error ; koncová značka write @(SP)+,0 ; Zapiš výsledek halt ; Hotovo Obrázek 2.1.6: Hodnota booleovského výrazu pomocí rekurzívního volání Pascal. Dvojice loop cnd a endloop (bez podmínky) odpovídá konstruktu while. V cyklu mezi loop a endloop se může vyskytnout konstrukt exit, kterým lze nařídit předčasné opuštění cyklu, a konstrukt repeat, kterým lze naopak nařídit opakování cyklu od počátku. Konstruktu repeat tedy přisuzujeme zcela jiný význam, než má v jazyce Pascal. Konstrukty exit a repeat, a rovněž goto, se mohou vyskytnout také za then v jednořádkovém if. Význam maker call a ret je z obrázků 2.1.3 a 2.1.4 zřejmý. Program z obrázku 2.1.5 určuje hodnotu booleovského výrazu. V zápisu programu jsme vynechali řádky, které si čtenář jistě umí představit: deklaraci startovací adresy a alokaci pomocných buněk X, Op a Inp. Program pracuje tak, že všechny znaky booleovského výrazu zapsaného na vstupní pásce beze změny ukládá do zásobníku a pozastaví se pouze v případě, kdy přečtený znak je pravá závorka. V tom okamžiku musí platit, že pět nejvyšších položek na vrcholu zásobníku jsou znaky levá závorka, číslice 0 nebo 1, znaménko + nebo *, číslice 0 nebo 1, a pravá závorka. Není-li tomu tak, program skončí činnost provedením instrukce error. Je-li tomu tak, program těchto pět znaků nahradí znakem 0 nebo 1, a pak pokračuje ve čtení vstupního výrazu. 2.1 Programování v jazyce RASP 65 Program z obrázku 2.1.6 také určuje hodnotu booleovského výrazu, postupuje ale jinak než program z obr. 2.1.5, užívá rekurzívní volání podprogramů. Program začíná svou činnost na adrese Sta, znaky ze vstupní pásky jsou opět čteny pomocí ukazatele Inp. Od podprogramu Get se očekává, že určí hodnotu výrazu, na jehož nejlevější znak ukazuje buňka Inp, uloží ji do zásobníku a přesměruje ukazatel Inp těsně za onen výraz. Pokud se po volání umístěném na adrese Sta zjistí, že na vstupní pásce jsou ještě další (nadbytečné) znaky, program ohlásí chybu provedením instrukce error. Pokud podprogram Get zjistí nesprávný formát booleovského výrazu, nevrací žádný chybový parametr, nýbrž sám provede instrukci error. Podprogram Get začíná svou činnost podobně jako podprogram Cnv z obrázku 2.1.3, posunutím návratové adresy utvoří v zásobníku prostor pro uložení svého výstupního parametru a přečte jeden znak ze vstupní pásky. Pokud je přečtený znak číslice 0 nebo 1, nemusí dělat již nic dalšího. V opačném případě by na pásce měl být zapsán složený výraz, který sestává ze dvou podvýrazů spojených znakem + nebo * a obklopených závorkami. Hodnoty obou podvýrazů zjistí dvojnásobným voláním podprogramu Get, čili rekurzívním voláním sebe sama. Po druhém volání podprogramu Get v osmém řádku programu, a to až do provedení instrukce add #2,SP, lze hodnoty obou podvýrazů adresovat jako @2(SP) a @0(SP), kdežto @1(SP) je operační znaménko. Zbytek je podobný jako v programu z obr. 2.1.5. Nyní směřujme k definici počitatelnosti úloh a k definici časových a paměťových nároků programu. Víme, že pouze konečný počáteční úsek vstupní pásky obsahuje znaky a že celý zbývající úsek vstupní pásky je vyplněn koncovými značkami. Slovu zapsanému v onom počátečním úseku říkejme vstup programu, délka tohoto slova je délka vstupu. Délka vstupu w je tedy nejmenším číslem n takovým, že v poli s indexem n a všech dalších polích vstupní pásky jsou koncové značky. Výstupní páska je zpočátku prázdná, tj. obsahuje samé koncové značky, obsah některých polí ale program během své činnosti může změnit. V okamžiku, kdy se program zastaví (a rozsvítí některé signální světlo), jsou jen v konečně mnoha polích výstupní pásky zapsány znaky. V každém taktu totiž program mohl změnit obsah nejvýše jednoho pole. Zastaví-li se program provedením instrukce halt, pak za výstup programu pokládáme slovo, které je v tom okamžiku na výstupní pásce zapsáno vlevo od nejlevějšího pole obsahujícího koncovou značku. Nevylučujeme, že vpravo od tohoto pole jsou na výstupní pásce zapsány ještě další znaky; ty ale k výstupu nepočítáme. Zastaví-li se program rozsvícením červeného světla (tj. provedením instrukce error nebo detekováním chybového stavu), nebo nezastaví-li se vůbec (tj. zacyklí-li se), pokládáme výstup programu za nedefinovaný. Nechť Σ1 a Σ2 jsou abecedy a nechť X ⊆ Σ∗ 1 a g : X → Σ∗ 2. Řekneme, že program P počítá funkci g, jestliže (i) program P při zpracování libovolného vstupu w ∈ Σ∗ 1 poskytne výstup právě tehdy, platí-li w ∈ X, a (ii) pokud to nastane, je výstupem slovo g(w). Program P je tedy povinen dát výstup g(w), kdykoliv w ∈ X, a nedat žádný výstup (tj. zastavit se rozsvícením červeného signálního světla nebo se nezastavit vůbec), platí-li w ∈ Σ∗ 1 −X. Řekneme, že funkce g z X do Σ∗ 2 je počitatelná (na počítači RASP), existuje-li program v jazyce RASP, který ji počítá. 66 2 Algoritmy a úlohy Například program z obrázku 2.1.5 počítá funkci definovanou na množině všech booleovských výrazů, která každému booleovskému výrazu přiřazuje jeho hodnotu. Je snadné pozměnit tento program na program počítající funkci (úlohu) Hodnota booleovského výrazu definovanou v úvodu této kapitoly. Znamená to upravit jej tak, aby místo provedení kterékoliv ze svých instrukcí error zapsal do nultého pole výstupní pásky dohodnutý znak (v úvodu kapitoly to byl znak n), a pak provedl instrukci halt. Dále nevelkou úpravou programu z obrázků 2.1.3 a 2.1.4 lze získat program, který počítá funkci [x, y] → x + y, tj. který počítá součet přirozených čísel. Znamená to zapracovat do něj kontrolu, která připustí pouze vstupy tvaru w1;w2, kde w1 a w2 jsou binární zápisy přirozených čísel, a odmítne (provedením instrukce error) všechny ostatní vstupy. Přidáme-li k programu z obrázku 2.1.1 nebo k programu z obrázku 2.1.2 kontrolu formátu vstupních dat a vstupní a výstupní konverze, dostaneme v obou případech program, který počítá součin přirozených čísel. Programy (přesněji řečeno fragmenty programů či algoritmy) z obrázků 2.1.1 a 2.1.2 tedy představují dvě různá zdůvodnění, proč Násobení je funkce počitatelná na počítači RASP. Několik dalších počitatelných funkcí je uvedeno ve cvičeních. Nechť P je program a nechť f je funkce z N do N. Řekneme, že program P pracuje v čase f, jestliže při zpracování libovolného vstupu délky nejvýše n se program P zastaví po provedení nejvýše f(n) kroků. Řekneme, že úloha g : X → Σ∗ 2, kde X ⊆ Σ∗ 1, je počitatelná (na počítači RASP) v čase f, jestliže existuje program, který ji počítá a který pracuje v čase f. Například v podprogramu Cnv na obrázku 2.1.3 je cyklus, tj. vícenásobně prováděná sekvence instrukcí omezená makry loop a endloop. Při zpracování vstupu délky n se tento cyklus provádí (n + 1)-krát (naposled při přečtení první koncové značky za vstupním slovem). To znamená, že každá z deseti instrukcí cyklu se provede nejvýše (n + 1)-krát. Výstup programu má nejvýše (n + 1) znaků (normálně je jich nejvýše n − 1, pouze při zpracování prázdného vstupu jich je n + 1). To znamená, že také každá z nejvýše dvanácti instrukcí dvou cyklů hlavního programu (na obr. 2.1.4) se provádí nejvýše (n + 1)-krát. V podprogramu Cnv jsou tři instrukce umístěné mimo cyklus a každá z nich se provádí dvakrát, v hlavním programu je sedm instrukcí umístěných mimo oba cykly. Dohromady se tedy provede nejvýše 10(n + 1) + 12(n + 1) + 6 + 7 instrukcí. Tím jsme zdůvodnili, že náš program pro výpočet součtu počítá v čase f, kde f(n) = 22n + 35. V dalším výkladu budeme pokud možno dodržovat zvyklost, že počet znaků vstupu se značí n a že funkce vyjadřující časové nebo paměťové nároky programu se zapisuje výrazem (v n). Náš program tedy pracuje v čase 22n + 35. Také časové nároky programu z obr. 2.1.5 lze snadno odhadnout: v programu je 49 instrukcí a při zpracování vstupu délky n se každá z nich provede nejvýše (n + 1)-krát. Program tedy pracuje v čase 49(n + 1). V obou případech by šlo počítat i precizněji. To ale nemáme v úmyslu. Naopak, v dalším textu se většinou nebudeme zajímat o přesnou hodnotu multiplikativních konstant a spokojíme se také s odhady, které platí až na konečně mnoho výjimek. Pro tento účel jsme v oddílu 1.3 (viz str. 36) zavedli tuto definici: funkce f je v O(g), jestliže existuje 2.1 Programování v jazyce RASP 67 konstanta c taková, že f(n) ≤ c · g(n) pro všechna dost velká n. Zatím jsme tedy zjistili, že jak náš program pro výpočet součtu, tak program z obr. 2.1.5 pro výpočet hodnoty booleovského výrazu pracuje v čase (f, kde f je funkce v) O(n). Na tomto tvrzení by se nic nezměnilo, kdybychom programy upravili tak, jak je naznačeno výše, tj. kdybychom do programu pro sčítání zapracovali kontrolu formátu vstupních dat a kdybychom program z obr. 2.1.5 upravili tak, aby se vždy dopracoval k rozsvícení zeleného světla. Jak součet přirozených čísel, tak určování hodnoty booleovského výrazu jsou tedy funkce počitatelné na počítači RASP v lineárním čase. Když v binárním zápisu čísla x je n cifer, může být potřeba až 2n − 1 odčítání jedničky, než je x přepracováno na nulu. To znamená, že kdybychom fragment programu uvedený na obr. 2.1.1 doplnili na kompletní program, o výsledném programu počítajícím funkci [x, y] → x · y bychom nemohli říci nic lepšího, než že pracuje v čase 2n . Protože funkce n → 2n roste dosti rychle, rychleji než všechny funkce tvaru n → nk (tj. rychleji než všechny polynomy), program pro výpočet součinu přirozených čísel založený na algoritmu z obr. 2.1.1 nelze považovat za příliš efektivní. Je-li naproti tomu v buňce X číslo, jehož zápis má n cifer, dospějeme již po n-násobném provedení instrukce shr X k nule. Cyklus v algoritmu na obrázku 2.1.2 se tedy provádí pouze tolikrát, kolik cifer je v zápisu prvního činitele x. Kdybychom tento algoritmus doplnili na kompletní program přidáním kontroly formátu vstupních dat a vstupních a výstupních konverzí, dostali bychom program pro výpočet součinu přirozených čísel, který pracuje v čase O(n). Díky algoritmu z obr. 2.1.2 tedy můžeme tvrdit, že úloha Násobení je na počítači RASP počitatelná v lineárním čase. Algoritmus z obrázku 2.1.1 není pro tento účel nijak užitečný. Přikročme k úvahám o prostorové (paměťové) náročnosti programů a úloh. Nejprve definujme funkci z N do N předpisem (x) = log(x + 1) , kde log je dvojkový logaritmus a z → z je horní celá část, tj. funkce, která každému (řekněme reálnému) číslu z přiřadí nejmenší celé číslo j takové, že z ≤ j. Funkce se nazývá délková funkce nebo také celočíselný logaritmus. Je-li x ∈ N a x > 0, pak (x) udává počet cifer v binárním zápisu čísla x. Místo (x) se v literatuře často píše |x| (což je v souladu s označením |w| pro délku slova w). Toho se ale držet nebudeme, označení |x|, je-li x číslo, si vyhradíme pro absolutní hodnotu čísla x. Definujme konfiguraci počítače RASP jako slovo tvaru d1d2d3d4b,a,c1, . . ,ck, (∗) kde d1 až d4 jsou číslice 0 nebo 1, slova b, a a c2, . . , ck−1 jsou binární zápisy celých čísel a slova c1 a ck jsou binární zápisy nenulových celých čísel. Konfigurace je tedy slovem v abecedě {-, ,, 0, 1}, přičemž minus slouží k zapisování záporných čísel a čárka slouží k oddělování čísel od sebe. Jednotlivé části konfigurace interpretujeme následovně. Číslice d1 (číslice d2) je 1 právě tehdy, je-li rozsvíceno zelené resp. červené signální světlo. Číslice d3 a d4 udávají hodnoty podmínkových bitů Z a G. Slovo b udává hodnotu čítače instrukcí, slovo c1 udává obsah paměťové buňky, jejíž adresu udává slovo a, slova c2, . . , ck udávají obsahy (k − 1) bezprostředně následujících paměťových buňek. O ostatních paměťových buňkách (s adresami nižšími 68 2 Algoritmy a úlohy než a a vyššími než a + k − 1) se rozumí, že obsahují nuly. Celá konfigurace tedy udává informaci o stavu počítače RASP v určitém okamžiku jeho činnosti. Je-li C konfigurace tvaru (∗), pak slovem C a obsahem w vstupní pásky je jednoznačně určeno, co v daném okamžiku počítač udělá: neudělá nic, má-li některý z bitů d1 a d2 hodnotu 1 (v tom případě došlo k zastavení počítače už v konfiguraci C), nebo přejde do jednoznačně určené konfigurace D, která se od konfigurace C může lišit v hodnotách bitů d1 až d4, v hodnotě čítače instrukcí a dále v obsahu nejvýše tří paměťových buněk (neboť každá instrukce modifikuje obsah nejvýše jedné paměťové buňky, ale při vyhodnocení případných vzdálených operandů může být obsah dalších nejvýše dvou paměťových buňek zvětšen nebo zmenšen o jedničku). Takto jednoznačně určené konfiguraci D říkejme konfigurace odvozená z konfigurace C a z obsahu w vstupní pásky. Konfiguraci, ve které má některý z bitů d1 a d2 hodnotu 1 (takže neexistuje konfigurace z ní odvozená), říkejme koncová konfigurace. Definujme konfiguraci počáteční vzhledem k programu P jako konfiguraci, ve které jsou bity d1, . . , d4 nulové, čítač instrukcí má tu hodnotu, kterou překladač při překladu programu P uložil na adresu 0, adresa 0 má nulový obsah a všechny ostatní paměťové buňky mají ten obsah, který jim určil překladač při překladu programu P. Řekneme, že posloupnost C0, . . , Cm konfigurací je výpočet programu P ze vstupu w, jestliže C0 je konfigurace počáteční vzhledem k programu P, každá konfigurace Ci+1 je odvozená z konfigurace Ci a slova w a konfigurace Cm je koncová. Všimněme si, že je-li C0, . . , Cm výpočet programu ze vstupu w, pak číslo m je počet kroků, které počítač vykonal při zpracování vstupu w. Dále si všimněme, že připouštíme pouze výpočty, které skončily zastavením procesoru. „Výpočet , který probíhal donekonečna, neuznáváme za výpočet. Nechť C0, . . , Cm je výpočet programu P ze vstupu w. Definujme velikost paměti použité programem P při zpracování vstupu w jako číslo maxi|Ci|. Délku konfigurace tedy pokládáme za velikost paměti použité programem v příslušném kroku výpočtu, celkovou velikost paměti použité při zpracování vstupu w definujeme jako maximální velikost paměti použité v kterémkoliv kroku výpočtu. Nechť P je program a nechť f je funkce z N do N. Řekneme, že program P pracuje v prostoru f, jestliže pro každé n platí, že program P se dopočítá při zpracování libovolného vstupu délky nejvýše n a použije při tom paměť velikosti nejvýše f(n). Řekneme, že úloha g : X → Σ∗ 2, kde X ⊆ Σ∗ 1, je počitatelná (na počítači RASP) v prostoru f, jestliže existuje program, který ji počítá a který pracuje v prostoru f. Vraťme se znovu k programu pro výpočet součtu z obrázků 2.1.3 a 2.1.4. Předpokládejme, že programu je předložen vstup tvaru w1;w2, kde w1 a w2 jsou binární zápisy čísel x a y. Nechť délka tohoto vstupu je nejvýše n. V okamžiku před provedením instrukce add @(SP)+,@(SP) jsou v zásobníku uloženy dvě položky, x a y, nejnižší paměťová buňka s nenulovým obsahem má adresu −2, číslo −2 je také v buňce SP čili v buňce 0, a v buňce Inp je číslo n + 1. Počítač se tedy nachází v konfiguraci tvaru . . ,-10,w2,w1,-10, . . ,w3, . . , kde w3 je binární zápis čísla n + 1 uloženého v buňce Inp. Platí |w1| + |w2| ≤ n 2.1 Programování v jazyce RASP 69 (((0+1)+0)*((0+(1*1))*0)) ((0+1)+0) ((0+(1*1))*0) (0+1) 0 (0+(1*1)) 0 0 1 0 (1*1) 1 1 ¡ ¡ ¡ e e e… ¡ ¡ ¡ e e e… ¡ ¡ ¡ e e e… e e e… ¡ ¡ ¡      © d d d‚    C    s Obrázek 2.1.7: Rekurzívní volání podprogramu a |w3| = (n + 1) ≤ (n) + 1. Souhrnná délka všech ostatních částí konfigurace (naznačených tečkami) nezávisí na n. Druhé maximum, pokud jde o velikost obsazené paměti, nastane v okamžiku před prvním provedením instrukce write. Tehdy jsou v zásobníku uloženy číselné kódy všech znaků, které mají být zapsány na výstupní pásku. Znamená to nejvýše n čísel, jejichž binární zápisy mají souhrnnou délku nejvýše c · n, kde konstanta c je dána kódovou tabulkou. Protože funkce c · n, n i (n) + 1 jsou v O(n) (i jejich součet je v O(n)), můžeme říci, že program pracuje v prostoru O(n). Funkce sčítání přirozených čísel je tedy na počítači RASP počitatelná v lineárním prostoru. Podobnou analýzou programu z obr. 2.1.5 lze ověřit, že také úloha Hodnota booleovského výrazu je počitatelná v lineárním prostoru. I úloha Násobení je počitatelná v lineárním prostoru a je přitom jedno, zda si pro analýzu paměťových nároků vybereme algoritmus z obr. 2.1.2 nebo časově mnohem méně efektivní algoritmus z obr. 2.1.1. Také program z obrázku 2.1.6 pracuje v prostoru O(n). Protože s podobnými programy, založenými na rekurzívním volání podprogramů, se ještě setkáme, zdůvodněme tento fakt raději podrobněji. Předpokládejme, že programu je ke zpracování předložen výraz w délky n. K určení hodnoty výrazu w program volá podprogram Get. Podprogram Get při každém svém volání přečte jeden znak ze vstupní pásky a má za úkol stanovit hodnotu podvýrazu výrazu w, který začíná oním znakem. Než to udělá, může dojít k dalším (vnořeným) voláním podprogramu Get. V každém okamžiku výpočtu tedy může být rozpracováno několik „kopií podprogramu Get. Celý výpočet si můžeme představit jako strom, jehož vrcholům odpovídají jednotlivé kopie. Z vrcholu v1 vede hrana do vrcholu v2, jestliže kopie odpovídající vrcholu v2 je volána z kopie odpovídající vrcholu v1. Pro případ, kdy vstupní výraz w je (((0+1)+0)*((0+(1*1))*0)), je tento strom znázorněn na obr. 2.1.7. Pro stanovení hodnoty výrazu w je třeba znát hodnoty 70 2 Algoritmy a úlohy GLE: read -@(Aux),X ; Vezmi předchozí znak if X eq #‘0 then ret ; Hotovo, je-li to if X eq #‘1 then ret ; 0 nebo 1 if X ne #‘) then error ; Jinak to musí být ) mov #1,Dp ; Inicializuj hloubku loop ; Jdi doleva read -@(Aux),X ; a nalezni if X eq #‘) then add #1,Dp ; levou závorku, if X eq #‘( then sub #1,Dp ; která je endloop Dp eq #0 ; v patřičné hloubce ret Sta: loop mov Ptr,Aux ; Přečti další znak read @(Ptr)+,X ; Aux ukazuje na, if lt then exit ; Ptr za onen znak if v X je kód jednoho ze znaků (, +, *, 0, 1 then repeat if X ne #‘) then error ; Když ), najdi call GLE ; začátek 2. podvýrazu read -@(Aux),X ; Vlevo musí být + nebo * if v X není kód znaku + ani * then error call GLE ; Začátek 1. podvýrazu read -@(Aux),X ; Vlevo musí být if X ne #‘( then error ; levá závorka endloop call GLE ; Levý konec celku if Aux ne #0 then error ; musí být v poli nula halt Obrázek 2.1.8: Paměťově úsporné rozpoznávání booleovských výrazů výrazů ((0+1)+0) a ((0+(1*1))*0), pro stanovení hodnoty výrazu ((0+1)+0) je třeba znát hodnoty výrazů (0+1) a 0 atd. V době, kdy je volána kopie odpovídající vrcholu v, jsou ještě rozpracovány kopie odpovídající vrcholům ležícím na cestě z kořenu stromu do vrcholu v. Paměťový prostor, který je v tomto okamžiku obsazen, lze odhadnout jako součet velikostí „lokálních dat všech těchto kopií. Lokální data každé kopie sestávají ze dvou nebo tří položek uložených v zásobníku: paměťová buňka adresovaná jako @1(SP) je rezervována pro budoucí výsledek činnosti podprogramu, druhá položka je návratová adresa, případná třetí je dílčí výsledek získaný prvním voláním vnořené kopie. Každá z těchto položek je omezená konstantou, rozpracovaných kopií je nejvýše n. Program z obr. 2.1.6 tedy opravdu pracuje v prostoru O(n). Do budoucna si pamatujme, že výpočet podprogramu, který rekurzívně volá sám sebe, si lze přestavit jako průchod stromem, jehož vrcholy odpovídají různým kopiím tohoto podprogramu. Čas potřebný pro výpočet souvisí s celkovým počtem 2.1 Programování v jazyce RASP 71 vrcholů ve stromu, prostor potřebný pro výpočet souvisí s délkou nejdelší větve stromu. U programu z obr. 2.1.6 ale mezi počtem vrcholů a maximální délkou větve není velký rozdíl, obojí je odhadnuto číslem n a žádný podstatně lepší odhad neexistuje. Má-li vstup w nějakého programu P délku n, potřebuje program P nejméně n kroků, aby přečetl všechny znaky slova w. Z tohoto důvodu budeme tvrzení, že určitý program P pracuje v čase O(n), pokládat za maximum toho, čeho lze dosáhnout. O programy, jejichž časové nároky rostou pomaleji než lineárně, nebudeme usilovat. Na druhé straně může být někdy užitečné a žádoucí napsat program, jehož prostorové nároky jsou výrazně menší než lineární. Příklad takového programu je na obrázku 2.1.8. Tento program o každém slově w ∈ {(, ), +, *, 0, 1}∗ rozhodne, je-li booleovským výrazem. Na rozdíl od programů z obrázků 2.1.5 a 2.1.6 se ale nezabývá hodnotami booleovských výrazů. Program čte ze vstupní pásky znaky jeden po druhém, ale v každém okamžiku má v paměti pouze jeden znak vstupního slova w. Vždy, když narazí na pravou závorku, hledá k ní příslušnou levou závorku. Udělá to tak, že si uloží jedničku do buňky Dp, jde doleva, při každém výskytu pravé závorky k buňce Dp přičítá jedničku, při každém výskytu levé závorky od buňky Dp odečítá jedničku. „Příslušná levá závorka se vyznačuje tím, že je-li v souvislosti s jejím přečtením odečtena jednička od buňky Dp, poprvé dojde k tomu, že výsledek je nula. Označme i obsah buňky Ptr. Tvrdíme, že vždy v okamžiku provedení instrukce mov Ptr,Aux platí: ke každé pravé závorce umístěné na vstupní pásce v poli s indexem menším než i existuje někde vlevo od ní k ní příslušná levá závorka a tyto dvě závorky spolu se znaky umístěnými mezi nimi tvoří booleovský výraz. Toto tvrzení lze snadno dokázat indukcí podle i. Dále lze ověřit, že řekne-li program NE, tj. provede-li kteroukoliv ze svých pěti instrukcí error, nebo pokusí-li se číst z pole se záporným indexem (čili „spadne z pásky ), pak má pravdu, vstupní slovo w skutečně není booleovským výrazem (viz též cvičení 6–8). Je-li přečtena koncová značka a předchozí znak byla pravá závorka, program prostřednictvím posledního volání podprogramu GLE (get left end) nalezne k ní příslušnou levou závorku. I v tomto okamžiku ovšem platí, že tyto dvě závorky spolu s textem mezi nimi tvoří booleovský výraz. Je-li příslušná levá závorka v poli s indexem nula, program skončí provedením instrukce halt. A opět má pravdu, celé vstupní slovo w je booleovským výrazem. Tento program je napsán tak, že nic nezapisuje na výstupní pásku a odpověď ANO či NE (daný vstup je či není booleovským výrazem) dá najevo rozsvícením zeleného resp. červeného signálního světla. Snadno bychom jej ale upravili tak, aby žádný výpočet nekončil rozsvícením červeného světla a aby odpověď ANO či NE dal program najevo zápisem (třeba jednoznakových slov a či n) na výstupní pásku. Takováto úprava by nic (podstatného) neměnila na jeho časových a paměťových nárocích. V dalším textu se často spokojíme s tím, že místo programu podáme pouze neformální algoritmus, a budeme se spoléhat na to, že čtenář by jej dovedl přepsat do jazyka RASP. Algoritmus pro rozpoznávání booleovských výrazů, tj. neformální verze programu z obr. 2.1.8, může vypadat například takto: 72 2 Algoritmy a úlohy S užitím hlavního ukazatele Ptr čti znaky jeden po druhém, pozastav se pouze u pravé závorky a u koncové značky. Ostatní přípustné znaky jsou (, +, *, 0, 1, ty pouze zkontroluj. Je-li přečtený znak pravá závorka, pak užij pomocný ukazatel Aux, a – ukaž si na těsně předchozí znak. Není-li to 0 ani 1, musí to být pravá závorka. V tom případě si ukaž na k ní příslušnou levou závorku. – ukaž si na těsně předchozí znak. Musí to být + nebo *. – ukaž si na těsně předchozí znak. Není-li to 0 ani 1, musí to být pravá závorka. V tom případě si ukaž na k ní příslušnou levou závorku. – ukaž si na těsně předchozí znak. Musí to být levá závorka. Je-li přečtena koncová značka, pak – ukaž si na těsně předchozí znak. Není-li to 0 ani 1, musí to být pravá závorka. V tom případě si ukaž na k ní příslušnou levou závorku. – zkontroluj, že ukazatel nyní ukazuje na nulté pole vstupní pásky, a skonči. Má-li náš algoritmus (tj. program z obr. 2.1.8) zpracovat vstup délky n, pak při každém přečtení pravé závorky, což nastane řádově n-krát, musí vykonat řádově n kroků, aby nalezl k ní příslušnou levou závorku. Program tedy pracuje v čase O(n2 ). Program užívá pouze tři paměťové buňky, jejichž obsah závisí na n, totiž buňky Inp, Aux a Dp. Na zápis těchto tří čísel je tedy třeba nejvýše 3 (n) + 3 znaků. Program z obr. 2.1.8 tedy pracuje v prostoru O( (n)). Říká se také, že pracuje v logaritmickém prostoru. Místo našeho O( (n)) se často píše O(log n). Nyní máme jednu z více příležitostí doložit tezi, že algoritmicky zajímavé úlohy se často vyskytují v logice. Vezměme v úvahu následující úlohy. Pravdivostní hodnota výrokové formule Dáno: Výroková formule A a pravdivostní ohodnocení v. Úkol: Určit, zda ohodnocení v splňuje formuli A. Sat Dáno: Výroková formule A. Úkol: Určit, zda formule A je splnitelná. Taut Dáno: Výroková formule A. Úkol: Určit, zda formule A je výroková tautologie. U těchto úloh bychom mohli uvažovat tři hodnoty. Například u úlohy Sat by to byly hodnoty „A není výroková formule , „A je splnitelná výroková formule a „A je nesplnitelná výroková formule . Tak ale nepostupujeme, dvě z těchto hodnot vždy ztotožňujeme. Všechny tři úlohy definujeme jako dvouhodnotové. Odpověď NE tedy například opět v případě úlohy Sat znamená „A není výroková formule nebo 2.1 Programování v jazyce RASP 73 A je nesplnitelná výroková formule . Takovéto ztotožnění si můžeme dovolit proto, že nijak neuzavírá ani nekomplikuje cestu zpátky ke třem hodnotám. Kdybychom trvali na tom, že chceme vědět, co konkrétně znamená NE (například zda „A není výroková formule či „A je nesplnitelná výroková formule ), neznamenalo by to (jak se dále ukáže) žádné podstatně větší časové ani paměťové nároky. Než budeme uvažovat o algoritmech počítajících tyto úlohy, je třeba zvolit abecedu Σ a stanovit, v jakém formátu budeme na vstupní pásku počítače RASP zapisovat výrokové formule a případně pravdivostní ohodnocení. V kapitole 1 jsme vystačili s tím, že výrokové formule jsou sestaveny pomocí logických spojek z výrokových atomů, přičemž výrokové atomy tvoří abstraktní množinu, na kterou neklademe žádné zvláštní požadavky a která může být i nespočetná. Pro tento okamžik a pro všechny situace, kdy budeme uvažovat o algoritmech zpracovávajících výrokové formule, přijměme dodatečnou úmluvu, že množina všech výrokových atomů je nekonečná spočetná a že a0, a1, a2, . . . je prostá posloupnost všech jejích prvků. Protože abeceda Σ musí být konečná, ale výrokových atomů je nekonečně mnoho, nemůžeme výrokové atomy považovat za jednotlivé (dále nedělitelné) symboly a musíme se i u nich rozhodnout, jak je budeme zapisovat. Nejjednodušší je zapisovat atom ai jako znak a následovaný zápisem čísla i. Přitom může být stanoveno, že zápis čísla i je dekadický, binární, unární (kdy číslo i je zapsáno pomocí i stejných znaků) nebo ještě jiný. Například atom a9 je při dekadickém zapisování indexů reprezentován slovem a9, při binárním slovem a1001 a při unárním slovem a|||||||||. Lze snadno zdůvodnit, že mezi binárním a dekadickým zapisováním indexů není vlastně žádný rozdíl, neboť existují rychlé a paměťově úsporné algoritmy, které převedou zápis formule A, v němž jsou indexy zapsány dekadicky (nebo binárně), na zápis téže formule, v němž jsou zapsány naopak binárně (resp. dekadicky). V situacích, které uvažujeme v této knize, by dokonce ani volba unárního zapisování indexů nic podstatného neměnila. Nicméně pro určitost se domluvme, že indexy (u atomů ve výrokových formulích a v dalších kapitolách také u proměnných v predikátových formulích) se zapisují binárně. Kdykoliv tedy uvažujeme o algoritmickém zpracování syntaktických objektů, výroková formule je pro nás slovem sestaveným z pomocných symbolů (, ) a a, logických spojek →, ¬, & a ∨ a z číslic 0 a 1. Než popíšeme algoritmus pro výpočet pravdivostní hodnoty formule při daném pravdivostním ohodnocení, musíme také stanovit způsob zapisování pravdivostních ohodnocení. Máme-li jen jednu formuli A, má každé pravdivostní ohodnocení jen konečně mnoho důležitých hodnot, tj. takových hodnot, které mají vliv na pravdivostní hodnotu formule A. Můžeme se tedy domluvit, že pravdivostní ohodnocení v je pro nás konečný seznam dvojic tvaru [i, k], kde k ∈ {0, 1}. Význam dvojice [i, k] je „atom ai má hodnotu k . O atomech, kterým hodnota není explicitně přiřazena, se rozumí, že mají hodnotu 0. Zápis dvojice [i, k] sestává z binárních zápisů čísel i a k oddělených středníkem. Jednotlivé dvojice od sebe navzájem i od formule A oddělujeme rovněž středníkem. Například obsah vstupní pásky tvaru ( ( a 1 1 0 → a 1 ) → a 1 ) ; 1 1 0 ; 1 · · · (∗) 74 2 Algoritmy a úlohy reprezentuje otázku, zda výroková formule ((a6→a1)→a1) je splněna ohodnocením, které výrokový atom a6 ohodnocuje jedničkou a všechny ostatní atomy nulou. Jak už bylo dohodnuto, plný obdélník označuje koncovou značku. Tři tečky naznačují, že ve všech ostatních polích vstupní pásky jsou také koncové značky. Ukážeme si dva různé algoritmy počítající úlohu Pravdivostní hodnota výrokové formule. Oba začínají svou činnost tím, že vstup tvaru (∗) celý přečtou, převedou jej do paměti a přepracují jej přitom na tvar · · · 12 ‘( ‘( ‘a 6 ‘→ ‘a 1 ‘) ‘→ ‘a 1 ‘) 2 1 0 6 1 · · · (∗∗) Číslo 12 říká, že paměťová reprezentace vstupní formule A je uložena v následujících dvanácti paměťových buňkách. Paměťová reprezentace se v podstatě shoduje s původní formulí až na to, že znaky jsou převedeny na číselné kódy (to je naznačeno levými apostrofy) a binární zápisy indexů jsou převedeny (konvertovány) na čísla. Zbývající pětice paměťových buněk obsahující čísla 2, 1, 0, 6 a 1 reprezentuje informaci, že v pravdivostním ohodnocení v jsou dvě důležité hodnoty: atom a1 je ohodnocen nulou a atom a6 jedničkou. Datová struktura, která zaujímá souvislou část paměti a v níž první paměťová buňka obsahuje informaci o počtu zbývajících paměťových buněk, se zpravidla nazývá záznam. O datové struktuře (∗∗) tedy můžeme mluvit jako o dvou (bezprostředně za sebou následujících) záznamech. První reprezentuje vstupní formuli A, druhý reprezentuje vstupní pravdivostní ohodnocení v. Jednoduchý příklad, jak může nějaký program P pracovat se strukturou tvaru (∗∗), je tento: ukazuje-li buňka X na začátek této struktury (tj. na pole obsahující údaj o délce prvního záznamu), pak po provedení instrukcí mov X,Y a add @(Y)+,Y ukazuje buňka Y na druhý záznam, tj. na reprezentaci pravdivostního ohodnocení. Formulujme první z našich dvou algoritmů, které počítají úlohu Pravdivostní hodnota výrokové formule. Přečti ze vstupní pásky vstupní data A a v a zkontroluj jejich formát. Je-li nesprávný, řekni NE a skonči. Jinak přepracuj vstupní data na datovou strukturu dohodnutého tvaru (sestávající ze dvou na sebe navazujících záznamů) a zapiš ji do volné paměti za koncem programu. Kontrolou formátu rozumíme ověření, že A je skutečně výrokovou formulí a že ohodnocení v neobsahuje sporné údaje, tj. že pro žádné i neobsahuje současně dvojice [i, 0] a [i, 1]. Zápis výrokové formule se velmi podobá booleovskému výrazu, jen místo znamének + a * obsahuje logické spojky →, & a ∨, místo symbolů 0 a 1 obsahuje zápisy výrokových atomů a před výrokovým atomem (čili před znakem a) a před levou závorkou může obsahovat libovolné množství znaků ¬. To znamená, že kontrolu, zda A je výrokovou formulí, lze provést algoritmem, který získáme přizpůsobením některého z našich programů zpracovávajících booleovské výrazy (z obr. 2.1.5 nebo 2.1.8), a na tuto kontrolu je potřeba čas O(n) nebo O(n2 ) a prostor O(n) nebo O( (n)), kde n je délka vstupních dat. Řekněme, že druhý záznam naší datové struktury, tj. přepis vstupního ohodnocení v, si přejeme mít ve tvaru r, i1, k1, . . , ir, kr, kde i1, . . , ir je rostoucí posloupnost přirozených čísel 2.1 Programování v jazyce RASP 75 taková, že ai1 , . . , air je seznam všech atomů vyskytujících se ve formuli A. Na vytvoření tohoto záznamu také postačuje čas O(n2 ). Celá právě utvořená struktura má velikost O(n). Po této úvodní fázi, čili po přečtení vstupu a inicializaci datových struktur, náš algoritmus pokračuje analogicky jako program z obr. 2.1.5: Čti z prvního záznamu právě utvořené datové struktury znaky jeden po druhém. Znaky (, →, ¬, & a ∨ ukládej beze změny do zásobníku. Přečteš-li znak a, přečti i celý zbytek zápisu výrokového atomu ai a nalezni v druhém záznamu dvojici [i, k], tj. nalezni hodnotu k, kterou ohodnocení v přiřazuje atomu ai. Odstraň ze zásobníku všechny negace bezprostředně předcházející zápis atomu ai. Ulož k do zásobníku. Byl-li počet odstraněných negací lichý, nahraď pravdivostní hodnotu k právě uloženou do zásobníku hodnotou k ní opačnou. Přečteš-li pravou závorku, pak tato závorka spolu se čtyřmi nejvyššími položkami v zásobníku tvoří „výraz (sestávající ze dvou pravdivostních hodnot spojených logickou spojkou a obklopených závorkami), jehož hodnotu k určuje pravdivostní tabulka příslušné logické spojky. Odstraň ze zásobníku tyto čtyři položky, odstraň všechny bezprostředně předcházející negace a ulož do zásobníku pravdivostní hodnotu k nebo hodnotu k ní opačnou podle toho, zda počet odstraněných negací byl sudý nebo lichý. Po přečtení celé formule musí být v zásobníku jediná položka, výsledná pravdivostní hodnota. Podle toho, je-li to jednička nebo nula, řekni ANO nebo NE a skonči. Přitom můžeme předpokládat, že ANO nebo NE se řekne zapsáním jednoznakového slova a či n na výstupní pásku. V této druhé části algoritmu, kde jsou postupně čteny znaky z datové struktury umístěné za koncem programu, je časově nejnáročnější ten případ, kdy je přečten výrokový atom. Tehdy program potřebuje O(n) kroků, aby v paměťové reprezentaci ohodnocení v vyhledal příslušnou hodnotu, a tento případ může nastat řádově n-krát. Vidíme, že program postupně provádí několik akcí, z nichž na každou stačí čas O(n2 ); pracuje tedy v čase O(n2 ). Protože paměťová reprezentace vstupních dat i maximální velikost prostoru použitého v zásobníku je O(n), program pracuje v prostoru O(n). Druhý z našich dvou algoritmů pro počítání úlohy Pravdivostní hodnota výrokové formule využívá rekurzívní volání podprogramu: Přečti ze vstupní pásky vstupní data A a v. Zkontroluj jejich formát, a je-li nesprávný, řekni NE a skonči. Zapiš je v domluveném tvaru (tj. ve tvaru dvou záznamů) do zásobníku. Volej podprogram Eval. Podle toho, vrátí-li výsledek ano nebo ne, řekni ANO nebo NE a skonči. Tato část programu je podobná tomu, co se dělo v posledních pěti řádcích programu z obr. 2.1.6. Rozdíl je v tom, že podprogram Get měl za úkol zpracovat jistý podvýraz výrazu umístěného na vstupní pásce, kdežto náš podprogram Eval má za 76 2 Algoritmy a úlohy úkol vyhodnotit data (formuli plus ohodnocení), která jsou umístěna v zásobníku. Tato data podprogram nazývá „A a „v . Jedná se ale o „lokální označení v tom smyslu, že každá kopie podprogramu Eval má na vrcholu zásobníku svá vlastní data A a v. Předpokládáme, že během určování, zda ohodnocení v splňuje formuli A, podprogram Eval tato data ze zásobníku odstraní a že výsledek ano nebo ne vrátí tak, jak jsme zvyklí, uložením výstupního parametru ‘0 nebo ‘1 do zásobníku. Podprogram Eval pracuje takto: Pokud formule A, čili první ze dvou záznamů uložených v zásobníku, je reprezentací atomu ai, nalezni v druhém záznamu hodnotu k, kterou ohodnocení v přiřazuje atomu ai. Odstraň A a v ze zásobníku a vrať výsledek ano nebo ne podle toho, zda k = 1 nebo k = 0. Pokud formule A začíná levou závorkou, může mít jeden z tvarů (B&C), (B∨C) nebo (B→C). Má-li tvar (B&C), pak: ulož do zásobníku data B a v, volej podprogram Eval a zapamatuj si výsledek, ulož do zásobníku data C a v, znovu volej podprogram Eval, zapamatuj si výsledek. Odstraň A a v ze zásobníku a vrať výsledek ano, byly-li oba zapamatované výsledky ano, jinak vrať výsledek ne. Pokud formule A má tvar (B∨C) nebo (B→C), postupuj analogicky, jen místo pravdivostní tabulky konjunkce užij pravdivostní tabulku disjunkce resp. impli- kace. Pokud formule A má tvar ¬B, postupuj rovněž analogicky, podprogram Eval volej na data B a v a užij pravdivostní tabulku negace. U tohoto programu lze opět snadno odhadnout, že pracuje v čase O(n2 ). Víme, že výpočet takovéhoto podprogramu rekurzívně volajícího sama sebe lze chápat jako průchod stromem, v němž vrcholy odpovídají jednotlivým kopiím podprogramu, a že prostor potřebný pro výpočet lze odhadnout jako součet velikostí lokálních dat všech kopií podél jedné větve stromu. Každá větev má délku nejvýše n a lokální data každé kopie (tj. formule A a ohodnocení v v zásobníku) mají velikost O(n). Algoritmus tedy pracuje v prostoru O(n2 ). Máme tedy dva různé algoritmy pro určování pravdivostní hodnoty dané formule při daném pravdivostním ohodnocení. Význam prvního je v tom, že na něm lze založit algoritmy pro počítání úloh Sat a Taut. Význam druhého je v tom, že jeho modifikací lze získat algoritmus pro počítání úlohy QBF, kterou popíšeme za chvíli. Algoritmus pro úlohu Sat vypadá takto: Přečti ze vstupní pásky formuli A. Zkontroluj její formát, a je-li nesprávný, řekni NE a skonči. Zapiš ji v domluveném tvaru do volné paměti za koncem programu. Za ni zapiš (v dohodnutém formátu reprezentaci) ohodnocení v, které všem atomům formule A přiřazuje nuly. Zjisti, zda ohodnocení v splňuje formuli A. Pokud ano, řekni ANO, formule A je splnitelná, a skonči. Jinak nalezni v ohodnocení v poslední dvojici tvaru [i, 0]. Pokud taková dvojice neexistuje, tj. všem atomům je přiřazena hodnota 1, 2.1 Programování v jazyce RASP 77 řekni NE, formule A není splnitelná, a skonči. Jinak nahraď dvojici [i, 0] dvojicí [i, 1], druhé členy všech následujících dvojic změň na nuly a pokračuj znovu od zjišťování, zda ohodnocení v splňuje formuli A. Tento algoritmus tedy probírá všechna pravdivostní ohodnocení v a zjišťuje, zda některé splňuje formuli A. Počet všech pravdivostních ohodnocení, tj. všech funkcí z množiny, která má nejvýše n prvků, do množiny {0, 1}, lze odhadnout číslem 2n . Protože na zpracování každého ohodnocení je potřeba čas O(n2 ), náš algoritmus pracuje v čase O(n2 ·2n ). Lze také říci, že pracuje v čase 2O(n) , protože funkce n2 ·2n je v O(22n ). Algoritmus pracuje v prostoru O(n), v každém okamžiku totiž drží v paměti pouze jedno pravdivostní ohodnocení. Algoritmus počítající úlohu Taut lze získat naprosto analogicky a bude to algoritmus, pro který budou platit stejné odhady na čas i prostor. Kvantifikované výrokové formule jsou výrokové formule, ve kterých se kromě logických spojek připouštějí také výrokové kvantifikátory ∀p a ∃p. Každá výroková formule je tedy zároveň kvantifikovanou výrokovou formulí. Navíc je-li A kvantifikovaná výroková formule a p libovolný výrokový atom, pak i ∀pA a ∃pA jsou kvantifikované výrokové formule. Je-li v pravdivostní ohodnocení, pak v(p/0) označuje ohodnocení, které atomu p přiřazuje hodnotu 0 a na všech ostatních atomech se shoduje s ohodnocením v. Podobně v(p/1) je ohodnocení, které atomu p přiřazuje hodnotu 1 a jinak se shoduje s ohodnocením v. V dvojici v(p/0) a v(p/1) se ovšem pouze (a právě) jedno ohodnocení liší od původního ohodnocení v. Formule ∀pA je splněna ohodnocením v, právě když formule A je splněna oběma ohodnoceními v(p/0) a v(p/1). Formule ∃pA je splněna ohodnocením v, právě když formule A je splněna některým z ohodnocení v(p/0) a v(p/1). Ostatní logické symboly (logické spojky) vyskytující se v kvantifikovaných výrokových formulích mají obvyklý význam. Například kvantifikovaná výroková formule ∃q(p&q) je splněna ohodnocením v, právě když v(p) = 1. Formule ∃p(p ∨ q) a ∀p∃q((p → q) & (q → p)) jsou splněny každým ohodnocením v. Nesnažíme se tvrdit, že výrokové kvantifikátory mají zřejmý intuitivní význam ani že jsou důležité pro logiku. Postupně si ale ozřejmíme, že úloha QBF (quantified boolean formulae) má dost velký význam v teoretické informatice: QBF Dáno: Kvantifikovaná výroková formule A a pravdivostní ohodnocení v. Úkol: Určit, zda ohodnocení v splňuje formuli A. Užijeme-li značení z cvičení 12 oddílu 1.1, můžeme říci, že každá formule ∀pA je ekvivalentní s formulí Ap( ) & Ap(⊥), kdežto formule ∃pA je ekvivalentní s formulí Ap( ) ∨ Ap(⊥). To znamená, že každá kvantifikovaná výroková formule je ekvivalentní s formulí neobsahující výrokové kvantifikátory, a lze si rozmyslet, že je tomu tak bez ohledu na to, zda symboly a ⊥ byly přijaty mezi základní logické symboly. Potíž je ale v tom, že odstraněním výrokových kvantifikátorů se formule může až exponenciálně prodloužit. Algoritmus, který by úlohu QBF počítal tak, 78 2 Algoritmy a úlohy boolean function E(A, v) if A = (B & C) then return [E(B, v) and E(C, v)] if A = (B ∨ C) then return [E(B, v) or E(C, v)] if A = (B → C) then return [not E(B, v) or E(C, v)] if A = ¬B then return [not E(B, v)] if A = ∀aiB then return [E(B, v(i/1)) and E(B, v(i/0))] if A = ∃aiB then return [E(B, v(i/1)) or E(B, v(i/0))] if A = ai then return v(i) endfunction Obrázek 2.1.9: Algoritmus pro úlohu QBF že by danou formuli nejprve převedl na ekvivalentní formuli bez výrokových kvantifikátorů, by tudíž měl vysoké nároky na paměťový prostor. Existuje ale úspornější algoritmus pro počítání úlohy QBF a lze jej získat tak, že k našemu druhému (rekurzívnímu) algoritmu pro určování pravdivostní hodnoty výrokové formule přidáme část, která se zabývá výrokovými kvantifikátory: Pokud formule A má jeden z tvarů ∀aiB nebo ∃aiB, pak: ulož do zásobníku data B a v(i/0), volej podprogram Eval a zapamatuj si výsledek, ulož do zásobníku data B a v(i/1), znovu volej podprogram Eval, zapamatuj si výsledek. Odstraň A a v ze zásobníku. Měla-li formule A tvar ∀aiB, vrať výsledek ano, byly-li oba zapamatované výsledky ano, jinak vrať výsledek ne. Měla-li tvar ∃aiB, vrať výsledek ano, byl-li alespoň jeden ze zapamatovaných výsledků ano, jinak vrať výsledek ne. V zápisu algoritmu píšeme v(i/0) a v(i/1) místo důslednějšího v(ai/0) a v(ai/1), což je snad přijatelné vzhledem k tomu, jak jsme definovali reprezentaci pravdivostního ohodnocení. Tato modifikace původního algoritmu má stejné nároky na paměťový prostor. Úlohu QBF lze tedy počítat v prostoru O(n2 ). Pro znalce dodejme, že jsou známy ještě úspornější algoritmy; to však pro náš text nemá význam. Na obrázku 2.1.9 jsme podstatnou část našeho algoritmu, totiž jeho podprogram Eval, přejmenovali na „E a zapsali jsme jej ve smyšleném vyšším programovacím jazyce, tj. pomocí dosud nepoužitých programových konstruktů (maker). Zápis E(A, v) v prvním řádku udává, jak se podprogram jmenuje (tj. jaké návěští se má vygenerovat) a jaké vstupní parametry má podprogram očekávat v zásobníku. Slovem function je řečeno, že zápis E(. .) se v místech, odkud je podprogram volán, může vyskytnout ve výrazech. Protože podprogram v některých případech volá sám sebe, vyskytují se i v něm samém takové výrazy (vymezené hranatými závorkami), například [not E(B, v)]. Slovo boolean znamená, že zápis E(. .) se může s jinými takovými výrazy kombinovat pomocí and, or a not. Zápis return V znamená ulož do zásobníku na patřičné místo hodnotu výstupního parametru V a pokračuj těsně za místem, odkud byl podprogram E volán. Za místem, odkud byl podprogram E volán, se musí počítat s tím, že v zásobníku je jedna nová položka, výsledek činnosti podprogramu E. 2.1 Programování v jazyce RASP 79 Máme tedy algoritmus, který počítá úlohu Pravdivostní hodnota výrokové formule a který pracuje v čase O(n2 ) a v prostoru O(n2 ). Dále máme jeho rozšířenou verzi, která počítá úlohu QBF, pracuje v čase 2O(n) (cvičení), ale rovněž vystačí s prostorem O(n2 ). Nejdůležitější částí obou algoritmů je podprogram, který rekurzívně volá sám sebe a který jsme v obou případech pojmenovali Eval. Všimněme si ještě, že každá kopie podprogramu Eval má v zásobníku vlastní lokální data sestávající ze dvou záznamů, totiž formuli A a ohodnocení v. V případě prvního algoritmu se ale ohodnocení v nikdy nemění, všechny kopie podprogramu Eval mají v zásobníku totéž ohodnocení v. V případě úlohy QBF se ohodnocení v mění. Formule A se ovšem mění v obou případech, v obou programech je formule A dělena na jednodušší a jednodušší formule, dokud se nedospěje k výrokovým atomům. Nechť Σ je konečná abeceda a nechť g je funkce definovaná na množině Σ∗ všech slov v abecedě Σ. Má-li funkce g pouze dvě hodnoty (ANO či NE), mluvíme o ní jako o rozhodovací úloze. Úlohy Pravdivostní hodnota výrokové formule, Sat a Taut jsou příklady rozhodovacích úloh. Také úlohy Hodnota booleovského výrazu a Prvočíselnost lze chápat jako rozhodovací úlohy. Rozhodovací úlohu g můžeme ztotožnit s množinou všech těch w ∈ Σ∗ , pro která g(w) je ANO. Například úlohu Taut lze považovat buď za dvouhodnotovou funkci definovanou na množině {→, ¬, &, ∨, a, 0, 1, (, )}∗ (která každému w přiřazuje hodnotu ANO nebo NE podle toho, je-li w tautologií), nebo za množinu všech slov w ∈ {→, ¬, &, ∨, a, 0, 1, (, )}∗ , která jsou tautologiemi. Podobně Prvočíselnost lze chápat jako množinu všech slov v abecedě {0, 1}, která jsou zápisem prvočísla. Řekneme, že program P rozhoduje úlohu A ⊆ Σ∗ , jestliže pro libovolné slovo w ∈ Σ∗ platí, že program P se dopočítá při zpracování vstupu w a navíc skončí svou činnost rozsvícením zeleného světla právě tehdy, platí-li w ∈ A. Jinak řečeno, rozhoduje-li program P určitou úlohu, pak jakýkoliv jeho výstup interpretujeme jako ANO, kdežto neposkytnutí výstupu interpretujeme jako NE. Program se ale na žádném vstupu nesmí zacyklit. Je zřejmé, že program, který ANO či NE řekne rozsvícením zeleného či červeného signálního světla, lze snadno upravit na program, který vždy dospěje k rozsvícení zeleného světla a ANO či NE dá najevo příslušným zápisem na výstupní pásku (čili na program, který dle naší definice počítá funkci definovanou na množině všech slov dané abecedy). Opačná úprava je také možná, ale nebudeme ji potřebovat. Rozhodovací úloha je rozhodnutelná (na počítači RASP), jestliže existuje program, který ji rozhoduje. Ve zřejmém smyslu mluvíme také o rozhodnutelnosti v čase a o rozhodnutelnosti v prostoru. Rozhodovacím úlohám se v literatuře často také říká jazyky. My ale budeme termín „jazyk od příští kapitoly používat v jiném významu. Naše dosavadní úvahy o algoritmické rozhodnutelnosti úloh vyskytujících se ve výrokové logice a o jejich složitosti můžeme shrnout do následující věty. Věta 2.1.1 Úlohy Sat, Taut a QBF jsou algoritmicky rozhodnutelné. Existují programy pro počítač RASP, které rozhodují úlohu Sat resp. Taut a které pracují v čase 2O(n) a v prostoru O(n). Existuje program, který rozhoduje úlohu QBF a který pracuje v čase 2O(n) a v prostoru O(n2 ). 80 2 Algoritmy a úlohy Algoritmus, jehož časové nároky rostou exponenciálně s délkou vstupu, nelze považovat za příliš efektivní ani za prakticky užitečný. O otázce, zda pro úlohy Sat, Taut a QBF existují lepší algoritmy, a o významu všech tří úloh se zmíníme v oddílu 2.3. V tomto oddílu ještě naznačíme, jak může vypadat úloha, která na počítači RASP není rozhodnutelná, tj. kterou nelze rozhodovat žádným programem bez ohledu na efektivnost. Řekneme, že program P přijímá rozhodovací úlohu A ⊆ Σ∗ , jestliže pro libovolné slovo w ∈ Σ∗ platí, že P poskytne výstup při zpracování vstupu w, právě když w ∈ A. Program, který přijímá úlohu A, má tedy povinnost skončit provedením instrukce error nebo se zacyklit (nedopočítat se) při zpracování libovolného slova w ∈ Σ∗ − A, a naopak dopočítat se a dát nějaký (libovolný) výstup při zpracování libovolného slova w ∈ A. Lemma 2.1.2 (a) Nechť rozhodovací úloha A ⊆ Σ∗ je rozhodnutelná na počítači RASP. Pak i její komplement Σ∗ − A je rozhodnutelný na počítači RASP. (b) Je-li úloha A ⊆ Σ∗ rozhodnutelná na počítači RASP, pak existuje program v jazyce RASP, který úlohu A přijímá. Důkaz je zřejmý. V programu, který se dopočítá na každém vstupu, totiž můžeme zaměnit instrukce halt a error, a získat tak program, který rozhoduje komplement dané úlohy. Dále je zřejmé, že program, který určitou úlohu rozhoduje, tutéž úlohu současně i přijímá. QED Zvolme minimální abecedu Σ0, která postačuje k zapsání libovolného programu v jazyce RASP. Mysleme si na chvíli, že programy píšeme bez komentářů a že tedy znaku středník můžeme dát nový význam. Dále si mysleme, že překladač jazyka RASP nerozlišuje mezi malými a velkými písmeny. Do abecedy Σ0 tedy zahrňme znaky @, #, -, +, (, ), dále čárku, levý apostrof, tečku a středník, číslice 0 až 9 a konečně všechna malá latinská písmena a mezeru. Znak tečka slouží k oddělení instrukcí v zápisu programu, tj. stojí všude tam, kde by se v „normálním zápisu programu přešlo na nový řádek. Definujme úlohu Problém zastavení Dáno: Program P (zapsaný bez maker a komentářů a tak, že jednotlivé instrukce jsou odděleny tečkou) a slovo w v abecedě Σ0 − {;}. Úkol: Rozhodnout, zda program P se dopočítá (zastaví), je-li mu ke zpracování předložen vstup w. Domluvme se, že program P a slovo w jsou na vstupní pásce počítače odděleny znakem středník. Komplement úlohy Problém zastavení tedy obsahuje slova v abecedě Σ0, která neobsahují středník, dále slova, která obsahují více než jeden středník, pak slova tvaru P;w, kde P a w neobsahují středník a P není zápisem programu, a konečně (hlavně) slova P;w, kde P je zápisem programu (takže neobsahuje středník) a w je takové slovo v abecedě Σ0 − {;}, při jehož zpracování se program P zacyklí. 2.1 Programování v jazyce RASP 81 Věta 2.1.3 (a) Existuje program v jazyce RASP, který přijímá úlohu Problém zastavení. (b) Neexistuje program v jazyce RASP, který přijímá komplement úlohy Problém zastavení. Úloha Problém zastavení tedy není na počítači RASP rozhodnu- telná. K tvrzení (b) poznamenejme, že jeho druhá část plyne z první, využijeme-li lemma 2.1.2. Větu 2.1.3 ponecháváme bez důkazu, něco k ní ale ještě řekneme v oddílu 2.2. Podrobný důkaz tvrzení 2.1.3(a), ale pro jiný výpočtový model, totiž pro Turingovy stroje, je uveden ve skriptech [15]. Některé úlohy tedy nejsou rozhodnutelné (počitatelné) na počítači RASP. Pokud nějaká rozhodovací úloha rozhodnutelná není, může se stát, že existuje program, který ji alespoň přijímá. O takovém programu samozřejmě netvrdíme, že je užitečný v programátorské praxi. Za zajímavý ale pokládáme fakt, že některé úlohy nemají ani to, tj. že o dané úloze je někdy možné dokázat, že nejenže není rozhodnutelná, ale že dokonce ani neexistuje program, který ji přijímá. „Přijímatelnost tedy považujeme za důležitý teoretický nástroj pro klasifikaci (nerozhodnutelných) úloh. Cvičení 1. Booleovský výraz v prefixovém formátu je definován takto: 0 a 1 jsou booleovské výrazy v prefixovém formátu, a dále jsou-li u a v booleovské výrazy v prefixovém formátu, pak i +uv a *uv jsou výrazy v prefixovém formátu. Například výrazům (1+(1*0)) a ((1+0)+((1+1)*0)) odpovídají výrazy +1*10 a ++10*+110 v prefixovém formátu. Při zapisování výrazů v prefixovém formátu se tedy neužívají závorky a operační znaménko se píše před operandy místo mezi ně. Napište program v jazyce RASP pro určování hodnoty booleovského výrazu v prefixovém formátu. 2. Zdůvodněte bez programování detailů, že existuje program pro počítač RASP, který počítá dělení dvou přirozených čísel a který pracuje v čase O(n). 3. Eukleidův algoritmus pro výpočet největšího společného dělitele přirozených čísel pracuje tak, že konstruuje posloupnost d0 ≥ d1 > d2 > . . . přirozených čísel. Iniciálně je d0 větší a d1 menší z čísel, ke kterým má být nalezen největší společný dělitel. Jsou-li již sestrojena čísla d0 ≥ d1 > d2 > . . > di+1 a di+1 = 0, algoritmus končí a di je výsledek. Je-li di+1 = 0, k posloupnosti je přidán nový člen di+2 definovaný jako zbytek po dělení čísla di číslem di+1. Zdůvodněte, že tento algoritmus pro každou dvojici čísel správně určí jejich největší společný dělitel. 4. Zdůvodněte na základě předchozích dvou cvičení, že existuje program pro počítač RASP, který počítá největší společný dělitel dvou přirozených čísel a který pracuje v prostoru O(n) a čase O(n2 ). 82 2 Algoritmy a úlohy Návod. Zdůvodněte, že pro každé tři po sobě jdoucí členy di, di+1, di+2 v posloupnosti definované v předchozím cvičení platí di ≥ di+1 + di+2 a di ≥ 2di+2. 5. Navrhněte program pro počítač RASP, který pro každé přirozené číslo x určí, zda x je prvočíslem (tj. který počítá úlohu Prvočíselnost). Stanovte prostorové a časové nároky vašeho programu. Návod. Spokojte se s tímto výsledkem: prostor O(n), čas 2O(n) . 6. Jsou-li u a v booleovské výrazy a w1 a w2 slova v abecedě {(, ), +, *, 0, 1} taková, že w1u = w2v nebo uw1 = vw2, pak u = v a w1 = w2. Dokažte. Návod. Postupujte indukcí podle součtu počtu znaků ve výrazech u a v. Užijte opakovaně fakt, že jsou-li w1, w2 a w slova taková, že w1w = w2w, pak w1 = w2. 7. Nechť w a v jsou slova v {(, ), +, *, 0, 1} taková, že wv) a v jsou booleovské výrazy. Pak slovo w má délku alespoň 3, jeho prvním znakem je levá závorka, posledním znakem je + nebo *, předposledním znakem je 0, 1, nebo ). Dokažte. 8. V komentáři k programu z obr. 2.1.8 bylo definováno, co je levá závorka příslušná k dané pravé závorce. Zdůvodněte, že (i) ke každé pravé závorce libovolného slova w v abecedě {(, ), +, *, 0, 1} existuje nejvýše jedna k ní příslušná levá závorka, (ii) je-li navíc w booleovským výrazem, pak ke každé pravé závorce slova w existuje (právě jedna) k ní příslušná levá závorka, a (iii) je-li navíc w výrazem různým od 0 a 1, pak poslední znak slova w je pravá závorka a první znak k ní příslušná levá závorka. 9. Napište (jinak neužitečný) program, který pracuje v čase O(n), ale při zpracování libovolného vstupu délky n použije paměť velikosti nejméně 2n . Návod. Každá konfigurace při naší definici udává obsah souvislého pole paměťových buněk. Paměťové buňky, do kterých program během své činnosti něco zapíše, nemusí tvořit souvislé pole. 10. Zdůvodněte, že každá z funkcí n → nk · 2n je v O(22n ). 11. Zdůvodněte, že náš program pro rozhodování úlohy QBF pracuje v čase 2O(n) . 2.2 Základní pojmy z teorie rekurzívních funkcí V tomto oddílu se budeme zabývat funkcemi, jejichž argumenty i funkční hodnoty jsou přirozená čísla. Začněme dvěma jednoduchými příklady. Snadno lze ukázat (indukcí podle x), že existuje právě jedna funkce f, splňující (pro všechna x) pod- mínky f(0) = 1, f(x + 1) = (x + 1) · f(x). (1) Jde o funkci x → x!, tj. o funkci faktoriál. Také podmínky f(0) = 1, f(1) = 1, f(x + 2) = f(x + 1) + f(x) (2) 2.2 Základní pojmy z teorie rekurzívních funkcí 83 jednoznačně určují funkci z N do N. Její hodnoty například v bodech 0 až 5 jsou 1, 1, 2, 3, 5 a 8 a říká se jí Fibonacciho funkce. Společnou vlastností předpisů (1) a (2) je to, že nedávají přímou odpověď na otázku, jaká je hodnota funkce f v určitém bodě x, nýbrž převádějí ji na otázku, jaká je hodnota funkce f v nějakém jiném bodě nebo bodech. Chceme-li na základě předpisu (2) určit hodnotu funkce f například v bodě 17, potřebujeme znát její hodnoty v bodech 15 a 16; tyto hodnoty pak máme sečíst. Přitom je důležité, že tyto nové otázky, na které je převedena původní otázka po hodnotě v bodě x, se vždy týkají čísel menších než x. Díky tomu můžeme předpis tvaru (1) nebo (2) užít k výpočtu hodnoty funkce v libovolném bodě x: máme-li určit hodnotu například opět v bodě 17, určíme nejprve postupně hodnoty ve všech bodech 0 až 16. Předpisům tvaru (1) a (2) se obecně říká rekurzívní definice funkce a o funkci, která je takovým předpisem určena, se říká, že je definována (odvozena) rekurzí. Náš plán je definovat přesně jednu z variant rekurze, totiž primitivní rekurzi, a pak definovat částečně rekurzívní funkce jako funkce, které lze odvodit opakovaným užitím primitivní rekurze a ještě dalších dvou operací. Částečně rekurzívní funkce budou naším druhým výpočtovým modelem. Domluvme se, že platí-li ψ : X → Y , tj. zobrazuje-li funkce ψ množinu X do množiny Y , množině X říkáme definiční obor funkce ψ a píšeme X = Dom(ψ). Pro pozdější použití definujme množinu Rng(ψ), obor hodnot funkce ψ, jako množinu { z ; ∃x(ψ(x) = z) }. Dále se domluvme, z jakého univerza funkcí chceme vyčlenit částečně rekurzívní funkce: Definice 2.2.1 Funkce ψ je částečná funkce k proměnných, platí-li ψ : X → N, kde X ⊆ Nk . Částečná funkce ψ, která je funkcí k proměnných, je totální, jestliže platí Dom(ψ) = Nk . Místo [x1, . . , xk] ∈ Dom(ψ) budeme psát !ψ(x1, . . , xk). Zápis !ψ(x1, . . , xk) čteme „funkce ψ je definována v bodě [x1, . . , xk] nebo také „funkce ψ konverguje v bodě [x1, . . , xk] . V souladu s tím se zápis ¬!ψ(x1, . . , xk) někdy čte „funkce ψ diverguje v bodě [x1, . . , xk] . Za částečnou funkcí ψ se často budeme snažit vidět nějaký program, který ji počítá, a je-li z její funkční hodnota v bodě [x1, . . , xk], bude užitečné si představovat, že z je výstup, který onen program vydal, jestliže mu byl mu ke zpracování předložen vstup [x1, . . , xk]. Zápis !ψ(x1, . . , xk) se proto čte také „funkce ψ se dopočítá v bodě [x1, . . , xk] , kdežto zápis ¬!ψ(x1, . . , xk) se čte „funkce ψ se zacyklí v bodě [x1, . . , xk] . Domluvme se, že je-li počet k členů nějaké k-tice zřejmý nebo nepodstatný, nebudeme jej vyznačovat a k-tici označíme podtrženým písmenem. Tuto úmluvu budeme vydatně využívat v celém zbývajícím textu. Je-li tedy například ψ částečná funkce k proměnných, pak ψ je totální, platí-li ∀x1 . . ∀xk!ψ(x). Uvidíme, že je-li ψ částečně rekurzívní funkce k proměnných a definujeme-li totální funkci f předpisem f(x) = ψ(x) pro [x1, . . , xk] ∈ Dom(ψ) a f(x) = 0 pro [x1, . . , xk] /∈ Dom(ψ) (tj. dodefinujeme-li funkci ψ nulou), pak funkce f nemusí být částečně rekurzívní. Může se dokonce stát, že funkce ψ (jako množina (k + 1)-tic) 84 2 Algoritmy a úlohy není podmnožinou žádné totální částečné rekurzívní funkce stejného počtu k proměnných. Toto je důvod, proč uvažujeme i netotální částečné funkce. Částečné funkce značíme malými latinskými písmeny f, g, h, . . . nebo malými řeckými písmeny. Nebude-li ale o funkci označené latinským písmenem řečeno jinak, rozumí se, že jde o totální funkci. Řekneme, že funkce ϕ, která má k + 1 proměnných, je odvozena z funkcí ψ a χ, které mají k resp. k + 2 proměnných, operací primitivní rekurze, jestliže pro všechna x, y1, . . , yk a z platí ϕ(0, y) = z ⇔ ψ(y) = z, ϕ(x + 1, y) = z ⇔ !ϕ(x, y) & χ(ϕ(x, y), x, y) = z. (3) Příklad 2.2.2 Sčítání přirozených čísel, tj. funkce f(x, y) = x + y s definičním oborem N2 , je odvozena primitivní rekurzí z funkcí g a h, o kterých platí g(y) = y a h(v, x, y) = v + 1. Indukcí lze snadno dokázat, že jsou-li ϕ, ψ a χ jako v (3) a platí-li !ϕ(x, y), pak platí i !ϕ(v, y) pro všechna v < x. Zápis ψ(y) = z v (3) znamená, že funkce ψ je definována v bodě [y1, . . , yk] a její hodnota v tomto bodě je z. Stejný význam mají i ostatní rovnosti v (3) a dále. Zápis ψ(y) = z by tedy znamenal, že funkce ψ buď není definována v bodě [y1, . . , yk], nebo že její hodnota v tomto bodě je jiná než z. Řekneme, že funkce ϕ, která má k proměnných, je odvozena z funkce χ, která má m proměnných, a z funkcí ψ1, . . , ψm, které mají shodně k proměnných, operací substituce, jestliže pro všechna x1, . . , xk a z platí ϕ(x) = z ⇔ !ψ1(x) & . . & !ψm(x) & χ(ψ1(x), . . , ψm(x)) = z. (4) Funkce ϕ je tedy definována v bodě [x1, . . , xk] právě tehdy, jsou-li v [x1, . . , xk] definovány všechny funkce ψi a je-li navíc funkce χ definována v bodě [ψ1(x), . . , ψm(x)]. Pro operaci substituce (říká se také operace dosazení nebo operace skládání funkcí) se užívá znak ◦. Fakt, že ϕ je z χ a ψ1, . . , ψm odvozena substitucí, se zapisuje ϕ = χ ◦ [ψ1, . . , ψm]. Je-li m = 1, tj. je-li ϕ odvozena substitucí z funkce χ jedné proměnné a z jedné funkce ψ, píšeme ϕ = χ ◦ ψ. Běžně užívaný zápis pro podmínku (4) je ϕ(x) χ(ψ1(x), . . , ψm(x)), přičemž znak má tento význam: levá strana je definována jako hodnota výrazu na pravé straně, pokud je tento výraz definován; není-li definován, ani levá strana není definována. Řekneme, že funkce ϕ, která má k proměnných, je z funkce ψ, která má k + 1 proměnných, odvozena operací minimalizace, jestliže pro všechna x1, . . , xk a z platí ϕ(x) = z ⇔ ψ(x, z) = 0 & ∀y 1, podmínky (2) převádějí otázku po hodnotě v bodě x na dvě otázky, totiž na otázky po hodnotách v bodech x − 1 a x − 2. Přitom je myslitelná ještě složitější situace, kdy hodnota (nějaké jiné) funkce f v bodě x je nějakým předpisem převáděna na blíže neurčený (tj. měnící se s x) počet dalších otázek po hodnotách v bodech menších než x. Představme si například, že chceme zdůvodnit, že ke každé rekurzívní funkci g jedné proměnné s nekonečným oborem hodnot existuje prostá rekurzívní funkce f s týmž oborem hodnot. V tom případě je přirozené odvodit funkci f z funkce g předpisem f(x) = g(µy(g(y) /∈ {f(0), . . , f(x − 1)})); (9) lze ověřit, že takto definovaná funkce f je opravdu prostá a má stejný obor hodnot jako funkce g. Předpis (9) umožňuje určit hodnotu f(x), známe-li všechny předchozí hodnoty f(0), . . , f(x − 1). Program, který počítá funkci f s užitím podprogramu pro výpočet funkce g, potřebuje datovou strukturu, která při zpracování vstupu x obsahuje x číselných hodnot f(0) až f(x − 1). Velikost této datové struktury nelze určit v době psaní programu; jedná se tedy o dynamickou datovou strukturu. Nyní se budeme zabývat kódováním konečných posloupností (přirozených čísel přirozeným číslem), které nám mimo jiné pomůže zdůvodnit, že funkce f odvozená z funkce g na základě podmínky (9) je rekurzívní, je-li g rekurzívní. Chceme-li se na formalismus rekurzívních funkcí dívat jako na svého druhu programovací jazyk, kódování konečných posloupností v tomto jazyce reprezentuje dynamické datové struktury. 92 2 Algoritmy a úlohy Z více druhů kódování konečných posloupností vyskytujících se v literatuře si volíme následující. Kód posloupnosti x0, . . , xn−1 značíme x0, . . , xn−1 a definujeme jako číslo w = 2x0+1 · 3x1+1 · . . · p xn−1+1 n−1 . Platí tedy například 2, 1, 3 = 23 · 32 · 54 = 45000. Fakt, že w je kódem posloupnosti, značíme Seq(w). Platí Seq(45000) a dále například Seq(6), Seq(1), ¬Seq(10) a ¬Seq(0). Obecně platí Seq(w) ⇔ w = 0 & ∀x≤w∀y≤w(Prime(x) & Prime(y) & y | w & x ≤ y ⇒ x | w), vlastnost „býti kódem posloupnosti je tedy primitivně rekurzívní. Místo „w je kódem posloupnosti říkáme také „w je posloupnost . Počet členů posloupnosti w neboli délku posloupnosti w značíme Lh(w). Protože chceme tvrdit, že funkce Lh je primitivně rekurzívní, a protože primitivně rekurzívní funkce musí být totální, musí funkce Lh přisuzovat nějakou (jinak nedůležitou) hodnotu i těm w, pro která platí ¬Seq(w). Předpis Lh(w) = µy < w(¬(py | w)) evidentně definuje primitivně rekurzívní funkci a lze ověřit, že tato funkce má správnou hodnotu ve všech bodech w splňujících Seq(w). Například čísla 0, 1 a 9 mají shodně délku 0, čísla 6 a 42 mají délku 2. Člen s indexem x posloupnosti w značíme (w)x. Lze psát (w)x = µy < w(¬(py+1 x | w)) ·− 1. Opět platí, že funkce [w, x] → (w)x je primitivně rekurzívní a že přisuzuje správnou hodnotu všem dvojicím [w, x] splňujícím podmínky Seq(w) a x < Lh(w). Funkci [w, x] → (w)x můžeme říkat dekódovací funkce. V dalších úvahách nesmíme zapomenout, že členy posloupností indexujeme od nuly a že posloupnost w má členy s indexy 0 až Lh(w) ·− 1. Platí-li w1 = x0, . . , xn−1 a w2 = y0, . . , ym−1 , pak zápis w1 ∗ w2 značí číslo x0, . . , xn−1, y0, . . , ym−1 , tj. kód posloupnosti vzniklé konkatenací (spojením) posloupností x0, . . , xn−1 a y0, . . , ym−1. Platí w1 ∗ w2 = w1 · v 1, tato podmínka je Πn−1 2.2 Základní pojmy z teorie rekurzívních funkcí 105 dle indukčního předpokladu pro tvrzení (d). Úvaha pro druhou část tvrzení (e), uzavřenost Πn-podmínek na univerzální kvantifikaci, je analogická, podmínka P je v tom případě rekurzívní nebo Σn−1 a existenční kvantifikátory je třeba nahradit univerzálními. Nechť nyní ∃vP(x, v) a ∃vQ(x, v) jsou dvě Σn-podmínky, přičemž opět P a Q jsou rekurzívní, je-li n = 1, jinak jsou Πn−1. Jejich konjunkce je ekvivalentní s ∃v1∃v2(P(x, v1) & P(x, v2)). Přitom podmínka P(x, v1) & P(x, v2) je rekurzívní dle 2.2.12 resp. je Πn−1 dle indukčního předpokladu pro tvrzení (c), podmínka ∃v1∃v2(. .) je Σn dle již dokázaného tvrzení (e). Zbývající úvahy v (c) jsou podobné či zřejmé. Nechť konečně ∃vP(x, y, v) je Σn-podmínka, uvažujme podmínky ∃y 1, je v O(f) pro libovolnou funkci f tvaru n → logc2 (n) , kde opět c2 > 1. Můžeme tedy mluvit o logaritmu, aniž bychom specifikovali jeho bázi. Třída PSPACE je třída všech úloh rozhodnutelných v polynomiálním prostoru. V oddílu 2.1 jsme zjistili, že úlohy Sat, Taut a QBF jsou v PSPACE. Úloha rozhodnout, zda dané slovo je booleovským výrazem, je příkladem úlohy ve třídě LOG. Také úloha rozhodnout, zda dané slovo je (syntakticky správnou) výrokovou formulí, je úlohou ve třídě LOG, neboť program z oddílu 2.1, který rozhoduje o syntaktické správnosti booleovských výrazů a pracuje v logaritmickém prostoru, by se dal upravit na program, který by místo toho rozhodoval o výrokových formulích. Lze dokázat (cvičení), že úlohy Hodnota booleovského výrazu a Pravdivostní hodnota výrokové formule jsou také ve třídě LOG. Součet a součin přirozených čísel jsou příklady funkcí ve třídě FLOG. 116 2 Algoritmy a úlohy Rozšiřme nyní naši zásobu zajímavých úloh. Připomeňme, že literál je výrokový atom nebo negovaný výrokový atom a že klauzule je disjunkce literálů. Definujme, že literál je negativní nebo pozitivní podle toho, je-li negovaným atomem nebo atomem bez negace. Hornovská klauzule je klauzule obsahující nejvýše jeden pozitivní literál. Hornovská formule je výroková formule, která je konjunkcí hornovských klauzulí. Hornovská formule je tedy zvláštním případem formule v konjunktivním normálním tvaru. Nyní jsme připraveni definovat několik úloh vztahujících se k výrokové logice. HornSat Dáno: Hornovská výroková formule A. Úkol: Zjistit, zda A je splnitelná. 2Sat Dáno: Výroková formule A v konjunktivním normálním tvaru, v níž každá klauzule obsahuje nejvýše dva literály. Úkol: Zjistit, zda A je splnitelná. 3Sat Dáno: Výroková formule A v konjunktivním normálním tvaru, v níž každá klauzule obsahuje nejvýše tři literály. Úkol: Zjistit, zda A je splnitelná. Analogicky bychom mohli definovat také úlohy 4Sat, 5Sat atd. Nebudeme je ale potřebovat. Kromě uvedených tří úloh se zmíníme také o úlohách CNFSat a DNFSat (zjistit, zda daná formule v konjunktivním resp. disjunktivním normálním tvaru je splnitelná). Je zřejmé, že pomocí tabulkové metody lze rozhodovat kteroukoliv z právě uvedených tří úloh. Nyní ale zdůvodníme, že pro úlohu HornSat lze navrhnout mnohem účinnější algoritmus, než je tabulková metoda. Výsledkem bude tvrzení, že úloha HornSat je v P. Úvahy, zda něco podobného platí i pro zbývající dvě úlohy či pro úlohu Sat, odložme na později. Uvědomme si, že je-li C hornovská klauzule tvaru ¬q1 ∨ . . ∨ ¬qk ∨ p, tj. obsahuje-li klauzule C nějaký pozitivní literál, pak C je výrokově ekvivalentní s formulí q1& . . &qk →p. Domluvme se proto, že hornovským klauzulím obsahujícím pozitivní literál budeme chvíli říkat „implikace , kdežto ostatním (sestávajícím pouze z negativních literálů) budeme říkat „disjunkce . Například hornovská formule ¬p & (¬r ∨ ¬s ∨ p) & (¬q ∨ s) & (¬r ∨ q) & r je konjunkcí pěti klauzulí, z nichž první je disjunkce, ostatní jsou implikace. Nyní můžeme popsat algoritmus, o kterém pak dokážeme, že je polynomiálním algoritmem pro úlohu HornSat: 1. Přijmi vstup A a zkontroluj, že A je opravdu hornovskou formulí. Utvoř seznam r1, . . , rn všech atomů vyskytujících se v A. Vyhraď paměťový 2.3 Pár slov o výpočtové složitosti 117 prostor pro pravdivostní ohodnocení v atomů r1, . . , rn. Iniciálně zvol v tak, že všem atomům r1, . . , rn jsou přiřazeny nuly. 2. Zjisti, zda mezi klauzulemi, ze kterých je sestavena formule A, je nějaká implikace, kterou ohodnocení v nesplňuje. Pokud ne, pokračuj bodem 4. 3. Zvol implikaci ¬q1 ∨ . . ∨ ¬qk ∨ p, kterou ohodnocení v nesplňuje. Polož v(p) = 1 a pokračuj bodem 2. 4. Když v splňuje všechny disjunkce, řekni ANO. Jinak řekni NE. Ohodnocení v zpočátku obsahuje pouze nuly. Některé nuly mohou být v průběhu výpočtu změněny na jedničky; opačná změna ale možná není. Tento algoritmus nejprve pomíjí všechny disjunkce a zabývá se pouze implikacemi. Každá implikace může být příčinou, že některá nula ohodnocení v je změněna na jedničku. Tuto „potíž ale každá implikace C tvaru ¬q1 ∨. .∨¬qk ∨p může způsobit nejvýše jednou: poté, co jsme položili v(p) = 1, další přidání jedniček už nic nezmění na tom, že v(C) = 1. Bod 3 je tedy prováděn nejvýše tolikrát, kolik je ve formuli A implikací. Tím je zdůvodněno, že algoritmus při zpracování libovolného vstupu A dospěje k bodu 4, vydá nějakou odpověď a zastaví se. Zbývá zdůvodnit, že všechny jeho odpovědi jsou správné. Důkaz se opírá o následující pomocné tvrzení. Nechť v je libovolné pravdivostní ohodnocení, pro které platí v (A) = 1. Vždy, když je prováděn bod 2, pro každý z atomů r1, . . , rn splňující podmínku v(ri) = 1 platí i v (ri) = 1. Jinými slovy, každá hodnota 1 ohodnocení v je nutná v tom smyslu, že hodnotu 1 má v tomtéž bodě každé ohodnocení, které splňuje formuli A. Toto tvrzení lze snadno dokázat indukcí podle počtu průchodů bodem 3. Když algoritmus dospěje k bodu 4, má v ruce ohodnocení v, které splňuje všechny implikace. Zjistí-li nyní, že v splňuje všechny disjunkce, a řekne-li následkem toho ANO, je to správná odpověď, ohodnocení v splňuje všechny klauzule formule A (implikace i disjunkce), a A je tedy splnitelnou formulí. Když naopak A je splnitelná, existuje ohodnocení v takové, že v (A) = 1. Ohodnocení v splňuje všechny disjunkce a pomocné tvrzení říká, že v vznikne z v změnou některých jedniček na nuly. Taková změna nemůže nic pokazit na tom, že všechny disjunkce mají hodnotu 1. Algoritmus tedy při provedení bodu 4 řekne ANO. Zbývá uvážit, jak by vypadal přepis P našeho algoritmu do jazyka RASP a jaké by byly jeho časové nároky. Řekněme, že program P požaduje, aby vstupní formule A byla na vstupní pásku zapsána běžným způsobem, ale bez zbytečných závorek určujících pořadí operací stejného druhu (několika konjunkcí nebo několika disjunkcí). Dále řekněme, že formuli A a ohodnocení v budou v paměti počítače reprezentovat dva na sebe navazující záznamy, tj. datová struktura, kterou jsme na str. 74 označili dvěma hvězdičkami. Má-li program P zjistit, zda některá implikace formule A je ohodnocením v nesplněna, znamená to kvůli každému literálu projít ohodnocení v a vyhledat příslušnou pravdivostní hodnotu. Nechť formule A má délku n. Protože literálů je řádově nejvýše n a délka pravdivostního ohodnocení je také řádově n, na provedení bodu 3 program P potřebuje čas O(n2 ). Protože bod 3 se provádí ne více než n-krát, program pracuje v čase O(n3 ). 118 2 Algoritmy a úlohy E T T E T '   Q    se f g h p q r s § ¤ ¥c 3 6 2 9     Obrázek 2.3.1: Příklad orientovaného a neorientovaného grafu Ačkoliv tvrdíme, že algoritmicky zajímavé úlohy se často objevují v logice, je pravda, že se často objevují také v teorii grafů. Orientovaný graf je dvojice G, R , kde G je neprázdná množina a R je binární relace na G. Prvkům množiny G říkáme vrcholy nebo uzly grafu G, R , prvky množiny R jsou hrany. Na obrázku 2.3.1 vlevo je znázorněn orientovaný graf s osmi vrcholy, hrany jsou vyznačeny šipkami. Hranám tvaru [a, a] (z nějakého vrcholu do téhož vrcholu) se říká smyčky. Neorientovaný graf nebo jen graf jsme v oddílu 1.2 na str. 24 definovali jako dvojici G, R , kde R je antireflexivní a symetrická relace na neprázdné množině G. Příklad neorientovaného grafu je znázorněn na obr. 2.3.1 vpravo. Hrany neorientovaného grafu je užitečné si představovat či znázorňovat jako úsečky (obecně neorientované spojnice), smyčky se v neorientovaném grafu nepřipouštějí. Posloupnost a0, . . , an vrcholů (orientovaného nebo neorientovaného) grafu G, R je sled z vrcholu c do vrcholu d, platí-li ∀i 3, zvolte nový atom s a klauzuli C nahraďte dvěma klauzulemi a1 ∨ . . ∨ an−2 ∨ s a an−1 ∨ an ∨ ¬s. 136 2 Algoritmy a úlohy 17. Zdůvodněte, že Nezávislá množina je NP-kompletní úloha. Návod. Převádějte úlohu 3Sat. Nechť je dána výroková formule A v konjunktivním normálním tvaru s nejvýše tříprvkovými klauzulemi. Vrcholy konstruovaného neorientovaného grafu G, R jsou dvojice tvaru [C, a], kde C je klauzule formule A a a je v ní se vyskytující literál. Hrany jsou všechny dvojice tvaru [[C, a], [C, b]] a dále všechny dvojice tvaru [[C, a], [D, a]]. Například graf příslušný k formuli (p ∨ ¬r ∨ s) & (¬p ∨ q ∨ ¬s) & (r ∨ ¬q) je na obrázku 2.3.7. Číslo k (velikost požadované nezávislé množiny) je počet klauzulí formule A. r r r r r r r r  „ „ „ „ „ „ Obrázek 2.3.7: NP-kompletnost úlohy Nezávislá množina 18. Zdůvodněte, že NLOG ⊆ SPACE( 2 ). 19. Protože úloha HornSat je v P, je také v TIME(nc ) pro jisté c. Protože všechny úlohy v P jsou na úlohu HornSat převeditelné, znamená to, že existuje c takové, že P ⊆ TIME(nc ). Proč tato úvaha není správná? 20. Zdůvodněte, že úloha QBF je PSPACE-kompletní i za následujících omezujících předpokladů na vstupní formuli Q1p1 . . QnpnB: ◦ formule B je v konjunktivním normálním tvaru a neobsahuje jiné atomy než p1, . . , pn, ◦ n je sudé, Q1 = ∃ a v posloupnosti Q1, . . , Qn se střídají existenční a univerzální kvantifikátory. Návod. V příkladu 2.3.6 jsme k dané výrokové formuli B(p) sestrojili formuli E(p, q) v konjunktivním normálním tvaru sestavenou z atomů p1, . . , pn a q1, . . , qm takovou, že pro každé pravdivostní ohodnocení e platí e |= B, právě když e |= ∃q1 . . ∃qmE. Formuli Q1p1 . . QnpnA lze tedy nahradit formulí Q1p1 . . Qnpn∃q1 . . ∃qmE. Pak lze přidat jalové kvantifikátory (tj. kvantifikátory ∃r nebo ∀r, kde r je atom různý od všech pi a qj). 3 Predikátová logika My opinion is simply that a concept can only be logically fixed through its relation to other concepts. These relations, formulated in precise statements, I call axioms and I add, that the axioms (. . . ) are the definitions of the concepts. (D. Hilbert, citát uveden v [81]) 3.1 Formule a sémantika predikátové logiky 3.1.1 Jazyky, termy a formule Náš výklad o predikátové logice bude po určitou dobu paralelní s výkladem v kapitole 1 o výrokové logice. I tady budeme nejprve mluvit o tom, co jsou (predikátové) formule, pak o sémantice, která mimo jiné určí, které z formulí jsou logicky platné (tj. pravdivé za každých okolností), a potom stanovíme logický kalkulus tak, abychom pro něj byli schopni dokázat větu o úplnosti, která (mimo jiné) tvrdí, že dokazatelné jsou přesně ty predikátové formule, které jsou logicky platné. V predikátových formulích (přesněji formulích predikátové logiky prvního řádu) se mohou vyskytovat symboly několikerého druhu: • Logické spojky →, ¬, &, ∨. • Kvantifikátory: univerzální kvantifikátor ∀ a existenční kvantifikátor ∃. • Závorky ( ). • Proměnné x, y, u, v, . . . , x0, x1, . . . • Funkční symboly pro označení operací s objekty. Každému funkčnímu symbolu F je přiřazeno přirozené číslo n ≥ 0 zvané četnost symbolu F. Například „+ zpravidla označuje binární funkční symbol, tj. funkční symbol četnosti 2. Funkční symboly četnosti nula se nazývají konstanty. • Predikátové symboly (též relační symboly) pro označení vztahů mezi objekty. Každému predikátovému symbolu P je přiřazeno přirozené číslo n ≥ 1 zvané četnost symbolu P. Například „∈ zpravidla označuje binární predikátový symbol, tj. predikátový symbol četnosti 2. 138 3 Predikátová logika Množinu všech proměnných označme Var a předpokládejme o ní, že je nekonečná spočetná. Logickým spojkám a kvantifikátorům se říká logické symboly. Funkční a predikátové symboly se dohromady nazývají mimologické symboly. Kdykoliv budeme mluvit o formulích, důkazech nebo axiomatické teorii, budeme předpokládat, že nejprve byla pevně zvolena nebo zadána množina L mimologických symbolů zvaná jazyk (nějaké teorie). Jazyk je tedy množina L mimologických symbolů spolu s údajem, který pro každý prvek množiny L určuje, zda je to funkční nebo predikátový symbol a jaká je jeho četnost. Jeden ze symbolů, totiž rovnítko „= , si zasluhuje zvláštní zmínku. Nejprve budeme mluvit o predikátové logice bez rovnosti, ve které se rovnítko považuje za mimologický symbol, který se může nebo nemůže vyskytovat ve formulích podle toho, zda byl nebo nebyl přijat do zvoleného jazyka. Později, v predikátové logice s rovností, se rovnítko bude považovat za logický symbol, který se ve formulích může vyskytovat, přestože není jmenován mezi prvky jazyka, a kterému sémantika predikátové logiky s rovností i definice kalkulů pro predikátovou logiku s rovností přisuzují zvláštní význam. Bude-li se to hodit, budeme užívat i symboly , ⊥ a ≡ ve významu z kapitoly 1. Spojce ≡ v tom případě přisuzujeme nižší prioritu než všem ostatním spojkám. Definice 3.1.1 Množina všech termů jazyka L je nejmenší množina výrazů splňující podmínky ◦ každá proměnná je term (jazyka L), ◦ jsou-li t1, . . , tn termy a F ∈ L je funkční symbol četnosti n, pak F(t1, . . , tn) je term jazyka L. Atomická formule jazyka L je každý výraz tvaru P(t1, . . , tn), kde t1, . . , tn jsou termy jazyka L a P ∈ L je predikátový symbol četnosti n. Množina všech (predikátových) formulí jazyka L je nejmenší množina výrazů splňující podmínky ◦ každá atomická formule je formule jazyka L, ◦ jsou-li ϕ a ψ formule jazyka L a x je proměnná, pak i výrazy (ϕ→ψ), (ϕ&ψ), (ϕ ∨ ψ), ¬ϕ, ∀xϕ a ∃xϕ jsou formule jazyka L. Místo formule jazyka L se také říká formule v jazyce L. V druhé podmínce v definici termu se připouští i případ n = 0. To znamená, že každá konstanta c ∈ L je zároveň termem jazyka L. Formule ∀xϕ a ∃xϕ čteme „pro každé x (platí) ϕ resp. „existuje x takové, že (platí) ϕ . Často, zejména nepůjde-li nám právě o algoritmy pracující s formulemi a důkazy, připustíme i zápisy, které ne zcela vyhovují definici 3.1.1. Stejně jako ve výrokové logice nebudeme psát úplně vnější dvojici závorek. Naopak, pokud to pomůže čitelnosti, budeme závorkovat i výrazy, u kterých to definice 3.1.1 nepředepisuje, například atomické formule. Binární symboly, a to jak funkční, tak predikátové, se zpravidla píší mezi operandy, například x + y nebo (x + y) místo +(x, y), nebo x ∈ y místo ∈(x, y). U binárních predikátů se často užívá přeškrtnutí místo negace: t = s a t /∈ s jsou zkrácené zápisy pro ¬(t = s) a ¬(t ∈ s). 3.1 Formule a sémantika predikátové logiky 139 Příklad 3.1.2 Jazyk teorie množin {∈} obsahuje jediný symbol, který je binárním predikátem. Fakt, že v tomto jazyce nejsou žádné funkční symboly, znamená, že jediné termy v jazyce teorie množin jsou proměnné. Výrazy x ∈ x nebo ∃x∀y(y ∈ x) jsou příklady formulí jazyka teorie množin. Uvažujeme-li teorii množin v predikátové logice s rovností, pak ovšem také ∀v(v ∈ x & x = y → v ∈ y) je příklad formule jazyka teorie množin. Příklad 3.1.3 Jazyk teorie grup {+, 0} má binární funkční symbol + a konstantu 0. Výrazy x, x + y a (x + 0) + x jsou příklady termů v jazyce teorie grup. Jazyk {+, 0} má smysl uvažovat pouze v predikátové logice s rovností, protože bez alespoň jednoho predikátového symbolu nelze vytvořit žádnou formuli. V tom případě ∀x∀y(x + y = y + x) a ∃y(y + y = x → x = 0) jsou příklady formulí v jazyce teorie grup. Příklad 3.1.4 Aritmetický jazyk {+, ·, 0, S, ≤, <} má dva binární funkční symboly + a ·, konstantu 0, unární funkční symbol S a dva binární predikátové symboly ≤ a <. Výrazy S(S(S(0))) a x · S(y + z) jsou příklady termů v aritmetickém jazyce (aritmetických termů). Výrazy x < S(0) ∨ S(0) < x, ∃y(y + y = 0), S(S(0)) · S(S(0)) = S(S(S(0))) jsou příklady formulí v aritmetickém jazyce (aritmetických formulí). Aritmetický jazyk budeme zpravidla vztahovat k přirozeným číslům a S(x) budeme chápat jako označení pro číslo x + 1. Symbol „S odkazuje k anglickému successor (následník). Vidíme, že volbou jazyka je dáno, o čem se v dané teorii může mluvit. Samotnou definici pojmu teorie však odložme na později. Uvažujme nyní aritmetickou formuli ∃y(y + y = x), označme ji ϕ a všimněme si rozdílného postavení proměnných x a y ve ϕ. Formule ϕ vyjadřuje vlastnost objektu x (a nikoliv y). Lze ji číst číslo x je dělitelné dvěma. Proměnná y má ve formuli ϕ pomocný význam, podobně jako ve výrazu x 0 f(y) dy. Budeme říkat, že proměnná x se ve formuli ϕ vyskytuje volně, y se ve ϕ vyskytuje vázaně. Následující definice umožňuje rozdělit výskyty proměnných v libovolné formuli na volné a vázané. Definice 3.1.5 Každý výskyt libovolné proměnné v atomické formuli je volný. Každý volný (vázaný) výskyt proměnné x ve formuli ϕ a ve formuli ψ je zároveň volným (vázaným) výskytem ve formulích (ϕ → ψ), (ϕ & ψ) a (ϕ ∨ ψ). Každý volný (vázaný) výskyt proměnné x ve formuli ϕ je zároveň volným (vázaným) výskytem proměnné x ve formuli ¬ϕ. Všechny výskyty proměnné x ve formulích ∀xϕ a ∃xϕ jsou vázané, žádný z nich není volný. Je-li y proměnná různá od proměnné x, pak každý volný (vázaný) výskyt proměnné y ve formuli ϕ je zároveň volným (vázaným) výskytem proměnné y ve formulích ∀xϕ a ∃xϕ. Definice 3.1.6 Term je uzavřený, jestliže neobsahuje žádné proměnné. Formule ϕ je uzavřená formule neboli sentence, jestliže ϕ neobsahuje volné výskyty proměnných. Formule ϕ je otevřená, jestliže neobsahuje kvantifikátory. 140 3 Predikátová logika Například když ϕ je formule ∃x(x < y & ∀y(z + S(y) = x)), pak proměnná z má ve ϕ jediný výskyt, který je volným výskytem, všechny (tři) výskyty proměnné x ve ϕ jsou vázané a ze tří výskytů proměnné y je první volný a další dva jsou vázané. Formule ϕ není sentence, formule ∀y∀zϕ je sentence. Ze tří formulí uvedených v příkladu 3.1.4 první je otevřená, druhá je sentence a třetí je dokonce otevřená sentence. Vidíme, že „volný výskyt a „vázaný výskyt jsou komplementární pojmy, daný výskyt je volný právě tehdy, není-li vázaný. Daná proměnná ale může mít v dané formuli současně volné i vázané výskyty. „Otevřená formule a „uzavřená formule nejsou komplementární pojmy, některé formule nejsou uzavřené ani otevřené, některé jsou naopak obojí. Pokud nějaký jazyk L neobsahuje žádné konstanty, což je pravda například o jazyce teorie množin, pak v L neexistují žádné uzavřené termy ani otevřené sentence. Než obrátíme pozornost k definici struktury, zmiňme se ještě o tom, co přesně jsou termy a formule. Všechny jazyky „ze života , tj. ty, o kterých si budeme klást nějaké otázky a v souvislosti s kterými se budeme snažit řešit nějaké problémy, budou konečné nebo alespoň spočetné. To ale neznamená, že všechny jazyky, které mají aplikace, tj. které mohou pomoci řešit nějaké problémy, jsou nejvýše spočetné. Uvidíme (například v důkazu věty 3.4.5), že věty o úplnosti a kompaktnosti platí pro všechny teorie bez ohledu na mohutnost jazyka a že tento fakt může mít určité důsledky i pro teorie s konečným jazykem. Z toho důvodu většinou připouštíme, aby jazyk měl libovolnou mohutnost, a termy a formule jsou v tom případě abstraktními objekty, nejspíš konečnými posloupnostmi „symbolů . Uvažujeme-li však o algoritmech pracujících se syntaktickými objekty (nastane to v oddílu 3.6 a později), potřebujeme mít možnost považovat termy a formule za posloupnosti skutečných symbolů, tj. prvků nějaké konečné abecedy. V tomto případě s množinou Var všech proměnných zacházíme stejně, jako jsme v kapitole 2 zacházeli s množinou všech výrokových atomů: předpokládáme, že její prvky jsou očíslovány, Var = {v0, v1, v2, . . . }, že každá proměnná vi sestává z písmene v a ze zápisu indexu i a že jsme se rozhodli, zda indexy zapisujeme unárně, binárně či dekadicky. Dále v tomto případě předpokládáme, že jazyk je nejvýše spočetný, a že je-li nekonečný, byla pro zapisování jeho prvků přijata podobná dohoda jako pro zapisování proměnných. 3.1.2 Struktury Definice 3.1.7 Struktura pro jazyk L je neprázdná množina D ( nosná množina struktury) spolu s funkcí r definovanou na L. Když c ∈ L je konstanta, pak r(c) je prvek množiny D. Když F ∈ L je n-ární funkční symbol a n ≥ 1, pak r(F) je n-ární operace na množině D, tj. funkce z Dn do D. Když P ∈ L je n-ární predikátový symbol, pak r(P) je n-ární relace na množině D, tj. platí r(P) ⊆ Dn . Prvku r(c), funkci r(F) a relaci r(P) říkáme realizace symbolu c resp. symbolu F resp. symbolu P v dané struktuře. V predikátové logice s rovností je realizací r(=) symbolu = vždy diagonála na množině D, tj. množina { [x, x] ; x ∈ D }. 3.1 Formule a sémantika predikátové logiky 141 A: r1(+) a b a a b b b a r1(0) = a r1(S) a b b b r r r r a b c d B T     k E § ¤ ¦ c r r ra b c r3(Q)r3(P) C ' & $ %     Obrázek 3.1.1: Různé struktury Příklad 3.1.8 Uvažujme jazyk {+, 0, S}, kde + je binární, S unární funkční symbol a 0 je konstanta. Vezměme dvouprvkovou množinu A = {a, b} a definujme realizace r1(+), r1(0), r1(S) tří symbolů našeho jazyka rovností r1(0) = a a dvěma tabulkami na obrázku 3.1.1 nahoře. Výsledná struktura A = {a, b}, r1(+), a, r1(S) je opravdu strukturou pro jazyk {+, 0, S}, neboť r1(+), a a r1(S) jsou binární, „nulární a unární operace na množině {a, b}. Dole na témže obrázku jsou dva další příklady struktur. Vlevo je struktura B = {a, b, c, d}, r2(∈) se čtyřprvkovou nosnou množinou B = {a, b, c, d} a s binární relací znázorněnou šipkami. Struktura B je strukturou pro jazyk s jediným binárním predikátem ∈. Vpravo je struktura C pro jazyk {P, Q} se dvěma unárními predikátovými symboly. Realizace {b, c} a {c} symbolů P a Q jsou vyznačeny ovály. Všechny struktury v předchozím příkladu jsou konečné. Definice struktury ale připouští libovolné mohutnosti nosných množin. Při označování struktur budeme většinou postupovat tak, jak naznačuje předchozí příklad a jak je běžné v algebře. Strukturu označíme tučnou variantou téhož písmene, kterým je označena její nosná množina, a realizaci symbolu I ve struktuře D budeme značit ID místo r(I). V případě, kdy jazyk L je konečný, budeme strukturu zapisovat jako n-tici, v níž za nosnou množinou následují realizace symbolů jazyka L. Jmenujme nyní několik prominentních struktur běžných v matematice. Nechť s označuje funkci x → x + 1, tj. přičítání jedničky, uvažovanou v množině všech přirozených nebo celých čísel. Pak struktura N = N, +N , ·N , 0N , s, ≤N , m. Totéž lze říci o axiomu ∃xψ → ψx(c∃xψ) a konstantě c∃xψ. Lemma 3.2.9 Když ϕ je sentence v jazyce L a T |= ϕ, pak ϕ je tautologickým důsledkem množiny T ∪ H(L). Důkaz Dokážeme, že pokud ϕ není tautologickým důsledkem množiny T ∪ H(L), pak existuje struktura D pro jazyk L+ , ve které platí všechny formule z T a neplatí ϕ, takže T /|= ϕ. Když ϕ není tautologickým důsledkem množiny T ∪ H(L), existuje pravdivostní ohodnocení, které přiřazuje hodnotu 1 všem formulím v T ∪ H(L) a hodnotu 0 formuli ϕ. Označme v0 jedno takové ohodnocení. Strukturu D zkonstruujeme ze syntaktického materiálu, který máme k dispozici. Nosnou množinu D struktury D definujme jako množinu všech uzavřených termů jazyka L+ . Na množině D definujme realizaci symbolů jazyka L+ následovně. Je-li F ∈ L+ funkční symbol libovolné četnosti n ≥ 0, jeho realizace FD je dána předpisem FD (s1, . . , sn) = F(s1, . . , sn). (1) Prvky s1, . . , sn množiny D jsou uzavřené termy a operace FD jim přiřazuje uzavřený term F(s1, . . , sn). Je-li c ∈ L+ konstanta, rovnost (1) říká cD = c. Každá konstanta je tedy svou vlastní realizací, a to bez ohledu na to, zda je nebo není v L. Všimněte si rozdílného významu závorek v (1): na pravé straně jsou závorky formálními symboly, tj. jsou součástí syntaxe termu F(s1, . . , sn). Je-li nyní P ∈ L+ predikátový symbol (musí ovšem platit P ∈ L) libovolné četnosti n ≥ 1, jeho realizaci PD definujme předpisem PD = { [s1, . . , sn] ; v0(P(s1, . . , sn)) = 1 }. (2) Každá n-tice [s1, . . , sn] tedy je nebo není v PD podle toho, jakou hodnotu přiřazuje naše pravdivostní ohodnocení otevřené sentenci P(s1, . . , sn). O struktuře D postupně vyslovíme a dokážeme tři tvrzení, a to o hodnotách (i neuzavřených) termů, o tom, kdy jsou a nejsou v D splněny atomické formule, a konečně o tom, kdy jsou a nejsou v D splněny všechny formule. Je-li t term jazyka L+ , jehož všechny volné proměnné jsou mezi x1, . . , xk, a je-li e ohodnocení proměnných, jehož hodnoty v x1, . . , xk jsou s1, . . , sk, pak tD [e] = tx1,..,xk (s1, . . , sk). (3) Je-li t proměnná, pak t je jedna z x1, . . , xk, řekněme xi. Pak ale dosazením termů s1, . . , sk za x1, . . , xk v t dostaneme si, a si je zároveň hodnota tD [e] termu xi při ohodnocení e. Je-li t term tvaru F(t1, . . , tn), pak (F(t1, . . , tn))D [e] = FD (tD 1 [e], . . , tD n [e]) = FD ((t1)x1,..,xk (s1, . . , sk), . . , (tn)x1,..,xk (s1, . . , sk)) = F((t1)x1,..,xk (s1, . . , sk), . . , (tn)x1,..,xk (s1, . . , sk)) = (F(t1, . . , tn))x1,..,xk (s1, . . , sk), 164 3 Predikátová logika kde první rovnost je podmínka T2, druhá platí díky indukčnímu předpokladu pro termy t1, . . , tn, třetí vzhledem k definici funkce FD v (1) a čtvrtá je jasná z toho, jak se dosazuje za proměnné ve složeném termu. Je-li ψ atomická formule, jejíž všechny volné proměnné jsou mezi x1, . . , xk, a je-li e ohodnocení proměnných, jehož hodnoty v x1, . . , xk jsou s1, . . , sk, pak D |= ψ[e] ⇔ v0(ψx1,..,xk (s1, . . , sk)) = 1. (4) Formule ψ totiž musí být tvaru P(t1, . . , tn), kde P je predikátový symbol četnosti n a t1, . . , tn jsou termy. Podmínka T3 říká D |= ψ[e] ⇔ [tD 1 [e], . . , tD n [e]] ∈ PD , tedy, vzhledem k (2) a (3), D |= ψ[e] ⇔ v0(P((t1)x1,..,xk (s1, . . , sk), . . , (tn)x1,..,xk (s1, . . , sk))) = 1. Zbývá uvážit, jak se substituuje za termy v atomických formulích: (P(t1, . . , tn))x(s) a P((t1)x(s), . . , (tn)x(s)) jsou tytéž formule. Je-li ψ libovolná formule, jejíž všechny volné proměnné jsou mezi x1, . . , xk, a je-li e ohodnocení proměnných, jehož hodnoty v x1, . . , xk jsou s1, . . , sk, pak D |= ψ[e] ⇔ v0(ψx(s)) = 1. (5) Pro případ, kdy ψ je atomická, jsme (5) již dokázali. Případy, kdy ψ je sestavena z jednodušších formulí pomocí některé logické spojky, jsou zcela rutinní a jejich důkaz ponecháváme na čtenáři. Předpokládejme, že ψ je tvaru ∃yχ a že (5) platí pro χ a pro všechna ohodnocení e. Předpokládejme dále, že proměnná y je různá od všech x1, . . , xk. Pak D |= (∃yχ)[e] ⇔ ∃t ∈ D(D |= χ[e(y/t)]) ⇔ ∃t ∈ D(v0(χy,x(t, s)) = 1) ⇔ v0(∃yχx(s)) = 1 ⇔ v0((∃yχ)x(s)) = 1, kde první ekvivalence je podmínka T8, druhá je indukční předpoklad pro formuli χ, čtvrtá je triviální a třetí si všimněme podrobněji. Formule χy,x(t, s) → ∃yχx(s) je v H(L) pro každý term t, a pravdivostní ohodnocení v0 jí tedy přiřazuje hodnotu 1. Když tedy v0(χy,x(t, s)) = 1 pro nějaký term t, musí platit i v0(∃yχx(s)) = 1, jinak by v0 porušovalo pravdivostní tabulku implikace. Naopak, když v0(∃yχx(s)) = 1, pak existuje term t, totiž c∃yχx(s), pro který platí v0(χy,x(t, s)) = 1, neboť v H(L) je implikace ∃yχx(s) → χy,x(c∃yχx(s), s), a její hodnota při ohodnocení v0 je tedy 1. Případy, kdy y je jedna z x1, . . , xk nebo ψ je tvaru ∀yχ, jsou podobné a jejich rozmyšlení necháváme na čtenáři. Je-li ψ sentence, (5) říká, že ψ platí v D, právě když v0(ψ) = 1. V D tedy platí všechny formule z T a neplatí ϕ, tedy opravdu T /|= ϕ. QED 3.2 Hilbertovský predikátový kalkulus 165 Důkaz (zbývající části) věty o úplnosti Předpokládejme, že pro nějakou formuli ϕ platí T |= ϕ, zdůvodníme T ϕ. Můžeme předpokládat, že ϕ je sentence. Kdyby totiž ϕ měla volné proměnné x1, . . , xr, pracovali bychom se sentencí ∀x1 . . ∀xrϕ a využili bychom implikace T |= ϕ ⇒ T |= ∀xϕ a T ∀xϕ ⇒ T ϕ. Podle tvrzení 3.2.9 je formule ϕ tautologickým důsledkem množiny T ∪H(L). Podle věty o kompaktnosti ve výrokové logice existuje konečná množina F ⊆ T ∪ H(L) taková, že ϕ je tautologickým důsledkem množiny F. Pišme F ve tvaru F = {α1, . . , αk, β1, . . , βn}, kde každá z formulí αi je axiom specifikace nebo prvek množiny T a β1, . . , βn jsou henkinovské axiomy. Předpokládejme, že henkinovské axiomy βj jsou uspořádány tak, že axiomy příslušné henkinovským konstantám vyšších řádů předcházejí axiomy příslušné konstantám nižších řádů. Na pořadí henkinovských axiomů příslušných konstantám téhož řádu a na pořadí formulí αi nezáleží. Protože ϕ je tautologický důsledek množiny F, formule α1 → (α2 → ( . . → (αk → (β1 → ( . . → (βn → ϕ) . .) je tautologie. Zvolme navzájem různé proměnné v1, . . , vn, které se nevyskytují v F ani ve ϕ. Pro 1 ≤ j ≤ n označme cj henkinovskou konstantu, ke které přísluší axiom βj, a pro libovolnou formuli γ v jazyce L+ označme γ formuli, která vznikne z γ nahrazením všech výskytů konstant c1, . . , cn proměnnými v1, . . , vn. Je zřejmé, že tímto nahrazením vznikne z tautologie opět tautologie, tedy formule dokazatelná v teorii T. Takže 1: T α1 → (α2 → ( . . → (αk → (β1 → ( . . → (βn → ϕ ) . .). Platí ovšem ϕ = ϕ, protože ϕ neobsahuje henkinovské konstanty. Je-li αi vlastní axiom teorie T, pak rovněž αi = αi. Je-li αi axiom specifikace, pak αi je opět axiom specifikace. V obou případech platí T αi. Užijeme-li k-krát pravidlo MP, dostaneme 2: T β1 → (β2 → ( . . → (βn → ϕ) . .). Předpokládejme, že axiom β1 má tvar ψx(c∀xψ) → ∀xψ, kde c∀xψ je konstanta řádu m. Úvaha pro druhý případ, kdy β1 má tvar ∃xψ →ψx(c∃xψ), je téměř stejná. Máme 3: T (ψx(v1) → ∀xψ) → (β2 → ( . . → (βn → ϕ) . .). Protože konstanta c∀xψ má maximální řád, nevyskytuje se ve formulích β2, . . , βn, a v1 se tedy nevyskytuje v β2, . . , βn (a ovšem ani ve ϕ). Jsme tedy oprávněni použít pravidlo Gen-E. Tím a užitím lemmatu 3.2.1 dostaneme 4: T ∃v1(ψx(v1) → ∀xψ) → (β2 → ( . . → (βn → ϕ) . .) 5: T (β2 → ( . . → (βn → ϕ) . .). Tím jsme se zbavili formule β1. Užijeme-li pravidlo Gen-E a lemma 3.2.1 ještě (n − 1)-krát, zbavíme se i formulí β2 až βn, a dostaneme T ϕ. QED 166 3 Predikátová logika Věta o úplnosti je tedy dokázána, ale zatím pouze pro predikátovou logiku bez rovnosti. Do kalkulu jsme dosud nepřijali žádné axiomy nebo pravidla o rovnítku. To neznamená, že rovnítko nesmíme užívat. Nejsme ale schopni o něm dokázat nic specifického. V predikátové logice bez rovnosti není předepsáno, že realizace symbolu „= je vždy rovnost. Může to být libovolná binární relace. Příklad 3.2.10 Formule ∃x∀y(x = y) → ∀y∃x(x = y) platí v každé struktuře bez ohledu na realizaci rovnítka, a podle věty o úplnosti je tedy dokazatelná v HK. Je-li ale povoleno realizovat rovnítko libovolnou binární relací, snadno lze nalézt strukturu, ve které neplatí formule ∀x∀y(x = y → y = x). Ta tedy v dosud uvažovaném kalkulu není dokazatelná. Naším cílem je nyní stanovit modifikaci HKe kalkulu HK tak, aby byla adekvátní pro predikátovou logiku s rovností. Chceme tedy, aby věta 3.2.8 zůstala v platnosti i v případě, kdy dokazatelností se myslí dokazatelnost v kalkulu HKe a strukturou se myslí struktura, ve které je rovnítko povinně realizováno rovností. Uvidíme, že v důkazu věty o úplnosti pro predikátovou logiku s rovností půjde vlastně pouze o to, jak z modelu, ve kterém je rovnítko realizováno nějak, sestrojit model, v němž je realizováno rovností. Použijeme konstrukci, které se v algebře říká faktorizace. Nechť A a B jsou struktury pro jazyk L a nechť f : A → B. Řekneme, že f zachovává (n-ární) funkční symbol F ∈ L, jestliže pro libovolnou n-tici a1, . . , an prvků z A platí rovnost f(FA (a1, . . , an)) = FB (f(a1), . . , f(an)). Řekneme, že f zachovává (n-ární) predikátový symbol P ∈ L, jestliže pro libovolnou n-tici a1, . . , an prvků z A platí ekvivalence [a1, . . , an] ∈ PA ⇔ [f(a1), . . , f(an)] ∈ PB . Řekneme, že f je homomorfismus struktur A a B, jestliže f zachovává všechny (funkční i predikátové) symboly jazyka L. Lemma 3.2.11 (a) Homomorfismus f : A → B struktur A a B pro jazyk L zachovává všechny otevřené formule. To znamená, že pro libovolnou otevřenou formuli ϕ(x1, . . , xn) a libovolnou n-tici a1, . . , an prvků z množiny A platí ekvivalence A |= ϕ[a1, . . , an] ⇔ B |= ϕ[f(a1), . . , f(an)]. (b) Pokud navíc f zobrazuje A na B, pak f zachovává všechny formule jazyka L, tj. ekvivalence z tvrzení (a) platí pro libovolnou formuli ϕ jazyka L. Důkaz Je-li t(x1, . . , xn) libovolný term jazyka L a jsou-li a1, . . , an prvky struktury A, pak f(tA [a1, . . , an]) = tB [f(a1), . . , f(an)]. Jinými slovy, homomorfismus zachovává všechny termy. To se dokáže indukcí podle složitosti termu t a využitím podmínek T1 a T2 a předpokladu, že f zachovává všechny funkční symboly. Nechť 3.2 Hilbertovský predikátový kalkulus 167 dále P ∈ L je m-ární predikátový symbol, t1(x1, . . , xn) až tm(x1, . . , xn) jsou termy jazyka L a a1, . . , an jsou prvky struktury A. Pak A |= P(t1, . . , tm)[a1, . . , an] ⇔ [t1[a], . . , tm[a]] ∈ PA ⇔ [f(tA 1 [a]), . . , f(tA m[a])] ∈ PB ⇔ [tB 1 [f(a1), . . , f(an)], . . , tB m[f(a1), . . , f(an)]] ∈ PB ⇔ B |= P(t1, . . , tm)[f(a1), . . , f(an)], kde první a poslední ekvivalence je podmínka T3, druhá plyne z toho, že f zachovává symbol P, a třetí je fakt, že f zachovává termy. Tím je ověřeno, že f zachovává atomické formule. Zbytek je indukce podle souhrnného počtu logických spojek (v (b) podle souhrnného počtu logických spojek a kvantifikátorů) ve formuli ϕ. Nechť například ϕ(x1, . . , xn) je tvaru ∃vψ(v, x1, . . , xn) a pro ψ již tvrzení platí. Když B |= ϕ[f(a1), . . , f(an)], tj. B |= (∃vψ(v, x))[f(a1), . . , f(an)], pak (dle podmínky T8) existuje b ∈ B takové, že B |= ψ[b, f(a1), . . , f(an)]. Protože f zobrazuje A na B, existuje a ∈ A takové, že b = f(a). Tedy B |= ψ[f(a), f(a1), . . , f(an)], indukční předpoklad dává A |= ψ[a, a1, . . , an] a dále A |= (∃vψ)[a1, . . , an]. Tím jsme na ukázku provedli ten z kroků důkazu tvrzení (b), ve kterém se uplatní podmínka, že Rng(f) = B. QED Kalkulus HKe pro predikátovou logiku s rovností definujme jako rozšíření kalkulu HK o následující axiomy: E1: ∀x(x = x), E2: ∀x∀y(x = y → y = x), E3: ∀x∀y∀z(x = y & y = z → x = z), E4: ∀x∀y(x1 = y1 & . . & xn = yn → F(x1, . . , xn) = F(y1, . . , yn)), E5: ∀x∀y(x1 = y1 & . . & xn = yn → (P(x1, . . , xn) ≡ P(y1, . . , yn))), kde F je libovolný funkční a P libovolný predikátový symbol. Axiomům E1–E5 říkáme axiomy rovnosti. E1–E3 jsou jednotlivé axiomy, E4 a E5 jsou schémata. Každý funkční a predikátový symbol (zvoleného jazyka) má jeden axiom tvaru E4 resp. E5. Kalkulus HKe má tedy odvozovací pravidla MP, Gen-A a Gen-E a logické axiomy trojího druhu: výrokové axiomy tvaru A1–A7, axiomy o kvantifikátorech B1 a B2 a axiomy rovnosti E1–E5. Jednoduchý (ne zcela kompletní) důkaz v kalkulu HKe může vypadat například takto: 1: ∀x∀y(x = y → y = x) → ∀y(x = y → y = x) ; B1 2: ∀y(x = y → y = x) → (x = x + y → x + y = x) ; B1 3: x = x + y → x + y = x ; 1, 2, E2 4: y = x + y & x + y = x → y = x ; B1, E3 168 3 Predikátová logika 5: y = x + y & x = x + y → y = x ; 3, 4 6: ∀v(v = x + v) → y = x + y ; B1 7: ∀v(v = v + y) → x = x + y ; B1 8: ∀v(v = x + v) & ∀v(v = v + y) → y = x ; 5, 6, 7. Důkaz jsme opět zkrátili vynecháním výrokových kroků: formule (5) je tautologickým důsledkem formulí (3) a (4) a formule (8) je tautologickým důsledkem formulí (5)–(7). Formule (4) je z axiomu E3 odvozena trojnásobným užitím axiomu B1 podobně, jako byla formule (3) odvozena z (E2) (viz cvičení 10). Uvedený důkaz je formálním důkazem tvrzení pokud x je levý a y pravý neutrální prvek operace +, pak x a y se sobě rovnají. Další příklady důkazů v kalkulu HKe budou uvedeny za důkazem věty 3.2.13 spolu s příklady axiomatických teorií. V následující větě 3.2.12 dokážeme, že kalkulus HKe je silně korektní i silně úplný vůči sémantice predikátové logiky s rovností. Znění věty 3.2.12, věty o silné úplnosti kalkulu HKe, je do písmene stejné jako znění věty 3.2.8. Dokonce i definice relace |= je stejná: T |= ϕ, jestliže ϕ platí ve všech modelech teorie T. Rozdíl je v tom, že modelem teorie T se nyní myslí struktura pro predikátovou logiku s rovností (v níž platí všechny axiomy teorie T) a dokazatelnost a bezespornost se nyní vztahují ke kalkulu HKe. Věta 3.2.12 (o silné úplnosti kalkulu HKe) (a) Je-li T libovolná teorie, pak T má model, právě když T je bezesporná. (b) Je-li T teorie a ϕ formule, pak T ϕ, právě když T |= ϕ. Důkaz Obě implikace ⇒ vyjadřují silnou korektnost kalkulu HKe a jejich platnost plyne ze silné korektnosti kalkulu HK a z faktu, že axiomy E1–E5 evidentně platí v každé struktuře, ve které je rovnítko realizováno rovností. Implikace ⇐ v (a) plyne z implikace ⇐ v (b) stejně jako v důkazu věty 3.2.8. Zbývá tedy dokázat implikaci ⇐ v (b). Nechť tedy T je teorie v jazyce L a ϕ je formule, kterou nelze (pomocí pravidel a axiomů kalkulu HKe) dokázat z předpokladů T. Chceme sestrojit model K teorie T, který je strukturou pro predikátovou logiku s rovností a pro který platí K /|= ϕ. Označme E množinu všech axiomů rovnosti pro jazyk L. Nedokazatelnost formule ϕ v kalkulu HKe z množiny předpokladů T znamená, že ϕ není v kalkulu HK dokazatelná z množiny předpokladů T ∪ E. Podle věty o úplnosti 3.2.8 existuje struktura M taková, že M |= T, M |= E a M /|= ϕ. Definujme na nosné množině M struktury M relaci ≈ předpisem a1 ≈ a2 ⇔ M |= (x = y)[a1, a2]. Protože v M platí axiomy E1–E3, relace ≈ je ekvivalence. Pro každé a ∈ M označme [a] třídu ekvivalence ≈, která obsahuje a. Tedy [a] = { a ∈ M ; a ≈ a }. Označme K množinu M/≈, tj. množinu { [a] ; a ∈ M }, a označme f funkci a → [a]. Funkce f zobrazuje M na K. Je-li F ∈ L n-ární funkční symbol, definujme jeho realizaci FK : Kn → K předpisem FK ([a1], . . , [an]) = [FM (a1, . . , an)]. (∗) 3.2 Hilbertovský predikátový kalkulus 169 Jsou-li tedy b1, . . , bn libovolné prvky struktury K, funkce FK určí jejich obraz tak, že zvolí „reprezentanty a1, . . , an tříd b1, . . , bn, tj. prvky a1, . . , an množiny M takové, že a1 ∈ b1 až an ∈ bn, a za obraz n-tice [b1, . . , bn] prohlásí onu třídu ekvivalence ≈, která obsahuje prvek FM (a1, . . , an). Protože v M platí axiom E4 pro symbol F, na volbě reprezentantů nezáleží, definice operace FK je korektní. Analogicky, je-li P libovolný n-ární predikátový symbol jazyka L, z platnosti jemu příslušného axiomu E5 v M plyne, že předpis [[a1], . . , [an]] ∈ PK ⇔ [a1, . . , an] ∈ PM (∗∗) korektně definuje n-ární relaci PK na struktuře K. Podmínky (∗) a (∗∗) navíc znamenají, že funkce f zachovává všechny funkční i predikátové symboly jazyka L. Máme tedy strukturu K pro jazyk L a funkci f z M na K, která je homomorfismem struktur M a K. Podle lemmatu 3.2.11(b) v M a v K platí tytéž sentence. Tedy K |= T a K /|= ϕ. Když třídy [a1] a [a2] ekvivalence ≈ splňují v K formuli x = y, pak, protože f zachovává i symbol =, prvky a1 a a2 ve struktuře M také splňují formuli x = y. Podle definice relace ≈ tedy platí a1 ≈ a2 a [a1] = [a2]. Tím jsme ověřili, že rovnítko je v K realizováno rovností. Získali jsme model K teorie T, který je strukturou pro predikátovou logiku s rovností a ve kterém neplatí formule ϕ. Tím jsme dokázali, že ϕ v predikátové logice s rovností nevyplývá z T. QED Následující věta, slabá verze Löwenheimovy-Skolemovy věty, je důsledkem důkazů vět 3.2.8 a 3.2.12. K jejímu znění poznamenejme, že mohutnost libovolné množiny X značíme |X|. Jsou-li κ a λ kardinální čísla a alespoň jedno z nich je nekonečné, pak κ+λ = max{κ, λ}. Jsou-li navíc obě nenulová, platí i κ·λ = max{κ, λ}. Součet ℵ0 + |L| ve znění věty 3.2.13 je tedy roven |L| v případě, kdy jazyk L je nekonečný, a je roven ℵ0 v případě, kdy je konečný. Věta 3.2.13 tedy pro žádnou teorii nezaručuje existenci konečného modelu (a z příkladu 3.1.19(f) víme, že některé bezesporné teorie s konečným jazykem a konečně mnoha axiomy žádný konečný model nemají). Nicméně bezprostředním důsledkem věty 3.2.13 je tvrzení, že každá bezesporná teorie s jazykem, který je konečný nebo spočetný (říká se nejvýše spočetný), má model, který je také nejvýše spočetný. Mohutnost modelu definujeme jako mohutnost jeho nosné množiny. V kontextu věty 3.2.13 by ale nevadilo, kdybychom uvažovali i mohutnost realizací symbolů jazyka L. Věta 3.2.13 Nechť T je bezesporná teorie s jazykem L. Pak T má model, jehož mohutnost je nejvýše ℵ0 + |L|. Důkaz Označme κ = ℵ0 + |L| a vraťme se k důkazu lemmatu 3.2.9. Každá henkinovská konstanta c∃xψ a c∀xψ řádu 0 jednoznačně určuje sentenci ∃xψ resp. ∀xψ. Počet sentencí jazyka L je omezen počtem všech konečných posloupností prvků množiny, jejíž mohutnost je nejvýše κ, tedy opět kardinálním číslem κ. Henkinovských konstant řádu 0 je tedy nejvýše κ. Indukce dle m dává, že také henkinovských 170 3 Predikátová logika konstant řádu m je nejvýše κ, a všech henkinovských konstant (všech řádů dohromady) je tak ℵ0 · κ = κ. Jazyk L+ vznikl přidáním henkinovských konstant k L a jeho mohutnost je rovněž omezena číslem κ. Také všech uzavřených termů jazyka L+ je nejvýše κ. Tedy pro nosnou množinu D struktury D sestrojené v důkazu lemmatu 3.2.9 platí |D| ≤ κ. V důkazu věty 3.2.12 můžeme tedy předpokládat, že |M| ≤ κ. Protože f zobrazuje M na K, platí také |K| ≤ κ. QED 3.2.2 Příklady důkazů a teorií Ve zbytku tohoto oddílu uveďme několik axiomatických teorií, které pokládáme za důležité nebo za užitečné pro další výklad. Ukážeme si také další příklady formálních důkazů. Uvažujme nejprve strukturu N, 0, s přirozených čísel s nulou a s následnickou funkcí, tj. s funkcí x → x + 1. Tato struktura je strukturou pro jazyk {0, S} s konstantou a s unárním funkčním symbolem. Snadno lze ověřit, že ve struktuře N, 0, s platí následující sentence: Q1: ∀x∀y(S(x) = S(y) → x = y), Q2: ∀x(S(x) = 0), Q3: ∀x(x = 0 → ∃y(x = S(y))), Lm: ∀x(S(m) (x) = x), m ≥ 1. Zápis S(m) (x) ve čtvrtém řádku označuje term S(S(. . (x) . .) s m výskyty symbolu S. Například sentence L3 tvrdí, že třemi skoky následnické funkce se z žádného objektu x nelze dostat zpět do x. Označme SUCC teorii s axiomy Q1–Q3 a Lm, kde m ≥ 1. Teorie SUCC má tedy nekonečně mnoho axiomů: tři jednotlivé axiomy a dále schéma, jehož instance zakazují „konečné cykly . Teorii SUCC říkejme teorie následnické funkce nebo krátce teorie následníka. Každá struktura D, e, f taková, že e ∈ D je vytčený prvek a f : D → D je prostá funkce, pro kterou platí Rng(f) = D − {e} a která neporušuje žádný z axiomů Lm, je modelem teorie SUCC. A naopak, každý model teorie SUCC vypadá takto. Jak už bylo řečeno, jedním z modelů teorie SUCC je struktura N, 0, s . V oddílu 3.4 se dozvíme více o modelech teorie SUCC. Budeme se tam věnovat otázkám, zda teorie SUCC má i jiné modely, než je „preferovaný model N, 0, s (na tuto otázku dovede čtenář pravděpodobně odpovědět již nyní), jak takové modely vypadají a zda je lze vyloučit (zakázat) přidáním dalších axiomů k teorii SUCC. Připomeňme si, viz str. 144, že term tvaru S(S(. . (0) . .) s m výskyty symbolu S nazýváme numerál a značíme jej m. Položme si otázku, zda v teorii SUCC lze dokázat sentenci 2 = 1 nebo sentenci ∀x∃y(S(y) = x). Jako obvykle, chceme-li zdůvodnit dokazatelnost nějaké formule z nějaké množiny předpokladů, může být užitečné utvořit nejprve neformální důkaz. Neformální důkaz sentence 2 = 1 může vypadat například takto: Nechť S(S(0)) = S(0). Axiom Q1 a volba x := S(0) a y := 0 dávají S(0) = 0. To je spor s Q2. 3.2 Hilbertovský predikátový kalkulus 171 Sentenci ∀x∃y(S(y) = x) lze neformálně dokázat takto: Nechť x je dáno. Platí x = S(0) nebo x = S(0). Když x = S(0), lze zvolit y := S(0), neboť z předchozí úvahy víme, že S(S(0)) = S(0). Když x = S(0), lze zvolit y := 0. Neformální důkaz zpravidla umožňuje odhadnout, jaké instance logických axiomů máme použít, chceme-li sestrojit formální důkaz, tj. důkaz vyhovující definici důkazu v kalkulu HKe: 1: ∀x(S(x) = 0) → S(0) = 0 ; B1 2: S(0) = 0 ; 1, Q2 3: S(S(0)) = S(0) → S(0) = 0 ; Podobně z B1 a Q1 4: S(S(0)) = S(0) ; 2, 3 5: S(S(0)) = S(0) → ∃y(S(y) = S(0)) ; B2 6: ∃y(S(y) = S(0)) ; 4, 5 7: S(y) = x & x = S(0) → S(y) = S(0) ; E3, B1 8: S(y) = x → ∃y(S(y) = x) ; B2 9: S(y) = S(0) → (x = S(0) → ∃y(S(y) = x)) ; 7, 8 10: ∃y(S(y) = S(0)) → (x = S(0) → ∃y(S(y) = x)) ; Gen-E 11: x = S(0) → ∃y(S(y) = x) ; 10, 6 12: S(0) = x → x = S(0) ; E2, B1 13: S(0) = x → ∃y(S(y) = x) ; B2 14: ∃y(S(y) = x) ; 11, 12, 13 15: S(0) = 0 → ∃y(S(y) = x) ; 14 16: S(0) = 0 → ∀x∃y(S(y) = x) ; Gen-A, 15 17: ∀x∃y(S(y) = x) ; 16, 2. Při odvození formulí (6), (9), (11) a (14) jsme opět použili úmluvu o vynechání výrokových kroků. Odvození formulí (3), (7) a (12) jsme zkrátili v duchu cvičení 10. Ve cvičení 5 se pracuje s pravidlem Gen tvaru ϕ / ∀xϕ. Při odvození formule (17) jsme ukázali, jak lze pravidlo Gen simulovat pomocí pravidla Gen-A a libovolné dokazatelné sentence, tj. naznačili jsme část řešení cvičení 5. Protože tvrdíme, že je pouze věcí zkušenosti, jak správný a dostatečně podrobný neformální důkaz přepsat (přeložit) na důkaz v kterémkoliv (korektním a úplném) 172 3 Predikátová logika kalkulu, a protože jistou zkušenost s formálními důkazy již máme, v dalším textu budeme neformální důkazy užívat velmi často. K jejich odlišení od ostatního textu užíváme bezpatkové písmo. Bezpatkovým písmem je tedy zapsána úvaha, kterou lze formalizovat, tj. zapsat pomocí formulí daného jazyka tak, aby se vyhovělo definici důkazu v daném kalkulu. Někdy bezpatkovým písmem vyznačujeme také podmínky vyjadřující vlastnosti formálních objektů nebo tvrzení o formálních objektech. I v těchto případech platí, že čtenář si za nimi má představit formule příslušného jazyka. V některých případech (zejména v kapitole 2) užíváme bezpatkové písmo také k zápisu algoritmů. I tam označuje něco, co může být (má být) formalizováno. Lze také argumentovat, že neformální důkaz je vlastně ověření faktu, že daná formule je v každé struktuře splněna všemi ohodnoceními, která splňují všechny předpoklady, a že tedy existenci formálního důkazu, který je překladem našeho neformálního, zaručuje věta o úplnosti 3.2.12. V některých případech lze dokazatelnost nějaké formule ϕ z množiny předpokladů ∆ rychle zdůvodnit přímým užitím věty o úplnosti, tj. úvahou o strukturách, o které netvrdíme, že je neformálním důkazem. Pěkný a v dalším textu užitečný příklad je tento: každá sentence tvaru ∀x1 . . ∀xk∃y(S(m) (y) = x1 & . . & S(m) (y) = xk) (∗) vyplývá z axiomů Q1 a Q2 teorie SUCC, a je tedy v teorii SUCC dokazatelná. Všimněme si, že sentence ∀x∃y(S(y) = x), kterou jsme dokázali, je speciálním případem schématu (∗). Vyplývání každé sentence tvaru (∗) se zdůvodní následovně. Nechť D je libovolná struktura pro jazyk {0, S}, ve které platí sentence Q1 a Q2, a nechť a1, . . , ak je ohodnocení proměnných x1, . . , xk ve struktuře D. V množině D existuje nejvýše jedno ohodnocení b proměnné y takové, že ohodnocení a1, . . , ak, b splňuje formuli S(m) (y) = xi, a tedy v D existuje nejvýše k prvků b takových, že ohodnocení a1, . . , ak, b splňuje disjunkci S(m) (y) = x1 ∨ . . ∨ S(m) (y) = xk. Nekonečně mnoho prvků d ∈ D tedy splňuje její negaci S(m) (y) = x1 & . . & S(m) (y) = xk, neboť struktura D musí být nekonečná (viz 3.1.19(f)). Tím je ověřeno, že ke každému ohodnocení proměnných x1, . . , xk lze zvolit ohodnocení proměnné y tak, aby výsledné ohodnocení splňovalo v D formuli S(m) (y) = x1 & . . & S(m) (y) = xk. Teorie ostrého lineárního uspořádání má jazyk {<} s jediným binárním predikátem a axiomy LO1: ∀x∀y∀z(x < y & y < z → x < z), LO2: ∀x∀y(x < y → ¬(y < x)), LO3: ∀x∀y(x < y ∨ x = y ∨ y < x), které vyjadřují, že relace < je tranzitivní, antisymetrická a lineární. Teorii s axiomy LO1–LO3 značíme LO. Teorie LO vznikla přidáním axiomu LO3 k teorii ostrého uspořádání z příkladu 3.2.5. Modely teorie ostrého uspořádání jsou všechny (ostře) uspořádané množiny, a nic jiného. Modely teorie LO jsou všechny lineárně ostře uspořádané množiny (tj. takové, které jsou uspořádané a ve kterých každé dva prvky 3.2 Hilbertovský predikátový kalkulus 173 jsou srovnatelné), a nic jiného. Důležité příklady modelů teorie LO jsou struktury N, < , Q, < nebo R, < přirozených (racionálních, reálných) čísel s (obvyklým) uspořádáním. Teorie DNO, teorie hustého lineárního uspořádání bez minima a maxima, má jazyk {<}, axiomy LO1–LO3 teorie LO a dále axiomy Dn1: ∀x∀y(x < y → ∃z(x < z & z < y)), Dn2: ∀x∃y1∃y2(y1 < x & x < y2). Je zřejmé, že struktury Q, < a R, < nebo třeba reálný interval (0, 1) s obvyklým uspořádáním jsou modely teorie DNO. Na druhé straně struktury Z, < a N, < jsou příklady struktur, které nejsou modely teorie DNO. Teorie neostrého lineárního uspořádání má rovněž jazyk s jediným binárním predikátem, který se v tomto případě píše ≤, a axiomy ∀x∀y∀z(x ≤ y & y ≤ z → x ≤ z), ∀x(x ≤ x), ∀x∀y(x ≤ y & y ≤ x → x = y), ∀x∀y(x ≤ y ∨ y ≤ x), které postulují, že relace ≤ je tranzitivní, reflexivní, slabě antisymetrická a lineární. Snadno lze ověřit (cvičení), že pokládáme-li formuli x ≤ y za zkratku pro formuli x < y ∨ x = y, všechny axiomy teorie neostrého lineárního uspořádání lze dokázat v teorii LO. Teorii neostrého lineárního uspořádání lze tedy pokládat za obsaženou v teorii LO v tom smyslu, že každá její formule je vlastně současně formulí teorie LO a každý důkaz v ní je vlastně současně důkazem v teorii LO. V teorii neostrého lineárního uspořádání označme Dn(x1, . . , xn, y) formuli x1 ≤ y & . . & xn ≤ y & (x1 = y ∨ . . ∨ xn = y), kde n ≥ 1. Formuli Dn(x1, . . , xn, y) lze číst objekt y je maximální mezi x1, . . , xn. Sentence ∀x1 . . ∀xn∃yDn(x1, . . , xn, y) tedy tvrdí, že mezi každými n objekty (ne nutně různými) existuje maximální objekt. Je jasné, že tato sentence platí v každé neostře lineárně uspořádané množině. Dle věty 3.2.12 je tedy dokazatelná v teorii neostrého lineárního uspořádání a ve smyslu předchozího odstavce je dokazatelná také v teorii LO. Abychom ještě jednou ukázali, jak fungují pravidla a axiomy kalkulu HKe, dokážeme existenci důkazu sentence ∀x1 . . ∀xn∃yDn(x1, . . , xn, y) přímo, indukcí podle n. Přesněji řečeno, předvedeme pouze indukční krok. Sestrojíme tedy (víceméně kompletní) důkaz sentence ∀x1 . . ∀xn+1∃yDn+1(x1, . . , xn+1, y) z axiomů teorie neostrého uspořádání za podmínky, že je již sestrojen důkaz sentence ∀x1 . . ∀xn∃yDn(x1, . . , xn, y). Pišme x místo x1, . . , xn. 1: ∀x1 . . ∀xn∃yDn(x, y) ; Již dokázáno 174 3 Predikátová logika 2: ∀x(x ≤ x) → xn+1 ≤ xn+1 ; B1 3: ∀x(x = x) → xn+1 = xn+1 ; B1 4: xn+1 ≤ xn+1 ; 2, axiom 5: xn+1 = xn+1 ; 3, E1 6: x1 ≤ y & y ≤ xn+1 → x1 ≤ xn+1 ; B1, axiom ... ... n + 5: xn ≤ y & y ≤ xn+1 → xn ≤ xn+1 ; ... n + 6: y ≤ xn+1 & Dn(x, y) → Dn+1(x, xn+1, xn+1) ; 6 až n + 5, 4 a 5 n + 7: y ≤ xn+1 & Dn(x, y) → ∃yDn+1(x, xn+1, y) ; n + 6, B2 n + 8: xn+1 ≤ y & Dn(x, y) → Dn+1(x, xn+1, y) ; Tautologie n + 9: xn+1 ≤ y & Dn(x, y) → ∃yDn+1(x, xn+1, y) ; n + 8, B2 n + 10: ∀x∀y(x ≤ y ∨ y ≤ x) → xn+1 ≤ y ∨ y ≤ xn+1 ; B1 n + 11: xn+1 ≤ y ∨ y ≤ xn+1 ; n + 10, axiom n + 12: Dn(x, y) → ∃yDn+1(x, xn+1, y) ; n + 11, n + 9, n + 7 n + 13: ∃yDn(x, y) → ∃yDn+1(x, xn+1, y) ; Gen-E n + 14: ∀x∃yDn(x, y) → ∃yDn(x, y) ; B1 n + 15: ∀x∃yDn(x, y) → ∃yDn+1(x, xn+1, y) ; n + 14, n + 13 n + 16: ∀x∃yDn(x, y) → ∀x∀xn+1∃yDn+1(x, xn+1, y) ; n + 15, Gen-A n + 17: ∀x1 . . ∀xn+1∃yDn+1(x, xn+1, y) ; n + 16, 1. Je samozřejmé, že při odvození formule n + 14 a při odvození formule n + 16 z formule n + 15 je třeba axiom B1 resp. pravidlo Gen-A užít n-násobně. Je-li D libovolná struktura pro nějaký jazyk L, definujme množinu Th(D) jako množinu všech sentencí platných v D. Množině Th(D) říkáme teorie struktury D. Naše ostatní příklady axiomatických teorií uvedené v tomto oddílu mají vždy množinu axiomů tvaru konečně mnoho sentencí plus případně konečně mnoho schémat. Teorie Th(D) nějaké struktury D se od těchto příkladů liší tím, že množina všech sentencí ϕ, které jsou jejími axiomy, netvoří „úhledný seznam , nýbrž je určena podmínkou, totiž podmínkou D |= ϕ. To však definice axiomatické teorie připouští. Pro libovolnou strukturu D platí Thm(Th(D)) = Th(D), každá sentence dokazatelná v teorii Th(D) je současně jejím axiomem. 3.2 Hilbertovský predikátový kalkulus 175 Zermelova-Fraenkelova teorie množin ZF má jazyk {∈} sestávající z jediného binárního predikátového symbolu. Objektům teorie ZF se říká množiny. Teorie ZF má (tj. obvykle se formuluje tak, že má) šest jednotlivých axiomů (axiom existence, extenzionality, dvojice, sumy, potence a nekonečna) a dvě axiomatická schémata (schéma vydělení a schéma nahrazení). Na ukázku uveďme axiom dvojice: ∀x∀y∃z∀v(v ∈ z ≡ v = x ∨ v = y), který postuluje, že k libovolným dvěma množinám x a y existuje množina z, jejímiž prvky jsou x a y, a nic jiného. Ostatní axiomy neuvádíme, lze je nalézt v libovolné učebnici věnované teorii množin (doporučujeme například [2]). Kromě vyjmenovaných axiomů a schémat se k teorii ZF obvykle přidávají další více nebo méně „volitelné axiomy, jako je axiom regularity nebo axiom výběru AC. Vedle Zermelovy-Fraenkelovy teorie množin se často lze setkat také s Gödelovou-Bernaysovou teorií množin GB. Objektům teorie GB se říká třídy, množina je v GB definována jako třída, která je prvkem nějaké (jiné nebo stejné) třídy. Třídám, které nejsou množiny, se říká vlastní třídy. V GB lze dokázat existenci vlastních tříd. Teorie ZF a GB spolu úzce souvisejí, neboť se shodují v tom, jaká tvrzení o množinách v nich lze dokázat. Důležitým metamatematickým rozdílem mezi teoriemi ZF a GB je to, že při formulaci axiomů teorie GB se lze obejít bez axiomatických schémat. Gödelova-Bernaysova teorie množin je konečně axiomatizovatelná. Význam různých variant teorie množin (ZF, GB nebo ještě dalších) je v tom, že všechny matematické pojmy (čísla, funkce, prostory, struktury, . . . ) lze redukovat na pojem množiny a v důkazech tvrzení o těchto pojmech lze vystačit s axiomy teorie množin. To znamená, že teorie množin je světem matematiky1 v tom smyslu, že o veškeré matematice si můžeme myslet, že se děje uvnitř teorie množin. Říká se také, že matematika je nebo může být formalizována v teorii množin. Zajímavá otázka z hlediska logického i filozofického zní, zda roli metamatematiky, tj. roli teorie, která je světem matematiky, by nemohla nebo dokonce neměla hrát jiná teorie než ZF nebo GB, které jsou pro tento účel nejčastěji přijímány. V knihách jako je tato, věnovaných logice, tedy teorie množin hraje dvojakou úlohu. Jako v každé jiné matematice je arbitrem, který určuje, co platí o zkoumaných objektech (což v případě logiky jsou struktury, axiomatické teorie, algoritmy, . . . ), a zároveň je jako jedna z řady axiomatických teorií předmětem zkoumání. Rozmysleme si podrobně, že teorie ZF nemá žádné konečné modely. Nejprve si uvědomme, že struktura pro jazyk s jedním binárním predikátem je přesně to, čemu jsme v dřívějších kapitolách říkali orientovaný graf. Modely teorie ZF tvoří tedy podtřídu třídy všech orientovaných grafů. Dále si připomeňme, že acyklický graf je definován jako orientovaný graf neobsahující cykly a že je to takový graf, v němž z žádného vrcholu c nevede sled nenulové délky zpět do c. Postupujme sporem, předpokládejme, že G = G, R je konečný model teorie ZF. Definujme dočasně, že vrchol d grafu G je fundovaný, jestliže d není v G dosažitelný z žádného vrcholu c 1Tento obrat známe od P. Vopěnky. 176 3 Predikátová logika takového, že z c do c vede sled nenulové délky. Například v grafu B na str. 141 jsou vrcholy a a b fundované, zbývající vrcholy shodou okolností pojmenované c a d fundované nejsou. Protože v ZF lze dokázat sentenci existuje množina, která nemá žádné prvky, v našem grafu G existuje (alespoň jeden) vrchol, do kterého nevedou žádné hrany. Je zřejmé, že každý vrchol, do kterého nevedou hrany, je fundovaný, a dále je zřejmé, že existuje-li sled nenulové délky z c do c, pak c není fundovaný. Označme G0 množinu všech fundovaných vrcholů grafu G a označme R0 restrikci relace R na množinu G0. Graf G0, R0 je (neprázdný) acyklický podgraf grafu G. Lze dokázat (cvičení), že každý konečný acyklický graf má maximální vrchol, tj. vrchol, ze kterého nevedou žádné hrany. Označme c0 (některý) maximální vrchol grafu G0, R0 . V grafu G0, R0 z vrcholu c0 nevedou hrany, v G mohou vést, ale jen do vrcholů, které nejsou fundované. Aplikujme axiom dvojice na x := c0 a y := c0. V grafu G k vrcholu c0 existuje vrchol d, který v G splňuje formuli množina c0 je jediným prvkem množiny d. Vrchol d je fundovaný, neboť kdyby existoval vrchol c, sled nenulové délky z c do c a sled z c do d, pak tento sled z c do d by nemohl minout vrchol c0, a c0 by nebyl fundovaný. Současně ale d není fundovaný, neboť z c0 nevedou hrany do fundovaných vrcholů. Tím jsme dospěli ke sporu. Na našem zdůvodnění, že teorie ZF nemá žádné konečné modely, je snad zajímavé také to, že jsme se v něm obešli bez většiny axiomů teorie ZF včetně axiomu extenzionality. Čtenář by mohl namítnout, že existuje jednodušší postup, jak dokázat neexistenci konečných modelů teorie ZF: v ZF lze dokázat, že existují nekonečné množiny, musí to tedy platit v každém modelu; do prvku modelu, o kterém v takovém modelu platí, že je nekonečnou množinou, musí vést nekonečně mnoho hran, tj. musí do něj vést hrany z nekonečně mnoha různých vrcholů. Pokud by ale takovýto argument měl být bez dalšího přijat jako správný, proč nepřijmout i tento argument: v ZF lze dokázat i existenci nespočetných množin, a do vrcholu, o kterém v grafu G, R platí, že je nespočetnou množinou, musí vést nespočetně mnoho různých hran. Tento druhý argument ale rozhodně správný není, neboť má-li ZF jakékoliv modely, pak podle Löwenheimovy-Skolemovy věty má i spočetné modely. Modelem teorie ZF je každý orientovaný graf, ve kterém platí všechny axiomy ZF, a takové modely existují, je-li ZF bezesporná teorie. V tom případě existují i spočetné (nutně nekonečné) modely ZF. Žádná přímá konstrukce modelu ZF není známa. K tomuto faktu se ještě vrátíme v souvislosti s Druhou Gödelovou větou o neúplnosti v kapitole 4. Tvrzení, že ZF má spočetné modely, je známo jako Skolemův paradox. Nic paradoxního na něm ale není. Je-li a ∈ G a G, R |= ZF, může se stát, že množina všech vrcholů, ze kterých vede hrana do a, je spočetná, a přitom žádný prvek f ∈ G nesplňuje v G, R formuli množina f je funkce, která prostě zobrazuje množinu a do množiny všech přirozených čísel. V tom případě vrchol a v grafu G, R splňuje formuli množina a je nespočetná. Teorie komutativních těles má jazyk {+, ·, 0, 1} se dvěma binárními funkčními symboly a se dvěma konstantami 0 a 1, a axiomy R1: ∀x∀y∀z(x + (y + z) = (x + y) + z), 3.2 Hilbertovský predikátový kalkulus 177 R2: ∀x∀y(x + y = y + x), R3: ∀x(x + 0 = x), R4: ∀x∃y(x + y = 0), R5: ∀x∀y∀z(x · (y · z) = (x · y) · z), R6: ∀x∀y(x · y = y · x), R7: ∀x(x · 1 = x), R8: ∀x(x = 0 → ∃y(x · y = 1)), R9: ∀x∀y∀z(x · (y + z) = x · y + x · z), R10: 0 = 1. Objektům teorie komutativních těles říkejme čísla. Číslo y takové, že x + y = 0, nazýváme číslem opačným k x a číslo y takové, že x · y = 1, nazýváme číslem inverzním k x. V teorii komutativních těles lze snadno dokázat, že číslo 0 je jediné číslo neutrální vůči sčítání a že číslo 1 je jediné číslo neutrální vůči násobení. To vyjadřují sentence (e) a (f) v následujícím lemmatu. Ze sentencí (a)–(c) snadno plyne, že ke každému x existuje jediné číslo opačné k x, ke každému nenulovému x existuje jediné číslo inverzní k x a žádné číslo není inverzní k nule. Přestože v jazyce teorie komutativních těles nemáme symbol „S pro označení následnické funkce, můžeme v něm definovat numerály 0, 1, 2, . . . , a to jako termy 0, (0 + 1), ((0 + 1) + 1) atd. Například zápis 4 tedy v teorii komutativních těles označuje term ((((0 + 1) + 1) + 1) + 1). Lemma 3.2.14 Následující sentence (a)–(f) lze dokázat v teorii komutativních těles. Sentence (g) a (h) lze v teorii komutativních těles dokázat pro každou dvojici čísel n a m. (a) ∀x∀y∀z(y + x = z + x → y = z), (e) ∀x(∀v(v + x = v) → x = 0), (b) ∀x∀y∀z(x = 0 & y · x = z · x → y = z), (f) ∀x(∀v(v · x = v) → x = 1), (c) ∀x(x · 0 = 0), (g) n + m = n + m, (d) ∀x∀y(x · y = 0 → x = 0 ∨ y = 0), (h) n · m = n · m. Důkaz Důkazy sentencí (a)–(f) jsou známé z algebry. Připomeňme z nich pouze důkazy sentencí (a), (c) a (d), ostatní přenecháváme čtenáři: Nechť čísla x, y a z jsou dána. Podle axiomu R4 existuje v takové, že x+v = 0. Nechť y + x = z + x. Užití tohoto předpokladu, dvojí užití axiomu R3 a dvojí užití axiomu R1 dává y = y + 0 = y + (x + v) = (y + x) + v = (z + x) + v = z + (x + v) = z + 0 = z. Nechť x je dáno. Platí 0 + x · 0 = x · 0 + 0 = x · 0 = x · (0 + 0) = x · 0 + x · 0. Již dokázané tvrzení (a) dává 0 = x · 0. Nechť x · y = 0. Z již dokázaného tvrzení (c) a axiomu R6 plyne x · y = 0 · y. Je-li y = 0, tvrzení (b) dává x = 0. 178 3 Predikátová logika Existence důkazů sentencí (f) a (g) se snadno dokáže indukcí podle m. Protože 0, 0 a n · 0 jsou tytéž termy a také n + 0 a n jsou tytéž termy, sentenci n+0 = n + 0 lze odvodit užitím axiomu R3 a sentenci n·0 = 0 lze odvodit z již dokázané sentence (d). Dále se snadno dokáže sentence n+m + 1 = n + m + 1, máme-li již důkaz sentence n+m = n + m a uvědomíme-li si, že m + 1 je týž term jako (m+1), a n + m + 1 je týž term jako (n + m + 1). Podobně se dokáže n · m + 1 = n · m + n užitím axiomů R9 a R7, máme-li již dokázáno n · m = n · m. Rovnost n · m + n = n · (m + 1) lze odvodit z již dokázané sentence (g). QED V souladu s předchozími komentáři k větě o úplnosti jsme se v důkazu lemmatu 3.2.14 spokojili s neformálními důkazy. Připomeňme si, že formální důkaz podobné sentence jako je 3.2.14(e), totiž sentence každý levý neutrální prvek je roven každému pravému, jsme dříve také sestrojili. Nadále budeme vypouštět nadbytečné závorky: místo (x+y)+z nebo x+(y+z) píšeme pouze x + y + z, místo (x · y) · z nebo x · (y · z) píšeme pouze x · y · z. Dále se domluvme, že tn značí term t · t · . . · t s n výskyty (téhož) termu t. A konečně, násobení má přednost před sčítáním. Zápis x2 +y·z je tedy zkratka za (x·x)+(y·z). Lemma 3.2.15 Nechť t(x, y1, . . , yr) je term v jazyce teorie komutativních těles. Pak existuje číslo n a termy s0(y), . . , sn(y) neobsahující x takové, že rovnost ∀y∀x(t(x, y) = s0(y) · xn + s1(y) · xn−1 + . . + sn(y)) je dokazatelná v teorii komutativních těles. Důkaz Indukcí podle složitosti termu t. Když t je konstanta 0 nebo 1 nebo některá z proměnných yi, lze za n zvolit nulu a za s0 zvolit t. Když t je proměnná x, zvolme n = 1, za s0 zvolme term 1 a za s1 zvolme term 0. Nechť t je tvaru t1(x, y) + t2(x, y) a nechť pro term t1 již máme číslo n1 a termy q0(y), . . , qn1 (y) a pro term t2 již máme číslo n2 a termy u0(y), . . , un2 (y). Lze předpokládat, že n1 = n2, neboť tu z posloupností q0(y), . . , qn1 (y) a u0(y), . . , un2 (y), která je kratší, můžeme doplnit nulami. K termu t volme n = n1 (čili n = n2) a pro 0 ≤ i ≤ n1 volme qi(y) + ui(y) za term si(y). Nechť t má tvar t1(x, y) · t2(x, y) a nechť pro t1 a t2 máme čísla n1 a n2 a termy q0(y), . . , qn1 (y) a u0(y), . . , un2 (y) jako výše. Opět předpokládejme n1 = n2. Volme n = 2n1, za termy s0(y), . . , sn(y) volme termy tvaru i j=0 qj(y)·ui−j(y), tj. termy q0 · u0, q0 · u1 + q1 · u0, q0 · u2 + q1 · u1 + q2 · u0, . . . Snadno lze ověřit, že rovnost t(x, y) = 2n1 i=0( i j=0 qj(y) · ui−j(y)) · xi vyplývá z předpokladu t1(x, y) = n1 i=0 qi(y) · xi a z předpokladu t2(x, y) = n2 i=0 ui(y) · xi . QED Lemma 3.2.15 tvrdí, že zvolíme-li proměnnou x, můžeme se na libovolný term v jazyce komutativních těles dívat jako na polynom v x s koeficienty neobsahujícími x. V důkazu lemmatu 3.2.15 se uplatnily známé vědomosti o tom, že součet 3.2 Hilbertovský predikátový kalkulus 179 polynomů se stupni n1 a n2 je polynom stupně max{n1, n2} a jejich součin je polynom stupně n1 + n2. Modely teorie komutativních těles jsou ovšem všechna komutativní tělesa, a nic jiného. Snadno lze nalézt dvouprvkové komutativní těleso, ve kterém platí 1+1 = 0. Sentence 2 = 0 tedy není v teorii komutativních těles dokazatelná. Dalšími příklady modelů teorie komutativních těles jsou struktury Q, +, ·, 0, 1 a R, +, ·, 0, 1 , kde Q a R jsou jako obvykle množiny všech racionálních resp. reálných čísel. V oddílu 3.5 přidáme k axiomům R1–R10 další axiomy R11–R16 týkající se uspořádání. Modelem výsledné teorie bude struktura R, +, ·, 0, 1, < , modelem ale nebude struktura Q, +, ·, 0, 1, < a nebude jím ani žádná konečná struktura. K získání dalších informací o teorii s axiomy R1–R16 se uplatní úvahy ve směru, který naznačuje lemma 3.2.15, totiž úvahy o počtu kořenů polynomu stupně n a o jejich poloze. V tomto oddílu jsme zjistili, že volba pravidel a (logických) axiomů kalkulu HKe je zdůvodněná a oprávněná: v žádné teorii T nelze z jejích (vlastních, tj. mimologických) axiomů odvodit žádný nesprávný závěr, tj. závěr, který z T nevyplývá, a naopak lze odvodit každý správný závěr, tj. závěr, který vyplývá z T. Užitečným nástrojem, chceme-li se přesvědčit, že nějaký závěr je dokazatelný z určitých předpokladů, je neformální důkaz. Skutečné, tj. formální důkazy vyhovující definici kalkulu HKe, jsou užitečné do okamžiku, než dokážeme větu o úplnosti. Sestrojení formálního důkazu je užitečné také tehdy, chceme-li o něm tvrdit něco víc, třeba odpovědět na otázky o počtu nebo složitosti formulí, které se v něm vyskytují. Například díky důkazu sentence ∀x∃yDn(x, y) v teorii neostrého lineárního uspořádání, který jsme sestrojili, můžeme tvrdit, že tato sentence má důkaz obsahující O(n2 ) formulí. Složitost formulí vyskytujících se v nějakém důkazu bude jednou z otázek, kterými se budeme zabývat v příštím oddílu při úvahách o gentzenovském kalkulu pro predikátovou logiku. Chceme-li se ale pouze přesvědčit o existenci důkazu určitého závěru z určitých předpokladů a máme-li už větu o úplnosti, je neformální důkaz stejně dobrý jako formální. V tomto oddílu jsme si dále ukázali několik příkladů axiomatických teorií. Viděli jsme, že teorie T může vzniknout například tak, že zvolíme nějakou strukturu D a za axiomy teorie T pak zvolíme některé ze sentencí platných v D. Struktura D je pak jedním z modelů teorie T. I v případě, kdy T nevznikne takto, tj. vypozorováním axiomů z nějaké předem zvolené struktury (což je případ teorie množin), nic nám nebrání uvažovat o modelech teorie T. Na začátku oddílu 3.1, když jsme poprvé mluvili o volbě jazyka, tj. o volbě mimologických symbolů, jsme řekli, že volbou jazyka je dáno, o čem se v dané teorii může mluvit. Na příkladech teorií z tohoto oddílu vidíme, že někdy lze v dané teorii mluvit opisně i o takových vlastnostech a operacích, kterým bezprostředně neodpovídají symboly zvoleného jazyka. Například v teorii LO lze mluvit o maximu objektů x a y, v teorii komutativních těles lze mluvit o kořenech polynomu s danými koeficienty. Dokonce ještě víc: pro každé n můžeme v teorii LO vyslovit (a dokázat) sentenci v každé n-tici objektů je některý z objektů maximální a v teorii komutativních těles bychom mohli vyslovit sentenci každý netriviální polynom stupně n má nejvýše n různých kořenů. To by opět byla pro každé n jiná sentence (delší pro větší n). 180 3 Predikátová logika Není ale vidět, jak bychom v teorii komutativních těles mohli mluvit najednou o všech polynomech, a není také vidět, jak v teorii LO vyjádřit jednou sentencí, že každá konečná množina má maximální prvek. V oddílu 3.4 uvidíme, že existují metody, které dovolují dokázat, že určitá vlastnost struktury není v daném jazyce vyjádřitelná. Pro některé teorie T můžeme snadno nalézt nezávislou sentenci, tj. sentenci, kterou v T nelze dokázat ani vyvrátit. Pro některé teorie, například pro teorii SUCC, nezávislou sentenci uvést nedokážeme. Také problémem, jak lze pro danou teorii T dokázat, že neexistuje sentence nezávislá na T, se v dalším výkladu, v oddílech 3.4 a 3.5, budeme zabývat. Oddíly 3.4 a 3.5 lze číst nezávisle na oddílu 3.3 a téměř nezávisle na sobě. Cvičení 1. Zdůvodněte bez užití věty o úplnosti, že všechny formule z cvičení 2 předchozího oddílu jsou v kalkulu HK dokazatelné. 2. Zdůvodněte přímo, bez užití věty o úplnosti, dokazatelnost druhé formule z lemmatu 3.2.1. 3. Je-li x libovolná proměnná a ϕ formule dokazatelná v HK z množiny předpokladů ∆, pak i ∀xϕ je dokazatelná z ∆. Dokažte. 4. Uvažujte modifikovaný kalkulus HK , který má místo pravidla Gen-E třetí axiomatické schéma B3: ∃xϕ ≡ ¬∀x¬ϕ. Dokažte, že kalkulus HK je ekvivalentní s kalkulem HK. 5. Uvažujte kalkulus HK , který má místo pravidel Gen-A a Gen-E schéma B3, a dále axiom a pravidlo: B4: ∀x(ψ → ϕ) → (ψ → ∀xϕ), pokud x není volně ve ψ, Gen: ϕ / ∀xϕ. Dokažte, že i kalkulus HK je ekvivalentní s kalkulem HK. 6. Ke každé predikátové formuli ϕ existuje důkaz v kalkulu HK, jehož délka je polynomiální ve |ϕ| a který je důkazem formule ϕ ≡ ϕ , kde ϕ je v prenexním tvaru. Dokažte. Zdůvodněte, že přitom nezáleží na tom, zda délka |ϕ| formule ϕ je definována jako souhrnný počet všech výskytů logických a predikátových symbolů ve ϕ, nebo jako počet všech symbolů ve ϕ (včetně funkčních symbolů a číslic v indexech proměnných). 7. Nalezněte příklad na to, že tvrzení 3.2.7(d) by neplatilo bez předpokladu, že ϕ je sentence. 3.2 Hilbertovský predikátový kalkulus 181 8. Zdůvodněte, že v lemmatu 3.2.9 platí i opačná implikace: je-li sentence ϕ tautologickým důsledkem množiny T ∪ H(L), pak T |= ϕ. 9. Zdůvodněte podrobně obě implikace v prvním odstavci důkazu věty 3.2.8. 10. Formulujte zobecnění definice substituovatelného termu pro simultánní substituci (tj. pro případ, kdy za n-tici proměnných se dosazuje n-tice termů). Dokažte bez užití věty o úplnosti, že jsou-li termy t1, . . , tn substituovatelné za proměnné x1, . . , xn ve formuli ϕ, pak formule ϕx1,..,xn (t1, . . , tn) je dokazatelná z předpokladu ∀x1 . . ∀xnϕ. Návod. Užijte „nové proměnné tak, jak bylo naznačeno na začátku pododdílu 3.1.3. 11. Rozmyslete si, že lemma 3.2.7 platí i pro predikátovou logiku s rovností. 12. Zdůvodněte, že každá formule tvaru ∀x∀y(x1 = y1 & . . & xn = yn → (ϕ(x1, . . , xn) ≡ ϕ(y1, . . , yn))) je dokazatelná v kalkulu HKe. 13. Dokažte, že kdybychom axiom E3 nahradili axiomem E3 : ∀x∀y∀z(x = y & x = z → y = z), mohli bychom axiom E2 vypustit. 14. Dokažte, že je-li schéma E5 myšleno tak, že se vztahuje na všechny predikátové symboly včetně rovnítka, pak lze vypustit i axiom E3 . 15. Zdůvodněte bez užití věty 3.2.12, že sentence ∀x(L(x) & ∃yR(y) → ∀z(L(z) → x = z)) je v kalkulu HKe dokazatelná z předpokladu ∀x∀y(L(x) & R(y) → x = y). Toto cvičení navazuje na jeden z našich příkladů formálních důkazů. Pokud L(x) znamená objekt x je levý neutrální prvek a R(y) znamená objekt y je pravý neutrální prvek, máte dokázat, že je-li každý levý neutrální objekt roven každému pravému neutrálnímu objektu a existují-li pravé neutrální objekty, pak existuje nejvýše jeden levý neutrální objekt. 16. Zdůvodněte bez užití věty 3.2.12, že sentence ∀x∃y(S(y) = x) je v kalkulu HKe dokazatelná z axiomu L1 teorie SUCC (bez užití zbývajících axiomů). 17. Nalezněte model teorie SUCC, který není izomorfní se strukturou N, 0, s . 18. Dokažte, že žádný z axiomů Q1–Q3 není dokazatelný z ostatních axiomů teorie SUCC a že z Q1–Q3 a L1–Lm nelze dokázat žádnou sentenci Ln pro n > m. 19. Dokažte, že značí-li x ≤ y formuli x < y ∨ x = y, pak všechny axiomy teorie neostrého lineárního uspořádání jsou dokazatelné v teorii LO. 182 3 Predikátová logika 20. Dokažte, že značí-li naopak x < y formuli x ≤ y & x = y, pak všechny axiomy teorie LO jsou dokazatelné v teorii neostrého lineárního uspořádání. 21. Nechť teorie T má jazyk teorie množin a axiomy ∀x∀y(∀v(v ∈ x ≡ v ∈ y) → x = y), ∃x∀v¬(v ∈ x), ∀x∀y∃z∀v(v ∈ x ∨ v = y → v ∈ z). (a) Dokažte pomocí konečných modelů, že v T nelze dokázat žádnou ze sentencí ∀x(x /∈ x) a ¬∃x∀v(v ∈ x). (b) Dokažte, že žádný ze tří axiomů teorie T není dokazatelný z ostatních dvou. 22. Dokažte, že každý konečný acyklický graf má vrchol, ze kterého nevedou žádné hrany. Návod. Postupujte indukcí podle počtu vrcholů grafu. V tomto případě se nepokoušejte sestavit formální důkaz. 23. Zdůvodněte, že existuje pouze jedno dvouprvkové komutativní těleso. 3.3 Gentzenovský predikátový kalkulus Máme-li důkaz ϕ1, . . , ϕm, kde ϕm je ϕ, formule ϕ z množiny předpokladů Σ v hilbertovském kalkulu HK, je dobře možné, že některé z formulí ϕi jsou mnohem delší nebo v nějakém smyslu složitější než kterákoliv formule z množiny Σ∪{ϕ}. Jinými slovy, definice důkazu v hilbertovském kalkulu připouští, abychom při důkazu nějaké formule z nějaké množiny předpokladů postupovali oklikou, přes formule, které nemají „nic společného ani s dokazovanou formulí, ani s množinou předpokladů. Uvědomme si, že ve výrokové variantě gentzenovského kalkulu GK, kterou jsme popsali v oddílu 1.4, je pravidlo řezu pravidlem, které umožňuje dokazovat oklikou: chceme-li dokázat sekvent Γ ⇒ ∆ , máme právo vymyslet si libovolnou formuli θ, dokázat zvlášť sekventy Γ ⇒ θ a θ ⇒ ∆ , a formuli θ pak odstranit užitím pravidla Cut. V tomto oddílu stanovíme predikátovou variantu gentzenovského kalkulu GK a rozmyslíme si, že pravidlo Cut je v jistém smyslu jediným pravidlem, které při dokazování umožňuje postupovat oklikou. Pak se budeme zabývat větou o eliminovatelnosti řezů a některými jejími souvislostmi. Budeme tedy především řešit otázku, zda v definici důkazu je nutné připustit okliky. Do gentzenovského kalkulu GK pro (klasickou) predikátovou logiku přijměme všechna pravidla uvedená na str. 41 s tím, že ϕ a ψ nyní označují predikátové formule a Γ atd. jsou množiny predikátových formulí. Dále přijměme čtyři kvantifikátorová pravidla: ∃-r: Γ ⇒ ∆, ϕx(t) / Γ ⇒ ∆, ∃xϕ , ∀-l: Γ, ϕx(t) ⇒ ∆ / Γ, ∀xϕ ⇒ ∆ , 3.3 Gentzenovský predikátový kalkulus 183 ∃-l: Γ, ϕx(y) ⇒ ∆ / Γ, ∃xϕ ⇒ ∆ , ∀-r: Γ ⇒ ∆, ϕx(y) / Γ ⇒ ∆, ∀xϕ , kde v případě pravidel ∃-r a ∀-l je term t substituovatelný za x ve ϕ a v případě pravidel ∃-l a ∀-r je proměnná y substituovatelná za x ve ϕ a nemá žádné volné výskyty v množině Γ ∪ ∆ ∪ {∃xϕ} resp. v množině Γ ∪ ∆ ∪ {∀xϕ}. Výsledný kalkulus má tedy devět výrokových pravidel (pravidlo A a jedno „levé a jedno „pravé pravidlo pro každou ze čtyř logických spojek), čtyři kvantifikátorová pravidla a dále dvě strukturální pravidla W a Cut. Všimněme si, že u všech čtyř kvantifikátorových pravidel máme co dělat s dosazením za proměnnou a že dosazení vždy směřuje „proti směru úvahy . Abychom ověřili, že formule ∀xϕ nebo ∃xϕ je správně odvozena ze vstupní formule ψ, musíme ověřit, že formuli ψ lze získat z formule ϕ (tj. z té formule, kterou získáme z principální formule odstraněním nejvnějšnějšího kvantifikátoru) dosazením za x (tj. za tu proměnnou, která je určena oním nejvnějšnějším kvantifikátorem). Například každý ze sekventů Γ ⇒ ∆, ∃x(x < S(v)) a Γ ⇒ ∆, ∃x(S(x) < x) je pomocí pravidla ∃-r správně odvozen ze sekventu Γ ⇒ ∆, S(S(v)) < S(v) , a to bez ohledu na formule v Γ ∪ ∆. Viz též příklad 3.1.21. Pravidlům ∃-l a ∀-r říkejme pravidla generalizace, pravidlům ∃-r a ∀-l říkejme pravidla specifikace (konkretizace). Pravidlo ∃-l je formalizací následujícího kroku v nějakém neformálním důkazu: . . . Máme zdůvodnit, že platí ∆, přičemž víme, že existuje objekt s vlastností ϕ. Zvolme takový objekt a označme jej y. Stačí zdůvodnit, že ∆ platí za předpokladu ϕx(y). Analogicky je pravidlo ∀-r formalizací takovéhoto kroku: . . . Máme zdůvodnit, že všechny objekty mají vlastnost ϕ. Nechť je tedy dán nějaký objekt, označme jej y. Stačí zdůvodnit ϕx(y). Oba kroky jsou správné za předpokladu, že y zatím (v předchozí úvaze naznačené tečkami) nic neoznačuje. Tomu odpovídá podmínka u pravidel generalizace, že y se nevyskytuje volně v množinách Γ a ∆ ani ve formuli ∃xϕ resp. ∀xϕ. Tato podmínka bývá v literatuře označena německo-anglickým názvem eigenvariable condition. V našem textu jí říkejme podmínka EVC. Všimněme si ještě, že pravidla generalizace připouštějí, aby x a y byla tatáž proměnná. V tom případě se pravidla ∃-l a ∀-r podobají pravidlům Gen-E a Gen-A hilbertovského kalkulu a je automaticky splněno, že proměnná y nemá volné výskyty ve formuli ∃xϕ resp. ∀xϕ. Na obrázku 3.3.1 nahoře je příklad důkazu v kalkulu GK. Všimněme si na levé straně, že formule ∀yP(y) byla odvozena z formule P(v) až poté, kdy byl užitím pravidla ∃-l odstraněn druhý volný výskyt proměnné v (ve formuli P(v)→∀yP(y)). Použít pravidla ∀-l a ∃-l v opačném pořadí by nebylo možné, to by nebyla splněna podmínka EVC. Finální sekvent je odvozen užitím pravidla Cut. Také finální sekvent spodního důkazu je odvozen řezem. V tomto důkazu si všimněme, že u 184 3 Predikátová logika P(v) ⇒ P(v), ∀yP(y) ⇒ P(v), P(v) → ∀yP(y) ⇒ P(v), ∃x(P(x) → ∀yP(y)) ⇒ ∀yP(y), ∃x(P(x) → ∀yP(y)) ∀yP(y), P(z) ⇒ ∀yP(y)) ∀yP(y) ⇒ P(z) → ∀yP(y)) ∀yP(y) ⇒ ∃x(P(x) → ∀yP(y)) ⇒ ∃x(P(x) → ∀yP(y)) P(x) & Q(x) ⇒ P(x) & Q(x) ∀y(P(x) & Q(y)) ⇒ P(x) & Q(x) ∀x∀y(P(x) & Q(y)) ⇒ P(x) & Q(x) ∀x∀y(P(x) & Q(y)) ⇒ ∀x(P(x) & Q(x)) P(y) ⇒ P(y) P(y) & Q(y) ⇒ P(y) ∀x(P(x) & Q(x)) ⇒ P(y) ∀x∀y(P(x) & Q(y)) ⇒ P(y) Obrázek 3.3.1: Příklady důkazu v kalkulu GK pravidel specifikace nevadí, obsahuje-li term t proměnné, které jsou volné v ostatních formulích. Formule ∀y(P(x) & Q(y)) v levé větvi důkazu je správně odvozena z formule P(x) & Q(x). V důkazu z obrázku 3.3.2 nahoře si všimněme, že pravidlo ∃-r je užito dvakrát, přičemž term t má v jednom případě tvar x a v druhém tvar F(x). Principální formule ∃xϕ je ale v obou případech táž. Všimněme si také, že o formuli ∃x(P(F(x)) ∨ ¬P(x)) již byla řeč ve cvičení 22 oddílu 3.1. Na tomtéž obrázku dole jsou ještě dva příklady důkazů. Útvar úplně vpravo důkazem není, neboť v prvním za dvou kroků je porušena podmínka EVC. Rozšíříme-li de-E finici logicky platné formule i na sekventy, snadno užitím věty o korektnosti 3.3.1 dokážeme, že sekvent ∃xP(x) ⇒ ∀yP(y) nemá v kalkulu GK žádný důkaz. Důkaz formule ϕ v kalkulu GK definujme jako důkaz sekventu ⇒ ϕ . Důkaz formule ϕ z množiny předpokladů Σ definujme jako důkaz sekventu tvaru F ⇒ ϕ , kde F ⊆ Σ je konečná množina. Nechť zápis Σ GK ϕ označuje, že formule ϕ je v kalkulu GK dokazatelná z množiny předpokladů Σ. Řekneme, že struktura D je protipříklad na sekvent Γ ⇒ ∆ , jestliže existuje ohodnocení e proměnných ve struktuře D, které v D splňuje všechny formule z Γ a nesplňuje žádnou formuli z ∆. Sekvent Γ ⇒ ∆ platí ve struktuře D, jestliže D není protipříklad na sekvent Γ ⇒ ∆ , tj. jestliže pro každé ohodnocení proměnných e splňující v D všechny formule z Γ existuje formule ψ ∈ ∆ taková, že D |= ψ[e]. Sekvent Γ ⇒ ∆ je logicky platný, platí-li v každé struktuře (pro příslušný předem zvolený jazyk). Sekventy ∃xP(x) ⇒ ∀yP(y) a ⇒ jsou příklady sekventů, které nejsou logicky platné. Je zřejmé, že sekvent Γ ⇒ ϕ je logicky platný právě tehdy, platí-li Γ |= ϕ. Věta 3.3.1 Každý sekvent S dokazatelný v kalkulu GK je logicky platný. Když Σ GK ϕ, pak Σ |= ϕ. Důkaz Když je sekvent tvaru F ⇒ ϕ logicky platný, pak F |= ϕ. Když navíc F ⊆ Σ, pak i Σ |= ϕ. Stačí tedy dokázat první část věty. Nechť tedy P je důkaz 3.3 Gentzenovský predikátový kalkulus 185 v kalkulu GK a nechť D je struktura. Ověříme indukcí dle počtu kroků v důkazu P, že každý sekvent v důkazu P platí ve struktuře D. Ukažme si úvahu například pro pravidlo ∃-l. Všechny ostatní úvahy jsou analogické a ponecháváme je za cvičení. Nechť tedy sekvent Γ, ∃xϕ ⇒ ∆ je užitím pravidla ∃-l odvozen ze sekventu Γ, ϕx(y) ⇒ ∆ a nechť e je ohodnocení proměnných ve struktuře D, které v D splňuje všechny formule z množiny Γ a formuli ∃xϕ. Pišme zkráceně D |= Γ[e] atd. Z podmínky D |= (∃xϕ)[e] plyne existence prvku a ∈ D takového, že D |= ϕ[e(x/a)]. Uvažujme ohodnocení e(y/a) a předpokládejme složitější případ, kdy x a y jsou různé proměnné. Platí D |= ϕ[e(x/a)] ⇔ D |= (ϕx(y))y(x)[e(x/a)] ⇔ D |= ϕx(y)[e(x/a, y/a)] ⇔ D |= ϕx(y)[e(y/a)]. Nemá-li proměnná volné výskyty ve formuli ∀xϕ, a to nemá, formule ϕx(y) obsa- E huje pouze takové výskyty proměnné y, které se v ní ocitly substitucí za proměnnou x, a (ϕx(y))y(x) a ϕ jsou tedy stejné formule. Tím je zdůvodněna první ze tří ekvivalencí. Druhá plyne z lemmatu 3.1.14(b), třetí z lemmatu 3.1.11(b). Ohodnocení e(y/a) tedy splňuje všechny formule v antecedentu sekventu Γ, ϕx(y) ⇒ ∆ . Protože podle indukčního předpokladu tento sekvent platí v D, existuje formule ψ v množině ∆ taková, že D |= ψ[e(y/a)]. Proměnná y nemá volné výskyty ve formuli ψ. Tedy D |= ψ[e]. QED P(F(x)) ⇒ P(F(x)) ⇒ P(F(x)), ¬P(F(x)) ⇒ P(F(x)) ∨ ¬P(x), ¬P(F(x)) ⇒ ∃x(P(F(x)) ∨ ¬P(x)), ¬P(F(x)) ⇒ ∃x(P(F(x)) ∨ ¬P(x)), P(F(F(x))) ∨ ¬P(F(x)) ⇒ ∃x(P(F(x)) ∨ ¬P(x)) P(x) ⇒ P(x) ∀xP(x) ⇒ P(x) ∀xP(x) ⇒ ∀yP(y) P(x) ⇒ P(x) ∀xP(x) ⇒ P(x) ∀xP(x) ⇒ ∃yP(y) P(x) ⇒ P(x) ∃xP(x) ⇒ P(x) ∃xP(x) ⇒ ∀yP(y) Obrázek 3.3.2: Další důkazy (?) v kalkulu GK Neuvádíme přímý důkaz věty o úplnosti kalkulu GK, a to přestože je — alespoň v případě jazyka bez funkčních symbolů — spíše jednodušší a názornější než důkaz věty o úplnosti kalkulu HK. Místo toho ukážeme, že kalkuly GK a HK jsou ekvivalentní a vzájemně polynomiálně simulovatelné. Z ekvivalence kalkulů GK a HK a úplnosti kalkulu HK ovšem plyne úplnost kalkulu GK. 186 3 Predikátová logika Nejprve stanovme, jaké množiny předpokladů připouštíme, a rozšiřme definici polynomiální simulovatelnosti uvedenou v závěru oddílu 1.4. Kalkuly GK a HK nejsou ekvivalentní v nejobecnějším možném smyslu: platí {P(x)} HK ∀xP(x), neplatí ale {P(x)} GK ∀xP(x). Jako předpoklady tedy připusťme pouze sentence, tj. mluvme pouze o dokazatelnosti v (axiomatických) teoriích. Dále definujme, že kalkulus C2 polynomiálně simuluje kalkulus C1, jestliže existuje polynom p takový, že ke každému důkazu délky nejvýše n libovolné formule ϕ z libovolné teorie T v kalkulu C1 existuje důkaz délky nejvýše p(n) téže formule z téže teorie v kalkulu C2. Délku formule ϕ, množiny formulí T, sekventu S či důkazu P značíme |ϕ|, |T|, |S| resp. |P| a definujeme ji jako souhrnný počet výskytů všech logických spojek, kvantifikátorů a predikátových symbolů v oné formuli, množině formulí, sekventu či důkazu. Atomické formule tedy mají délku 1. Lze si rozmyslet, že při podrobnějším počítání délek, například kdybychom brali v úvahu i funkční symboly a délku zápisu indexů proměnných, by se nic nepokazilo na polynomiální simulovatelnosti. V kapitole 1 jsme vlastně uvažovali dvě varianty kalkulu HK: s důkazy-posloupnostmi a se stromovými důkazy. Lze říci, že posloupnost ϕ1, . . , ϕn je stromový důkaz v kalkulu HK, jestliže pro každé i existuje nejvýše jedno j > i takové, že formule ϕj je z formule ϕi (a případně dalších formulí) odvozena jedním užitím nějakého pravidla. Také u kalkulu GK lze uvažovat dvě varianty: se stromovými důkazy a s důkazy-posloupnostmi (sekventů). Ve cvičeních oddílu 1.4 jsme se zmínili, že výroková varianta kalkulu HK s důkazy-posloupnostmi a výroková varianta kalkulu GK s důkazy-posloupnostmi jsou navzájem polynomiálně simulovatelné a že totéž platí pro kalkuly HK a GK se stromovými důkazy. Nyní uvidíme, že stejná tvrzení platí i pro predikátovou logiku. Ukážeme si také obtížnější výsledek, totiž že jak v kalkulu HK, tak v kalkulu GK lze důkazy-posloupnosti polynomiálně simulovat pomocí stromových důkazů. Po dokončení důkazu věty 3.3.2 budeme důkazy v kalkulu GK považovat za stromy. Věta 3.3.2 Následující kalkuly jsou navzájem polynomiálně simulovatelné: (i) Kalkulus HK s důkazy-posloupnostmi, (ii) Kalkulus HK se stromovými důkazy, (iii) Kalkulus GK s důkazy-posloupnostmi, (iv) Kalkulus GK se stromovými důkazy, (v) Kalkulus GK se stromovými důkazy a navíc s omezením, že jako principální formule iniciálních sekventů se připouštějí pouze atomické formule. Důkaz Nejprve simulujme kalkulus (i) pomocí kalkulu (ii). Nechť ϕ1, . . , ϕm, kde ϕm je ϕ, je daný důkaz délky nejvýše n formule ϕ z množiny sentencí T v kalkulu HK. Máme sestrojit důkaz téže formule z téže množiny předpokladů, který je stromový a jehož délka navíc není o mnoho větší než délka n daného důkazu ϕ1, . . , ϕm. Definujme formuli ∀ϕi jako univerzální uzávěr formule ϕi, tj. jako formuli ∀v1 . . ∀vrϕi, kde v1, . . , vr je seznam všech volných proměnných formule ϕi. Dále pro 1 ≤ i ≤ m definujme formuli θi jako konjunkci ((. . (∀ϕ1 & ∀ϕ2) & . . ) & ∀ϕi−1) & ∀ϕi. 3.3 Gentzenovský predikátový kalkulus 187 Formule θi je tedy konjunkcí univerzálních uzávěrů formulí ϕ1, . . , ϕi s tím, že závorky se kumulují doleva. Mysleme si chvíli, že i < m je pevné, a konstruujme stromový důkaz implikace θi → θi+1. Předpokládejme například, že formule ϕi+1 je v původním důkazu odvozena pravidlem MP, a to například z formule ϕ1 a z formule ϕi, která má tvar ϕ1 → ϕi+1. Uvažujme formule 1: ∀ϕ1 & ∀(ϕ1 → ϕi+1) → ∀ϕi+1 2: ∀ϕ1 & ∀(ϕ1 → ϕi+1) → (∀ϕ1 & ∀ϕi) & ∀ϕi+1 3: (∀ϕ1 & ∀ϕ2) & ∀ϕi → ((∀ϕ1 & ∀ϕ2) & ∀ϕi) & ∀ϕi+1 ... i: (. . (∀ϕ1 & ∀ϕ2) & . . ) & ∀ϕi → ((. . (∀ϕ1 & ∀ϕ2) & . . ) & ∀ϕi) & ∀ϕi+1. Formule (2) a (3) mají tvar A&B→(A&B)&C a (A&D)&B→((A&D)&B)&C. Formuli (3) tedy můžeme získat z formule (2) tak, že vezmeme (výrokový stromový) důkaz tautologie (p & q → (p & q) & r) → ((p & s) & q) → ((p & s) & q) & r), (∗) dosadíme do něj formule ∀ϕ1, ∀ϕi, ∀ϕi+1 a ∀ϕ2 za atomy p, q, r a s, a na finální formuli výsledného důkazu a na formuli (2) pak použijeme pravidlo MP. Tentýž důkaz tautologie (∗) použijeme ještě (i−3)-krát (k odvození formule (4) z formule (3) atd.), přičemž za p postupně dosazujeme formule ∀ϕ1 & ∀ϕ2 až ∀ϕ1 & . . & ∀ϕi−2, za s postupně dosazujeme formule ∀ϕ3 až ∀ϕi−1, za q a r dosazujeme vždy tutéž formuli ∀ϕi resp. ∀ϕi+1. Dosazením vznikne vždy fragment predikátového důkazu délky O(n). Celý důkaz formule v i-tém řádku, tj. formule θi → θi+1, z formule (3) má tedy délku O(n2 ). Vezmeme-li v úvahu i důkaz formule (2) z formule (1) a důkaz formule (1), pořád máme důkaz délky O(n2 ). Kdyby ony dvě formule v daném důkazu, na které se aplikuje pravidlo MP, byly jiné než ϕ1 a ϕi, kromě tautologie (∗) by se uplatnily ještě tautologie (p & q → (p & q) & r) → ((s & p) & q → ((s & p) & q) & r), (p & q → (p & q) & r) → ((p & q) & s → ((p & q) & s) & r). Úvahy v případě, kdy ϕi+1 je odvozena některým pravidlem generalizace, je logickým axiomem nebo je prvkem množiny předpokladů, jsou podobné. Z důkazů formulí θ1, θ1 → θ2 až θm−1 → θm, z nichž každý má délku O(n2 ), můžeme sestavit stromový důkaz formule θm a pak i důkaz formule ϕm, jejichž délka je O(n3 ). Nyní simulujme kalkulus (iii) pomocí kalkulu (i). Nechť P je daný důkaz délky nejvýše n formule θ z množiny předpokladů T v kalkulu GK. Je-li S libovolný sekvent tvaru Γ ⇒ ∆ , definujme formuli f(S) následovně. Když Γ = ∅ a ∆ = ∅, pak f(S) je Γ→ ∆. Když Γ = ∅ a ∆ = ∅, pak f(S) je Γ→⊥, kde ⊥ je předem zvolená vyvratitelná sentence. Když Γ = ∅ a ∆ = ∅, pak f(S) je ∆, a konečně když Γ = ∆ = ∅, pak f(S) je ⊥. Lze ověřit, že je-li sekvent S v důkazu P odvozen jedním krokem ze sekventu S1 nebo ze dvou sekventů S1 a S2, pak formuli f(S) lze 188 3 Predikátová logika v kalkulu HK odvodit z formule f(S1) resp. z formulí f(S1) a f(S2) důkazem délky O((|S1|+|S|)2 ) resp. O((|S1|+|S2|+|S|)2 ). Uvažujme podrobněji třeba o případu, kdy Γ = ∅, ∆ = ∅, x a y jsou různé proměnné a sekvent S tvaru Γ ⇒ ∆, ∀xϕ je v důkazu P jedním krokem odvozen ze sekventu S1 tvaru Γ ⇒ ∆, ϕx(y) . V příslušném místě důkazu v kalkulu HK se uplatní formule 1: Γ → ∆ ∨ ϕx(y) 2: Γ & ¬ ∆ → ϕx(y) 3: Γ & ¬ ∆ → ∀yϕx(y) 4: ∀yϕx(y) → ∀xϕ 5: Γ & ¬ ∆ → ∀xϕ 6: Γ → ∆ ∨ ∀xϕ. Přitom formule (3) je z formule (2) odvoditelná pomocí pravidla Gen-A a formule (4) je dokazatelná, neboť nemá-li y volné výskyty ve ϕ, pak (ϕx(y))y(x) je ϕ. Souhrnná délka těchto šesti formulí je O(|S1|+|S2|). Indukční předpoklad aleE nezaručuje, že v disjunkci ∆ ∨ ϕx(y) jsou závorky a pořadí členů tak, jak potřebujeme, s formulí ϕx(y) vpravo na nejvyšší úrovni. Abychom formuli ϕx(y) dostali na požadovanou pozici, můžeme potřebovat až O(|S1| + |S|) formulí, jejichž délka je stále O(|S1| + |S|). Také mezi formulemi (2) a (3) a mezi formulemi (5) a (6) je ve skutečnosti O(|S1| + |S|) takových formulí. Máme tedy fragment důkazu, jehož velikost je O((|S1| + |S|)2 ). Celkově to vypadá tak, že původní důkaz P délky n byl rozdělen na fragmenty (v podstatě jednotlivé formule), z nichž každý se při překladu do kalkulu HK kvadraticky prodloužil. Dohromady to dává důkaz v kalkulu HK velikosti O(n2 ). Finální sekvent důkazu P má tvar F ⇒ θ , kde F ⊆ T je konečná. V kalkulu HK pokračujeme od formule F → θ k formuli θ. Na odhadu O(n2 ) se přitom již nic nezmění. Uvažujme o simulaci kalkulu (ii) pomocí kalkulu (iv). Nechť θ1, . . , θm, kde θm je θ, je daný stromový důkaz délky nejvýše n formule θ z teorie T v kalkulu HK. Nechť F je množina těch prvků množiny T, které jsou v důkazu θ1, . . , θm skutečně použity. Platí |F| ≤ n. Konstruujme postupně důkazy sekventů F ⇒ θi a všímejme si jejich délky. Důkaz sekventu F ⇒ θm je hledaným důkazem formule θ v kalkulu GK. Když θi ∈ F, pak F ⇒ θi je iniciální sekvent. Když θi je logickým axiomem, například axiomem B1 tvaru ∀xϕ → ϕx(t), pak sekvent F ⇒ θi je dokazatelný dvěma kroky: F, ϕx(t) ⇒ ϕx(t) F, ∀xϕ ⇒ ϕx(t) F ⇒ ∀xϕ → ϕx(t) . Ostatní úvahy o logických axiomech kalkulu HK jsou podobné. Když formule θi je tvaru ∃xϕ→ψ a je z některé předchozí formule θj tvaru ϕ→ψ odvozena generalizací, 3.3 Gentzenovský predikátový kalkulus 189 pak v kalkulu GK můžeme utvořit takovýto důkaz: F ⇒ ϕ → ψ e e e £ £ £ Pj ϕ ⇒ ϕ ψ ⇒ ψ ϕ, ϕ → ψ ⇒ ψ F, ϕ ⇒ ψ F, ∃xϕ ⇒ ψ F ⇒ ∃xϕ → ψ , kde Pj je již sestrojený důkaz sekventu F ⇒ θj , sekvent F, ϕ ⇒ ψ je z předchozích dvou odvozen řezem, následující sekvent je (oprávněně) odvozen pomocí pravidla ∃-l a nakonec je užito pravidlo →-r. Když je formule θi z některých předchozích formulí θj a θk, kde θk je tvaru θj → θi, odvozena pravidlem MP, v kalkulu GK užijeme dva řezy: E F ⇒ θj → θi e e e £ £ £ Pk F ⇒ θj e e e £ £ £ Pj θj ⇒ θj θi ⇒ θi θj, θj → θi ⇒ θi F, θj → θi ⇒ θi F ⇒ θi . K již sestrojeným důkazům Pj a Pk jsme v tomto případě přidali pět nových sekventů. V předchozím případě, kdy jsme se zabývali simulací pravidla Gen-E, to bylo šest nových sekventů. Jejich celková délka je v obou případech O(n). Protože (přinejhorším) toto se děje pro každé i, máme důkaz v kalkulu GK délky O(n2 ). Nakonec simulujme kalkulus (iv) pomocí kalkulu (v). Tím bude důkaz dokončen, protože simulace (v) ⇒ (iv) a (iv) ⇒ (iii) jsou triviální, každý stromový důkaz s dodatečnou podmínkou na iniciální sekventy je stromovým důkazem a každý stromový důkaz je zároveň důkazem-posloupností. Lze dokázat indukcí dle |ϕ|, že každý sekvent S tvaru Γ, ϕ ⇒ ∆, ϕ má důkaz, v němž jsou všechny iniciální sekventy atomické a v němž je nejvýše 4|ϕ| + 1 sekventů, z nichž každý má délku O(|S|). V případech, kdy ϕ je tvaru ∀xψ nebo ψ ∨ χ, postupujeme takto: Γ, ψx(y) ⇒ ∆, ψx(y) Γ, ∀xψ ⇒ ∆, ψx(y) Γ, ∀xψ ⇒ ∆, ∀xψ Γ, ψ ⇒ ∆, ψ Γ, ψ ⇒ ∆, ψ ∨ χ Γ, χ ⇒ ∆, χ Γ, χ ⇒ ∆, ψ ∨ χ Γ, ψ ∨ χ ⇒ ∆, ψ ∨ χ , kde proměnnou y volíme tak, aby se nevyskytovala v Γ, ∆ ani ∀xψ. V prvním případě platí |ψx(y)| = |ϕ| − 1, sekvent Γ, ψx(y) ⇒ ∆, ψx(y) má dle indukčního předpokladu důkaz se 4(|ϕ| − 1) + 1 sekventy, a sekvent Γ, ϕ ⇒ ∆, ϕ má tedy důkaz se 4(|ϕ|−1)+1+2 ≤ 4|ϕ|+1 sekventy. V druhém případě pro délku a počet sekventů platí |ψ ∨ χ| = |ψ| + |χ| + 1 a (4|ψ| + 1) + (4|χ| + 1) + 3 = 4|ψ ∨ χ| + 1. Podobně se uvažuje v případě ostatních logických symbolů. Máme-li důkaz délky n 190 3 Predikátová logika a nahradíme-li v něm každý iniciální sekvent S, jehož principální formule není atomická, jeho důkazem délky O(|S|2 ), v němž principální formule všech iniciálních sekventů už jsou atomické, dostaneme důkaz délky O(n2 ). QED Tvrzení o polynomiální simulovatelnosti důkazů-posloupností pomocí stromových důkazů dokázal J. Krajíček. Důkaz, který jsme uvedli, je převzat z jeho knihy [50]. Vzájemná simulovatelnost (nikoliv polynomiální) kalkulů GK a HK je dokázána například v [49]. Řekneme, že důkaz v kalkulu GK je bezřezový, není-li v něm použito pravidlo Cut. V oddílu 1.4 jsme viděli, že v bezřezovém důkazu se mohou vyskytnout jen podformule formulí obsažených ve finálním sekventu daného důkazu. Něco podobného platí i v predikátové logice. Následující rekurzí definujme vztah býti s-podformulí mezi predikátovými formulemi. S-podformulemi formule ∀xϕ (nebo formule ∃xϕ) jsou jednak sama formule ∀xϕ (resp. ∃xϕ), dále každá s-podformule kterékoliv formule tvaru ϕx(t), kde t je term substituovatelný za x ve ϕ, a nic jiného. S-podformulemi formule ϕ → ψ (nebo formule ϕ&ψ, nebo formule ϕ∨ψ) jsou jednak sama formule ϕ→ψ (resp. ϕ&ψ, resp. ϕ ∨ ψ), dále každá s-podformule formule ϕ, každá s-podformule formule ψ, a nic jiného. S-podformulemi formule ¬ϕ jsou jednak sama formule ¬ϕ a dále každá s-podformule formule ϕ. Atomická formule je sama svou jedinou s-podformulí. Příklad 3.3.3 Uvažujme jazyk {P, Q} se dvěma unárními predikáty. Jedinými termy jsou v tomto případě proměnné. Uvažujme formuli ∀x∀y(P(x) & Q(y)). Termy substituovatelné za x ve formuli ∀y(P(x) & Q(y)) jsou právě ty proměnné z, které jsou různé od proměnné y. S-podformulemi formule ∀x∀y(P(x) & Q(y)) jsou tedy, kromě ní samé, formule ∀y(P(z) & Q(y)), P(z) & Q(v), P(z) a Q(v), kde proměnná z je jiná než y (může to být x) a proměnná v je libovolná. Věta 3.3.4 Každá formule v bezřezovém důkazu P je s-podformulí některé formule ve finálním sekventu důkazu P. Není-li v bezřezovém důkazu P užito žádné z pravidel pro implikaci a negaci, pak každá formule obsažená v antecedentu (sukcedentu) kteréhokoliv sekventu důkazu P je s-podformulí některé formule obsažené v antecedentu (sukcedentu) finálního sekventu důkazu P. Důkaz Je-li například sekvent Γ ⇒ ∆, ϕ → ψ odvozen jedním krokem ze sekventu Γ, ϕ ⇒ ∆, ψ , pak formule ϕ a ψ jsou s-podformulemi formule ϕ → ψ a každá formule v Γ ∪ ∆ je svou vlastní s-podformulí, tedy s-podformulí některé formule v sekventu Γ ⇒ ∆, ϕ → ψ . Podobně lze prověřit všechna ostatní pravidla kalkulu GK kromě pravidla Cut (které je vyloučené). QED Příklad 3.3.5 Nechť S je sekvent ∀x∀y(P(x)&Q(y)) ⇒ P(y) a nechť P je jeho bezřezový důkaz. Protože ve finálním sekventu důkazu P se nevyskytují symboly → a ¬, v P není užito žádné z pravidel pro implikaci a negaci. Můžeme tedy užít druhou část věty 3.3.4. Uvažujme (kterýkoliv) iniciální sekvent Γ, ϕ ⇒ ∆, ϕ důkazu P. Formule ϕ musí být s-podformulí některé formule v sukcedentu a současně 3.3 Gentzenovský predikátový kalkulus 191 s-podformulí některé formule v antecedentu sekventu S. Formule P(y) je jedinou s-podformulí (jediné) formule obsažené v sukcedentu sekventu S. V příkladu 3.3.3 jsme ale zjistili, že formule P(y) není s-podformulí žádné formule obsažené v antecedentu sekventu S. Tím jsme dokázali, že sekvent S nemá žádný bezřezový důkaz. Připomeňme, že důkaz sekventu S, který není bezřezový, je na obr. 3.3.1 dole. Příklad 3.3.6 Sekvent ⇒ nemá žádný bezřezový důkaz. O sekventu ⇒ ovšem víme, že nemá žádný důkaz (protože není logicky platný). Zajímavé ale je, že neexistenci bezřezových důkazů jsme v příkladech 3.3.5 a 3.3.6 dokázali bez užití jakékoliv sémantiky. Definujme, že formule je regulární, jestliže žádná proměnná v ní nemá současně volné i vázané výskyty. Definujme dále, že sekvent je regulární, jestliže žádná proměnná v něm nemá současně volné i vázané výskyty. Důkaz P v kalkulu GK je regulární, jestliže žádná proměnná nemá v P současně volné i vázané výskyty a jestliže navíc pro každý sekvent Γ ⇒ ∆, ∀xϕ a Γ, ∃xϕ ⇒ ∆ důkazu P, který je v P odvozen jedním krokem z bezprostředně předchozího sekventu Γ ⇒ ∆, ϕx(y) resp. Γ, ϕx(y) ⇒ ∆ , platí, že proměnná y se v P nevyskytuje nikde mimo příslušný podstrom důkazu P, tj. nikde kromě sekventů, do kterých vede v P cesta (nahoru) z onoho sekventu Γ ⇒ ∆, ∀xϕ či Γ, ∃xϕ ⇒ ∆ . Například důkaz na obrázku 3.3.1 nahoře je regulární. Na obrázku 3.3.2 jsou celkem tři důkazy, z nichž žádný není regulární. Jsou to ale důkazy regulárních sekventů. Na obrázku 3.3.1 dole je dokázán sekvent, který není regulární. Postupně chceme dospět k větě o eliminovatelnosti řezů pro kalkulus GK, která tvrdí, že každý regulární sekvent dokazatelný v kalkulu GK má v kalkulu GK i bezřezový důkaz. Definujme hloubku d(ϕ) formule ϕ jako délku nejdelší větve ve formuli ϕ chápané jako strom. Jinak řečeno, d(ϕ ψ) = 1 + max{d(ϕ), d(ψ)}, kde je kterákoliv ze spojek →, & nebo ∨, dále d(¬ϕ) = 1 + d(ϕ) a konečně d(ϕ) = 0, je-li ϕ atomická. E Dále definujme hloubku d(P) důkazu P jako délku nejdelší větve v P. Například na obrázku 3.3.1 nahoře je důkazem hloubky 4 dokázána formule, jejíž hloubka je 3. A konečně definujme (řezovou) hodnost r(P) (anglicky cut rank) důkazu P jako maximální z čísel 1 + d(ϕ), kde ϕ je formule, na kterou je v důkazu P užit řez, a jako nulu v případě, kdy důkaz P je bezřezový. Podmínka r(P) = 0 tedy platí právě tehdy, není-li v P užito pravidlo Cut. Důkazy na obrázcích 3.3.1 mají hodnost 2 a 3. Důkaz na obrázku 3.3.2 nahoře má hodnost 0. Lemma 3.3.7 Ke každému důkazu regulárního sekventu existuje regulární důkaz téhož sekventu, který nemá větší hloubku ani hodnost. Důkaz Nechť P je daný důkaz regulárního sekventu S. Nechť x1, . . , xn je seznam těch proměnných, které mají volné výskyty v sekventu S a současně mají vázané výskyty kdekoliv v důkazu P. Zvolme navzájem různé proměnné v1, . . , vn, které se v P nevyskytují (volně ani vázaně). Pišme v P všude v1, . . , vn místo vázaných výskytů proměnných x1, . . , xn, a označme P(1) výsledek této záměny. Probráním všech pravidel kalkulu GK lze ověřit, že P(1) je opět důkazem. Například je-li v P 192 3 Predikátová logika užit krok Γ ⇒ ∆, ϕx(t) / Γ ⇒ ∆, ∃xϕ , na odpovídajícím místě v P(1) je krok tvaru Γ(1) ⇒ ∆(1) , (ϕx(t))(1) / Γ(1) ⇒ ∆(1) , (∃xϕ)(1) . Je-li x některá z proměnných xi, platí (∃xϕ)(1) = ∃vi(ϕx(vi))(1) a (ϕx(t))(1) = ((ϕx(vi))(1) )vi (t). Není-li, platí (∃xϕ)(1) = ∃xϕ(1) a (ϕx(t))(1) = (ϕ(1) )x(t). V obou případech máme v P(1) legální krok, tj. krok v souladu s pravidlem ∃-r. Protože finální sekvent S důkazu P je regulární, P(1) je důkazem téhož sekventu S. Označme dále xn+1, . . , xn+m proměnné, které se v důkazu P(1) vyskytují současně volně i vázaně. Vzhledem k již provedeným úpravám (kterými jsme důkaz P přepracovali na důkaz P(1) ) žádná z těchto proměnných nemá volné výskyty v sekventu S. Může tam ale mít vázané výskyty. Opět zvolme navzájem různé proměnné vn+1, . . , vn+m, které se nevyskytují v P(1) , a pišme v P(1) všude vn+1, . . , vn+m místo volných výskytů proměnných xn+1, . . , xn+m. Opět lze probíráním všech pravidel kalkulu GK ověřit, že výsledek P(2) této záměny je důkazem, a to důkazem stále téhož sekventu S. Nechť v důkazu P(2) je právě r-krát použito některé z pravidel generalizace, a to na proměnné y1, . . , yr (tentokrát ne nutně různé). Zvolme navzájem různé proměnné z1, . . , zr nevyskytující se v důkazu P(2) . Pro 1 ≤ i ≤ r označme Pi ten podstrom důkazu P(2) , v jehož posledním kroku je generalizována proměnná yi, a označme Si finální sekvent důkazu Pi. Zvolme takové j, že sekvent Sj je v důkazu P(2) maximální, tj. takové, že důkaz Pj neobsahuje jako podstrom žádný z ostatních důkazů Pi pro i = j. Všude v Pj pišme zj místo yj. Všechny kroky uvnitř podstromu Pj zůstanou legální díky důvodům, které byly naznačeny v předchozím odstavci. Podmínka EVC (viz str. 183) zaručuje, že proměnná yj nemá volné výskyty v sekventu Sj. Se sekventem Sj se tedy nic neděje. Všechny kroky v důkazu P(2) mimo podstrom Pj, včetně onoho, který je aplikován na sekvent Sj, zůstávají, jak byly, tedy legální. Popsaný postup opakujme s ostatními podstromy Pi s tím, že pro záměnu proměnných volíme vždy ten z nich, jehož finální sekvent je maximální z dosud neuvažovaných. Výsledkem je regulární důkaz P(3) původního sekventu. Důkaz P(3) nemá větší (má stejnou) hloubku a hodnost. QED Lemma 3.3.8 (o substituci) Nechť P je důkaz, nechť z je proměnná, která v důkazu P není generalizována, nechť s je term, jehož žádná proměnná není v důkazu P generalizována ani kvantifikována. Pak Pz(s), výsledek substituce termu s za všechny volné výskyty proměnné z v důkazu P, je opět důkazem. Důkaz Plný důkaz lze provést pečlivým probráním všech pravidel kalkulu GK. Ponecháváme jej za cvičení, uvádíme ale hlavní myšlenky. Není-li žádná proměnná termu s v důkazu P kvantifikována, pak term s je v každé formuli důkazu P substituovatelný za z. Pravidla generalizace umožňují generalizovat proměnné, nikoliv termy. Na tom se ale nic nepokazí, neboť term s nedosazujeme za proměnnou, která je kdekoliv v důkazu P generalizována. Protože žádná proměnná termu s není v důkazu P generalizována, substituce termu s nezanese nežádoucí volné proměnné do žádného místa, kde je v P použito pravidlo generalizace, tj. nikde nepokazí platnost podmínky EVC. QED 3.3 Gentzenovský predikátový kalkulus 193 Lemma 3.3.9 (o oslabení) Nechť P je důkaz sekventu Γ ⇒ ∆ a nechť Π a Λ jsou množiny formulí takové, že žádná proměnná, která má volný výskyt v některé formuli v Π ∪ Λ, není v důkazu P generalizována. Pak přidáním všech formulí z množiny Π do všech antecedentů a přidáním všech formulí z množiny Λ do všech sukcedentů vznikne opět důkaz. Důkaz je zřejmý. Pravidlem &-r lze odvodit sekvent Γ ⇒ ∆, ϕ & ψ ze sekventů Γ ⇒ ∆, ϕ a Γ ⇒ ∆, ψ . Myslitelné a korektní by bylo i opačné pravidlo, které by dovolilo odvodit například sekvent Γ ⇒ ∆, ϕ ze sekventu Γ ⇒ ∆, ϕ & ψ . Do kalkulu GK ale takové pravidlo z dobrých důvodů nebylo přijato. Jednak by přestala platit věta 3.3.4 a jednak takové pravidlo ani není potřeba. Máme-li totiž důkaz P sekventu Γ ⇒ ∆, ϕ &ψ , snadno z něj utvoříme důkaz P sekventu Γ ⇒ ∆, ϕ : Γ ⇒ ∆, ϕ & ψ e e e £ £ £ P ϕ ⇒ ϕ ϕ & ψ ⇒ ϕ Γ ⇒ ∆, ϕ . Přitom takto sestrojený důkaz P má větší hloubku než důkaz P a jeho hodnost max{r(P), 1 + d(ϕ & ψ)} také může být větší. Následující lemma, lemma o inverzi, tvrdí, že existuje jiný důkaz sekventu Γ ⇒ ∆, ϕ , který nemá větší hloubku ani hodnost, a že podobným způsobem lze „obrátit všechna ostatní pravidla kalkulu GK s výjimkou pravidel specifikace. Cvičení 22 oddílu 3.2 ukazuje, že je-li E sekvent tvaru Γ ⇒ ∆, ∃xϕ dokazatelný, nemusí to znamenat dokazatelnost žádného sekventu tvaru Γ ⇒ ∆, ϕx(t) . Pro pravidla specifikace lemma o inverzi neplatí. Domluvme se, že nadále nepřipouštíme, aby principální formule iniciálních sekventů byly neatomické. Kalkulem GK tedy nadále rozumíme kalkulus z bodu (d) E věty 3.3.2. Lemma 3.3.10 (o inverzi) (a) Má-li kterýkoliv sekvent v levém sloupci následující tabulky regulární důkaz P, pak (každý) sekvent v tomtéž řádku vpravo má důkaz, jehož hloubka a hodnost není větší než hloubka a hodnost důkazu P: Γ ⇒ ∆, ϕ → ψ Γ, ϕ ⇒ ∆, ψ Γ ⇒ ∆, ϕ & ψ Γ ⇒ ∆, ϕ , Γ ⇒ ∆, ψ Γ ⇒ ∆, ϕ ∨ ψ Γ ⇒ ∆, ϕ, ψ Γ ⇒ ∆, ¬ϕ Γ, ϕ ⇒ ∆ Γ, ϕ → ψ ⇒ ∆ Γ ⇒ ∆, ϕ , Γ, ψ ⇒ ∆ Γ, ϕ & ψ ⇒ ∆ Γ, ϕ, ψ ⇒ ∆ Γ, ϕ ∨ ψ ⇒ ∆ Γ, ϕ ⇒ ∆ , Γ, ψ ⇒ ∆ Γ, ¬ϕ ⇒ ∆ Γ ⇒ ∆, ϕ . 194 3 Predikátová logika (b) Nechť P je regulární důkaz sekventu Γ ⇒ ∆, ∀xϕ nebo Γ, ∃xϕ ⇒ ∆ a nechť žádná proměnná vyskytující se v termu t není v důkazu P kvantifikována ani generalizována. Pak sekvent Γ ⇒ ∆, ϕx(t) resp. Γ, ϕx(t) ⇒ ∆ má důkaz, jehož hloubka a hodnost není větší než hloubka a hodnost důkazu P. Důkaz V tvrzení (a) uvažujme například o druhém řádku. Máme tedy regulární důkaz P sekventu Γ ⇒ ∆, ϕ & ψ a chceme získat důkaz sekventu Γ ⇒ ∆, ϕ , který nemá větší hloubku ani hodnost. Postupujme indukcí dle hloubky důkazu P. Platí-li ϕ & ψ ∈ ∆, pak sekvent Γ ⇒ ∆, ϕ lze ze sekventu Γ ⇒ ∆, ϕ & ψ získat pouhým přidáním formule ϕ do sukcedentu. Protože důkaz P je regulární, žádná proměnná volná ve formuli ϕ není v P generalizována. Lemma 3.3.9 v tomto případě zaručuje, že přidáním formule ϕ do sukcedentů všech sekventů důkazu P vznikne důkaz sekventu Γ ⇒ ∆, ϕ . Přidání formule ϕ do všech sukcedentů ovšem nezvýší hloubku ani hodnost. Nadále tedy předpokládejme, že ϕ & ψ /∈ ∆. Rozlišme případy, kdy formule ϕ & ψ je a kdy není principální formulí v posledním kroku důkazu P. Přitom počítejme s tím, že je-li principální, může současně být také postranní. Nechť tedy formule ϕ & ψ není principální v posledním kroku důkazu P. Důkaz P tedy může mít tvar například Π, Σ1 ⇒ Λ, Ω1 e e e ¡ ¡ ¡ P1 Π, Σ ⇒ Λ, Ω , kde Π a Λ jsou množiny postranních formulí, Σ ∪ Ω je množina všech principálních formulí (takže jedna z množin Σ a Ω je prázdná a druhá je jednoprvková), Σ1 ∪ Ω1 je množina všech vstupních formulí (takže každá z nich je nejvýše jednoprvková) a platí d(P1) < d(P). Musí platit Γ = Π ∪ Σ a ∆ ∪ {ϕ & ψ} = Λ ∪ Ω. Protože formule ϕ&ψ není principální, máme ϕ&ψ /∈ Ω a ϕ&ψ ∈ Λ. Indukční předpoklad užitý na důkaz P1 dává důkaz P1 sekventu Π, Σ1 ⇒ Λ − {ϕ & ψ}, ϕ, Ω1 , pro který platí d(P1) ≤ d(P1) = d(P) − 1 a r(P1) ≤ r(P1) = r(P). Pak Π, Σ1 ⇒ Λ − {ϕ & ψ}, ϕ, Ω1 e e e ¡ ¡ ¡ P1 Π, Σ ⇒ Λ − {ϕ & ψ}, ϕ, Ω je požadovaný důkaz sekventu Γ ⇒ ∆, ϕ . V případech, kdy v posledním kroku důkazu P je užito pravidlo se dvěma předpoklady nebo kdy v posledním (a jediném) kroku je užito pravidlo A, se uvažuje naprosto analogicky. Nechť nyní formule ϕ&ψ je principální v posledním kroku důkazu P. Je-li posledním krokem důkazu P užití pravidla W, můžeme jednoduše opět užít pravidlo W s tím, že jím přidáme formuli ϕ místo formule ϕ & ψ. Protože jsme se domluvili, že 3.3 Gentzenovský predikátový kalkulus 195 jako principální formule iniciálních sekventů připouštíme pouze atomické formule, zbývá pouze případ, kdy v posledním kroku důkazu P je formule ϕ & ψ odvozena pravidlem &-r. Protože ϕ & ψ /∈ ∆, množinou postranních formulí v sukcedentu je množina ∆ nebo množina ∆ ∪ {ϕ & ψ}, a důkaz P má podle toho jeden z tvarů Γ ⇒ ∆, ϕ e e e £ £ £ P1 Γ ⇒ ∆, ψ g g g ¡ ¡ ¡ P2 Γ ⇒ ∆, ϕ & ψ , Γ ⇒ ∆, ϕ & ψ, ϕ e e e £ £ £ P1 Γ ⇒ ∆, ϕ & ψ, ψ g g g ¡ ¡ ¡ P2 Γ ⇒ ∆, ϕ & ψ . V prvním případě je P1 hledaný důkaz, v druhém případě užijme indukční předpoklad na důkaz P1 a nahraďme formuli ϕ & ψ v jeho finálním sekventu formulí ϕ. K tvrzení (b) poznamenejme, že term t je substituovatelný za x ve formuli ϕ, a dále postupujme podobně jako v (a). Nechť P je důkaz sekventu Γ ⇒ ∆, ∀xϕ . Není-li formule ∀xϕ principální formulí v posledním kroku důkazu P, užijme indukční předpoklad na sekvent nebo sekventy vstupující do posledního kroku, tj. nahraďme v množině postranních formulí formuli ∀xϕ formulí ϕx(t), a pak proveďme poslední krok tak, jak byl. Formule ϕx(t) může oproti formuli ∀xϕ obsahovat navíc nějaké volné proměnné, nikoliv ale takové, které jsou v důkazu P generalizovány. To znamená, že poslední krok důkazu P zůstane legálním krokem i v případě, je-li užitím pravidla generalizace. Je-li formule ∀xϕ principální a současně postranní v posledním kroku důkazu P, pak důkaz P má tvar Γ ⇒ ∆, ∀xϕ, ϕx(y) e e e ¡ ¡ ¡ P1 Γ ⇒ ∆, ∀xϕ , kde důkaz P1 je regulární. Lemma 3.3.8 dovoluje dosadit term t za proměnnou y. Výsledný důkaz (P1)y(t) sekventu Γ ⇒ ∆, ∀xϕ, ϕx(t) má hloubku menší než důkaz P, je regulární a žádná proměnná termu t v něm není generalizována ani kvantifikována. Indukční předpoklad dává požadovaný důkaz sekventu Γ ⇒ ∆, ϕx(t) . QED Lemma 3.3.11 (o redukci) Nechť P1 je důkaz sekventu Γ ⇒ ∆, θ , nechť P2 je důkaz sekventu Π, θ ⇒ Λ a nechť následující důkaz P0: Γ ⇒ ∆, θ e e e £ £ £ P1 Π, θ ⇒ Λ g g g ¡ ¡ ¡ P2 Γ, Π ⇒ ∆, Λ (v jehož posledním kroku je užito pravidlo Cut na formuli θ) je regulární. Nechť dále platí r(P1) ≤ d(θ) a r(P2) ≤ d(θ). Pak sekvent Γ, Π ⇒ ∆, Λ má důkaz hodnosti nejvýše d(θ) a hloubky nejvýše d(P1) + d(P2). 196 3 Predikátová logika Důkaz Nejprve poznamenejme, že důkaz P0 není hledaným důkazem, neboť pro jeho hodnost platí r(P0) = 1 + d(θ). Můžeme předpokládat θ /∈ ∆ a θ /∈ Π, jinak bychom mohli důkaz sekventu Γ, Π ⇒ ∆, Λ získat přidáním formulí do všech sekventů důkazu P1 nebo do všech sekventů důkazu P2, tj. užitím lemmatu 3.3.9. Postupujme indukcí podle d(P1) + d(P2), tj. podle součtu hloubek obou daných důkazů. Rozebereme řadu různých případů. Nechť alespoň jeden z důkazů P1 a P2 je takový, že má nenulovou hloubku a formule θ není principální v jeho posledním kroku. Nechť tímto důkazem je například P2. Předpokládejme například, že poslední krok důkazu P2 je ∨-l, přičemž principální formule je ϕ∨ψ. Množinu levých postranních formulí v posledním kroku důkazu P2 můžeme psát ve tvaru Σ ∪ {θ}, kde θ /∈ Σ. Důkaz P2 má tedy tvar Σ, θ, ϕ ⇒ Λ e e e £ £ £ P3 Σ, θ, ψ ⇒ Λ g g g ¡ ¡ ¡ P4 Σ, θ, ϕ ∨ ψ ⇒ Λ , kde Σ∪{θ, ϕ∨ψ} = Π∪{θ}. Platí d(P3) < d(P2) a d(P4) < d(P2). To znamená, že lze užít indukční předpoklad na dvojice [P1, P3] a [P1, P4]. Existuje tedy důkaz P3 sekventu Γ, Σ, ϕ ⇒ ∆, Λ a důkaz P4 sekventu Γ, Σ, ψ ⇒ ∆, Λ , pro které platí d(P3) ≤ d(P1) + d(P3) < d(P1) + d(P2), d(P4) ≤ d(P1) + d(P4) < d(P1) + d(P2). Přitom r(P3) ≤ d(θ) a r(P4) ≤ d(θ). Pak ale Γ, Σ, ϕ ⇒ ∆, Λ e e e £ £ £ P3 Γ, Σ, ψ ⇒ ∆, Λ g g g ¡ ¡ ¡ P4 Γ, Σ, ϕ ∨ ψ ⇒ ∆, Λ je hledaný důkaz hloubky nejvýše d(P1) + d(P2) a hodnosti nejvýše d(θ), neboť z θ /∈ Π, θ /∈ Σ, z rovnosti Σ ∪ {θ, ϕ ∨ ψ} = Π ∪ {θ} a z faktu, že ϕ ∨ ψ a θ jsou různé formule, plyne Σ ∪ {ϕ ∨ ψ} = Π. Nechť alespoň jeden z důkazů P1 a P2 má nulovou hloubku. Nechť je to například P1. Pak platí Γ∩∆ = ∅ nebo θ ∈ Γ. Když θ ∈ Γ, pak sekvent Γ, Π ⇒ ∆, Λ lze získat ze sekventu Π, θ ⇒ Λ přidáním jistých formulí, a regularita důkazu P0 a lemma 3.3.9 zaručují, že přidáním těchže formulí do všech sekventů důkazu P2 vznikne důkaz P splňující d(P) = d(P2) = d(P1)+d(P2) a r(P) = r(P2). Když Γ∩∆ = ∅, pak sekvent Γ, Π ⇒ ∆, Λ je iniciální. Má tedy bezřezový důkaz hloubky nula. Podobně jako v předchozím odstavci lze uvažovat i v případě, kdy formule θ je alespoň v jednom z důkazů P1 a P2 principální formulí pravidla W. Nadále tedy 3.3 Gentzenovský predikátový kalkulus 197 předpokládejme, že oba důkazy P1 a P2 mají nenulovou hloubku a že formule θ je v obou z nich principální formulí posledního kroku. V tom případě nemůže být formule θ atomickou formulí. Uvažujme, jaký může mít tvar. Nechť θ je tvaru ϕ → ψ. Jak v posledním kroku důkazu P1, tak v posledním kroku důkazu P2 může nebo nemusí být formule θ zároveň postranní formulí. Předpokládejme, že v obou důkazech je postranní formulí — úvahy v ostatních případech jsou podobné, jen jednodušší. Důkazy P1 a P2 mají tedy tvar Γ, ϕ ⇒ ∆, ϕ → ψ, ψ e e e ¡ ¡ ¡ P3 Γ ⇒ ∆, ϕ → ψ , Π1, ϕ → ψ ⇒ Λ1, ϕ e e e £ £ £ P4 Π2, ϕ → ψ, ψ ⇒ Λ2 g g g ¡ ¡ ¡ P5 Π, ϕ → ψ ⇒ Λ , přičemž důkaz P3 má hloubku d(P1) − 1, důkazy P4 a P5 mají hloubku nejvýše d(P2) − 1, všechny tři důkazy mají hodnost nejvýše d(θ) a Π1 ∪ Π2 = Π a Λ1 ∪ Λ2 = Λ. Protože θ je ϕ → ψ, platí také d(ϕ) < d(θ) a d(ψ) < d(θ). Užijme lemma 3.3.10 na sekvent Γ, ϕ ⇒ ∆, ϕ → ψ, ψ a na formuli ϕ → ψ. Existuje důkaz P3 sekventu Γ, ϕ ⇒ ∆, ψ , jehož hloubka je nejvýše d(P1)−1 a jehož hodnost je nejvýše d(θ). Ze stejného důvodu existuje důkaz P4 sekventu Π1 ⇒ Λ1, ϕ a důkaz P5 sekventu Π2, ψ ⇒ Λ2 , přičemž oba tyto důkazy mají hloubku nejvýše d(P2) − 1 a hodnost nejvýše d(θ). Utvořme z důkazů P3 až P5 a dvojího užití pravidla řezu důkaz P: Π1 ⇒ Λ1, ϕ e e e £ £ £ P4 Γ, ϕ ⇒ ∆, ψ e e e £ £ £ P3 Π2, ψ ⇒ Λ2 g g g ¡ ¡ ¡ P5 Γ, Π2, ϕ ⇒ ∆, Λ2 Γ, Π ⇒ ∆, Λ . Pro hloubku a hodnost důkazu P platí d(P) ≤ 1 + max{d(P2) − 1, 1 + max{d(P1) − 1, d(P2) − 1}} ≤ ≤ 1 + max{d(P1), d(P2)}, r(P) ≤ max{d(θ), 1 + d(ϕ), 1 + d(ψ)} = d(θ). Platí 1 + max{d(P1), d(P2)} ≤ d(P1) + d(P2), protože oba důkazy P1 a P2 mají nenulovou hloubku. Důkaz P je tedy hledaným důkazem. Nechť formule θ je tvaru ∀xϕ. Máme důkazy tvaru Γ ⇒ ∆, ∀xϕ , e e e ¡ ¡ ¡ P1 Π, ∀xϕ, ϕx(t) ⇒ Λ e e e ¡ ¡ ¡ P3 Π, ∀xϕ ⇒ Λ , 198 3 Predikátová logika kde d(P3) = d(P2)−1 a r(P3) ≤ d(θ). Přitom opět předpokládáme složitější případ, kdy formule ∀xϕ, která je principální v posledním kroku důkazu P2, je v tomto kroku zároveň postranní formulí. Protože důkaz P0 je regulární, žádná proměnná vyskytující se v termu t není generalizována ani kvantifikována v důkazu P1. Dle lemmatu 3.3.10(b) existuje důkaz P1 sekventu Γ ⇒ ∆, ϕx(t) splňující podmínky d(P1) ≤ d(P1) a r(P1) ≤ r(P1). Důkaz P1 na chvíli odložme a vzpomeňme si, že dokazujeme indukcí podle d(P1)+d(P2). Protože d(P1)+d(P3) = d(P1)+d(P2)−1, můžeme užít indukční předpoklad na důkazy P1 a P3 a na formuli ∀xϕ: existuje důkaz P4 sekventu Γ, Π, ϕx(t) ⇒ ∆, Λ , jehož hloubka je nejvýše d(P1)+d(P2)−1 a jehož hodnost je nejvýše d(θ). Užití řezu na formuli ϕx(t): Γ ⇒ ∆, ϕx(t) e e e £ £ £ P1 Γ, Π, ϕx(t) ⇒ ∆, Λ g g g g g ¡ ¡ ¡ ¡ ¡ P4 Γ, Π ⇒ ∆, Λ dává důkaz P, pro jehož hloubku a hodnost platí d(P) ≤ 1 + max{d(P1), d(P1) + d(P2) − 1} = d(P1) + d(P2), r(P) ≤ max{d(θ), 1 + d(ϕx(t))} = d(θ). Důkaz P je tedy hledaným důkazem. Zbývající případy, kdy formule θ je tvaru ϕ&ψ, ϕ∨ψ, ¬ϕ nebo ∃xϕ, jsou analogické probraným a ponecháváme je za cvičení. QED Lemma 3.3.12 Nechť P je regulární důkaz nenulové hodnosti. Pak existuje důkaz P téhož sekventu, pro který platí r(P ) < r(P) a d(P ) ≤ 2d(P) . Důkaz Postupujme indukcí podle hloubky důkazu P. Maximální hloubka kterékoliv formule, na niž je v důkazu P užit řez, je r(P)−1. Označme S finální sekvent důkazu P. Sekvent S je krokem tvaru S1 / S odvozen ze sekventu S1, který je finálním sekventem důkazu P1, nebo je krokem tvaru S1, S2 / S odvozen ze sekventů S1 a S2, které jsou finálními sekventy důkazů P1 a P2. Bez újmy na obecnosti předpokládejme druhý případ. Každý z důkazů P1 a P2 má hloubku nejvýše d(P) − 1. Dle indukčního předpokladu existují důkazy P1 a P2 sekventů S1 a S2 splňující pod-E mínky r(P1) < r(P), r(P2) < r(P), d(P1) ≤ 2d(P)−1 , d(P2) ≤ 2d(P)−1 . Označme P0 důkaz, který vznikne z důkazů P1 a P2 provedením téhož kroku, kterým končí důkaz P, tj. kterým je v důkazu P odvozen sekvent S. Je-li tímto posledním krokem důkazu P řez na formuli hloubky menší než r(P) − 1, nebo není-li to řez, je důkaz P0 hledaným důkazem P , neboť pro jeho hodnost a hloubku platí r(P0) < r(P) a d(P0) = 1 + max{d(P1), d(P2)} ≤ 1 + 2d(P)−1 ≤ 2d(P) . Předpokládejme tedy, že posledním krokem důkazu P (a tedy i důkazu P0) je řez na formuli θ, která má maximální možnou hloubku r(P) − 1. V tom případě platí 3.3 Gentzenovský predikátový kalkulus 199 r(P1) ≤ d(θ) a r(P2) ≤ d(θ). Protože důkaz P je regulární, S je regulární sekvent. Díky lemmatu 3.3.7 tedy můžeme předpokládat, že důkaz P0 je regulární. Dle lemmatu 3.3.11 existuje důkaz P sekventu S, pro jehož hloubku a hodnost platí r(P ) ≤ d(θ) = r(P) − 1 a d(P ) ≤ d(P1) + d(P2) ≤ 2d(P)−1 + 2d(P)−1 = 2d(P) . QED Definujme superexponenciální funkci [n, k] → 2n k rekurzí: 2n 0 = n, 2n k+1 = 22n k . Nyní jsme připraveni vyslovit větu o eliminovatelnosti řezů. Věta 3.3.13 (o eliminovatelnosti řezů) Má-li sekvent S regulární důkaz P, pak týž sekvent má i bezřezový důkaz hloubky nejvýše 2 d(P) r(P) . Důkaz Indukcí dle hodnosti r(P) důkazu P a užitím lemmatu 3.3.12. QED Důkaz věty o eliminovatelnosti řezů, který jsme uvedli, je s úpravami převzat z Kleeneho knihy [49], z Takeutiho knihy [91] a ze Schwichtenbergovy kapitoly [76]. V knize [49] se neuvažuje o hloubkách důkazů. Odhad 2 d(P) r(P) pro hloubku důkazu P vzniklého z důkazu P odstraněním řezů je stanoven v kapitole [76], tam se ale pracuje se zvlášť upraveným (zjednodušeným) kalkulem. Lze dokázat, že mez 2 d(P) r(P) je optimální nebo blízká optimální. Přístupný důkaz, viz [69], nalezl P. Pudlák. Pudlákův důkaz je také vypracován v diplomové práci [53]. Věta o eliminovatelnosti řezů spolu s faktem, že odhad 2 d(P) r(P) je blízký optimálnímu, dává odpověď na otázku položenou v úvodu tohoto oddílu, zda v definici důkazu je nutné připustit uvažování oklikou. Není to nutné, avšak správně zvolené okliky (tj. formule, na které jsou užity řezy) mohou některé důkazy velmi výrazně zkrátit. Dále uvádíme několik často citovaných důsledků věty o eliminovatelnosti řezů. Věta 3.3.14 (Hilbertova-Ackermannova) Nechť θ je otevřená formule taková, že formule ∃xθ je logicky platná. Pak existují termy t1, . . , tn takové, že disjunkce θx(t1) ∨ . . ∨ θx(tn) je logicky platná. Důkaz Sekvent ⇒ ∃xθ je regulární, logicky platný, a tedy dokazatelný. Nechť tedy P je jeho bezřezový důkaz. Z věty 3.3.4 víme, že každá formule v P je s-podformulí formule ∃xθ. Z toho plyne, že v P se nevyskytuje žádná formule obsahující univerzální kvantifikátor, a že tedy v P není užito pravidlo ∀-l ani ∀-r. Dále je zřejmé, že formule ∃xθ není nikdy vstupní formulí jakéhokoliv pravidla, jinak by totiž vznikla formule, která obsahuje kvantifikátor ∃x v rozsahu platnosti nějakého dalšího logického symbolu, čili formule, která není s-podformulí formule ∃xθ. Jakákoliv formule vyskytující se v P v antecedentu může z antecedentu zmizet pouze (tak, že se stane s-podformulí nějaké formule, která z antecedentu zmizí) užitím některého z pravidel →-r nebo ¬-r. Protože žádná s-podformule formule ∃xθ neobsahuje existenční kvantifikátor v rozsahu platnosti implikace ani negace (ani jiného logického symbolu), můžeme usoudit, že v P není užito pravidlo ∃-l a že formule ∃xθ 200 3 Predikátová logika není principální formulí žádného iniciálního sekventu (bez ohledu na to, zda připouštíme neatomické formule jako principální formule iniciálních sekventů). V P se mohou (a ovšem musí) vyskytovat užití pravidla ∃-r. Principální formulí každého takového kroku ale musí být formule ∃xθ, a tedy každá vstupní formule takového kroku musí mít tvar θx(t) pro jistý term t. Nechť Ω je množina všech vstupních formulí pravidla ∃-r, nechť θx(t1), . . , θx(tn) jsou všechny její prvky. Pro libovolný sekvent S tvaru Γ ⇒ ∆ označme S sekvent Γ ⇒ Ω, ∆ − {∃xθ} . Když S je iniciální sekvent našeho důkazu P, pak S je opět iniciální sekvent. Když sekvent S je užitím výrokového kroku odvozen ze sekventu S1 nebo ze dvou sekventů S1 a S2, pak sekvent S je tímtéž krokem odvoditelný ze sekventu S1 resp. ze sekventů S1 a S2. Když sekvent S je jedním krokem odvozen ze sekventu S1 pomocí pravidla ∃-r nebo pravidla W, pak S a S1 jsou tytéž sekventy nebo je sekvent S odvoditelný ze sekventu S1 pomocí pravidla W. To znamená, že pro každý sekvent S důkazu P platí, že sekvent S je dokazatelný (a logicky platný). Pro finální sekvent ⇒ ∃xθ to znamená, že sekvent ⇒ Ω je logicky platný, a že tedy disjunkce θx(t1) ∨ . . ∨ θx(tn) je logicky platná. QED K větě 3.3.14 ještě poznamenejme, že z cvičení 22 a 23 oddílu 3.1 plyne, že nelze požadovat, aby term t byl pouze jeden, a také že předpoklad, že formule θ je otevřená, je podstatný. Následující lemma 3.3.15 a větu 3.3.16 by bylo možno formulovat a dokazovat pohodlněji, kdybychom mezi logickými symboly měli symbol ⊥ pro nepravdu. Kvůli dvěma tvrzením ale seznam logických symbolů neměňme a místo toho se domluvme, že ⊥ označuje pevně zvolenou vyvratitelnou sentenci (toho jazyka, se kterým pracujeme). Lemma 3.3.15 Nechť Γ1, Γ2 ⇒ ∆1, ∆2 je regulární a logicky platný sekvent. Pak existuje formule θ taková, že ◦ oba sekventy Γ1 ⇒ ∆1, θ a Γ2, θ ⇒ ∆2 jsou logicky platné, ◦ formule θ je jednou z formulí ⊥, ¬⊥, nebo má vlastnost, že každý predikátový symbol, který se v ní vyskytuje, se současně vyskytuje v obou sekventech Γ1 ⇒ ∆1 a Γ2 ⇒ ∆2 , ◦ každá volná proměnná formule θ se současně vyskytuje volně v obou sekventech Γ1 ⇒ ∆1 a Γ2 ⇒ ∆2 . Důkaz Nechť je dán sekvent Γ1, Γ2 ⇒ ∆1, ∆2 . Vezměme jeho bezřezový důkaz P a postupujme indukcí podle hloubky d(P) důkazu P. Je-li d(P) = 0, pak (Γ1 ∪ Γ2) ∩ (∆1 ∪ ∆2) = ∅. Je-li množina Γ1 ∩ ∆1 neprázdná, volme θ := ⊥. Je-li množina Γ2 ∩ ∆2 neprázdná, volme θ := ¬⊥. Je-li množina Γ1 ∩ ∆2 neprázdná, volme za formuli θ kterýkoliv její prvek, a je-li množina Γ2 ∩∆1 neprázdná, volme za formuli θ negaci kteréhokoliv jejího prvku. V obou případech je splněn požadavek na predikátové symboly a volné proměnné. Nechť dále důkaz P má nenulovou hloubku. Předpokládejme, že jeho poslední krok má tvar Γ, α ⇒ ∆ , Γ, β ⇒ ∆ / Γ, α ∨ β ⇒ ∆ a že jsou dány množiny Γ1, 3.3 Gentzenovský predikátový kalkulus 201 Γ2, ∆1 a ∆2 takové, že ∆1 ∪∆2 = ∆ a Γ1 ∪Γ2 = Γ∪{α∨β}. Označme Γ1 = Γ1 ∩Γ a Γ2 = Γ2 ∩ Γ. Platí Γ1 ∪ Γ2 = Γ. Dále platí α ∨ β ∈ Γ1 nebo α ∨ β ∈ Γ2. Předpokládejme třeba druhý případ. Poslední krok důkazu P si tedy můžeme představit takto: Γ1, α, Γ2 ⇒ ∆1, ∆2 Γ1, β, Γ2 ⇒ ∆1, ∆2 Γ1, α ∨ β, Γ2 ⇒ ∆1, ∆2 . Přitom složená závorka dole naznačuje, že ve sjednocení, které je dáno, formule α∨β patří k druhé množině Γ2, kdežto složené závorky nahoře naznačují, že formuli α resp. formuli β jsme se tudíž rozhodli přiřadit rovněž k množině Γ2. Dle indukčního předpokladu užitého na horní sekventy existují formule η a λ takové, že formule η je jednou z formulí ⊥, ¬⊥, nebo obsahuje pouze takové predikátové symboly a volné proměnné, které se současně vyskytují (volně) v obou sekventech Γ1 ⇒ ∆1 a Γ2, α ⇒ ∆2 , formule λ je jednou z formulí ⊥, ¬⊥, nebo obsahuje pouze takové predikátové symboly a volné proměnné, které se současně vyskytují (volně) v obou sekventech Γ1 ⇒ ∆1 a Γ2, β ⇒ ∆2 , a sekventy Γ1 ⇒ ∆1, η , Γ2, α, η ⇒ ∆2 , Γ1 ⇒ ∆1, λ , Γ2, β, λ ⇒ ∆2 jsou všechny logicky platné (dokazatelné). Z prvního a třetího lze odvodit sekvent Γ1 ⇒ ∆1, η & λ , ze zbývajících lze odvodit sekvent Γ2, α ∨ β, η & λ ⇒ ∆2 , tj. sekvent Γ2, η&λ ⇒ ∆2 . Není-li žádná z formulí η a λ totožná s žádnou z formulí ⊥ a ¬⊥, volme θ := η & λ. Je-li některá z formulí η a λ totožná s formulí ⊥, volme za θ formuli ⊥. Jsou-li obě z formulí η a λ totožné s formulí ¬⊥, volme θ := ¬⊥. Formule θ je ve všech případech ekvivalentní s formulí η & λ a splňuje požadavky. V případě, kdy α ∨ β ∈ Γ1, a také v případech, kdy je v posledním kroku důkazu P užito jiné výrokové pravidlo než ∨-l, se postupuje podobně. Předpokládejme, že v posledním kroku důkazu P je užito pravidlo ∀-l, že máme dány množiny Γ1, Γ2, ∆1 a ∆2 podobně jako v předchozích případech a že pro principální formuli ∀xα posledního kroku opět platí ∀xα ∈ Γ2. Poslední krok důkazu P si tedy můžeme představit takto: Γ1, αx(t), Γ2 ⇒ ∆1, ∆2 Γ1, ∀xα, Γ2 ⇒ ∆1, ∆2 , kde množiny Γ1 a Γ2 se vztahují k daným množinám Γ1 a Γ2 analogicky jako ve výše probraném případě týkajícím se pravidla ∨-l. Dle indukčního předpokladu existuje formule λ, která je jednou z formulí ⊥, ¬⊥, nebo obsahuje pouze predikátové symboly a volné proměnné, které se současně vyskytují (volně) v obou sekventech Γ1 ⇒ ∆1 a Γ2, αx(t) ⇒ ∆2 , a přitom sekventy Γ1 ⇒ ∆1, λ a Γ2, αx(t), λ ⇒ ∆2 202 3 Predikátová logika jsou oba logicky platné. Nechť v1, . . , vk je seznam všech proměnných, které se vyskytují volně ve formuli αx(t), ale nikoliv v sekventu Γ2, ∀xα ⇒ ∆2 . Z levého sekventu lze odvodit sekvent Γ1 ⇒ ∆1, ∃v1 . . ∃vkλ , z pravého lze odvodit sekvent Γ2, ∀xα, ∃v1 . . ∃vkλ ⇒ ∆2 , tj. sekvent Γ2, ∃v1 . . ∃vkλ ⇒ ∆2 . Když λ je některá z formulí ⊥, ¬⊥, pak ∃v1 . . ∃vkλ a λ jsou ekvivalentní formule a lze volit θ := λ. Jinak volme θ := ∃v1 . . ∃vkλ. Podívejme se ještě třeba na případ Γ1, αx(y), Γ2 ⇒ ∆1, ∆2 Γ1, ∃xα, Γ2 ⇒ ∆1, ∆2 , kdy v posledním kroku důkazu P je užito pravidlo ∃-l a jeho principální formule je v rozkladu počítána k levé množině Γ1. Indukční předpoklad dává formuli λ, která je jednou z formulí ⊥, ¬⊥, nebo obsahuje pouze predikátové symboly a volné proměnné, které se současně vyskytují (volně) v sekventech Γ1, αx(y) ⇒ ∆1 a Γ2 ⇒ ∆2 , a přitom sekventy Γ1, αx(y) ⇒ ∆1, λ a Γ2, λ ⇒ ∆2 jsou oba logicky platné. Protože proměnná y se nevyskytuje volně v λ (jinak by se musela vyskytovat volně v Γ2 ∪∆2 a v kroku ∃-l by nebyla splněna podmínka EVC), je sekvent Γ1, ∃xα ⇒ ∆1, λ logicky platný a formuli λ můžeme bez dalších úprav prohlásit za hledanou formuli θ. QED Věta 3.3.16 Nechť formule ϕ→ψ je regulární a logicky platná. Pak jedna z formulí ¬ϕ a ψ je logicky platná, nebo existuje formule θ taková, že obě formule ϕ → θ a θ → ψ jsou logicky platné, a přitom formule θ obsahuje pouze takové predikátové symboly a volné proměnné, které se současně vyskytují (volně) ve ϕ i v ψ. Důkaz Zvolme Γ1 = {ϕ}, ∆2 = {ψ}, Γ2 = ∆1 = ∅. Vezměme formuli θ, jejíž existenci zaručuje lemma 3.3.15. Když θ je ⊥ nebo ¬⊥, pak ¬ϕ nebo ψ je logicky platnou formulí. QED Platí i silnější tvrzení než věta 3.3.16, v němž stojí „mimologické symboly místo „predikátové symboly . Tomuto silnějšímu tvrzení se říká Craigova věta o interpolaci. Větu 3.3.16 tedy můžeme označit jako slabou větu o interpolaci. Také lemma 3.3.15 lze považovat za variantu věty o interpolaci. Postup, kterým jsme dokázali větu 3.3.16, přes důkaz lemmatu 3.3.15, je v [91] označen jako Maeharova metoda. Rozšiřme nyní kalkulus GK na kalkulus pro predikátovou logiku s rovností, a to podobným způsobem, jako když jsme v oddílu 3.2 rozšířili kalkulus HK na kalkulus HKe. Kromě iniciálních sekventů tvaru A (tj. takových, jejichž antecedent a sukcedent mají neprázdný průnik) připusťme ještě následující iniciální sekventy týkající se rovnítka: 3.3 Gentzenovský predikátový kalkulus 203 e1: ⇒ t = t , e2: t = s ⇒ s = t , e3: t = s, s = u ⇒ t = u , e4: t1 = s1, . . , tn = sn ⇒ F(t) = F(s) , e5: t1 = s1, . . , tn = sn, P(t) ⇒ P(s) , kde t, s, u, ti, si jsou libovolné termy, F libovolný funkční symbol a P libovolný predikátový symbol (zvoleného jazyka). Výsledný kalkulus označme GKe. Podobně jako v případě kalkulu HKe lze ukázat, že iniciální sekventy tvaru e2 a e3 jsou zbytečné, pokud e5 chápeme tak, že predikát P může být i rovnítko. Dále libovolný sekvent Γ ⇒ ∆ je dokazatelný v kalkulu GKe právě tehdy, když existuje konečná množina F ⊆ E taková, že sekvent Γ, F ⇒ ∆ je dokazatelný v kalkulu GK, přičemž E je množina axiomů rovnosti definovaná v oddílu 3.2. Kalkulus GKe je vzájemně polynomiálně simulovatelný s kalkulem HKe. Ověření všech těchto faktů ponecháváme za cvičení. Lze ověřit, že například sekvent x = y, x = z ⇒ y = z není iniciálním sekventem ani v případě, kdy predikát P v iniciálním sekventu e5 může být i rovnítko. Tento sekvent tedy v kalkulu GKe nelze dokázat bez užití řezů. Znění věty o eliminovatelnosti řezů musíme pro kalkulus GKe trochu upravit. Definujme, že řez v nějakém důkazu P je nepodstatný (tj. užití pravidla řezu v důkazu P je nepodstatné), jestliže jeho vstupní formule je rovnost, tj. formule tvaru t = s pro jisté termy t a s. Ostatní řezy jsou podstatné. Věta 3.3.17 Každý regulární sekvent dokazatelný v kalkulu GKe je v kalkulu GKe dokazatelný i bez užití podstatných řezů. Důkaz Tentokrát pro jednoduchost neuvažujeme o hloubkách důkazů. Postup, který jsme ukázali pro kalkulus GK, lze následovně modifikovat pro kalkulus GKe. V tom místě důkazu lemmatu 3.3.11, kde jsme se starali o případ, kdy důkazy P1 a P2 mají oba nenulovou hloubku a formule θ je v obou z nich principální, uvažujme navíc případ, kdy formule θ není rovnost, a přitom je v obou důkazech principální formulí iniciálního sekventu tvaru e1–e5. Formule θ musí být tvaru P(t), kde P není rovnítko, oba iniciální sekventy musí být tvaru e5, důkazy P1 a P2 mají hloubku nula a důkaz P0 má tvar s1 = t1, . . , sn = tn, P(s) ⇒ P(t) t1 = u1, . . , tn = un, P(t) ⇒ P(u) s1 = t1, t1 = u1, . . , sn = tn, tn = un, P(s) ⇒ P(u) . Požadovaný důkaz neobsahující podstatné řezy získáme tak, že vezmeme iniciální sekvent s1 = u1, . . , sn = un, P(s) ⇒ P(u) , dále vezmeme n iniciálních sekventů tvaru si = ti, ti = ui ⇒ si = ui a formule s1 = u1 až sn = un odstraníme pomocí n (nepodstatných) řezů. QED 204 3 Predikátová logika Věta 3.3.18 Nechť ϕ je sentence dokazatelná v teorii T. Pak ϕ má gentzenovský důkaz v T, tj. sekvent tvaru F ⇒ ϕ , kde F ⊆ T je konečná, má důkaz v kalkulu GKe, v němž se nevyskytují jiné formule než rovnosti a s-podformule prvků množiny T ∪ {ϕ}. Důkaz Máme sekvent F ⇒ ϕ , který je dokazatelný v kalkulu GKe a pro který platí F ⊆ T. Protože všechny jeho formule jsou sentence, tento sekvent je regulární. Existuje tedy důkaz P téhož sekventu, který neobsahuje podstatné řezy. Větu 3.3.4 lze snadno zobecnit do této podoby: každá formule v jakémkoliv důkazu P je s-podformulí některé formule ψ takové, že ψ je v P obsažena ve finálním sekventu nebo je na ni použit řez. QED Cvičení 1. Nalezněte příklady na to, že všechny tři požadavky v podmínce EVC, totiž že y nemá volné výskyty v Γ, v ∆ ani v ∃xϕ, jsou podstatné. Vysvětlete, proč třetí požadavek nezní „y nemá volné výskyty ve ϕ . 2. Sestrojte důkazy všech logických axiomů kalkulu HK, tj. všech formulí tvaru A1–A7 a B1 a B2, v kalkulu GK. 3. V důkazu věty 3.3.1 byla dokázána korektnost pravidla ∃-l. Dokončete důkaz věty, tj. dokažte korektnost všech ostatních pravidel kalkulu GK. 4. Zdůvodněte, že věta 3.3.2 platí i v případě, kdy délka |P| důkazu P je definována jako souhrnný počet výskytů všech symbolů (včetně číslic vyskytujících se v indexech proměnných) v důkazu P. 5. Vypracujte všechny vynechané případy v důkazech lemmat 3.3.10 a 3.3.11. 6. Rozhodněte, zda platí: každá s-podformule regulární formule je regulární. 7. Každý regulární sekvent má důkaz, ve kterém není užito pravidlo W. Dokažte. 8. Zdůvodněte, že platí tato varianta věty 3.3.4: každá formule v libovolném důkazu P je s-podformulí nějaké formule, která je v důkazu P obsažena ve finálním sekventu nebo která je v důkazu P vstupní formulí některého užití pravidla řezu. 9. Dokažte větu o středním sekventu: každý regulární logicky platný sekvent, jehož všechny formule jsou prenexní, má bezřezový důkaz P, v němž všechna užití výrokových pravidel předcházejí všechna užití kvantifikátorových pravidel. Středním sekventem je míněn poslední (nejnižší) sekvent S v důkazu P, který neobsahuje kvantifikátory. Tento sekvent S je tautologický a přitom finální sekvent důkazu P lze ze sekventu S získat pouze užitím kvantifikátorových kroků. 3.3 Gentzenovský predikátový kalkulus 205 Návod. Začněte s bezřezovým důkazem P, v němž není užito pravidlo W. Definujte řád kvantifikátorového kroku jako počet všech výrokových kroků, které po něm (tj. na cestě k finálnímu sekventu důkazu P) následují. Dále definujte řád důkazu jako součet řádů všech kvantifikátorových kroků. Má-li důkaz P nenulový řád, lze v něm nalézt nejnižší kvantifikátorový krok s nenulovým řádem. Bezprostředně následující krok musí být výrokový. Protože principální formule tohoto kvantifikátorového kroku není vstupní formulí onoho bezprostředně následujícího výrokového kroku, lze pořadí obou kroků zaměnit. Toto zdůvodněte podrobně, probráním všech možných případů. Důkaz vzniklý záměnou obou kroků má nižší řád. 10. Navrhněte alternativní důkaz věty 3.3.14 založený na předchozím cvičení. 11. Zdůvodněte, že předpoklad ve větě 3.3.16, že formule ϕ → ψ je regulární, není podstatný. 12. Zdůvodněte, že ve větě 3.3.16 a v lemmatu 3.3.15 lze psát „predikátové symboly a konstanty místo „predikátové symboly . 13. Nechť L1 a L2 jsou jazyky bez funkčních symbolů, nechť T1 je bezesporná teorie v jazyce L1, nechť T2 je bezesporná teorie v jazyce L2 a nechť neexistuje sentence ϕ v jazyce L1 ∩L2, která je dokazatelná v T1 a vyvratitelná v T2. Pak T1 ∪T2 je bezesporná teorie. Toto tvrzení lze označit jako variantu Robinsonovy věty o bezespornosti. Dokažte je převedením na lemma 3.3.15. Návod. Když T1∪T2 je sporná, pak existují konečné množiny F1 ⊆ T1 a F2 ⊆ T2 takové, že sekvent F1, F2 ⇒ je logicky platný. 14. Dokažte, že věta 3.3.14 platí i pro predikátovou logiku s rovností. 15. Dokažte, že pro predikátovou logiku s rovností platí varianta věty 3.3.16 tohoto znění: když formule ϕ → ψ je logicky platná, pak existuje formule θ, jejíž všechny predikátové symboly s výjimkou rovnítka se současně vyskytují v obou formulích ϕ a ψ, jejíž všechny volné proměnné se současně vyskytují volně v obou formulích ϕ a ψ, a přitom formule ϕ → θ a θ → ψ jsou logicky platné. Návod. Za formuli ⊥ vezměte třeba sentenci ∃x(x = x). Formulujte a dokažte příslušnou variantu lemmatu 3.3.15. 3.4 Vlastnosti modelů a teorií V tomto oddílu budeme klást důraz na užití sémantických metod. Jinými slovy, ukážeme, že některé vlastnosti axiomatických teorií lze zjistit úvahami o strukturách, modelech a vyplývání. Naším nejdůležitějším nástrojem bude věta o kompaktnosti (klasické) predikátové logiky s rovností. 206 3 Predikátová logika Věta 3.4.1 (o kompaktnosti) Nechť T je teorie. Pak (a) Když T |= ϕ, pak existuje konečná množina F ⊆ T taková, že F |= ϕ. (b) Když každá konečná množina F ⊆ T má model, pak T má model. Důkaz Nechť T |= ϕ. Podle věty o silné úplnosti platí T ϕ. Existuje tedy důkaz formule ϕ z předpokladů T. Důkaz je definován jako jistá konečná posloupnost formulí. Za množinu F tedy můžeme vzít množinu všech těch prvků množiny T, které se vyskytují v našem důkazu. Platí F ϕ, a tedy F |= ϕ. Nechť T nemá žádný model. V tom případě lze o jakékoliv formuli ϕ říci, že platí v každém modelu teorie T, tj. že T |= ϕ. Zvolme za ϕ sentenci ∃x(x = x). Podle tvrzení (a) existuje konečná F ⊆ T taková, že F |= ∃x(x = x). O sentenci ∃x(x = x) je jasné, že neplatí v žádné struktuře. Dále o ní víme, že platí v každém modelu teorie F. Tedy F nemá žádný model. QED Všimněme si, že věta o kompaktnosti je čistě sémantické tvrzení, kterému rozumí každý, kdo rozumí Tarského definici a definici vyplývání. Logický kalkulus není nutný k pochopení znění věty o kompaktnosti. Uplatnil se ale v důkazu. Každé axiomatické teorii T s jazykem L odpovídá třída všech jejích modelů, tj. třída všech struktur pro jazyk L, ve kterých platí všechny axiomy teorie T. Představme si však, že úvahy začneme nikoliv od teorie, nýbrž od nějaké třídy E struktur pro daný jazyk, a položíme si otázku: je E třídou všech modelů nějaké teorie T? Existuje-li k třídě E teorie T taková, že E je třídou všech modelů teorie T, řekneme, že E je axiomatizovatelná nebo že E je elementární třídou. Ptáme se tedy: • Je každá třída E struktur pro nějaký jazyk L elementární třídou? Tato otázka má smysl jen v případě, kdy třída E s každým svým prvkem D obsahuje i všechny struktury izomorfní s D. V opačném případě triviální odpověď zní ne. S jedním netriviálním případem, tj. s případem, kdy E obsahuje s každou strukturou všechny s ní izomorfní struktury, a přesto není axiomatizovatelná, jsme se již setkali. Víme, viz 3.2.13, že je-li L nejvýše spočetný jazyk, pak každá bezesporná teorie v L má nejvýše spočetný model. To znamená, že libovolná elementární třída obsahující všechny nespočetné struktury obsahuje také nějaké nejvýše spočetné struktury. Třída všech nespočetných struktur pro jazyk L tedy není elementární třídou. Fakt, že je-li jazyk L nejvýše spočetný, pak třída všech nespočetných struktur pro L není elementární třídou, lze také formulovat takto: vlastnost „býti nespočetnou strukturou nelze vyjádřit pomocí sentencí jazyka L. Z následující věty plyne, že ani vlastnost „býti konečnou strukturou nelze vyjádřit pomocí sentence ani pomocí množiny sentencí (v tomto případě bez ohledu na mohutnost jazyka). Věta 3.4.2 Nechť T je teorie a nechť pro každé přirozené číslo n existuje model teorie T, jehož nosná množina má více než n prvků. Pak T má i nekonečné modely. Důkaz Označme γn sentenci ∀x1 . . ∀xn∃y(y = x1 & . . & y = xn) (stejně jako v příkladu 3.1.19(f)). I když nemáme žádný bližší údaj o jazyce teorie T, můžeme 3.4 Vlastnosti modelů a teorií 207 tvrdit, že γn je sentence jazyka teorie T, protože γn neobsahuje žádné mimologické symboly. Sentence γn platí v libovolné struktuře D právě tehdy, když (nosná množina D struktury) D má více než n prvků. Označme S = { γn ; n ≥ 1 }. Tvrdíme, že je-li F ⊆ S a F je konečná, pak teorie T ∪ F má nějaký model. Nechť konečná F ⊆ S je dána. Označme γn1 , . . , γnr prvky množiny F a označme m = max{n1, . . , nr}. Podle předpokladu existuje nějaký model M teorie T, který má více než m prvků. V M platí γm, a tedy i všechny γni . Tedy M |= T ∪ F. Je-li F ⊆ T ∪ S a F je konečná, pak F = F1 ∪ F2, kde F1 ⊆ T a F2 ⊆ S. Přitom F1 a F2 jsou konečné. Podle podmínky dokázané v předchozím odstavci existuje model M teorie T ∪F2. Protože F1 ⊆ T, platí také M |= F1 ∪F2, tedy M |= F. Tím jsme ověřili, že každá konečná F ⊆ T ∪ S má model. Podle věty o kompaktnosti teorie T ∪ S má nějaký model K. Struktura K je model teorie T, ve kterém platí všechny sentence γn. Je jasné, že struktura, ve které platí všechny sentence γn, musí být nekonečná. K je tedy hledaný nekonečný model teorie T. QED Množina sentencí S, která se vyskytla v předchozí větě, platí v libovolné struktuře D právě tehdy, když D je nekonečná. Vedlejším produktem předchozí věty je tedy pozorování, že vlastnost „býti nekonečnou strukturou je možné vyjádřit množinou sentencí (bez ohledu na jazyk). Tím jsme zároveň zjistili, že komplement nějaké elementární třídy E, tj. třída všech struktur pro daný jazyk L, které nejsou v E, nemusí být elementární třídou. Ukažme si ještě další příklady toho, kdy o nějaké třídě struktur lze dokázat, že není elementární, neboli kdy o nějaké vlastnosti (struktur) lze dokázat, že není vyjádřitelná v příslušném jazyce. Uvažujme jazyk {<} s jediným binárním predikátem a struktury tvaru D, R , kde D je (neprázdná) množina a R je binární relace na D. Vlastnost, že D, R je lineárně uspořádanou množinou, vyjádřit lze. Teorie, jejímiž modely jsou právě ty struktury D, R , které jsou lineárně uspořádanými množinami, je teorie LO, tj. teorie lineárního uspořádání definovaná v závěru oddílu 3.2. Uvažujme nyní vlastnost, že D, R je dobře uspořádanou množinou, tj. že D, R je lineárně uspořádanou množinou, jež navíc splňuje podmínku ∀X ⊆ D(X = ∅ ⇒ ∃a ∈ X¬∃b ∈ X(b R a)), (∗) která říká, že každá neprázdná podmnožina množiny D má R-minimální prvek. Struktura N, < přirozených čísel s uspořádáním je příkladem dobře uspořádané množiny. Také libovolné ordinální číslo je dobře uspořádané relací ∈ (tj. relací náležení). Každá konečná lineárně uspořádaná množina je dobře uspořádanou množinou. Z následující věty plyne, že podmínku (∗) nelze vyjádřit v jazyce {<}. Třída všech dobře uspořádaných množin není elementární třídou. Věta 3.4.3 Nechť T je teorie s jazykem L obsahujícím binární predikátový symbol < a nechť T má nekonečný model M takový, že M, m, pak se konstanta ci nevyskytuje v T ∪ F, a můžeme ji tedy realizovat libovolným prvkem nosné množiny M struktury M. Zvolme prvky a0, . . , am struktury M tak, aby platilo a0 0 }. Je-li y1 ∈ A a y2 ∈ B, pak y1 = f(x1) pro jisté x1 < 0 a y2 = f(x2) pro jisté x2 > 0. Protože f zachovává uspořádání, platí y1 < y2. Tím jsme ověřili, že libovolný prvek množiny A je menší než libovolný prvek množiny B. Množina A nemá maximum, protože když y ∈ A, y = f(x) a x < 0, pak x < x 2 < 0, a tedy f(x 2 ) je prvek množiny A větší než y. Z analogického důvodu B nemá minimum. Tím jsme dospěli ke sporu: z věty o supremu plyne, že jsou-li A a B neprázdné navzájem komplementární množiny reálných čísel takové, že všechny prvky množiny A jsou menší než všechny prvky množiny B, pak A má maximum nebo B má minimum. Příklad 3.4.11 Nechť L je prázdný jazyk (tedy všechny formule jazyka L jsou sestaveny z atomických formulí tvaru x = y). Pak struktura pro L je plně určena svou nosnou množinou. Je-li f libovolná vzájemně jednoznačná funkce z množiny D1 na množinu D2, pak f je automaticky izomorfismus, protože f zachovává realizace všech symbolů jazyka L. Pokud D1 a D2 mají stejnou mohutnost, pak vzájemně 214 3 Predikátová logika jednoznačná funkce z D1 na D2 existuje. Tím je ověřeno, že libovolná teorie T s prázdným jazykem je κ-kategorická pro každý nekonečný kardinál κ. Příklad 3.4.12 Rozmysleme si, že teorie DNO je ℵ0-kategorická. Nechť A, <1 a B, <2 jsou libovolné dva její spočetné modely. Očíslujme jejich nosné množiny: A = {a0, a1, a2, . . . }, B = {b0, b1, b2, . . . }. Izomorfismus f : A → B obou struktur sestrojíme jako sjednocení spočetně mnoha konečných funkcí f0 ⊆ f1 ⊆ . . . Posloupnost { fn ; n ∈ N } konstruujme rekurzí. Položme f0 = ∅. V kroku 2n máme konečné množiny C ⊆ A a D ⊆ B a prostou funkci f2n z C na D. Přitom platí {a0, . . , an−1} ⊆ C, {b0, . . , bn−1} ⊆ D a pro libovolná c1, c2 ∈ C platí f2n(c1) <2 f2n(c2), právě když c1 <1 c2. Uvažujme o an. Pokud an ∈ C, neděláme nic a položíme f2n+1 = f2n. Pokud an /∈ C, určíme polohu prvku an vůči prvkům množiny C. Když an je větší než všechny, zvolíme za jeho obraz libovolný prvek b množiny B větší než všechny prvky množiny D. To lze, žádný prvek množiny D není maximální v B, protože struktura B, <2 žádné maximum nemá. Podobně postupujeme, když an je menší než všechny prvky množiny C. Zbývá případ, kdy některé prvky množiny C jsou menší a některé větší než an. Tehdy označme c1 největší z oněch menších a c2 nejmenší z oněch větších. Platí tedy c1 <1 an <1 c2. Zvolme b libovolně tak, aby platilo f2n(c1) <2 b <2 f2n(c2). To lze, interval (f2n(c1), f2n(c2)) je neprázdný, protože B, <2 je hustě uspořádaná množina. Nakonec položme f2n+1 = f2n ∪ {[an, b]}. Zcela analogicky postupujme v kroku 2n + 1: není-li bn v D, zvolíme a ∈ A tak, aby funkce f2n+2 = f2n+1 ∪ {[a, bn]} neporušovala uspořá- dání. Příklad 3.4.13 Z komentáře k obrázku 3.4.1 je jasné, že teorie SUCC není ℵ0-kategorická. Udělejme si lepší představu, jak vypadají její modely. Nechť D = D, e, f je libovolný model teorie SUCC. Tedy e ∈ D a f : D → D. Z platnosti axiomů plyne, že f je prostá funkce a pro její obor hodnot platí Rng(f) = D − {e}. Definujme na D relaci ∼ takto: a ∼ b, jestliže některý prvek dvojice {a, b} je z druhého dosažitelný konečně mnoha skoky funkce f. Relace ∼ je ekvivalence (cvičení: jak toto plyne z platnosti axiomů teorie SUCC v D?) a každá třída rozkladu je nekonečná (cvičení: jak toto plyne . . . ). Třída rozkladu obsahující e je izomorfní se strukturou N, 0, s , každá jiná třída rozkladu je izomorfní se strukturou Z, s . Jiné třídy ovšem nemusí existovat. Pokud ale celá množina D má nespočetnou mohutnost κ, třídy izomorfní se Z, s existovat musí a musí jich být κ. Sjednocení méně než κ spočetných množin má totiž mohutnost menší než κ a sjednocení více než κ disjunktních neprázdných množin má naopak mohutnost větší než κ. Model D mohutnosti κ má tedy jedinou možnou podobu: κ kopií struktury Z, s plus jedna kopie struktury N, 0, s . Tím jsme dokázali, že teorie SUCC je κ-kategorická pro každý nespočetný kardinál κ. Příklad 3.4.14 Rozmysleme si, že podobně lze charakterizovat také modely teorie DO. Nechť D = D, < je libovolný model teorie DO. Definujme na množině D relaci podobnou jako v příkladu 3.4.13: a ∼ b, jestliže mezi a a b je v D jen konečně mnoho prvků. Opět platí, že relace ∼ je ekvivalence a že každá třída 3.4 Vlastnosti modelů a teorií 215 rozkladu je nekonečná. Podobně jako v příkladu 3.4.13 je jedna z tříd rozkladu izomorfní se strukturou N, < a všechny ostatní jsou izomorfní se strukturou Z, < . Na rozdíl od příkladu 3.4.13 nyní ale nemůžeme tvrdit, že různé modely se liší pouze počtem tříd izomorfních se Z, < . Záleží totiž také na tom, jaké podmínky tvaru a < b platí pro a a b z různých tříd rozkladu. Označme [a] třídu rozkladu obsahující prvek a a definujme relaci R na faktorové množině D/∼ předpisem [a] R [b] ⇔ a < b & ¬(a ∼ b). Struktura D/∼, R je lineárně uspořádaná množina, která má nejmenší prvek. Model D tedy vypadá takto: na začátku je oblast izomorfní se strukturou N, < , pak následuje blíže neurčený počet oblastí izomorfních se strukturou Z, < , které jsou nějak lineárně uspořádány. Jinými slovy, každý model teorie DO vznikl z nějaké lineárně uspořádané struktury M, R s nejmenším prvkem tak, že nejmenší prvek byl nahrazen oblastí izomorfní s N, < , každý z ostatních prvků byl nahrazen oblastí izomorfní se Z, < , přičemž uspořádání uvnitř oblastí zůstalo zachováno, a uspořádání mezi prvky různých oblastí určila relace R. Domluvme se, že bude-li se to hodit, uspořádané struktury budeme značit malými řeckými písmeny. Jsou-li γ a λ uspořádané množiny, pak γ +λ je jejich disjunktní sjednocení (tj. struktura sestávající ze dvou oblastí, z nichž jedna je izomorfní s γ a všechny její prvky jsou menší než všechny prvky druhé oblasti, která je izomorfní s λ). Součinem γ · λ značíme strukturu vzniklou nahrazením každého prvku struktury λ kopií struktury γ. Označme ještě λ∗ strukturu vzniklou z λ obrácením všech šipek a označme ω strukturu N, < . Na obrázku 3.4.2 je tedy struktura ω + ω∗ + ω. V tomto příkladu jsme si rozmysleli, že každý model teorie DO je ω, nebo je tvaru ω + (ω∗ + ω) · λ, kde λ je nějaká lineárně uspořádaná množina. Na druhé straně každá struktura tvaru ω + (ω∗ + ω) · λ je modelem teorie DO. Uvážíme-li ještě, že modely tvaru ω + (ω∗ + ω) · λ1 a ω + (ω∗ + ω) · λ2 jsou izomorfní pouze v případě, kdy λ1 a λ2 jsou izomorfní (cvičení), a že pro každý nekonečný kardinál κ existují neizomorfní lineárně uspořádané množiny mohutnosti κ (cvičení), dokázali jsme, že teorie DO není κ-kategorická pro žádný nekonečný kardinál κ. To, že v žádném z našich příkladů není uvedena teorie, která by byla κ-kategorická jen pro některý nespočetný kardinál κ, není náhoda. M. Morley dokázal, že je-li T teorie s nejvýše spočetným jazykem, která je κ-kategorická pro některý nespočetný kardinál κ, pak T je κ-kategorická pro každý nespočetný kardinál κ. Morleyova věta tedy pro teorii T se spočetným jazykem připouští pouze čtyři možnosti: (i) T není κ-kategorická pro žádný nekonečný kardinál κ, (ii) T je ℵ0-kategorická, ale není κ-kategorická pro žádný nespočetný kardinál κ, (iii) T není ℵ0-kategorická, je ale κ-kategorická pro každý nespočetný kardinál κ, (iv) T je κ-kategorická pro každý nekonečný kardinál κ. Důkaz Morleyovy věty je (prý) dost obtížný. V dalším výkladu ji ale nebudeme potřebovat. Věta 3.4.15 (Vaughtova) Nechť T je bezesporná teorie v jazyce L, která nemá žádné konečné modely, nechť κ je nekonečný kardinál takový, že |L| ≤ κ a T je κ-kategorická. Pak T je úplná. 216 3 Predikátová logika Důkaz Nechť T není úplná. Existuje tedy sentence ϕ taková, že T ϕ a T ¬ϕ. Podle lemmatu 3.2.7(d) jsou obě teorie T, ϕ a T, ¬ϕ bezesporné. Každá z nich má tedy nějaký model, a to nekonečný model, protože T nemá konečné modely. Díky Löwenheimově-Skolemově větě 3.4.5 má každá z nich i model mohutnosti κ. Nechť tedy M1 a M2 jsou struktury pro L mohutnosti κ takové, že M1 |= T, ϕ a M2 |= T, ¬ϕ. Je jasné, a také to plyne z lemmatu 3.2.11(b), že struktury M1 a M2 nejsou izomorfní, neboť se liší platností sentence ϕ. Struktury M1 a M2 jsou tedy dvěma neizomorfními modely teorie T mohutnosti κ. To je spor s předpokladem, že T je κ-kategorická. QED Dříve jsme zjistili, že teorie DNO je ℵ0-kategorická a že teorie SUCC je κ-kategorická pro každý nespočetný kardinál κ. Podle Vaughtovy věty jsou tedy obě teorie úplné. To má zajímavé důsledky i pro toho, kdo uvažuje raději o strukturách než o teoriích. Například struktury R, < , R − {0}, < a R − Q, < jsou modely téže úplné teorie, totiž DNO, a neliší se tedy platností žádné sentence. Jinak řečeno, jsou elementárně ekvivalentní. Také struktura z obrázku 3.4.1 je elementárně ekvivalentní se strukturou N, 0, s . Model N, 0, s + Z, s tedy nelze zakázat přidáním dalších axiomů k teorii SUCC. Každá teorie tvaru SUCC ∪ {ϕ}, kde ϕ je sentence v jazyce {0, S}, má totiž buď tytéž modely jako teorie SUCC, nebo nemá žádné modely (podle toho, platí-li SUCC ϕ nebo SUCC ¬ϕ). Tím se nám podařilo odpovědět na zbývající otázky 3 a 4 ze závěru oddílu 3.1. Ne, neizomorfní a sobě nepodobné struktury D1 a D2 se nemusí lišit platností žádné sentence, a ano, může se stát, že všechny sentence platné v nějaké struktuře vyplývají z nějaké přehledné množiny předpokladů. Nyní je také lépe vidět, proč jsme věty o úplnosti a kompaktnosti (v této kapitole a již dříve v kapitole 1) formulovali pro libovolné jazyky. Nebylo to ani tak ve snaze o co nejobecnější výsledky, ale proto, že úvahy o nespočetných modelech a nekonečných nebo (v důkazu věty 3.4.5) dokonce nespočetných jazycích mají důsledky i pro teorie „ze života , které většinou mají konečný jazyk a konečně mnoho axiomů nebo axiomatických schémat. Teorie s nespočetnými jazyky tedy nepokládáme za důležitý předmět zkoumání, ale spíš za důležitý nástroj, který může pomoci zjistit něco i o těch teoriích, které nás zajímají především. Za obzvláště zajímavé pokládáme ty situace, kdy ověření nějaké abstraktní podmínky (například že formule ϕ platí ve všech modelech teorie T, nebo že každé dva modely téže mohutnosti κ jsou spolu izomorfní) má za následek existenci nějakého konkrétního objektu, který lze zapsat pomocí konečně mnoha symbolů (například určitého důkazu). Ve zbytku tohoto oddílu ukážeme ještě další sémantické metody a konstrukce. Na začátku oddílu jsme uvažovali otázku, zda daná třída struktur je axiomatizovatelná. V dalším budeme řešit podrobnější otázku: je daná třída axiomatizovatelná pomocí nějaké množiny sentencí, které jsou syntakticky jednoduché v tom smyslu, že se v nich nestřídá příliš mnoho kvantifikátorů? Také otázka, zda teorie DO je úplná, zůstává zatím nezodpovězená. Nejprve ale ukážeme, že Hilbertova-Ackermannova věta, kterou jsme již dokázali důkazově teoreticky v oddílu 3.3, má i celkem snadný sémantický důkaz. 3.4 Vlastnosti modelů a teorií 217 V oddílu 3.2 jsme definovali homomorfismus struktur A a B jako funkci f z A do B, která zachovává všechny funkční i predikátové symboly. Podmínku, že f zachovává rovnítko, lze zapsat ekvivalencí ∀a∀b(A |= (x = y)[a, b] ⇔ B |= (x = y)[f(a), f(b)]). Protože v predikátové logice s rovností je rovnítko realizováno rovností (v A i v B), lze tuto podmínku přepsat na ∀a∀b(a = b ⇔ f(a) = f(b)). Funkce f tedy zachovává symbol „= , právě když je prostá. V predikátové logice s rovností (ve které se rovnítko považuje za logický symbol) tedy definujeme homomorfismus struktur A a B pro jazyk L jako prostou funkci z A do B, která zachovává všechny (mimologické) symboly jazyka L. Lemma 3.2.11(a) se vztahuje i na predikátovou logiku s rovností: každý homomorfismus automaticky zachovává všechny otevřené formule. Místo homomorfismus struktur A a B budeme nadále říkat vnoření struktury A do struktury B. Jsou-li A a B struktury pro týž jazyk L a je-li f vnoření struktury A do struktury B, pak f je zároveň izomorfismus struktury A a jisté podstruktury struktury B, neboli struktura B je rozšířením jisté struktury izomorfní se strukturou A. Naopak, je-li A podstruktura struktury B, pak identická funkce (z A do B) je vnoření struktury A do struktury B. Z toho je vidět, že pojem vnoření je vzájemně zaměnitelný s dvojicí pojmů podstruktura (případně rozšíření struktury) a izomorfismus. Pokud A je podstruktura struktury B a identická funkce z A do B zachovává formuli ϕ, řekneme, že ϕ je absolutní (pro podstrukturu A struktury B). Otevřené formule jsou vždy absolutní. Tím jsme znovu vyřešili cvičení 20(a) oddílu 3.1. Věta 3.4.16 (Hilbertova-Ackermannova) Nechť ϕ(v, x1, . . , xk) je otevřená formule v jazyce L taková, že formule ∃vϕ(v, x) je logicky platná. Pak existují termy t1(x), . . , tn(x) v jazyce L takové, že disjunkce ϕ(t1(x), x) ∨ . . ∨ ϕ(tn(x), x) je logicky platná. Důkaz Předpokládejme, že formule n i=1 ϕ(ti(x), x) není pro žádnou n-tici termů t1(x), . . , tn(x) logicky platná, tj. že pro každou n-tici t1(x), . . , tn(x) existuje struktura D a ohodnocení e, které formuli ¬ϕ(t1(x), x) & . . & ¬ϕ(tn(x), x) splňuje ve struktuře D. Přidejme k jazyku L nové konstanty c1, . . , ck a definujme teorii T jako množinu všech sentencí v L ∪ {c1, . . , ck} tvaru ¬ϕ(t(c1, . . , ck), c1, . . , ck), kde t je term v L neobsahující jiné volné proměnné než x1, . . , xk. Je jasné, že každá konečná množina F ⊆ T má model. Podle věty o kompaktnosti existuje tedy struktura B pro jazyk L ∪ {c1, . . , ck}, která je modelem teorie T. Vezměme za A podstrukturu struktury B generovanou prvky cB 1 , . . , cB k , tj. podstrukturu sestávající ze všech prvků množiny B tvaru (t(c1, . . , ck))B . Protože formule ∃vϕ(v, x) je logicky platná, ke každé k-tici prvků libovolné struktury D existuje prvek b ∈ D takový, 218 3 Predikátová logika že D |= ϕ[b, a]. Zvolme za D strukturu A a za a1, . . , ak její prvky cB 1 , . . , cB k . Pro některý z prvků (t(c))B struktury A tedy platí A |= ϕ[(t(c))B , cB 1 , . . , cB k ]. Protože otevřené formule jsou absolutní, platí i B |= ϕ[(t(c))B , cB 1 , . . , cB k ]. Užít hodnotu uzavřeného termu jako ohodnocení nějaké proměnné je podle lemmatu 3.1.14(b) totéž, jako substituovat onen term za onu proměnnou. Tedy B |= ϕ(t(c), c). To je spor, protože B |= T, a přitom sentence ¬ϕ(t(c), c) je jeden z axiomů teorie T. QED Zvolme pevně jazyk L a definujme množiny formulí Un a En jazyka L. Množina Un je množina všech formulí tvaru ∀v1,1 . . ∀v1,r1 ∃v2,1 . . ∃v2,r2 ∀v3,1 . . . . vn,rn ϕ, kde ϕ je otevřená formule. Kvantifikátory u proměnných vn,1 až vn,rn jsou všechny existenční nebo všechny univerzální podle toho, zda n je sudé nebo liché. Každá formule v Un je tedy formule v prenexním tvaru, jejíž kvantifikátory lze rozdělit do nejvýše n souvislých bloků obsahujících kvantifikátory stejného druhu. Velikost bloků určují čísla r1, . . , rn. Každé z nich může být rovno nule. U0 je množina všech otevřených formulí. Množina Un+1 sestává ze všech otevřených formulí a dále ze všech prenexních formulí, v jejichž kvantifikátorovém prefixu je nejvýše n „střídání kvantifikátorů, a je-li jich přesně n, pak první kvantifikátor musí být univerzální (je-li jich méně, můžeme si myslet, že na začátku je několik bloků nulové délky). Množinu formulí En definujme duálně jako množinu všech formulí tvaru ∃v1,1 . . ∃v1,r1 ∀v2,1 . . ∀v2,r2 ∃v3,1 . . . . vn,rn ϕ, kde ϕ je otevřená formule. Formule v U1 a E1 jsou tedy tytéž, kterým se v oddílu 3.2 říkalo univerzální resp. existenční formule. Platí Un ∪ En ⊆ Un+1 ∩ En+1 pro každé n. Formulím v U2 se někdy říká induktivní formule. Řekneme, že vnoření f struktury A do struktury B je n-elementární, jestliže f zachovává všechny Un-formule. Vnoření f je elementární, jestliže f zachovává všechny formule. Podstruktura A struktury B je n-elementární nebo elementární, jestliže identická funkce z A do B je n-elementární resp. elementární vnoření, tj. jestliže všechny formule v Un resp. vůbec všechny formule jsou absolutní pro A a B. Pišme f : A →n B nebo f : A →e B, jestliže f je n-elementární resp. elementární vnoření A do B, a pišme A n B nebo A B, jestliže A je n-elementární resp. elementární podstruktura struktury B. Lemma 3.4.17 (a) Každé vnoření je 0-elementární. (b) Vnoření f struktury A do struktury B je n-elementární, právě když f zachovává všechny En-formule. (c) Platí-li f : A →n B, pak pro každou formuli ϕ(x1, . . , xk) v Un+1, každou formuli ψ(x1, . . , xk) v En+1 a každou k-tici a1, . . , ak prvků z A platí implikace A |= ψ[a] ⇒ B |= ψ[f(a1), . . , f(ak)] a B |= ϕ[f(a1), . . , f(ak)] ⇒ A |= ϕ[a]. (d) Když vnoření f struktury A do struktury B je n-elementární pro každé n, pak f : A →e B. 3.4 Vlastnosti modelů a teorií 219 (e) Když existuje f takové, že f : A →e B, pak A a B jsou elementárně ekviva- lentní. (f) Když f : A →n B a g : B →n C, pak g ◦ f : A →n C. Důkaz Když vnoření f zachovává formuli ϕ(x1, . . , xk), pak f zachovává i její negaci ¬ϕ(x1, . . , xk). Když ϕ je v Un nebo v En, pak ¬ϕ je ekvivalentní s formulí v En resp. v Un. Tím je zdůvodněno (b). Tvrzení (d) plyne z toho, že každá formule je ekvivalentní s prenexní formulí a každá prenexní formule je v některé z množin Un. V definici toho, že f zachovává formuli ϕ(x1, . . , xk), má smysl i případ k = 0. Když f zachovává všechny formule, pak f zachovává i všechny sentence. Odtud plyne (e). QED Příklad 3.4.18 Struktura Q racionálních čísel není 1-elementární podstrukturou struktury R reálných čísel, protože číslo 2 ve struktuře Q splňuje a ve struktuře R nesplňuje formuli ∀v(v2 = x).               | | | | | ) b2 a2 b1 b3 | | | ) b2 a2 | |( b1 b3 | | | | ) a1 b4 | | | ) a1 b4 Obrázek 3.4.3: 1-elementární podstruktura Příklad 3.4.19 Vezměme jazyk {<} a za B vezměme strukturu ω+ω∗ +ω. Struktura B je disjunktním sjednocením tří struktur. Říkejme jim levá, prostřední a pravá část struktury B. Vezměme za A strukturu ω + ω vzniklou z B vynecháním prostřední části. Pak A není 2-elementární podstrukturou struktury B, protože nejmenší prvek pravé části splňuje v A formuli ∀u(u < x → ∃v(u < v & v < x)) (která je ekvivalentní s U2-formulí), ale v B ji nesplňuje. Rozmyslíme si, že A je 1-elementární podstruktura struktury B. Podle lemmatu 3.4.17(b) stačí ověřit, že každá E1-formule je absolutní. Nechť je tedy dána E1-formule ϕ(x) tvaru ∃v1 . . ∃vrψ(v1, . . , vr, x1, . . , xk), kde ψ je otevřená. Máme ověřit, že pro libovolnou k-tici a1, . . , ak prvků z A platí ekvivalence A |= ϕ[a] ⇔ B |= ϕ[a]. Implikace ⇒ je jasná z 3.4.17(c). Nechť B |= (∃vψ)[a] a nechť b1, . . , br jsou prvky z B, pro které platí B |= ψ[b, a]. Další postup je pro k = 2 a r = 4 znázorněn na obrázku 3.4.3. Ke každému bi lze zvolit bi ∈ A tak, aby nedošlo ke křížení přerušovaných čar. Je-li bi ∈ A, stačí volit bi = bi, ostatní bi zvolíme jako dost velké prvky levé části struktury B. Nekřížení čar znamená, že (r + k)-tice [b1, . . , br, a1, . . , ak] a [b1, . . , br, a1, . . , ak] splňují stejné atomické formule, a tedy také stejné otevřené formule. Tedy A |= ψ[b , a] a A |= ϕ[a]. 220 3 Predikátová logika Příklad 3.4.20 Nechť M je libovolná struktura pro aritmetický jazyk, která je modelem teorie Th(N). Tedy M a N jsou elementárně ekvivalentní. Definujme funkci f předpisem n → nM . Je zřejmé, že f je prostá funkce z množiny N všech přirozených čísel do nosné množiny M struktury M. Nechť ϕ(x1, . . , xk) je libovolná aritmetická formule. Pak N |= ϕ[n1, . . , nk] je ekvivalentní s N |= ϕ(n1, . . , nk) (protože hodnotou numerálu ni ve struktuře N je číslo ni), a M |= ϕ[n1 M , . . , nk M ] je ekvivalentní s M |= ϕ(n1, . . , nk). Sentence ϕ(n1, . . , nk) nemůže platit jen v jedné ze struktur N a M. Tím je zdůvodněno, že strukturu N lze elementárně vnořit do každého modelu M teorie Th(N). Úvahu v předchozím příkladu lze zobecnit. Je-li ve struktuře A každý prvek hodnotou nějakého uzavřeného termu, pak strukturu A lze elementárně vnořit do jakékoliv struktury B pro týž jazyk, pokud platí B |= Th(A). A spokojíme-li se s vnořením, které není elementární, pak stačí, aby v B platily všechny otevřené (nebo, což je totéž, všechny atomické) sentence platné v A. Není-li splněna podmínka, že každý prvek struktury A je hodnotou uzavřeného termu, můžeme ji splnit postupem, který jsme v tomto oddílu užili již několikrát: dočasně rozšíříme jazyk přidáním nových konstant. Nechť A je struktura pro jazyk L. Přiřaďme každému prvku a ∈ A konstantu a tak, aby všechny takto přiřazené konstanty byly navzájem různé a různé od všech konstant jazyka L. Označme LA rozšíření jazyka L o všechny konstanty a, kde a ∈ A. Označme A „přirozenou expanzi struktury A pro jazyk LA, která vznikne z A tak, že každý prvek a prohlásíme za realizaci konstanty a. Definujme Diagn(A) a Diage(A) jako množinu všech Un-sentencí resp. množinu všech sentencí jazyka LA, které platí ve struktuře A . Množinám Diagn(A) a Diage(A) říkáme n-elementární diagram resp. elementární diagram struktury A. 0-elementárnímu diagramu se říká prostě diagram a místo Diag0(A) se píše jen Diag(A). Označme ještě Thmn(T) množinu všech Un-sentencí dokazatelných v T. Věta 3.4.21 Nechť L je jazyk, A je struktura pro L a T je teorie v jazyce L. Pak A |= Thmn+1(T), právě když existuje model B teorie T a funkce g taková, že g : A →n B. Důkaz Nechť g : A →n B a B |= T. Platí B |= Thmn+1(T). Pokud g zachovává všechny Un- a En-formule, pak platnost Un+1-formulí se dle lemmatu 3.4.17(c) přenáší směrem „dolů . Tedy A |= Thmn+1(T). Tím je zdůvodněna implikace ⇐. Nechť B je libovolný model teorie T ∪ Diagn(A) (v jazyce LA). Označme g funkci a → aB a označme B redukt struktury B pro jazyk L. Podobně jako v příkladu 3.4.20, je-li ϕ(x1, . . , xk) libovolná formule v Un a jsou-li a1, . . , ak prvky množiny A, pak podmínky A |= ϕ[a], A |= ϕ(a1, . . , ak), B |= ϕ(a1, . . , ak) a B |= ϕ[g(a1), . . , g(ak)] jsou ekvivalentní. B je tedy model teorie T a g je n-elementární vnoření. Zbývá tedy zdůvodnit, že platí-li A |= Thmn+1(T), pak teorie T ∪ Diagn(A) má nějaký model. Nechť jej nemá. Pak podle věty o silné úplnosti existují sentence ϕ1, . . , ϕm v LA takové, že {ϕ1, . . , ϕm} ⊆ Diagn(A) a T ¬(ϕ1 & . . & ϕm). 3.4 Vlastnosti modelů a teorií 221 Vezměme důkaz P sentence ¬ ϕi, utvořme seznam a1, . . , ak konstant z LA − L, které se v něm vyskytují, a nahraďme v důkazu P konstanty a1, . . , ak navzájem různými proměnnými x1, . . , xk nevyskytujícími se v P. Výsledek P této záměny je opět důkazem, a to důkazem z množiny předpokladů T, protože v axiomech teorie T se konstanty ai nevyskytují. Každou sentenci ϕi můžeme psát ve tvaru αi(a1, . . , ak), kde αi je Un-formule v jazyce L. Důkaz P je tedy důkazem formule ¬ αi(x). Platí také (díky generalizaci) T ∀x¬ αi(x) a T ¬∃x αi(x). Sentence ¬∃x αi(x) je ekvivalentní s Un+1-sentencí dokazatelnou v T. Protože A |= Thmn+1(T), máme A |= ¬∃x αi(x). Avšak protože prvky a1, . . , ak realizují konstanty a1, . . , ak a každá sentence αi(a1, . . , ak) (tj. sentence ϕi) je v Diagn(A), k-tice [a1, . . , ak] splňuje v A formuli αi(x). Tedy A |= ∃x αi(x), spor. QED Věta 3.4.22 (Lo´sova-Tarského) Teorie T je ekvivalentní s teorií, jejíž všechny axiomy jsou univerzální sentence, právě když každá podstruktura libovolného modelu teorie T je opět modelem teorie T. Důkaz Nechť T je ekvivalentní s T , všechny axiomy teorie T jsou v množině U1 a přitom A 0 B |= T. Pak A |= T vzhledem k tvrzení 3.4.17(c). Nechť naopak T je teorie taková, že kdykoliv A 0 B |= T, pak A |= T. Vezměme za T množinu Thm1(T). K ověření, že T a T jsou ekvivalentní, stačí zdůvodnit, že každý model teorie T je zároveň modelem teorie T. Nechť tedy A |= T , tj. A |= Thm1(T). Dle věty 3.4.21 lze strukturu A vnořit do jistého modelu teorie T. Lze také říci, že strukturu A lze ztotožnit s podstrukturou jistého modelu B |= T. Takže A 0 B |= T. Dle předpokladu platí A |= T. QED Lemma 3.4.23 Nechť A a B jsou struktury pro jazyk L a nechť f : A →1 B. Pak existuje struktura C pro L a vnoření g : B →0 C takové, že g ◦ f je elementární vnoření struktury A do struktury C. Důkaz Vezměme opět rozšíření jazyka L o konstanty a příslušné prvkům a ∈ A. Ve struktuře A realizujme každou konstantu a „přirozeně , tj. prvkem a, a ve struktuře B realizujme každou a prvkem f(a). Tím jsme získali expanze A a B struktur A a B pro jazyk LA. Funkce f je 1-elementární vnoření struktury A do struktury B . Tedy B |= Diag1(A). Platí Thm1(Diage(A)) = Diag1(A). Podle věty 3.4.21 existuje struktura C pro jazyk LA taková, že C |= Diage(A), a vnoření g : B →0 C . Označme C redukt struktury C pro jazyk L. Je-li ψ(x1, . . , xk) libovolná formule v L a a1, . . , ak libovolná k-tice prvků z A, pak podmínky A |= ψ[a], A |= ψ(a1, . . , ak) a (protože C |= Diage(A)) C |= ψ(a1, . . , ak) jsou ekvivalentní. Protože funkce g je vnořením, musí realizaci libovolné konstanty v B zobrazit na realizaci téže konstanty v C . Tedy g(f(ai)) je realizace konstanty ai v C , takže C |= ψ(a1, . . , ak) a C |= ψ[g(f(a1)), . . , g(f(ak))] jsou ekvivalentní podmínky. Tedy g ◦ f je elementární vnoření. QED Posloupnost A0, A1, A2, . . . struktur pro jazyk L je řetěz, jestliže pro každé i platí Ai 0 Ai+1, tj. jestliže každá struktura Ai je podstrukturou struktury Ai+1. 222 3 Predikátová logika Řetěz { Ai ; i ∈ N } je elementární, jestliže pro každé i platí Ai Ai+1. Limitu řetězu { Ai ; i ∈ N } definujeme jako strukturu D, jejíž nosná množina je i∈N Ai a ve které realizace ID každého symbolu I ∈ L je sjednocení jeho realizací IAi ve strukturách Ai. Lemma 3.4.24 Když { Ai ; i ∈ N } je elementární řetěz a D je jeho limita, pak pro každé i platí Ai D. Důkaz Nechť i je dáno. Indukcí podle složitosti formule ϕ(x1, . . , xk) lze dokázat, že každá formule ϕ je absolutní pro podstrukturu Ai struktury D. Ukažme si krok pro existenční kvantifikátor. Nechť ϕ je tvaru ∃vψ(v, x), nechť a1, . . , ak jsou prvky množiny Ai a nechť D |= (∃vψ)[a]. Existuje tedy prvek b ∈ D takový, že D |= ψ[b, a]. Protože D = i∈N Ai, platí b ∈ Aj pro jisté j. Lze předpokládat i ≤ j. Indukční předpoklad říká, že ψ je absolutní pro podstrukturu Aj. Tedy Aj |= ψ[b, a] a Aj |= (∃vψ)[a]. Z Ai Ai+1 . . Aj plyne Ai Aj, viz 3.4.17(f). Tedy Ai |= (∃vψ)[a]. Ostatní úvahy ponecháváme za cvičení. QED Pojem řetězu a limity řetězu bychom mohli (nepodstatně) zobecnit pro případ, kdy { Ai ; i ∈ N } je posloupnost struktur a { gi ; i ∈ N } je posloupnost funkcí taková, že gi : Ai →e Ai+1. Pro úspornost jsme ale dali přednost jazyku podmodelů a izomorfismů před jazykem vnoření. Takto postupujeme i nadále, ve formulaci a důkazu věty 3.4.25. Lemma 3.4.23 v jazyce podmodelů říká, že když A 1 B, pak B je podmodelem jisté struktury C, která je elementárním rozšířením struktury A. A z věty 3.4.21 plyne tento důsledek formulovaný v řeči podmodelů: platí-li A |= Thm2(T), pak A je 1-elementárním podmodelem jistého modelu teorie T. Věta 3.4.25 Teorie T je ekvivalentní s teorií, jejíž všechny axiomy jsou sentence v U2, právě když limita libovolného řetězu modelů teorie T je opět modelem teorie T. Důkaz Nechť T ⊆ U2 a T je ekvivalentní s T, nechť A0 0 A1 0 A2 0 . . . je řetěz modelů teorie T a nechť D je jeho limita. Pro každé i platí Ai 0 D. Nechť ϕ = ∀x1 . . ∀xk∃y1 . . ∃yrψ(x, y) je libovolný prvek množiny T . Zdůvodníme, že D |= ϕ. Nechť a1, . . , ak jsou libovolné prvky množiny D. Protože D = Ai, existuje index j takový, že všechny a1, . . , ak jsou v Aj. Protože Aj |= ϕ, v Aj existují b1, . . , br takové, že Aj |= ψ[a, b]. Protože Aj 0 D, máme D |= ψ[a, b] a D |= (∃y1 . . ∃yrψ(x, y))[a]. Tím je ověřena implikace ⇒. Nechť naopak T splňuje podmínku, že limita libovolného řetězu modelů teorie T je opět modelem teorie T. Vezměme za T množinu Thm2(T). Máme dokázat, že je-li A libovolný model teorie T , pak A |= T. Definujme rekurzí posloupnosti Ai a Bi struktur jako na obrázku 3.4.4. A0 je struktura A. Nechť již jsou sestrojeny struktury A0 ⊆ B0 ⊆ A1 ⊆ . . ⊆ Bi−1 ⊆ Ai, všechny B0, . . , Bi−1 jsou modely teorie T, všechny A0, . . , Ai jsou modely teorie T , a přitom pro každé j < i platí 3.4 Vlastnosti modelů a teorií 223 Aj 1 Bj, Bj 0 Aj+1 a Aj Aj+1. Podle věty 3.4.21 můžeme zvolit 1-elementární rozšíření Bi struktury Ai takové, že Bi |= T. A podle lemmatu 3.4.23 lze zvolit strukturu Ai+1 takovou, že Bi 0 Ai+1 a Ai Ai+1. Dle lemmatu 3.4.17(e) jsou struktury Ai a Ai+1 elementárně ekvivalentní. Tedy Ai+1 |= T . Označme nyní D limitu řetězu A0, B0, A1, B1 atd. Struktura D je současně také limitou obou řetězů { Ai ; i ∈ N } a { Bi ; i ∈ N }. Podle předpokladu platí D |= T. Podle lemmatu 3.4.24 je struktura D elementárním rozšířením všech struktur Ai. Tedy, opět dle 3.4.17(e), platí A0 |= T. QED A0 A1 A2 A3 B0 B1 B2 E E E E                        d d d‚ d d d‚ d d d‚ 0 0 01 1 1 1 e e e e · · · · · · Obrázek 3.4.4: Metoda alternujících řetězů Konstrukce uvedená v důkazu předchozí věty, založená na faktu, že limita řetězu je zároveň také limitou kteréhokoliv nekonečného podřetězu, je ukázkou užití metody, které se říká metoda alternujících řetězů. Příklad 3.4.26 Uvažujme strukturu celých čísel Z, < a její podstruktury Ai, kde Ai je vpravo neomezený interval [[−i, +∞). Struktura Z, < celých čísel s uspořádáním je limitou řetězu struktur Ai. To znamená, že vlastnost uspořádané množiny, že v ní existuje nejmenší prvek, nelze vyjádřit pomocí U2-sentencí. V tomto oddílu jsme naznačili některé z úvah běžných v teorii modelů. O většině důležitých metod a konstrukcí jsme se ale nezmínili. Jedna z metod, které jsme pominuli, je například ultraprodukt, pomocí něhož lze jednoduše formulovat nutnou a postačující podmínku pro to, aby nějaká třída struktur byla axiomatizovatelná. Zájemce o další informace odkazujeme na zdroje, ze kterých jsme čerpali: úvodní kapitoly knihy [40] a příručky [4], případně kapitolu [70] příručky [4] a knihu [51]. Cvičení 29–32 jsou založena na Ehrenfeuchtově metodě, která je podrobněji vyložena a rozpracována v knize [21]. Cvičení 1. Řekneme, že třída E struktur pro jazyk L je konečně axiomatizovatelná, jestliže existuje konečná množina T sentencí v L taková, že E je třída všech modelů teorie T. Dokažte, že komplement libovolné konečně axiomatizovatelné třídy je opět konečně axiomatizovatelná třída. 2. Dokažte, že třída všech nekonečných struktur (pro libovolný jazyk L) je axiomatizovatelná, není ale konečně axiomatizovatelná. 224 3 Predikátová logika 3. Teorie AG, teorie abelovských grup, má jazyk {+, 0} s binární operací a s konstantou a axiomy R1–R4 teorie komutativních těles. Modely teorie AG jsou abelovské grupy neboli komutativní grupy. Domluvme se, že místo výrazu a + a + . . + a s n sčítanci píšeme na. Řekneme, že abelovská grupa G, +, 0 je cyklická, jestliže existuje prvek a ∈ G a přirozené číslo n ≥ 1 takové, že G = {0a, 1a, 2a, . . , (n − 1)a}. Platí ovšem 0a = 0 a 1a = a. Řekneme, že abelovská grupa G, +, 0 je torzní, jestliže pro každé a ∈ G existuje přirozené číslo n ≥ 1 takové, že na = 0. Dokažte, že každá cyklická grupa je torzní. Nalezněte příklad torzní grupy, která není cyklická. 4. Dokažte, že třída všech cyklických grup ani třída všech torzních grup není axiomatizovatelná. Návod. Přidejte k jazyku {+, 0} teorie grup dočasně novou konstantu c. Zvolte za S množinu všech sentencí tvaru nc = 0 pro n ≥ 1, zvolte za T množinu všech sentencí v jazyce {+, 0}, které platí ve všech cyklických grupách. Zdůvodněte, že teorie T ∪ S má model. 5. Když E je třída struktur pro jazyk L, která je axiomatizovatelná, a když navíc komplement třídy E (tj. třída všech struktur pro L, které nejsou v E) je axiomatizovatelná třída, pak E i její komplement jsou konečně axiomatizovatelné. Návod. Nechť teorie T axiomatizuje E a nechť S axiomatizuje komplement třídy E. Pak T ∪ S nemá žádný model. Dle věty o kompaktnosti existují množiny F1 ⊆ T a F2 ⊆ S konečné takové, že F1 ∪ F2 nemá žádný model. Zdůvodněte, že F1 a F2 jsou hledané teorie. 6. Teorie T je konečně axiomatizovatelná, jestliže třída všech jejích modelů je konečně axiomatizovatelná, neboli jestliže T je ekvivalentní s nějakou konečnou množinou sentencí (svého jazyka). Dokažte sémantickými prostředky (tj. užitím věty o kompaktnosti), že je-li T konečně axiomatizovatelná, pak T je ekvivalentní s jistou konečnou množinou F sentencí takovou, že F ⊆ T. 7. Abelovská grupa G, +, 0 je grupa s dělením, jestliže pro každé a ∈ G a pro každé přirozené číslo n ≥ 1 existuje prvek b ∈ G takový, že nb = a. Dokažte, že třída všech abelovských grup s dělením je axiomatizovatelná, ale není konečně axiomatizovatelná. 8. Dokažte, že teorie SUCC definovaná v závěru oddílu 3.2 není konečně axioma- tizovatelná. 9. Neorientovaný graf je souvislý, jestliže každý jeho vrchol je z každého dosažitelný, tj. jestliže z každého jeho vrcholu c vede (neorientovaná) cesta do každého jeho vrcholu d. Dokažte, že souvislost neorientovaného grafu není vlastností prvního řádu. Návod. Místo podmínky, že z a vede nejvýše jedna hrana, uvažujte tuto podmínku: každý vrchol má nejvýše dva sousedy a přitom existují nejméně dva vrcholy, z nichž každý má nejvýše jednoho souseda. 3.4 Vlastnosti modelů a teorií 225 10. Dokažte, že je-li D, < lineárně uspořádaná množina, v níž každý prvek má jen konečně mnoho předchůdců, pak D je nejvýše spočetná. 11. Nechť D, < je (ne nutně lineárně) uspořádaná množina. Pišme a ≤ b místo a < b ∨ a = b. Nechť A ⊆ D. Řekneme, že d ∈ D je supremum množiny A, jestliže d splňuje podmínky ∀a ∈ A(a ≤ d) a ∀d (∀a ∈ A(a ≤ d ) ⇒ d ≤ d ). Dokažte, že každá A ⊆ D má nejvýše jedno supremum. Nemá-li D, < největší prvek, pak existují množiny A ⊆ D, například sama D, které nemají supremum. Ukažte na příkladech, že supremum množiny A může, ale nemusí být v A a že A nemusí mít supremum, přestože D, < má největší prvek, a to vše i v případě, kdy D, < je lineárně uspořádaná. 12. Nechť D, < je uspořádaná množina a nechť A ⊆ D. Řekneme, že d ∈ D je horní závora množiny A, jestliže ∀a ∈ A(a ≤ d). Řekneme, že v D, < platí věta o supremu, jestliže každá neprázdná A ⊆ D, která má nějakou horní závoru, má i supremum. Supremum bylo tedy v předchozím cvičení definováno jako nejmenší horní závora. Definujte analogicky infimum množiny jako největší dolní závoru a formulujte větu o infimu. Dokažte, že v D, < platí věta o supremu, právě když tam platí věta o infimu. 13. Nechť D, < je lineárně uspořádaná množina. Řekneme, že množina A ⊆ D je hustá v D, < , jestliže každý otevřený interval (včetně „nevlastních intervalů, tj. včetně množin tvaru {x; x < a} a {x; x > a}) má neprázdný průnik s množinou A. Když A je hustá v D, < , pak D, < i A, < jsou modely teorie DNO. Dokažte, že když D1, <1 a D2, <2 jsou lineárně uspořádané množiny, ve kterých platí věta o supremu, a existuje množina A1 hustá v D1, <1 a A2 hustá v D2, <2 takové, že A1, <1 a A2, <2 jsou spolu izomorfní, pak i celé struktury D1, <1 a D2, <2 jsou spolu izomorfní. 14. Nechť A, x. Stejně jako v teorii LO je zápis x ≤ y zkratkou pro formuli x < y ∨ x = y. Lemma 3.5.18 Následující sentence jsou dokazatelné v teorii uspořádaných těles. (a) ∀x∀y(0 < x → (0 < x · y ≡ 0 < y)), (f) ∀x∀y(−(x − y) = y − x), (b) ∀x∀y(x < 0 → (0 < x · y ≡ y < 0)), (g) ∀x(0 = x ≡ 0 < x2 ), (c) ∀x(x < 0 ≡ 0 < −x), (h) m < r, je-li m < r, (d) ∀x(−(−x) = x), (i) ∀x∃y1∃y2(y1 < x & x < y2), (e) ∀x∀y(x · (−y) = −(x · y)), (j) ∀x∀y(x < y → ∃z(x < z < y)). Důkaz Předpokládáme, že všechny důkazy čtenář zná nebo si je dovede vymyslet. Uvádíme jen několik nejdůležitějších myšlenek. Platí-li v (c) x < 0, můžeme dle axiomu R14 přičíst −x na obě strany a dostaneme 0 < −x. Protože −(x · y) je ono číslo, které přičteno k x · y dá nulu, v (e) stačí ověřit, že x · (−y) + x · y = 0. 3.5 Eliminace kvantifikátorů 241 V (g), platí-li x = 0, pak 0 < x nebo x < 0. Když 0 < x, axiom R15 dává 0 < x2 . Když x < 0, pak 0 < −x dle (c). Obě strany této nerovnosti můžeme vynásobit kladným číslem −x, tedy 0 < (−x)2 . Platí tedy 0 < x2 , protože (−x)2 = x2 dle (e). Volbou x = 1 v (g) dostaneme 0 < 1. Z této nerovnosti plynou i ostatní instance v (h). Nechť z je inverzní k 2, tj. nechť z · 2 = 1. Snadno lze ověřit, že 0 < z a že je-li x < y, pak také x < z · (x + y) < y. Tím je dokázáno (j). QED Z dokazatelnosti sentencí (i) a (j) je jasné, že je-li D, +, ·, 0, 1, < libovolný model teorie uspořádaných těles, pak D, < je model teorie DNO. Každý model teorie uspořádaných těles je tedy nekonečný. Dále je zřejmé, že struktury R i Q jsou modely teorie uspořádaných těles. To je vše, co jsme schopni říci o modelech této teorie. Protože o modelech už tady (téměř) mluvit nebudeme, domluvme se, že písmena a, b, c, d, která obvykle značí prvky struktur, značí ve zbytku tohoto oddílu proměnné, případně termy. Teorie reálně uzavřených těles má jazyk stejný jako teorie uspořádaných těles, axiomy R1–R15, a dále všechny sentence tvaru R16: ∀y∀a∀b(a < b & t(a, y) · t(b, y) < 0 → ∃x(a < x < b & t(x, y) = 0)), kde t je libovolný term v jazyce {+, ·, 0, 1, <}. Je zřejmé, že by se nic nestalo, kdybychom mezi symboly termu t připustili i symbol „− . Z (a) a (b) lemmatu 3.5.18 plyne, že součin t(a, y) · t(b, y) je záporný, právě když čísla t(a, y) a t(b, y) jsou obě nenulová a mají opačná znaménka. Z lemmatu 3.2.15 víme, že term t(x, y) je vlastně polynom v x s koeficienty, které jsou termy v y. Schéma R16 tedy tvrdí, že je-li a < b a je-li f polynom takový, že čísla f(a) a f(b) mají opačná znaménka, pak f má kořen v intervalu (a, b). Teorii s axiomy R1–R16 značíme RCF (real closed fields). Snadno lze zdůvodnit, že struktura Q není modelem teorie RCF. Vezmeme-li například term x2 − 2 za t(x), platí (tj. v RCF lze dokázat, že) t(1) · t(2) < 0, ale mezi jedničkou a dvojkou neexistuje racionální číslo x takové, že t(x) = 0. Kdybychom se museli obejít bez odčítání, zvolili bychom term x2 + y. Ten v Q také porušuje schéma R16. O zdůvodnění, proč schéma R16 platí v R, se ještě zmíníme. Sentenci ∀z0∀z1∀z2∀x0∀x1∀x2(¬(z0 = 0 & z1 = 0 & z2 = 0) & & z0 · x2 0 + z1 · x0 + z2 = 0 & z0 · x2 1 + z1 · x1 + z2 = 0 & z0 · x2 2 + z1 · x2 + z2 = 0 → x0 = x1 ∨ x0 = x2 ∨ x1 = x2) lze číst každý netriviální polynom stupně 2 má nejvýše dva různé kořeny. Označme tuto sentenci ρ2. Naprosto analogicky lze pro každé n ≥ 0 napsat sentenci ρn, 242 3 Predikátová logika která tvrdí, že každý netriviální polynom stupně n má nejvýše n různých kořenů. Sentence ρn má v závorce v prvním řádku negaci (n + 1)-členné konjunkce, pak n+1 řádků vyjadřujících, že x0 až xn jsou kořeny polynomu s koeficienty z0, . . , zn, a v posledním řádku disjunkci s n+1 2 členy vyjadřující, že některá dvě čísla mezi x0 až xn jsou si rovna. Netriviální polynom je ovšem takový, jehož koeficienty nejsou samé nuly. Protože o hodnotách nebo kořenech polynomu s koeficienty z0, . . , zn mluvíme uvnitř teorie RCF, ale o stupni polynomu mluvíme na metamatematické úrovni, neklademe si podmínku (na rozdíl od toho, co je běžné v algebře), že nejvyšší koeficient polynomu je nenulový. Polynom stupně n je tedy pro nás libovolná (n + 1)-tice z0, . . , zn a za touto (n + 1)-ticí vidíme term z0 · xn + . . + zn. K důkazu sentencí ρn použijeme následující lemma, které lze označit jako lemma o dělení polynomu lineárním faktorem. Lemma 3.5.19 Nechť n ≥ 1 a nechť t0(y), . . , tn(y) a u(y) jsou termy neobsahující proměnnou x. Pak existují termy s0(y), . . , sn−1(y) neobsahující x takové, že označíme-li f(x) polynom s koeficienty t0(y), . . , tn(y) a označíme-li g(x) polynom s koeficienty s0(y), . . , sn−1(y), je sentence ∀y∀x(f(x) = (x − u) · g(x) + f(u)) dokazatelná v teorii RCF. Důkaz Nechť n a termy ti(y) a u(y) jsou dány. Zvolme za s0(y), s1(y) až sn−1(y) termy t0(y), t0(y)·u(y)+t1(y) až t0(y)·un−1 (y)+t1(y)·un−2 (y)+ . . +tn−1(y). Pišme ti a u místo ti(y) a u(y), vynechme všechny symboly „· a dokažme požadovanou sentenci počítáním v teorii RCF: (x − u)[t0xn−1 + (t0u + t1)xn−2 + . . + (t0un−1 + . . + tn−1)] + f(u) = = t0xn + (t0u + t1)xn−1 + . . + (t0un−1 + . . + tn−1)x − t0uxn−1 − (t0u2 + t1u)xn−2 − . . − (t0un + . . + tn−1u) + f(u) = = t0xn + t1xn−1 + . . + tn−1x − n−1 i=0 tiun−i + n i=0 tiun−i = = t0xn + t1xn−1 + . . + tn−1x + tn = = f(x). QED Lemma 3.5.20 Sentenci ρn lze pro každé n ≥ 0 dokázat v teorii RCF. Důkaz Když n = 0, pak n+1 2 = 0, disjunkce nula členů je spor, a ρn je sentence ∀z0(z0 = 0 & z0 = 0 → ⊥), kde ⊥ je onen spor. Tato sentence je v RCF dokazatelná, netriviální polynom stupně nula opravdu nemá žádné kořeny. Nechť n > 0 a nechť ρ0, . . , ρn−1 jsou již dokázány. Dokažme ρn: Nechť jsou dány koeficienty z0, . . , zn netriviálního polynomu f stupně n a nechť f má n + 1 navzájem různých kořenů a0, . . , an. Když z0 = 0, pak a0, . . , an 3.5 Eliminace kvantifikátorů 243 jsou zároveň různé kořeny polynomu stupně n − 1 s koeficienty z1, . . , zn, což je ale spor s ρn−1. Nechť tedy z0 = 0. Vezměme čísla z0, z0a0 + z1 atd., tj. čísla tvaru k i=0 ziak−i 0 , kde 0 ≤ k < n. Z 3.5.19 víme, že tato čísla tvoří koeficienty polynomu g stupně n − 1, pro který platí ∀x(f(x) = (x − a0)g(x) + f(a0)). Protože a0 je kořen polynomu f, máme ∀x(f(x) = (x − a0)g(x)). Když i = 0, v součinu (ai − a0)g(ai) je první činitel nenulový. Celý součin je ale nulový, protože ai je kořen polynomu f. Lemma 3.2.14(d) dává g(ai) = 0. Tedy a1, . . , an je n navzájem různých kořenů polynomu g. Polynom g je netriviální, protože má nenulový koeficient z0. To je spor s ρn−1. QED Z lemmatu 3.5.20 okamžitě plyne, že polynom f stupně n je identicky nulový, právě když je triviální, tj. právě když jeho koeficienty jsou samé nuly. Všimněme si, že v důkazech lemmat 3.5.19 a 3.5.20 jsme se obešli bez axiomů R11–R16. Obě lemmata tedy platí i pro teorii komutativních těles. Lze tvrdit ještě trochu víc: z axiomů teorie komutativních těles jsme nepotřebovali axiom R8 o existenci inverzních čísel, použili jsme jen jeho slabší důsledek vyjádřený tvrzením (d) lemmatu 3.2.14. Je-li f polynom stupně n ≥ 1 s koeficienty z0, . . , zn, definujme jeho derivaci f jako polynom stupně n − 1 s koeficienty n · z0, n − 1 · z1 až zn−1. Je-li f polynom stupně 0 s (jediným) koeficientem z0, definujme jeho derivaci f jako polynom stupně 0 s koeficientem 0. V definici derivace jsme se tedy obešli bez pojmu limita, což je možné díky tomu, že neuvažujeme jiné funkce než polynomy. Uvnitř teorie RCF se na derivaci díváme nikoliv jako na jedinou operaci, ale jako na nekonečně mnoho operací: derivace polynomů stupně n je operace z (n + 1)-tic do max{1, n}-tic čísel. Derivace vyšších řádů definujeme jako obvykle: f(0) = f, f(k+1) = (f(k) ) . Polynom f(k) je k-tou derivací polynomu f. Má-li f stupeň n, pak f(k) je polynom stupně n − k pro k ≤ n, a f(k) je identicky nulový polynom pro k > n. V následujících pěti lemmatech a jejich důkazech se dopouštíme nedůslednosti a formalizovatelné podmínky a důkazy nevyznačujeme bezpatkovým písmem. Předpokládáme, že čtenář dovede odlišit, co se děje na metamatematické úrovni a co uvnitř teorie RCF. Ostatně na metamatematické úrovni se mluví vždy pouze o stupních polynomů. K pečlivějšímu odlišení metamatematické a formální úrovně se vrátíme za důkazem lemmatu 3.5.25, až budeme mluvit o eliminaci kvantifikátorů pro teorii RCF. Lemma 3.5.21 Známá pravidla pro počítání derivací součtu a součinu (f + g) = f + g a (f · g) = f · g + f · g lze pro polynomy dokázat v teorii RCF. Důkaz Obě rovnosti lze ověřit počítáním se sumami podobně jako v důkazu lemmatu 3.5.19 a předtím lemmatu 3.2.15. QED 244 3 Predikátová logika Lemma 3.5.22 Mezi každými dvěma kořeny libovolného polynomu f stupně n leží nějaký kořen polynomu f . Důkaz Nechť stupeň n je dán, uvažujme v teorii RCF. Nechť pro čísla a a b platí a < b a f(a) = f(b) = 0. Můžeme předpokládat, že f není identicky nulový. Dále předpokládejme, že v intervalu (a, b) není žádný další kořen polynomu f. Jinak bychom užili fakt, že všech kořenů je nejvýše n, a od dvojice a, b bychom přešli k dvojici a0, b0 sousedních kořenů takových, že a ≤ a0 < b0 ≤ b. Lemma 3.5.19 tvrdí, že z polynomu f můžeme vytknout činitele (x − a) a (x − b). Vytýkání lze opakovat, dokud a nebo b je kořenem zbývajícího polynomu. Existuje tedy polynom g takový, že pro každé x platí f(x) = (x − a)m (x − b)r g(x). Přitom m, r ≥ 1 a g nemá žádné kořeny v intervalu [[a, b]]. Užijme lemma 3.5.21 a spočítejme derivaci f polynomu f: f (x) = m(x − a)m−1 (x − b)r g(x) + r(x − a)m (x − b)r−1 g(x) + + (x − a)m (x − b)r g (x) = = (x − a)m−1 (x − b)r−1 [m(x − b)g(x) + r(x − a)g(x) + (x − a)(x − b)g (x)]. Označme h(x) polynom v hranaté závorce. Dosazení a a b dává h(a) = m(a−b)g(a) a h(b) = r(b−a)g(b). Čísla g(a) a g(b) jsou nenulová. Kdyby čísla g(a) a g(b) měla různá znaménka, dle axiomu R16 by g měl nějaký kořen v (a, b) a tento kořen by byl zároveň kořenem polynomu f. Čísla g(a) a g(b) mají tedy stejná znaménka. Čísla a − b a b − a mají ovšem různá znaménka. Tedy h(a) · h(b) < 0. Dle axiomu R16 polynom h má nějaký kořen v (a, b). Tento kořen je zároveň kořenem polynomu f . QED Lemma 3.5.23 Když a < b a f je polynom, pak existuje číslo ξ ∈ (a, b) takové, že f(b) − f(a) = f (ξ)(b − a). Důkaz Nechť a, b a f jsou dány. Vezměme číslo ε takové, že ε(b−a) = 1. Uvažujme polynom g definovaný předpisem g(x) = f(x) − f(a) − ε(f(b) − f(a))(x − a). Platí g (x) = f (x) − ε(f(b) − f(a)) a dále g(a) = 0 a g(b) = 0. Dle lemmatu 3.5.22 existuje číslo ξ ∈ (a, b) takové, že g (ξ) = 0. Tedy 0 = f (ξ) − ε(f(b) − f(a)), dále ε(f(b) − f(a)) = f (ξ), a tedy opravdu f(b) − f(a) = f (ξ)(b − a). QED Lemma 3.5.22 je známo jako Rolleova věta. Důkaz, který jsme uvedli, vznikl přizpůsobením důkazu Sturmovy věty, který je uveden v knize [97]. Sturmova věta umožňuje určit počet kořenů polynomu f stupně n v intervalu (a, b), známe-li znaménka čísel f(i) (a) a f(i) (b), kde 0 ≤ i ≤ n. Lemma 3.5.23 je věta o střední hodnotě. Její důkaz lze označit jako „obvyklý . Definujme v teorii RCF pravé a levé okolí čísla (bodu). Pravé okolí bodu a je libovolný interval (a, b), kde a < b. Pravé okolí „nevlastního bodu −∞ je libovolný 3.5 Eliminace kvantifikátorů 245 interval tvaru (−∞, b), tj. množina { x ; x < b }. Analogicky se definuje levé okolí bodu a levé okolí nevlastního bodu +∞. Dále definujme funkci signum: sgn(x) = 1 pro x > 0, sgn(x) = −1 pro x < 0, sgn(0) = 0. Místo hodnot 1, −1 a 0 funkce signum budeme někdy psát +, − a 0. Axiom R16 tvrdí, že je-li f polynom, pak mezi každými dvěma body, ve kterých má funkce sgn(f(x)) hodnoty + a −, existuje nějaký další bod, ve kterém má funkce sgn(f(x)) hodnotu 0. Je-li tedy číslo a libovolné a b > a je nejmenší kořen polynomu f větší než a, buď všechny hodnoty funkce sgn(f(x)) v intervalu (a, b) jsou +, nebo jsou všechny −. Z toho dále plyne, že je-li f libovolný polynom a a libovolný bod, funkce sgn(f(x)) je konstantní v (jistém) pravém okolí bodu a: buď je f identicky nulový, a v tom případě všechny hodnoty funkce sgn(f(x)) jsou nuly, nebo sgn(f(x)) má tutéž hodnotu + až do nejbližšího většího kořenu (nebo do +∞, neexistují-li kořeny větší než a), nebo sgn(f(x)) má tutéž hodnotu − až do nejbližšího většího kořenu (nebo do +∞). Je-li f(a) = 0, pak ovšem sgn(f(x)) má v pravém okolí bodu a hodnotu sgn(f(a)). Následující lemma umožňuje určit hodnotu funkce sgn(f(x)) v pravém okolí bodu a bez ohledu na to, zda f(a) = 0. Lemma 3.5.25 má podobný účel, umožňuje určit hodnotu funkce sgn(f(x)) v okolí nevlastních bodů −∞ a +∞. Lemma 3.5.24 Nechť a je číslo a nechť f je polynom stupně n. Když všechna čísla f(a), f (a), . . , f(n) (a) jsou nuly, pak f je identicky nulový. Když první nenulové číslo v posloupnosti f(a), f (a), . . , f(n) (a) je kladné (záporné), pak f je kladný (resp. záporný) v pravém okolí bodu a. Důkaz Označme z0, . . , zn koeficienty polynomu f a spočítejme f a f : f (x) = nz0xn−1 + n − 1z1xn−2 + . . + zn−1, f (x) = n(n − 1)z0xn−2 + (n − 1)(n − 2)z1xn−3 + . . + 2zn−2. Obecně pro k-tou derivaci platí f(k) (x) = n−k i=0 (n − i)!/(n − k)! zixn−k−i . Dosadíme-li x := a, snadno zjistíme, že všechna čísla f(k) (a) mohou být najednou nulová jen v případě, kdy všechny koeficienty z0, . . , zn jsou nuly: f(n) (a) = n! z0, a platí-li f(n) (a) = 0, pak i z0 = 0, dále f(n−1) (a) = n!/1! z0a + (n − 1)! z1, a platí-li f(n) (a) = 0 i f(n−1) (a) = 0, pak i z0 = 0 a z1 = 0 atd. Nechť 0 ≤ k ≤ n, nechť f(a) = f (a) = . . = f(k−1) (a) = 0, nechť f(k) (a) > 0. Zvolme b takové, že pro každé x ∈ (a, b) je f(k) (x) > 0. Platí-li k = 0, jsme hotovi, f je kladný v (a, b). Jinak vezměme v úvahu toto pomocné tvrzení: je-li g polynom takový, že g(a) = 0 a jeho derivace g je kladná v (a, b), pak g je kladný v (a, b). Skutečně, pokud pro nějaké x ∈ (a, b) platí g(x) < 0, pak dle 3.5.23 pro nějaké ξ ∈ (a, x) platí g(x) − g(a) = g (ξ)(x − a), a z g(a) = 0, g(x) < 0 a x − a > 0 246 3 Predikátová logika plyne g (ξ) < 0. Užijeme-li toto pomocné tvrzení na f(k−1) , f(k−2) až f v roli g, dostaneme, že f je kladný v (a, b). Důkaz tvrzení, že je-li první nenulové číslo v posloupnosti f(a), f (a), . . , f(n) (a) záporné, pak f je záporný v pravém okolí bodu a, je naprosto analogický. QED Lemma 3.5.25 Nechť f je netriviální polynom stupně n s koeficienty z0, . . , zn, nechť zi je první koeficient v posloupnosti z0, . . , zn, který je nenulový. Pak existuje w > 0 takové, že pro všechna x > w platí sgn(f(x)) = sgn(zi) a pro všechna x < −w platí sgn(f(x)) = sgn((−1)n zi). Důkaz Definujme pro účely tohoto důkazu a případně některých cvičení absolutní hodnotu: |x| je ono z čísel x a −x, které je nezáporné. Snadno lze ověřit, že (dokazatelně v teorii uspořádaných těles) platí obvyklá pravidla pro počítání s absolutními hodnotami: |x · y| = |x| · |y| a |x + y| ≤ |x| + |y|. Nechť jsou dány koeficienty z0, . . , zn netriviálního polynomu f. Můžeme předpokládat, že první nenulový koeficient je z0. Dále předpokládejme například, že n je liché a že z0 > 0. Tedy z0 je kladné a (−1)n z0 je záporné. Máme najít w > 0 takové, že pro všechna x > w platí z0xn > −(z1xn−1 + . . +zn) a pro všechna x < −w platí z0xn < −(z1xn−1 + . . + zn). Protože pro x < −w je |z0xn | = −z0xn , stačí zdůvodnit najednou, že |z1xn−1 + . . + zn| < z0|x|n . Pro x ≥ 1 platí |zixi | ≤ |zixn−1 | pro každé i ≤ n − 1, tedy |z1xn−1 + . . + zn| ≤ (|z1| + . . + |zn|) · |x|n−1 . (∗) Označme ε číslo inverzní k z0. Platí ε > 0 a ε·z0 = 1. Je-li |x| > ε·(|z1|+ . . +|zn|), pak ε · z0 · (|z1| + . . + |zn|) · |x|n−1 < z0 · |x|n . (∗∗) Z (∗) a (∗∗) plyne, že za w můžeme vzít číslo max{1, ε · (|z1| + . . + |zn|)}, neboť je-li |x| > w, opravdu platí |z1xn−1 + . . + zn| < z0 · |x|n . QED Tím máme pohromadě všechna tvrzení o dokazatelnosti v teorii RCF, která budeme potřebovat, a můžeme se vrátit k logice, tj. definovat konzervativní rozšíření teorie RCF a uvažovat o eliminaci kvantifikátorů. Nechť 1 ≤ i ≤ n. V teorii RCF definujme, že NRn,i(z0, . . , zn), jestliže polynom z0xn + . . + zn není identicky nulový a má alespoň i navzájem různých kořenů. Symbol NRn,i je (n + 1)-ární predikátový symbol. Dále v teorii RCF definujme, že číslo ξn,i(z0, . . , zn) je i-tý nejmenší kořen polynomu f(x) = z0xn + . . + zn, pokud NRn,i(z0, . . , zn), a ξn,i(z0, . . , zn) je nula v ostatních případech (tj. kdy f je identicky nulový, nebo má méně než i kořenů). Symbol ξn,i je (n + 1)-ární funkční symbol. Označme LRCF jazyk {+, ·, 0, 1, <, −} (tj. počítejme i unární symbol „− k základním symbolům teorie RCF) a označme L+ RCF jazyk vzniklý přidáním všech symbolů NRn,i a ξn,i, kde 1 ≤ i ≤ n, k jazyku LRCF. Označme RCF+ konzervativní rozšíření teorie RCF o právě uvedené definice symbolů NRn,i a ξn,i. 3.5 Eliminace kvantifikátorů 247 Příklad 3.5.26 Je-li z > 0, pak ξ2,2(1, 0, −z) je to, co se obvykle zapisuje jako √ z. Je-li z ≤ 0, pak v teorii RCF víme, že ¬NR2,2(1, 0, −z) a ξ2,2(1, 0, −z) = 0. Termům obsahujícím symboly ξn,i říkejme algebraické termy. Atomická algebraická formule je každá atomická formule jazyka LRCF a dále každá formule jazyka L+ RCF, která má některý z následujících tří tvarů: • c0(y) · ξm n,i(a0(y), . . , an(y)) + c1(y) · ξm−1 n,i (a0(y), . . , an(y)) + . . + cm(y) 0, • ξn,i(a0(y), . . , an(y)) < ξm,k(b0(y), . . , bm(y)), • NRn,i(a0(y), . . , an(y)), kde je jeden ze symbolů <, = nebo > a ai(y), bi(y) a ci(y) jsou termy, které jsou sestaveny z proměnných y1, . . , yq pomocí symbolů +, ·, 0, 1, −. Algebraická formule je formule sestavená z atomických algebraických formulí pomocí logických spojek. Dále budeme pro stručnost většinou vypouštět y. Protože (n + 1)-tici argumentů symbolu NRn,i a ξn,i vždy interpretujeme jako koeficienty polynomu, budeme psát například f místo a0, . . , an. Atomické algebraické formule jsou tedy formule tvaru g(ξn,i(f)) 0, nebo ξn,i(f) < ξm,k(g), nebo NRn,i(f), kde f a g jsou polynomy, jejichž koeficienty jsou termy jazyka LRCF, a dále všechny atomické formule jazyka LRCF. Definujme řád algebraických formulí: řád atomické formule neobsahující symboly NRn,i a ξn,i je 0, řád formulí g(ξn,i(f)) 0 a NRn,i(f) je n, řád formule ξn,i(f) < ξm,k(g) je max{n, m}, řád algebraické formule je maximum řádů všech jejích atomických podformulí. Příklad 3.5.27 Formule ξn,i(f) · ξm,k(g) > 0 ani formule tvaru NRm,k(ξn,i(f), . .) není algebraickou formulí. Jsou-li f a g polynomy, jejichž koeficienty neobsahují algebraické termy, a má-li f stupeň n, pak formule polynom g je pozitivní v pravém okolí bodu ξn,i(f) je podle lemmatu 3.5.24 algebraickou formulí řádu n. Term tvaru ξn,i(. .) se v algebraické formuli nikdy nemůže vyskytnout uvnitř termu tvaru ξm,k(. .) ani uvnitř atomické formule tvaru NRm,k(. .). Algebraické formule neobsahují kvantifikátory. Každá atomická podformule algebraické formule obsahuje nejvýše jeden term tvaru ξn,i(f) (který se v ní může vyskytovat vícekrát) s výjimkou formule tvaru ξn,i(f) < ξm,k(g), která může obsahovat dva různé algebraické termy. Lemma 3.5.28 Každá algebraická formule A řádu n ≥ 1 je ekvivalentní s algebraickou formulí B řádu nejvýše n takovou, že v každé atomické podformuli formule B tvaru g(ξn,i(f)) 0 má polynom g nižší stupeň než polynom f. Důkaz Nechť g(ξn,i(f)) > 0 je některá podformule formule A taková, že pro stupeň m polynomu g platí m ≥ n. Nechť axm je nejvyšší člen polynomu g a nechť bxn je nejvyšší člen polynomu f. Polynom b2 g(x) − abxm−n f(x) je polynom stupně m, jehož nejvyšší koeficient (tj. koeficient u xm ) je 0. Označme g1(x) 248 3 Predikátová logika polynom stupně m − 1 vzniklý odstraněním onoho nejvyššího (nulového) členu z polynomu b2 g(x) − abxm−n f(x). Označme dále f1(x) polynom stupně n − 1 vzniklý odstraněním nejvyššího (nulového) členu z polynomu f(x) − bxn , tj. odstraněním nejvyššího členu z polynomu f(x). Z předpokladu b = 0 v teorii RCF vyplývá ekvivalence g(ξ) > 0 ≡ b2 g(ξ) > 0. Dále z předpokladu číslo ξ je kořenem polynomu f v teorii RCF vyplývá ekvivalence b2 g(ξ) > 0 ≡ g1(ξ) > 0. Podformuli g(ξn,i(f)) > 0 formule A můžeme tedy nahradit s ní ekvivalentní formulí (¬NRn,i(f) & g(0) > 0) ∨ ∨ (NRn,i(f) & b = 0 & g(ξn−1,i(f1)) > 0) ∨ (NRn,i(f) & b = 0 & g1(ξn,i(f)) > 0). Touto záměnou se nezvýšil řád formule, neboť formule NRn,i(f) má řád n a formule g(ξn−1,i(f1)) má řád n−1. Bylo-li m = n, snížil se počet nežádoucích formulí, tj. formulí tvaru g(ξn,i(. .)) 0, které mají maximální možný řád n a v nichž polynom g má stupeň m ≥ n. Bylo-li m > n, počet nežádoucích formulí zůstal zachován, ale v jedné se snížil stupeň polynomu. Opakováním tohoto postupu dospějeme k požadované formuli. Stejně se uvažuje, když je jeden ze symbolů > a =. QED Nechť α < β jsou dva sousední kořeny derivace f polynomu f. Užitím axiomu R16 a lemmat 3.5.22 a 3.5.23 lze snadno ověřit, že (i) je-li f(α) = 0, pak α je jediný kořen polynomu f v [[α, β]], (ii) je-li f(β) = 0, pak β je jediný kořen polynomu f v [[α, β]], (iii) mají-li čísla f(α) a f(β) opačná nenulová znaménka, pak f má v (α, β) kořen, který je jediným kořenem v [[α, β]], a (iv) mají-li čísla f(α) a f(β) totéž nenulové znaménko, pak f nemá žádný kořen v [[α, β]]. Například tvrzení (iv) se zdůvodní následovně. Nechť f(α) a f(β) mají totéž nenulové znaménko a nechť x ∈ (α, β) je kořen polynomu f. Pak dle 3.5.23 existují čísla η1 ∈ (α, x) a η2 ∈ (x, β), ve kterých má f různá a nenulová znaménka, a v (η1, η2) je nějaký kořen polynomu f , což je spor s předpokladem, že α a β jsou sousední kořeny polynomu f . Když β je největší kořen polynomu f , pak f má v intervalu [[β, +∞) nejvýše jeden kořen, a má-li f(β) totéž znaménko, jako mají všechna čísla f(x) pro dost velká x (ve smyslu lemmatu 3.5.25), pak f nemá v [[β, +∞) žádný kořen. Analogická tvrzení lze odvodit o kořenech polynomu f vlevo od nejmenšího kořenu polynomu f . Můžeme tedy shrnout, že mezi každými dvěma kořeny polynomu f a také před prvním a za posledním je vždy nejvýše jeden kořen polynomu f. Odpověď na otázku, zda je právě jeden, je určena znaménky polynomu f v kořenech jeho derivace f a v okolí nevlastních bodů −∞ a +∞. Lemma 3.5.29 Každá formule NRn,i(a0, . . , an), kde 1 ≤ i ≤ n, je ekvivalentní s algebraickou formulí řádu menšího než n. Důkaz Je-li n = 1, pak formule NR1,1(a0, a1), tj. formule polynom a0x + a1 je netriviální a má alespoň jeden kořen, je ekvivalentní s formulí a0 = 0, což je alge- 3.5 Eliminace kvantifikátorů 249 −∞ + − ∗ ∗ + − + − + − ξ2,1(f ) − + 0 0 − + − + ∗ ∗ ξ2,2(f ) + − 0 0 + − − + +∞ + − − + ∗ ∗ ∗ ∗ + − Obrázek 3.5.1: Určení počtu kořenů polynomu braická formule řádu 0. Předpokládejme tedy nadále, že n > 1. Označme f polynom s koeficienty a0, . . , an. Jeho derivace f má koeficienty na0, n − 1a1, . . , an−1. Máme za úkol vyjádřit podmínku NRn,i(f) bez užití symbolů NRm,k(. .) a ξm,k(. .), kde m ≥ n. Utvořme tabulku s n + 1 řádky označenými −∞, ξn−1,1(f ),. .,ξn−1,n−1(f ), +∞, ve které sloupce odpovídají všem příznivým kombinacím znamének polynomu f v bodech −∞, ξn−1,1(f ),. .,ξn−1,n−1(f ), +∞. Příznivá kombinace je taková, při které f nutně má alespoň i kořenů. Například pro n = 3 a i = 2 je tato tabulka uvedena na obrázku 3.5.1. Hvězdičky označují hodnoty, na kterých nezáleží. První dva sloupce odpovídají případům, kdy f má jeden kořen (pole příslušná ke ξ2,2(f ) jsou prázdná), třetí až šestý sloupec odpovídají případům, kdy f má dva kořeny, z nichž jeden je zároveň kořenem polynomu f, a sedmý až desátý sloupec odpovídají případům, kdy žádný ze dvou kořenů polynom f není současně kořenem polynomu f. V našem případě, a obecně kdykoliv i ≥ 2, žádné příznivé kombinace neodpovídají případu, kdy f nemá kořeny, ani případu, kdy f má jen jeden kořen, který je zároveň kořenem polynomu f. Tehdy má totiž f nejvýše jeden kořen. Při konstrukci tabulky využíváme fakt, že v posloupnosti znamének sgn(f(−∞)), sgn f(ξn−1,1(f )) až sgn f(ξn−1,n−1(f )) a sgn(f(+∞)) nemůže být nula na začátku ani na konci a nemohou se v ní vyskytnout dvě nuly těsně za sebou. Máme-li tabulku, snadno sestavíme z atomických formulí jazyka LRCF a z formulí tvaru NRn−1,k(f ) a f(ξn−1,k(f )) 0, kde 1 ≤ k ≤ n − 1, algebraickou formuli řádu n − 1 ekvivalentní s původní formulí NRn,i(f). V našem příkladu s n = 3 a i = 2 je to formule (NR2,1(f ) & ¬NR2,2(f ) & f(ξ2,1(f )) = 0 & & sgn f(−∞) = sgn f(ξ2,1(f )) & sgn f(ξ2,1(f )) = sgn f(+∞)) ∨ ∨ (NR2,2(f ) & f(ξ2,1(f )) = 0 & sgn f(ξ2,2(f )) = sgn f(+∞)) ∨ (NR2,2(f ) & f(ξ2,2(f )) = 0 & sgn f(−∞) = sgn f(ξ2,1(f ))) ∨ ( . . . podobně pro sedmý až desátý sloupec tabulky . . . ). Zápis jsme trochu zkrátili použitím funkce sgn. Například v prvním disjunktu, kde se probírá případ, kdy f má právě jeden kořen, zápis sgn f(ξ2,1(f )) = sgn f(+∞) značí disjunkci buď f(ξ2,1(f )) > 0 a polynom f je záporný v levém okolí bodu +∞, nebo f(ξ2,1(f )) < 0 a polynom f je kladný v levém okolí bodu +∞. Formule poly- 250 3 Predikátová logika α1 α2 α3 α4 α5 α6 Obrázek 3.5.2: Kořeny derivace a průběh polynomu nom f je takový a takový v levém okolí bodu +∞ je algebraickou formulí řádu 0 díky lemmatu 3.5.25. QED Porovnejme statický popis všech příznivých případů, který vyjadřuje formule sestrojená v důkazu lemmatu 3.5.29, s následujícím „algoritmem pro určení počtu kořenů polynomu f: Urči počet r kořenů polynomu f . Označ tyto kořeny α1, . . , αr. Dále polož a0 = −∞, ar+1 = +∞. Urči počet nul plus počet změn v posloupnosti sgn f(α0) až sgn f(αr+1), přičemž za změnu se považuje pouze změna z „+ na „− nebo naopak. Výsledek je počet kořenů polynomu f. Například derivace polynomu f z obrázku 3.5.2 má šest kořenů α1, . . , α6 a posloupnost znamének polynomu f v bodech α0, . . , α7 je posloupnost +, +, +, 0, +, −, −, +, ve které je jedna nula a dvě změny. Náš „algoritmus tedy pro polynom z obrázku 3.5.2 určil správně, že má tři kořeny. Uvozovky píšeme proto, že o skutečný algoritmus tu ovšem nejde: nepracuje se s konečnými posloupnostmi symbolů, ale s abstraktními objekty formální teorie. Tvrdíme ale, že takovýto pseudoalgoritmus je stejně dobrý jako formule, kterou jsme sestrojili v důkazu lemmatu 3.5.29: z návodu, jak převést platnost podmínky NRn,i(f) na platnost podmínek tvaru NRn−1,k(. .) a g(ξn−1,k(. .)) 0, lze sestrojit formuli, která podmínku NRn,i(f) vyjádří jako booleovskou kombinaci podmínek tvaru NRn−1,k(. .) a g(ξn−1,k(. .)) 0. V důkazu následujícího lemmatu se tedy spokojíme s uvedením stručného a názorného pseudoalgoritmu a spolehneme se na to, že čtenář si za ním umí představit algebraickou formuli řádu n − 1. Lemma 3.5.30 Každá algebraická formule je ekvivalentní s jistou otevřenou formulí v jazyce LRCF. Důkaz Dokažme indukcí podle n, že každá algebraická formule řádu n je ekvivalentní s jistou otevřenou formulí v jazyce LRCF. Pro n = 0 je to pravda, algebraické formule řádu 0 jsou otevřenými formulemi v jazyce LRCF. Zbývá tedy dokázat, že každá algebraická formule A řádu n je ekvivalentní s jistou algebraickou formulí B 3.5 Eliminace kvantifikátorů 251 řádu menšího než n. Toto tvrzení dokažme opět indukcí, a to podle počtu atomických algebraických podformulí formule A, jejichž řád je n. Stačí tedy dokázat, že každá algebraická formule A řádu n ≥ 1 je ekvivalentní s jistou algebraickou formulí B, jejíž řád je nejvýše n a která má méně atomických algebraických podformulí řádu n, než má formule A. Přitom nevadí, má-li B více atomických podformulí řádů menších než n. Nechť tedy A je dána a nechť D je některá její atomická podformule řádu n. Tvrdíme, že formuli D lze nahradit s ní ekvivalentní formulí řádu menšího než n. Formule D má jeden z tvarů NRn,i(f), nebo g(ξn,i(f)) 0, nebo ξn,i(f) ξm,k(g), kde 0 < m ≤ n. Je-li D tvaru NRn,i(f), jsme hotovi, D je ekvivalentní s algebraickou formulí řádu menšího než n díky lemmatu 3.5.29. Uvažujme tedy případ, kdy D má tvar g(ξn,i(f)) 0. Vzhledem k lemmatu 3.5.28 můžeme předpokládat, že g má stupeň n nižší než stupeň n polynomu f. Má-li g stupeň 0, formule g(ξn,i(f)) 0 je formule a0 0, kde a0 je jediný koeficient polynomu g. Předpokládejme tedy, že g má nenulový stupeň. Jak jsme se dohodli, stačí napsat pseudoalgoritmus, který určí pravdivostní hodnotu formule g(ξn,i(f)) 0, tj. který „vypočítá hodnotu sgn g(ξn,i(f)) pomocí „podprogramů , které počítají pravdivostní hodnoty algebraických formulí řádů menších než n. Pišme ξ místo ξn,i(f). Urči kořeny α1, . . , αr polynomu f . Polož a0 = −∞, αr+1 = +∞. Zjisti znaménka čísel f(α0), . . , f(αr). Nalezni j ∈ {0, . . , r} takové, že počet nul plus počet změn v posloupnosti sgn f(α0) až sgn f(αj+1) je i a navíc platí sgn f(αj+1) = 0. Neexistuje-li takové j, pak ¬NRn,i(f) a sgn g(ξ) = sgn g(0). Jinak NRn,i(f). Tím je znovu určena platnost podmínky NRn,i(f), postup byl téměř stejný jako v lemmatu 3.5.29. Dále je určena hodnota sgn g(ξ) v případě, kdy ¬NRn,i(f). Zbývající část pseudoalgoritmu pracuje za předpokladu, že NRn,i(f). Protože NRn,i(f), číslo ξ je i-tým kořenem polynomu f a zároveň je jediným kořenem polynomu f v intervalu [[αj, αj+1). Pokud f(αj) = 0 (což nemůže nastat, je-li j = 0), platí ξ = αj a sgn g(ξ) = sgn g(αj). Jinak platí αj < ξ. Číslo ξ je ovšem stále jediným kořenem polynomu f v intervalu [[αj, αj+1). Urči kořeny β1, . . , βl polynomu g. Polož β0 = −∞. Uvažuj všechna čísla β ∈ {b0, . . , βl}, pro která platí některá z podmínek - β ≤ αj, - β ∈ (αj, αj+1) a sgn f(β) = sgn f(αj), - β ∈ (αj, αj+1) a f(β) = 0. Nechť βk je maximální takové β. Splňuje-li βk poslední podmínku, tj. platí-li βk ∈ (αj, αj+1) a f(βk) = 0, musí být βk = ξ. V tom případě sgn(g(ξ)) = 0. Jinak platí βk < ξ a βk je buď maximálním kořenem polynomu g v intervalu (−∞, ξ]], nebo k = 0, βk = −∞ a g nemá kořeny v (−∞, ξ]]. V obou případech 252 3 Predikátová logika se sgn g(ξ) pozná podle toho, jaké má g znaménko v pravém okolí bodu βk, tedy na základě lemmatu 3.5.24 nebo lemmatu 3.5.25. Stejně jako v lemmatu 3.5.29 lze tento pseudoalgoritmus přepsat na algebraickou formuli sestavenou z atomických algebraických formulí tvaru f(ξn−1,j(f )) 0, g(ξn−1,j(f )) 0, ξn ,k(g) ξn−1,j(f ) a f(ξn ,k(g)) 0, tedy na algebraickou formuli řádu n − 1. Tato formule vyjmenovává všechny příznivé případy, které mohou nastat pro kořeny polynomů f a g v případě, kdy g(ξn,i) 0, přičemž je jasné, že jeden z oněch případů nastat musí. Nakonec uvažujme případ, kdy formule D má tvar ξn,i(f) ξm,k(g), kde m ≤ n a m je nenulové. Pišme ξ1 a ξ2 místo ξn,i(f) a ξm,k(g). Máme určit vzájemnou polohu kořenů ξ1 a ξ2. Urči čísla α0, . . , αr+1 taková, že a0 = −∞, αr+1 = +∞ a α1, . . , αr je rostoucí posloupnost všech kořenů derivací f a g . Prohlédnutím hodnot sgn f(αi) a sgn g(αi) stanov pro každý z kořenů ξ1 a ξ2 interval [[αj, αj+1), v němž leží. Jsou-li tyto intervaly různé, je jasné, jaká (ostrá) nerovnost platí mezi ξ1 a ξ2. Jinak máme j takové, že αj ≤ ξ1 < αj+1 a αj ≤ ξ2 < αj+1. Platí-li f(αj) = 0 a g(αj) = 0, pak ξ1 = ξ2. Platí-li f(αj) = 0 a g(αj) = 0, pak ξ1 < ξ2. Platí-li f(αj) = 0 a g(αj) = 0, pak naopak ξ2 < ξ1. Zbývá uvážit poslední případ, kdy znaménka sgn f(αj) a sgn g(αj) jsou obě nenulová, tedy oba kořeny ξ1 a ξ2 jsou větší než αj. Znaménka sgn f(αj+1) a sgn g(αj+1) jsou ovšem také nenulová, a navíc platí sgn f(αj) = sgn f(αj+1) a sgn g(αj) = sgn g(αj+1). Platí-li g(ξ1) = 0, pak ξ1 = ξ2. Platí-li g(ξ1) > 0, pak ξ1 < ξ2 nebo ξ2 < ξ1 podle toho, je-li g klesající nebo rostoucí v intervalu (αj, αj+1). Platí-li g(ξ1) < 0, pak ξ1 < ξ2 nebo ξ2 < ξ1 podle toho, je-li g rostoucí nebo klesající v intervalu (αj, αj+1). To, zda g je rostoucí nebo klesající v intervalu (αj, αj+1) se ovšem pozná podle hodnot sgn g(αj) a sgn g(αj+1). Tím je formule D přepracována na ekvivalentní booleovskou kombinaci formulí NRn,j(f), NRn,j(g) a g(ξn,i(f)) 0 a atomických algebraických formulí řádu nižšího než n, tedy na algebraickou formuli řádu n neobsahující atomické algebraické formule tvaru ξn1,i1 (. .) ξn2,i2 (. .) maximálního možného řádu n. Vzhledem k úvahám uvedeným výše lze tuto formuli dále přepracovat na ekvivalentní algebraickou formuli řádu menšího než n. QED Zbývající úvahy o eliminaci kvantifikátorů pro teorii RCF jsou téměř stejné jako v případě teorií DOS a IAdd. Lemma 3.5.31 Nechť A(x, y1, . . , yq) je formule v jazyce LRCF, která je konjunkcí atomických formulí. Pak formule ∃xA je v teorii RCF ekvivalentní s jistou otevřenou formulí, jejíž všechny volné proměnné jsou mezi y1, . . , yq. Důkaz Užitím lemmatu 3.2.15 můžeme každou atomickou podformuli formule A upravit na tvar n i=1 aixn−i = m i=1 bixm−i nebo n i=1 aixn−i < m i=1 bixm−i , 3.5 Eliminace kvantifikátorů 253 kde ai a bi jsou termy v jazyce LRCF neobsahující proměnnou x. Protože za chybějící koeficienty lze doplnit nuly, můžeme předpokládat, že n = m. Formule n i=1 aixn−i m i=1 bixm−i je ekvivalentní s formulí n i=1(ai − bi)xn−i 0. Můžeme tedy předpokládat, že každá atomická podformule formule A má tvar f(x) = 0 nebo f(x) < 0, kde f je polynom, jehož koeficienty jsou termy v jazyce LRCF neobsahující proměnnou x. Uvažme nejprve případ, kdy alespoň jedna z atomických podformulí formule A je rovnost. Pak A má tvar f(x) = 0 & D(x, y), kde polynom f má nějaký stupeň n. Formule ∃xA je v teorii RCF+ ekvivalentní s formulí n i=1 (NRn,i(f) & D(ξn,i(f), y)). (∗) Formule (∗) je dle lemmatu 3.5.30 ekvivalentní s jistou otevřenou formulí B(y) v jazyce LRCF. Protože RCF+ je konzervativním rozšířením teorie RCF, formule ∃xA a B jsou spolu ekvivalentní v teorii RCF. Zbývá případ, kdy žádná z atomických podformulí formule A není rovnost. Pak formule A má tvar f1(x) < 0 & . . & fk(x) < 0, kde polynomy f1, . . , fk mají stupně n1, . . , nk. Formule ∃xA je v teorii RCF ekvivalentní s formulí k j=1 nj i=1 (NRnj ,i(fj) & k r=1 (fr je záporný v pravém okolí bodu ξnj ,i(fj))) ∨ ∨ k r=1 (fr je záporný v pravém okolí bodu −∞). (∗∗) Formule (∗∗) je algebraickou formulí, jak vyplývá z lemmat 3.5.24 a 3.5.25. Díky lemmatu 3.5.30 je tedy opět ekvivalentní s jistou otevřenou formulí B(y) v jazyce LRCF, a opět platí, že formule B(y) je ekvivalentní s původní formulí ∃xA. QED Lemma 3.5.32 Nechť ϕ je otevřená formule v jazyce LRCF. Pak formule ∃xϕ je v teorii RCF ekvivalentní s jistou otevřenou formulí, která nemá jiné volné proměnné než ty, které jsou volné také ve formuli ∃xϕ. Důkaz Formule ¬(t = u) a formule ¬(t < u) je v teorii RCF ekvivalentní s formulí t < u ∨ u < t resp. s formulí t = u ∨ u < t. Zbývající úvahy jsou úplně stejné jako v důkazu lemmatu 3.5.7. QED Lemma 3.5.33 Každá atomická sentence v jazyce {+, ·, 0, 1, <, −} je v teorii RCF dokazatelná nebo vyvratitelná. Důkaz je podobný jako v 3.5.8 a v 3.5.16. Uplatní se tvrzení 3.2.14 (g) a (h) a tvrzení 3.5.18(h). QED Věta 3.5.34 Teorie RCF připouští eliminaci kvantifikátorů a je úplná. Důkaz je úplně stejný jako u vět 3.5.9 a 3.5.17. QED 254 3 Predikátová logika Všimněme si, že konzervativní rozšíření teorie RCF hrálo trochu jinou roli než konzervativní rozšíření teorií DO a IAdd. K teoriím DO a IAdd jsme přidali definice symbolů 0 a S resp. symbolů =n, abychom získali teorii, která připouští eliminaci kvantifikátorů. Naproti tomu v případě teorie RCF jsme s pomocí dodatečných symbolů NRn,i a ξn,i dokázali, že už původní teorie, tj. teorie RCF, připouští eliminaci kvantifikátorů. Alfred Tarski v souvislosti se svým výsledkem o struktuře R reálných čísel položil otázku, co by se stalo, kdybychom k jazyku LRCF teorie RCF přidali unární funkční symbol, řekněme E, který bychom realizovali funkcí x → ex . O výsledné struktuře, kterou můžeme dočasně označit R, E , je dnes známo, že její teorie Th( R, E ) nepřipouští eliminaci kvantifikátorů. Okolo roku 1991 ale dokázal A. Wilkie, že teorie Th( R, E ) splňuje slabší podmínku, než je eliminovatelnost kvantifikátorů: každá formule v jazyce LRCF ∪ {E} je v teorii Th( R, E ) ekvivalentní s jistou univerzální formulí a také s jistou existenční formulí. Další zajímavé otázky o struktuře Th( R, E ) zůstávají dodnes otevřené. Čtenáři, který se chce dozvědět více o historii a souvislostech Tarského výsledku o struktuře R, doporučujeme van den Driesův přehledový článek [16] a dále článek [17] téhož autora. Výsledek A. Wilkieho je v [99]. Postup, kterým jsme ukázali, že teorie IAdd axiomatizuje strukturu Z, +, 0, s , vznikl zjednodušením obdobného výsledku o struktuře N, +, 0, s, < , který dokázal M. Presburger v roce 1929 ([66]). Teorie struktury N, +, 0, s, < se dnes nazývá Presburgerovou aritmetikou. Někdy se tímto názvem označuje také teorie blízce příbuzné struktury Z, +, 0, s, < . O Presburgerově výsledku na rozdíl od Tarského výsledku o struktuře R pravděpodobně nelze říci, že podnítil důležitý výzkum probíhající v následujících desetiletích. Je ale také počítán k důležitým událostem v logice 20. století. Cvičení 1. Zdůvodněte, že formule ¬∃y(y < x) není v teorii DO ekvivalentní s žádnou otevřenou formulí, a že tedy teorie DO nepřipouští eliminaci kvantifikátorů. Návod. Přizpůsobte argument z cvičení 21 v oddílu 3.1. 2. Zdůvodněte podrobně, že je-li D1 struktura pro jazyk L1 a D2 expanze struktury D1, pak každá sentence jazyka L1 platí v D1 právě tehdy, platí-li v D2. (Totéž se již tvrdilo ve cvičení 18 oddílu 3.1.) 3. Dokažte, že struktura N, 0, s + Z, s z obrázku 3.4.1 nemá žádnou expanzi, která je modelem teorie Th( N, +, 0, s ). Návod. Zdůvodněte, že ať je sčítání definováno jakkoliv, žádný z prvků oblasti Z, s nesplňuje formuli ∃y(x = y + y ∨ x = S(y + y)). 4. Je-li T úplná, pak každé bezesporné rozšíření T teorie T je jejím konzervativním rozšířením. Dokažte. 3.5 Eliminace kvantifikátorů 255 5. Zdůvodněte na základě předchozích dvou cvičení, že větu 3.5.2 nelze obrátit. 6. Zdůvodněte užitím věty 3.5.2 nebo užitím cvičení 4, že teorie DOS je konzervativním rozšířením teorie SUCC. 7. Nechť T2 je teorie vzniklá z teorie DOS odstraněním axiomu DO3 a nechť T1 je teorie vzniklá z teorie SUCC odstraněním axiomu Q3. Dokažte, že teorie T2 je konzervativním rozšířením teorie T1. 8. Když je teorie T2 konzervativním rozšířením teorie T1, pak ke každému modelu A teorie T1 existuje s ním elementárně ekvivalentní model B, který má expanzi, která je modelem teorie T2. Dokažte. 9. Zdůvodněte, že je-li T konzervativní rozšíření teorie T a je-li ϕ sentence v jazyce teorie T, pak (T + ϕ) je konzervativní rozšíření teorie (T + ϕ). 10. Nechť F /∈ L je n-ární funkční symbol, η(x, y) je formule v L a T je teorie s jazykem L. Nechť dále T je teorie s jazykem L ∪ {F}, jejímiž axiomy jsou všechny axiomy teorie T a navíc sentence ∀xη(x, F(x)). Dokažte s užitím věty 3.5.2, že platí-li T ∀x∃yη(x, y), pak teorie T je konzervativním rozšířením teorie T. 11. Dokažte, že je-li T rozšíření teorie T o definice, pak každá formule v jazyce teorie T je v teorii T ekvivalentní s jistou formulí v jazyce teorie T. Návod. Nechť například T je rozšířením teorie T o definici tvaru (d2) a nechť je dána formule ϕ v jazyce teorie T . Stačí zabývat se atomickými podformulemi formule ϕ. Když P(t1, . . , tm) je atomická podformule formule ϕ, v níž term ti obsahuje symbol F, pak formule P(t1, . . , tm) je ekvivalentní s formulí ∃v(ti = v & P(t1, . . , ti−1, v, ti+1, . . , tm)). Opakováním tohoto postupu pro symboly P jiné než rovnítko a všechny možné termy získáme formuli ϕ(1) ekvivalentní s formulí ϕ, ve které se symbol F vyskytuje pouze v rovnostech. Dále lze získat formuli ϕ(2) ekvivalentní s ϕ, ve které se symbol F vyskytuje vždy pouze na levé straně rovnosti, a pak formuli ϕ(3) , ve které se symbol F vyskytuje vždy pouze v kontextu F(t1, . . , tn) = s, kde termy ti a s neobsahují symbol F. Každou podformuli tvaru F(t) = s lze pak nahradit formulí η(t, s). 12. Dokažte formuli x ≤ m ≡ x = 0 ∨ . . ∨ x = m v teorii DOS. 13. Dokažte formuli ¬(x =n y) ≡ x =n y +1 ∨ . . ∨ x =n y +n − 1 v teorii IAdd. 14. Dokažte, že formule z příkladu 3.5.13 je v teorii IAdd ekvivalentní s formulí y1 =2 y2 & y1 =5 y3 & y2 =7 y3. 15. Dokažte, že teorie SUCC připouští eliminaci kvantifikátorů. Návod. Postupujte obdobně jako v případě teorie DOS, ale nepokoušejte se odstranit negativní literály. Lemma analogické lemmatu 3.5.5 formulujte pro konjunkci formulí tvaru S(m) (x) = t a S(m) (x) = t. 256 3 Predikátová logika 16. Dokažte úplnost teorie DNO pomocí eliminace kvantifikátorů. Návod. Z triviálního důvodu není pravda, že každá sentence je v teorii DNO ekvivalentní s otevřenou sentencí, v jazyce teorie DNO totiž žádné otevřené sentence neexistují. Tuto potíž lze ale překonat přidáním symbolu ⊥, tj. zkratky pro spor, mezi logické spojky. 17. Definujeme-li na množině Z × Q sčítání předpisem [a, b] + [c, d] = [a + c, b + d] (tj. sčítá se „po složkách ) a dodefinujeme-li vhodně realizace symbolů 0 a 1, dostaneme model teorie IAdd. Dokažte. Toto cvičení a úvahy v souvisejícím příkladu 3.6.16 navrhl I. Korec. 18. Je-li f polynom s koeficienty c0, . . , cn a platí-li pro číslo a, že f(a) > 0 (nebo že f(a) < 0), pak f je kladný (resp. záporný) v jistém okolí bodu a. Dokažte toto tvrzení v teorii uspořádaných těles. Návod. Zdůvodněte a užijte rovnost |f(x) − f(a)| = |x − a| · n i=0 |ci| · |xi−1 + xi−2 a + . . + xai−2 + ai−1 |. První činitel je pro x blízké k a velmi malý, součet lze omezit konstantou nezávislou na x. 19. Z faktů, že ve struktuře R reálných čísel platí axiomy R1–R15 a že ve struktuře R, < platí věta o supremu, zdůvodněte užitím předchozího cvičení, že v R platí schéma R16. Návod. Platí-li a < b, f(a) > 0, f(b) < 0, označte γ supremum množiny { x ∈ (a, b) ; f(x) ≥ 0 }. Musí platit f(γ) = 0. 20. V důkazu lemmatu 3.5.29 byla formule NR3,2(f) přepracována na algebraickou formuli řádu 2. Udělejte totéž s formulí NR3,3(f). 21. Navrhněte teorii, která axiomatizuje strukturu N, +, 0, s, < , a dokažte její úplnost pomocí eliminace kvantifikátorů. 3.6 Rozhodnutelnost, definovatelnost, interpreto- vatelnost Vraťme se ještě jednou k některému příkladu na eliminaci kvantifikátorů z oddílu 3.5. Prohlédneme-li si například důkaz věty 3.5.9 a důkazy předchozích lemmat 3.5.5–3.5.8, můžeme konstatovat, že v těchto důkazech jsou vlastně obsaženy dva algoritmy: jeden převede libovolnou formuli na formuli, která je s ní ekvivalentní a neobsahuje kvantifikátory, druhý rozhodne o dokazatelnosti otevřené sentence. Z obou algoritmů lze utvořit ještě další algoritmus, který rozhodne o dokazatelnosti libovolné sentence. Úloha rozpoznat, zda daná sentence v jazyce teorie DOS 3.6 Rozhodnutelnost, definovatelnost, interpretovatelnost 257 je v teorii DOS dokazatelná, je tedy algoritmicky rozhodnutelnou úlohou. Nyní budeme chtít říci více o takovýchto úlohách. Připomeňme si, že chceme-li uvažovat o algoritmech pracujících s formulemi, musíme mít jasno v tom, jak přesně se formule zapisují pomocí symbolů. Pro tento účel jsme se na začátku kapitoly domluvili, že množina Var všech proměnných je nekonečná spočetná, Var = {v0, v1, . . . }, a že každý její prvek vi zapisujeme jako písmeno v následované zápisem čísla i. Pro určitost k tomu nyní dodejme, že čísla zapisujeme binárně. Například je-li ϕ formule ∃v2(S(v2) = S(0)), pak ϕ je ve skutečnosti posloupností ∃v10=(S(v10),S(0)) sestávající z osmnácti symbolů. Nijak nevadí fakt, že symbol 0 má dvojí roli, vyskytuje se v indexech proměnných a jako konstanta je také prvkem některých jazyků. Budeme-li v tomto oddílu mluvit o axiomatické teorii, vždy předpokládáme, že její jazyk je nejvýše spočetný a že je-li nekonečný, byla pro zapisování jeho prvků přijata podobná dohoda jako pro zapisování nekonečně mnoha proměnných. Dále se pro účely strojového zpracování důkazů domluvme, že za prvotní v tomto oddílu považujeme hilbertovský kalkulus a že pro oddělování formulí od sebe užíváme při zapisování důkazů znak #. Důkaz tedy nyní není posloupností formulí, nýbrž je slovem tvaru ϕ1#ϕ2# . . #ϕm, kde každé podslovo ϕi je formulí, která je buď takovým či onakým axiomem, nebo je odvozena z některých dříve se vyskytujících podslov ϕj pomocí jednoho ze tří odvozovacích pravidel. Od kapitoly 2 máme k dispozici kódovou tabulku, která přiřazuje číselné kódy všem znakům, které kdy můžeme potřebovat. Nejsou-li číselné kódy znaků důležité (což nikdy nejsou), můžeme kód znaku psát jako levý apostrof následovaný tímto znakem. Od kapitoly 2 máme také k dispozici kódování konečných posloupností přirozených čísel, které nám dovoluje libovolnou konečnou posloupnost přirozených čísel považovat za jediné přirozené číslo. Například pro formuli ϕ uvedenou výše můžeme tedy psát ϕ = ‘∃‘v‘1‘0‘=‘(‘S‘(‘v‘1‘0‘)‘,‘S‘(‘0‘)‘) . Kdo by na tom trval, mohl by případně do kódové tabulky nahlédnout a zjistit, že ϕ = 11, 91, 33, 32, 27, 12, 61, 12, 91, 33, 32, 13, 16, 61, 12, 32, 13, 13 . Šlo by také připomenout si definici kódování posloupností a určit číslo ϕ = 211+1 · . . · 6713+1 . To už ale pro náš výklad opravdu nemá význam. Navíc v kapitole 4 budeme potřebovat jiné kódování než ono založené na rovnosti a0, . . , an−1 = 2a0+1 · . . · p an−1+1 n−1 , které jsme definovali v kapitole 2. Důležité je pouze to, že díky kódové tabulce a díky jednoznačné kódovatelnosti a dekódovatelnosti konečných posloupností přirozených čísel můžeme formule a ostatní syntaktické objekty ztotožnit s přirozenými čísly a množiny syntaktických objektů pak považovat za množiny přirozených čísel. O libovolné množině formulí se tedy můžeme ptát, zda je například rekurzívní. Připomeňme si, že Thm(T) označuje množinu všech sentencí dokazatelných v teorii T a dále že Ref(T) označuje množinu všech sentencí vyvratitelných v teorii T, tj. množinu všech sentencí ϕ takových, že T ¬ϕ. Evidentně platí, že množiny Thm(T) a Ref(T) jsou disjunktní právě tehdy, když teorie T je bezesporná (viz 3.2.7(c)), a že je-li M libovolný model teorie T, pak Thm(T) ⊆ Th(M) a Th(M) ∩ Ref(T) = ∅. Vztahy mezi množinami Thm(T), Ref(T), Th(M) a T 258 3 Predikátová logika jsou pro případ, kdy M je model teorie T, znázorněny na obr. 3.6.1, přičemž velký obdélník znázorňuje množinu všech sentencí v jazyce teorie T. Dále je zřejmé, že každá z množin Thm(T) a Ref(T) je m-převeditelná na druhou a že množina Th(M) je m-převeditelná na svůj komplement. Ve všech případech lze vystačit s (dokonce logaritmicky počitatelnou) funkcí ϕ → ¬ϕ, tj. s pouhým připsáním negace. Th(M) Thm(T) Ref(T) T Obrázek 3.6.1: Vztahy mezi množinami Thm(T), Ref(T) a Th(M), platí-li M |= T Definice 3.6.1 Teorie T je rozhodnutelná, jestliže množina Thm(T) je obecně rekurzívní. Jinak je nerozhodnutelná. Struktura D je rozhodnutelná nebo nerozhodnutelná, jestliže množina Th(D) je resp. není obecně rekurzívní. Jak již bylo řečeno, eliminace kvantifikátorů pro teorii DOS poskytuje algoritmus, který rozhoduje o náležení do množiny Thm(DOS). Tento algoritmus by se samozřejmě dal přepsat do formalismu jazyka RASP nebo do formalismu rekurzívních funkcí. Teorie DOS je tedy rozhodnutelná. Ze stejného důvodu jsou rozhodnutelné i teorie IAdd a RCF. Je zřejmé, že úplná teorie T je rozhodnutelná, právě když některý její model je rozhodnutelný, a to je právě tehdy, když každý její model je rozhodnutelný. Z toho plyne, že struktury N, 0, s, < , Z, +, 0, 1 a R jsou rozhodnutelné. Protože redukt rozhodnutelné struktury je evidentně opět rozhodnutelnou strukturou, také struktury N, 0, s , N, < a R, < jsou rozhodnutelné. Z toho dále plyne rozhodnutelnost teorií SUCC, DO a DNO, všechny jsou totiž úplné. Také struktury z obrázků 3.4.1 a 3.4.2 jsou rozhodnutelné. Rozhodnutelnost teorií SUCC a DNO plyne také z faktu uvedeného ve cvičeních předchozího oddílu, totiž že obě tyto teorie (vlastně) připouštějí eliminaci kvantifikátorů. Příklad 3.6.2 Přidejme k jazyku {0, S} teorie SUCC unární predikátový symbol P, zvolme nerekurzívní množinu A ⊆ N a označme T1 teorii SUCC ∪ { P(n) ; n ∈ A }. Když n /∈ A, lze zvolit expanzi M = N, 0, s, PM struktury N, 0, s , ve které neplatí sentence P(n). Platí tedy ∀n(n ∈ A ⇔ P(n) ∈ Thm(T1)). Z toho plyne A ≤m Thm(T1). Teorie T1 je tedy příkladem nerozhodnutelné teorie. Struktura N, 0, s, N , ve které je predikát P realizován celou množinou N, je modelem teorie T1, o němž lze zdůvodnit, že je rozhodnutelnou strukturou. Naopak struktura N, 0, s, A je příkladem nerozhodnutelného modelu teorie T1. Příklad 3.6.3 Zvolme jazyk a množinu A /∈ OR stejně jako v předchozím příkladu a položme T2 = T1 ∪{¬P(n); n /∈ A}. Teorie T2 je nerozhodnutelná ze stejného důvodu jako teorie T1. Oproti příkladu 3.6.2 máme navíc A ≤m Thm(T2). Tentokrát 3.6 Rozhodnutelnost, definovatelnost, interpretovatelnost 259 platí, že všechny modely teorie T2 jsou nerozhodnutelné. Pro pořádek dodejme, že teorie T2 není úplná; stačí uvážit například sentenci ∀x(P(x) ∨ P(S(x))). Příklad 3.6.4 Zvolme množinu A jako v předchozích dvou příkladech, zvolme jazyk {c, P0, P1, . . . } s jednou konstantou a nekonečně mnoha unárními predikáty a položme T3 = {Pn(c); n ∈ A}. Stejně jako v příkladu 3.6.2 platí, že T3 je nerozhodnutelnou teorií, jejíž některé modely jsou a některé nejsou rozhodnutelné. Teorie T3 má ale dokonce jednoprvkový model, který je nerozhodnutelnou strukturou. Věta 3.6.5 Je-li D konečná struktura pro konečný jazyk, pak D je rozhodnutelná. Důkaz Nechť a1, . . , an jsou všechny prvky nosné množiny D struktury D, která je strukturou pro konečný jazyk L. Snadno lze navrhnout datové struktury pro zapisování prvků množiny D a pro zapisování ohodnocení proměnných ve struktuře D. Můžeme si myslet, že realizace FD libovolného funkčního symbolu F ∈ L je definována tabulkou, podobně jako v případě struktury A z obrázku 3.1.1 na straně 141. Tyto tabulky umožňují určit pro daný term t a ohodnocení e hodnotu tD [e] termu t ve struktuře D. Dále si můžeme myslet, že podobnou tabulku máme i pro realizaci PD každého predikátového symbolu P ∈ L. Podmínka D |= ϕ[e] je tedy v případě, kdy formule ϕ je atomická, algoritmicky rozhodnutelná. Podmínky T8 a T9 v našem případě říkají D |= (∃xϕ)[e] ⇔ D |= ϕ[e(x/a1)] ∨ . . ∨ D |= ϕ[e(x/an)], D |= (∀xϕ)[e] ⇔ D |= ψ[e(x/a1)] & . . & D |= ϕ[e(x/an)]. Platí také ekvivalence D |= (ϕ → ψ)[e] ⇔ D /|= ϕ[e] ∨ D |= ψ[e] a tři další ekvivalence týkající se zbývajících logických spojek. Na těchto šesti ekvivalencích lze založit proceduru, která otázku, zda daná formule je splněna daným ohodnocením, převádí na analogické otázky týkající se jednodušších a jednodušších formulí. Přesněji řečeno, jde o proceduru, která pro dané vstupy ϕ a e pomocí rekurzívního volání sebe sama rozhodne, zda platí D |= ϕ[e]. Struktura D ovšem není vstupem, ta je známa už v době psaní oné procedury. Zbytek, tj. hlavní program, který rozhoduje o platnosti dané sentence ϕ v D, je zřejmý: sentence ϕ je v Th(D), právě když pro libovolně zvolené ohodnocení e naše procedura řekne ano na otázku [ϕ, e]. QED Definujme ProofT (ϕ, d) jako zkratku pro podmínku „ϕ je sentence, d je její důkaz v teorii T . Věta 3.6.6 Nechť teorie T (jako množina sentencí) je primitivně rekurzívní, rekurzívní nebo rekurzívně spočetná. Pak i podmínka ProofT (ϕ, d) je primitivně rekurzívní, resp. rekurzívní, resp. rekurzívně spočetná. Množiny Thm(T) a Ref(T) jsou ve všech třech případech rekurzívně spočetné. 260 3 Predikátová logika Důkaz Platí ϕ ∈ Thm(T) ⇔ ∃dProofT (ϕ, d). Je-li podmínka ProofT (ϕ, d) rekurzívně spočetná, pak množina Thm(T) je rekurzívně spočetná díky implikaci ⇐ ve větě 2.2.25 resp. díky tvrzení 2.2.35(e). Množina Ref(T) je rekurzívně spočetná z podobného důvodu, anebo také proto, že Ref(T) ≤m Thm(T). Zabývejme se tedy klasifikací podmínky ProofT (ϕ, d). Nejprve nechť Number(z) znamená „z je binárním zápisem přirozeného čísla (tj. „z je numerickým kódem slova, které je binárním zápisem přirozeného čísla ) a nechť Var(v) znamená „v je proměnná . Platí Number(z) ⇔ Seq(z) & Lh(z) = 0 & (Lh(z) > 1 ⇒ (z)0 = ‘0) & & ∀i 0 takové, že ∀a ∈ Z(a ∈ X ⇔ a + m ∈ X). Dále definujme rovněž dočasně, že množina X ⊆ Z je skoro periodická, jestliže se od některé periodické množiny liší o nejvýše konečně mnoho prvků. Lze ověřit, že každá atomická formule ϕ(x) v jazyce L+ IAdd definuje ve struktuře Z, +, 0, 1, =1, =2, . . . množinu, která je skoro periodická. Pomocí booleovských operací může ze skoro periodických množin vzniknout opět pouze skoro periodická množina. To znamená, že otevřené formule v jazyce L+ IAdd definují pouze skoro periodické množiny. Víme, že každá formule ϕ(x) v jazyce {+, 0, 1} je v teorii IAdd+ ekvivalentní s otevřenou 266 3 Predikátová logika formulí v jazyce L+ IAdd. To znamená, že každá množina definovatelná ve struktuře Z, +, 0, 1 je skoro periodická. Množina N není skoro periodická, není tedy ve struktuře Z, +, 0, 1 definovatelná. Vidíme, že nedefinovatelnost určitých množin lze někdy dokázat pomocí eliminace kvantifikátorů pro jisté teorie. Možná, že význam eliminace kvantifikátorů pro určitou teorii T spočívá především v tom, že poskytuje informaci o množinách definovatelných v modelech teorie T. Řada dalších příkladů definovatelných a nedefinovatelných množin je uvedena ve cvičeních. Obraťme pozornost k poslední problematice tohoto oddílu i kapitoly, k interpretacím a interpretovatelnosti. Předpokládejme, že T a S jsou axiomatické teorie. Interpretovat teorii T v teorii S znamená vyčlenit v teorii S určité objekty (objekty teorie T „v novém smyslu ) a definovat na těchto objektech operace a relace příslušné k symbolům jazyka teorie T (funkce a predikáty „v novém smyslu ) tak, aby „v novém smyslu platily všechny axiomy teorie T. Přitom „vyčlenit znamená stanovit formuli δ(x) v jazyce teorie S zvanou obor interpretace, „definovat znamená rozšířit teorii S o definice a „aby platilo znamená „dokazatelně v S . Než přistoupíme k formulaci definice, ukažme si jednoduchý příklad. Zvolme za S teorii s jazykem {<} a s axiomy LO1–LO3, DO1 a DO2. Rozšiřme teorii S o tytéž definice, jako když jsme formulovali teorii DOS: objekt S(x) je definován jako nejmenší z objektů větších než x a dále objekt 0 je nejmenší z objektů vůbec. Uvnitř takto definovaného rozšíření S teorie S víme, že různé objekty nemají stejného následníka, 0 není následníkem žádného objektu, konečným nenulovým počtem skoků následnické funkce nelze z žádného objektu x dospět zpět do x. Protože právě vyslovené sentence (jde o axiomy Q1, Q2 a Ln teorie SUCC) jsou univerzální, zůstanou v platnosti, když se omezíme na objekty z jakéhokoliv oboru δ(x). Jako obor δ(x) interpretace zvolme formuli ∀y≤x(∃v(v < y) → ∃v(v < y & ∀u(u < y → u ≤ v))), kde ≤ má obvyklý význam menší nebo rovno. Prvkem oboru interpretace čili objektem v novém smyslu je tedy každý objekt x splňující podmínku, že objekt x i všechny menší objekty, kromě ovšem úplně nejmenšího, mají bezprostředního předchůdce. Máme S ∀x(δ(x) → δ(S(x)), obor interpretace je uzavřen na následnickou funkci. Dále máme S ∀x(δ(x) & x = 0 → ∃y(δ(y) & x = S(y))), „v novém smyslu platí či „v interpretaci platí axiom Q3. Definice symbolů 0 a S a obor δ tedy určují interpretaci teorie SUCC v teorii S. Nechť tedy T a S jsou axiomatické teorie a S je rozšíření teorie S o definice. Nechť L(U) označuje jazyk libovolné teorie U. Funkce z L(T) do L(S ) je překlad symbolů, jestliže zachovává četnost i kategorii symbolů, tj. jestliže každý n-ární funkční či predikátový symbol jazyka L(T) se funkcí zobrazí opět na n-ární funkční resp. predikátový symbol jazyka L(S ). Nechť δ(x) je formule jazyka L(S) s nejvýše jednou volnou proměnnou x. Řekneme, že funkce ∗ z množiny všech formulí jazyka L(T) do množiny všech formulí jazyka L(S ) je překlad formulí založený na překladu symbolů a na oboru δ(x), jestliže platí: 3.6 Rozhodnutelnost, definovatelnost, interpretovatelnost 267 • je-li ϕ atomická formule, pak ϕ∗ je formule vzniklá z ϕ záměnou každého funkčního symbolu F a každého predikátového symbolu P symbolem F resp. P , • je-li libovolná binární logická spojka, pak (ϕ ψ)∗ je ϕ∗ ψ∗ , a dále (¬ϕ)∗ je ¬ϕ∗ pro kterékoliv formule ϕ a ψ jazyka L, • (∃xϕ)∗ je ∃x(δ(x) & ϕ∗ ) a konečně (∀xϕ)∗ je ∀x(δ(x) → ϕ∗ ) pro kteroukoliv formuli ϕ jazyka L. K tomu poznamenejme, že při nahrazování funkčních a predikátových symbolů se nic neděje se symbolem =, tj. rovnítko se překládá samo na sebe. Řekneme, že trojice [S , , δ], kde S je rozšíření teorie S o definice, funkce : L(T) → L(S ) je překlad symbolů a δ(x) je formule v jazyce L(S), je interpretace teorie T v teorii S, jestliže formule δ, překlad symbolů a překlad formulí ∗ založený na překladu symbolů a na oboru δ(x) splňují podmínky: (i) S ∃xδ(x), (ii) S ∀x1 . . ∀xn(δ(x1) & . . & δ(xn) → δ(F (x))) pro libovolný funkční symbol F ∈ L(T), (iii) S ϕ∗ pro libovolný axiom ϕ teorie T. Když [S , , δ] je interpretace teorie T v teorii S, pak formuli δ(x) říkáme obor interpretace [S , , δ]. Řekneme, že teorie T je interpretovatelná v teorii S, jestliže existuje interpretace teorie T v teorii S. Příklad 3.6.17 Než jsme formulovali definici interpretace, zdůvodnili jsme, že teorie SUCC je interpretovatelná v teorii S s jazykem {<} a axiomy LO1–LO3, DO1 a DO2. Teorie SUCC je ovšem interpretovatelná také v teorii (S + DO3), tj. v teorii DO. Příklad 3.6.18 Tento příklad je určen čtenářům s jistou znalostí teorie množin. Nechť S je Zermelova-Fraenkelova teorie množin ZF, nechť AR označuje axiom regularity. V ZF definujme posloupnost množin { pα ; α ∈ On } rekurzí: p0 = ∅, dále pα+1 = P(pα), kde P(pα) označuje potenční množinu množiny pα, a konečně pλ = α<λ pα, je-li λ limitní. Jako rozšíření S teorie T o definice volme opět teorii ZF. V tom případě máme jen jednu možnost pro volbu překladu symbolů: ∈ = ∈. Jako obor interpretace δ(x) volme formuli x ∈ α∈On pα. Lze ověřit, že takto definovaná interpretace [S , , δ] je interpretací teorie (ZF + AR) v teorii ZF. Věta 3.6.19 Když teorie T je interpretovatelná v teorii S a S je bezesporná, pak i T je bezesporná. Důkaz Nechť [S , , δ] je interpretace teorie T v teorii S. Pro libovolný term t jazyka L(T) nechť t∗ označuje výsledek záměny každého funkčního symbolu F 268 3 Predikátová logika v termu t symbolem F . Pišme δ(x) místo konjunkce δ(x1) & . . & δ(xn). Podmínka (ii) v definici interpretace říká, že je-li t term obsahující právě jeden funkční symbol, platí S ∀x(δ(x) → δ(t∗ (x))). (1) Pro term obsahující nula funkčních symbolů to ovšem platí také. Indukcí podle složitosti termu t lze snadno dokázat, že podmínka (1) platí pro každý term t. Nechť dále ∀ϕ označuje univerzální uzávěr formule ϕ. Indukcí podle počtu kroků v důkazu formule ϕ v teorii T lze dokázat, že pro libovolnou formuli ϕ v L(T) platí implikace T ϕ ⇒ S (∀ϕ)∗ . (2) Ukažme si podrobněji například krok, kdy ϕ je axiom specifikace tvaru ∀yψ→ψx(t). Nechť x1, . . , xn jsou všechny proměnné, které se vyskytují volně ve formuli ∀yψ, nechť z1, . . , zk jsou všechny proměnné, které se vyskytují v termu t a přitom nejsou mezi x1, . . , xn. Mezi z1, . . , zk může nebo nemusí být proměnná y. Formule ϕ má tedy tvar ∀yψ(x, y) → ψ(x, t(x, z)) a formule (∀ϕ)∗ je formule ∀x∀z(δ(x) & δ(z) → (∀y(δ(y) → ψ∗ (x, y)) → ψ∗ (x, t∗ (x, z)))). Toto je formule dokazatelná v teorii S , neboť uvnitř S z podmínky (1) víme, že platí-li δ(x) a δ(z), pak pro y = t∗ (x, z) platí δ(y). Zbývající úvahy v důkazu podmínky (2) jsou podobné a ponecháváme je za cvičení. Je-li teorie T sporná, pak v T lze dokázat sentenci ∃x(x = x). Označme tuto sentenci ϕ. Podmínka (2) dává S ϕ∗ , tj. S ∃x(δ(x) & x = x). Protože S je konzervativní rozšíření teorie S a ϕ je sentence jazyka L(S), máme S ϕ∗ . Evidentně ale platí i S ¬ϕ∗ . QED Pomocí interpretací lze tedy někdy dokázat bezespornost určitých teorií. Přitom je zajímavé, že jde o čistě syntaktickou metodu pro prokazování bezespornosti. To má význam zejména v situaci, kterou naznačuje příklad 3.6.18, při úvahách o „silných teoriích, u kterých nemáme k dispozici přímé konstrukce modelů. Fakt, že (ZF + AR) je interpretovatelná v ZF, znamená, že (ZF + AR) je bezesporná teorie, pokud ovšem ZF je bezesporná teorie. Říká se také, že interpretovatelnost teorie (ZF + AR) v ZF znamená relativní bezespornost teorie (ZF + AR) vůči teorii ZF. Tvrdíme-li, že nějaká teorie tvaru (T + ϕ) je relativně bezesporná vůči teorii T, říkáme tím, že teorie (T + ϕ) sice může být sporná, nový axiom ϕ však za případný spor určitě nemůže. Pojem interpretace není zvlášť stabilním pojmem, v literatuře lze nalézt jeho různé varianty. Například teorie T je lokálně interpretovatelná v teorii S, jestliže každá konečná množina F ⊆ T je (v našem smyslu) interpretovatelná v S. Všimněme si, že věta 3.6.19 by platila i v případě, kdybychom v ní psali „lokálně interpretovatelná místo „interpretovatelná . Jsou možné také interpretace s neabsolutní rovností nebo vícedimenzionální interpretace. Definice interpretace s neabsolutní rovností připouští, aby překladem rovnítka byl nějaký binární predikátový symbol (ne nutně rovnítko); podmínka (iii) v definici interpretace pak zní „S ϕ∗ , kdykoliv 3.6 Rozhodnutelnost, definovatelnost, interpretovatelnost 269 ϕ je axiom teorie T nebo axiom rovnosti . Definice vícedimenzionální interpretace teorie T v teorii S připouští (požaduje), aby překladem formule s k volnými proměnnými byla formule s m · k volnými proměnnými, tj. aby objekt teorie T byl interpretován jako m-tice objektů teorie S. Náš pojem interpretace byl definován v knize [92] a lze jej označit za globální jednodimenzionální interpretaci s absolutní rovností. Studium interpretovatelnosti axiomatických teorií a různých variant pojmu interpretace má v pražském či středoevropském prostředí velmi dobrou tradici, viz např. Hájkovy články [33] nebo [30]. Také větu 3.6.22 a související tvrzení uvedené ve cvičení 24 dokázal Petr Hájek. Novější zdroj relevantních odkazů a informací o interpretovatelnosti axiomatických teorií je například Visserův přehledový článek [96]. Protože se však tento článek týká interpretovatelnosti teorií obsahujících nějakou verzi aritmetiky, lze jej doporučit pouze čtenářům, kteří mají představu o obsahu kapitoly 4 a oddílu 5.3 našeho textu. Řekneme, že struktura A je definovatelná ve struktuře B, jestliže nosná množina A struktury A a realizace FA a PA všech funkčních a predikátových symbolů jsou definovatelné množiny ve struktuře B. Lemma 3.6.20 Když teorie T je interpretovatelná v teorii S, pak ke každému modelu M teorie S existuje model D teorie T, který je definovatelnou strukturou v modelu M. Důkaz Nechť [S , , δ] je interpretace teorie T v teorii S, nechť ∗ je překlad formulí založený na překladu symbolů a na oboru δ a nechť je dán model M teorie S. Za nosnou množinu struktury D vezměme množinu D = { a ∈ m ; M |= δ[a] }. Nechť F ∈ L(T) je libovolný n-ární funkční symbol. Když F ∈ L(S), vezměme za formuli η(x, y) formuli (F(x) = y)∗ , tj. formuli F (x) = y. Když F ∈ L(S ) − L(S), vezměme za formuli η(x, y) formuli užitou k definování symbolu F , tj. tu formuli, která vystupuje v podmínce (d2) věty 3.5.3. V obou případech je formule η(x, y) formulí jazyka L(S). Definujme realizaci FD symbolu F jako množinu { [a, b] ; M |= η[a, b] }. Množina FD je definovatelnou množinou struktury M. Analogicky definujeme realizaci PD libovolného predikátového symbolu P. Tím jsme získali strukturu D definovatelnou ve struktuře M. Snadno lze ověřit, že pro libovolnou formuli ϕ(x1, . . , xk) jazyka L(T) a prvky a1, . . , ak ∈ D platí ekvivalence D |= ϕ[a] ⇔ M |= ϕ∗ [a]. Protože M |= ϕ∗ pro libovolný axiom ϕ teorie T, struktura D je modelem teorie T. QED Příklad 3.6.21 Ukažme pomocí lemmatu 3.6.20, že teorie DO není interpretovatelná v teorii SUCC. Vezměme model M = N, 0, s + Z, s + Z, s , tj. model podobný jako na obrázku 3.4.1, ale se dvěma celočíselnými oblastmi. Nechť D je struktura definovatelná ve struktuře M, která je modelem teorie DO. Modifikací úvahy z cvičení 15, tj. na základě faktu, že teorie SUCC připouští eliminaci 270 3 Predikátová logika kvantifikátorů, lze zdůvodnit, že každá množina definovatelná ve struktuře M je buď konečnou podmnožinou oblasti N, 0, s , nebo je komplementem takové podmnožiny. Protože každý model teorie DO je nekonečný, pro nosnou množinu D struktury D platí druhý případ. Množina D tedy obsahuje všechny prvky obou celočíselných oblastí modelu M (plus skoro všechny prvky oblasti N, 0, s ). Zvolme prvky a a b různých celočíselných oblastí. Zvolme automorfismus f, pro který platí f(a) = b a f(b) = a. Automorfismus f zobrazí každou z obou celočíselných oblastí na druhou z nich a oblast N, 0, s ponechá na místě. Z platnosti axiomů LO2 a LO3 (viz str. 172) ve struktuře D plyne ekvivalence a , ≥, Q2 . 18. Zdůvodněte, že každá množina X ⊆ R definovatelná ve struktuře R je konečným sjednocením intervalů a jednoprvkových množin, přičemž se ovšem připouštějí i intervaly s nevlastními konci. Množina N tedy ve struktuře R není definovatelná. 19. Vypracujte všechny vynechané případy v důkazu věty 3.6.19. V kterých z nich se uplatní podmínka S ∃xδ(x)? 20. Zdůvodněte, že relace £ je reflexivní a tranzitivní. 21. Dokažte, že žádná z teorií LO a SUCC není interpretovatelná v druhé. 274 3 Predikátová logika 22. Dokažte, že teorie DO není interpretovatelná v teorii IAdd. Návod. Přizpůsobte úvahu o skoro periodických množinách uvedenou za příkladem 3.6.16 pro model M z cvičení 17 oddílu 3.5. Úvahu z příkladu 3.6.21 pak přizpůsobte pro automorfismus [a, b] → [a, −b]. 23. Dokažte, že ani teorie IAdd není interpretovatelná v teorii DO. 24. Když ϕ a ψ jsou sentence v jazyce teorie S a teorie T je interpretovatelná v teorii S, ϕ i v teorii S, ψ, pak T je interpretovatelná i v teorii S, ϕ ∨ ψ. Dokažte. 25. Dokažte, že když T je rekurzívně axiomatizovatelná, pak { ϕ ; T £ (T + ϕ) }, tj. množina všech sentencí ϕ takových, že teorie T + ϕ je interpretovatelná v teorii T, je Σ3. Když T je konečně axiomatizovatelná, pak {ϕ; T £ (T +ϕ)} je dokonce rekurzívně spočetná. 4 Peanova a Robinsonova aritmetika Hilbert . . . had, if not criteria, guidelines in the selection of axioms. Completeness and simplicity were two desiderata he cited in the introduction to Grundlagen; consistency was, of course, another. None of these desiderata was entirely unproblematic. (C. Smory´nski, [81]) Z dosavadního textu čtenář jistě vytušil, že strukturu N přirozených čísel pokládáme za jednu z nejdůležitějších matematických struktur. V této kapitole se budeme zabývat studiem Peanovy aritmetiky PA, kterou lze chápat jako vážný pokus o axiomatizaci struktury N. Budeme se ptát, zda jde o pokus úspěšný, a pokud ne, zda lze uspět s nějakou teorií jinou než Peanova aritmetika. K nalezení odpovědí na tyto otázky použijeme některé vědomosti z teorie rekurzívních funkcí. Budeme se snažit čtenáře přesvědčit, že bez ohledu na to, jak dopadnou odpovědi na tyto otázky, Peanova aritmetika je životaschopnou teorií, která může být pokládána za (jedno z možných) prostředí pro matematickou práci. Na námitku, že jako standardní prostředí pro matematickou práci je většinou přijímána (taková nebo onaká) teorie množin, odpovídáme ano, je tomu tak, ale všechny důležité výsledky, které získáme pro Peanovu aritmetiku, se budou vztahovat i na teorii množin a obecně na všechny axiomatické teorie, ve kterých lze Peanovu aritmetiku interpretovat. Kromě Peanovy aritmetiky se budeme zabývat také Robinsonovou aritmetikou Q. Brzy zjistíme, že Robinsonova aritmetika je o mnoho slabší teorií než aritmetika Peanova, takže ji nelze považovat za pokus o axiomatizaci struktury N. Bude ale zajímavé pozorovat, že některé důležité vlastnosti, které sdílejí Peanova aritmetika a teorie množin, má už Robinsonova aritmetika. Důležitou výhodou Robinsonovy aritmetiky je také to, že má jen konečně mnoho axiomů. 4.1 Axiomy a modely Peanova a Robinsonova aritmetika jsou axiomatické teorie formulované ve společném aritmetickém jazyce, s kterým jsme se již setkali v kapitole 3. Jde o jazyk 276 4 Peanova a Robinsonova aritmetika {+, ·, 0, S, ≤, <} obsahující dva binární funkční symboly, jednu konstantu, jeden unární funkční symbol a dva binární predikátové symboly. Robinsonova aritmetika Q má následujících devět axiomů: Q1: ∀x∀y(S(x) = S(y) → x = y), Q2: ∀x(S(x) = 0), Q3: ∀x(x = 0 → ∃y(x = S(y))), Q4: ∀x(x + 0 = x), Q5: ∀x∀y(x + S(y) = S(x + y)), Q6: ∀x(x · 0 = 0), Q7: ∀x∀y(x · S(y) = x · y + x), Q8: ∀x∀y(x ≤ y ≡ ∃v(v + x = y)), Q9: ∀x∀y(x < y ≡ ∃v(S(v) + x = y)). Peanova aritmetika PA má týchž devět axiomů Q1–Q9 a navíc schéma indukce Ind: ∀y1 . . ∀yn(ϕ(0, y) & ∀x(ϕ(x, y) → ϕ(S(x), y)) → ∀xϕ(x, y)), kde ϕ je formule, která nemá jiné volné proměnné než x, y1, . . , yn. Peanova aritmetika má tedy nekonečně mnoho axiomů. Schéma indukce dovoluje vytvořit axiom indukce z libovolné formule ϕ; tento axiom označme Ind(ϕ). Proměnným y1, . . , yn ve formuli Ind(ϕ) se říká parametry a schéma Ind se někdy označuje přesněji jako schéma parametrické indukce. Všimněme si, že v axiomech Q1–Q3 se vyskytují pouze symboly 0 a S, v Q1–Q5 se nevyskytuje násobení, v Q1–Q7 se nevyskytují symboly ≤ a < pro uspořádání. Axiomy Q8 a Q9 dávají do souvislosti sčítání a uspořádání a jsou vlastně definicemi symbolů ≤ a < (ve smyslu věty 3.5.3). Za „opravdové axiomy lze pokládat jen axiomy Q1–Q7. Axiomy Q1–Q3 sdílí Robinsonova i Peanova aritmetika s teorií SUCC z kapitoly 3. Ukažme si dvě jednoduchá použití axiomu indukce. Nejprve označme ϕ(x) formuli 0 + x = x a uvažujme za předpokladu ϕ(x): Nechť 0 + x = x. Pak S(0 + x) = S(x). Axiom Q5 dává S(0 + x) = 0 + S(x). Tedy 0 + S(x) = S(x). Tím jsme v Q, a tedy i v PA, dokázali sentenci ∀x(ϕ(x) → ϕ(S(x))). Sentence ϕ(0), tj. sentence 0+0 = 0, je ovšem také dokazatelná díky axiomu Q4. V axiomu Ind(ϕ) příslušném k formuli ϕ jsou tedy dokazatelné obě premisy. Tedy PA ∀x(0+x = x). To je ne zcela triviální výsledek, protože zatím nevíme, zda z axiomů Robinsonovy nebo Peanovy aritmetiky plyne komutativita sčítání. Nyní za ϕ(x, y, z) vezměme formuli (z + y) + x = z + (y + x). Dokazujme v Peanově aritmetice: 4.1 Axiomy a modely 277 Nechť y a z jsou dána. Axiom Q4 dává ϕ(0, y, z). Nechť dále x je dáno a nechť (z + y) + x = z + (y + x). Pak S((z + y) + x) = S(z + (y + x)). Užijme axiom Q5 jednou na levou stranu: S((z +y)+ x) = (z +y)+S(x) a dvakrát na pravou stranu: S(z + (y + x)) = z + S(y + x) = z + (y + S(x)). Dohromady: (z+y)+S(x) = z+(y+S(x)). Ověřili jsme, že ∀x(ϕ(x, y, z) → ϕ(S(x), y, z)). Aplikujeme-li axiom Ind(ϕ) na y a z, máme ∀xϕ(x, y, z). Protože čísla y a z byla libovolná, máme ∀x∀y∀zϕ(x, y, z). Tím jsme v PA lze dokázali asociativitu sčítání. Další vlastnosti aritmetických operací a uspořádání dokazatelné v PA jsou uvedeny v následující větě. Věta 4.1.1 Následující sentence jsou dokazatelné v PA. (a) Vlastnosti aritmetických operací: ∀x∀y∀z((z + y) + x = z + (y + x)), ∀x∀y∀z(z · (y + x) = z · y + z · x), ∀x(0 + x = x), ∀x∀y∀z((z · y) · x = z · (y · x)), ∀x∀y(S(y) + x = S(y + x)), ∀x(x = S(x)), ∀x∀y(y + x = x + y), ∀x∀y∀z(y + x = z + x → y = z), ∀x(0 · x = 0), ∀x∀y(x + y = 0 → x = 0 & y = 0), ∀x∀y(S(y) · x = y · x + x), ∀x∀y(x · y = 0 → x = 0 ∨ y = 0), ∀x∀y(y · x = x · y), ∀x∀y∃u(u + x = y ∨ u + y = x). (b) Vlastnosti relace <: ∀x∀y∀z(x < y & y < z → x < z), ∀x∀y(x < y ∨ x = y ∨ y < x). ∀x¬(x < x), (c) Vztah relací ≤ a < k sobě navzájem a k operacím: ∀x∀y(x ≤ y ≡ x < y ∨ x = y), ∀x∀y∀z(x < y → x + z < y + z), ∀x∀y(x < S(y) ≡ x < y ∨ x = y), ∀x∀y∀z(x < y & z = 0 → x · z < y · z). Důkaz Většinu sentencí v (a) lze dokázat indukcí podobně, jako jsme už dokázali první dvě sentence v levém sloupci. „Indukční proměnná je v tom případě vždy označena x. Sentence jsou seřazeny, někdy lze využít už dokázané předchozí sentence. Podívejme se třeba na poslední sentenci vpravo dole. Označme ϕ(x, y) formuli ∃u(u+x = y ∨ u+y = x) a ukažme si důkaz formule ∀x(ϕ(x, y)→ϕ(S(x), y)): Nechť u je takové, že u + x = y nebo u + y = x. Když u + y = x, pak dle třetí sentence v levém sloupci S(u) + y = S(x). Nechť tedy u + x = y. Rozlišme ještě případy u = 0 a u = 0. Když u = 0, pak, podle Q3, u = S(v) pro jisté v. Tedy S(v) + x = y. Opětovné užití třetí sentence vlevo a axiomu Q5 dává v + S(x) = y. Když u = 0, druhá a třetí sentence vlevo dávají y = x a S(0) + y = S(x). Ve všech případech tedy lze k jednomu z čísel S(x) a y přičíst zleva něco tak, aby výsledek byl roven druhému z nich. 278 4 Peanova a Robinsonova aritmetika Převedeme-li užitím axiomů Q8 a Q9 sentence v (b) a (c) na ekvivalentní sentence neobsahující symboly ≤ a <, vždy dostaneme sentence, které lze snadno dokázat ze sentencí v (a), a to bez indukce. QED V PA lze tedy dokázat, že operace s přirozenými čísly a uspořádání mají očekávané vlastnosti: sčítání i násobení jsou asociativní a komutativní operace, násobení je distributivní vůči sčítání, relace ≤ a < skutečně jsou neostré a ostré uspořádání, nula je nejmenší přirozené číso, největší přirozené číslo neexistuje, číslo S(x) je vždy nejmenší mezi čísly většími než x atd. Existuje několik axiomatických schémat ekvivalentních se schématem indukce. Jedním z nich je princip nejmenšího prvku, anglicky least number principle: existuje-li nějaké přirozené číslo s určitou vlastností nebo s určitým vztahem k daným parametrům, pak existuje i nejmenší přirozené číslo s onou vlastností nebo s oním vztahem k týmž parametrům: LNP: ∀y1 . . ∀yn(∃xϕ(x, y) → ∃x(ϕ(x, y) & ∀v 1 & ∀v 1 & ∀u∀v(x | u · v → x | u ∨ x | v), které čteme číslo x je ireducibilní resp. číslo x je prvočíslo. Postupně v PA dokážeme, že tyto dvě formule jsou spolu ekvivalentní. Nejprve dokažme větu o dělení se zbytkem, která tvrdí, že každé přirozené číslo lze dělit libovolným nenulovým přirozeným číslem. Výsledkem dělení je podíl a zbytek menší než dělitel. Věta 4.1.4 V PA lze dokázat sentenci pro každou dvojici čísel x a y, z nichž y je nenulové, existuje právě jedna dvojice čísel u a v tak, že x = y · u + v a přitom v < y. Důkaz Existenci čísel u a v lze snadno dokázat indukcí podle x, tj. s užitím axiomu Ind(y = 0 → ∃u∃v(x = y · u + v & v < y)): Když y = 0, pak 0 = 0 · y + 0 & 0 < y. Když x = y · u + v & v < y, pak S(x) = y · u + S(v). Z v < y plyne S(v) < y nebo S(v) = y. Pokud S(v) < y, jsme hotovi. Jinak S(x) = y · u + y a S(x) = y · (u + 1) + 0. 4.1 Axiomy a modely 281 Jednoznačnost čísel u a v plyne z formulí dokázaných v 4.1.1 bez dalšího užití indukce: Nechť y · u1 + v1 = y · u2 + v2 a přitom v1 < y a v2 < y. Když u1 = u2, pak u1 < u2 nebo u2 < u1. Nechť například u1 < u2. Pak u1 + 1 ≤ u2 a y · (u1 + 1) ≤ y · u2. Tedy y · u1 + y ≤ y · u2 ≤ y · u2 + v2 = y · u1 + v1. Z toho plyne y ≤ v1, a to je spor. Platí tedy u1 = u2 a y · u1 + v1 = y · u1 + v2. Takže v1 = v2. QED Věta 4.1.5 V PA lze dokázat následující vlastnosti relace dělitelnosti: (a) ∀x∀y∀z(x | y & y | z → x | z), (f) ∀x∀y∀z(x | y → x · z | y · z), (b) ∀x(x | x), (g) ∀x∀y∀z(x · z | y · z & z = 0 → x | y), (c) ∀x∀y(x | y & y | x → x = y), (h) ∀x∀y(x | x · y), (d) ∀x(1 | x), (i) ∀x∀y∀v(v | x & v | y → v | (x + y)), (e) ∀x(x | 0), (j) ∀x∀y∀z(x | x · z + y → x | y). Důkaz Trochu obtížnější je jen (j): Nechť x·v = x·z+y. Když x = 0, pak x·z+y = 0, takže y = 0 a x | y. Nechť tedy x = 0. Nemůže platit v < z, jinak bychom měli x·v < x·z ≤ x·z+y = x·v. Tudíž z ≤ v, čili existuje u takové, že z + u = v. Pak x · (z + u) = x · z + y, takže x · u = y a x | y. QED Klasický důkaz tvrzení, že množina všech prvočísel je nekonečná, tj. že ke každému y existuje prvočíslo, které je větší než y, je založen na myšlence uvažovat rozklad čísla y! + 1 na prvočísla. V Peanově aritmetice (zatím) nemůžeme mluvit o funkcích, jako je faktoriál nebo mocnina. Vlastnost „býti prvočíslem jsme už v aritmetickém jazyce zapsali, ale tvrzení „každé přirozené číslo je součinem prvočísel zapsat (také zatím) neumíme. Přesto uvidíme, že obě potíže jsou překonatelné a že klasický důkaz tvrzení, že prvočísel je nekonečně mnoho, je formalizovatelný v PA. Místo o faktoriálu čísla y postačí mluvit o čísle dělitelném všemi čísly 2, 3, . . , y. A tvrzení, že každé číslo má prvočíselný rozklad, postačí nahradit tvrzením, že každé číslo je dělitelné nějakým prvočíslem. O tom jsou body (a) a (b) následujícího lemmatu. Bod (c) použijeme v důkazu tvrzení 4.1.7(b). Lemma 4.1.6 V PA lze dokázat sentence (a) ∀y∃z(z = 0 & ∀v≤y(v = 0 → v | z)), (b) ∀w(w > 1 → ∃x(Irred(x) & x | w)), (c) ∀a = 0∀b∀z(∃x∃y(a · x + z = b · y) → ∃x∃y(b · x + z = a · y)). Důkaz Tvrzení (a) lze dokázat přímočaře indukcí podle y. V důkazu tvrzení (b) použijeme schéma LNP: 282 4 Peanova a Robinsonova aritmetika Nechť w0 je nejmenší z čísel větších než 1, která nejsou dělitelná žádným ireducibilním číslem. Protože w0 | w0, číslo w0 samo není ireducibilní. Tedy existuje v < w0 takové, že v | w0 a v > 1. Protože w0 je nejmenší, v je dělitelné nějakým ireducibilním x. Relace | je tranzitivní, tedy x | w0. To je spor s předpokladem, že w0 není dělitelné ireducibilním číslem. Dokažme tvrzení (c): Nechť a · x + z = b · y. Z a = 0 plyne y ≤ y · a. Vezměme v takové, že v + y = y · a, a spočítejme číslo (b · v + z) + a · x: b · v + z + a · x = b · v + b · y = b · (v + y) = b · y · a. Tedy a | ((b · v + z) + a · x). Podle 4.1.5(j) platí a | ((b · v) + z). Tedy existuje u takové, že b · v + z = a · u. QED Věta 4.1.7 V Peanově aritmetice lze dokázat sentence (a) ∀y∃x(y < x & Irred(x)), (b) ∀a = 0∀b = 0∃x∃y∃z(a · x + z = b · y & z | a & z | b), (c) PA ∀x(Irred(x) ≡ Prime(x)). Důkaz (v PA) (a) Nechť y je dáno. Díky tvrzení 4.1.6(a) můžeme vzít číslo z = 0, které je dělitelné všemi čísly 2, 3, . . , y. Je-li v ≤ y a v = 0, pak z + 1 lze psát ve tvaru z + 1 = u · v + 1. Je-li navíc v > 1, pak díky jednoznačnosti dělení se zbytkem, viz 4.1.4, nelze číslo z + 1 psát ve tvaru u · v. Tedy žádné v takové, že v > 1 a v ≤ y, nedělí z + 1. To znamená, že pro každé ireducibilní číslo x takové, že x | (z + 1), platí x > y. Podle 4.1.6(b) taková x existují. (b) Nechť čísla a a b různá od nuly jsou dána. Jistě existují nějaká čísla z splňující podmínku z = 0 & ∃x∃y(a · x + z = b · y), (1) například a · 0 + b = b · 1. Dle principu LNP můžeme vzít nejmenší z0 splňující podmínku (1). Navíc platí z0 ≤ b. (2) Podle 4.1.6(c) je číslo z0 zároveň nejmenším číslem z splňujícím podmínku z = 0 & ∃x∃y(b · x + z = a · y). (3) Vezměme x0 a y0 taková, že a · x0 + z0 = b · y0. (4) Protože z0 = 0, můžeme dělit číslo b se zbytkem číslem z0: b = z0 · u + v & v < z0. (5) 4.1 Axiomy a modely 283 Z (2) plyne u = 0 a z (4) máme y0 = 0. Existuje tedy číslo w takové, že S(w) = y0 ·u. Vyjděme z (4) a (5) a počítejme: a · x0 · u + z0 · u = b · y0 · u a · x0 · u + z0 · u + v = b · y0 · u + v a · x0 · u + b = b · (w + 1) + v a · x0 · u = b · w + v. Kdyby platilo v = 0, číslo v by bylo menším číslem než z0 splňujícím podmínku (3). Tedy v = 0 a z (5) plyne z0 | b. Podobně (o něco jednodušeji) lze ověřit i z0 | a. (c) Nechť x > 1 a x | a · b. Můžeme předpokládat a = 0, jinak x | a. Dle tvrzení (b) existují u, v a z taková, že x · u + z = a · v a přitom z | x a z | a. Je-li x ireducibilní, pak z = x nebo z = 1. Když z = x, pak x | a. Když z = 1, pak x · u + 1 = a · v a x · u · b + b = a · b · v. Z 4.1.5(j) plyne x | b. Důkaz implikace ← ponecháváme za cvičení. QED Platí-li pro číslo z rovnost a · x + z = b · y, pak dle tvrzení 4.1.5(j) je z dělitelné všemi společnými děliteli čísel a a b. Je-li z takové jako v tvrzení (b) věty 4.1.7, tj. splňuje-li navíc podmínky z | a a z | b, pak z je největším společným dělitelem čísel a a b. Tvrzení 4.1.7(b) je známo jako Bezoutova věta. Její důkaz je odvozen z Eukleidova algoritmu pro nalezení největšího společného dělitele, který pracuje takto: máme-li nalézt největší společný dělitel čísel a a b, položíme d0 := max{a, b}, d1 := min{a, b}, a dále vždy dn+2 := zbytek po dělení čísla dn číslem dn+1; poslední nenulové dn je hledaný největší společný dělitel. Bezoutova věta by se trochu snáz formulovala a dokazovala v teorii celých čísel (kdybychom ovšem nějakou zavedli). To bychom pracovali s číslem z tvaru a·x+b·y, které má nejmenší možnou nenulovou absolutní hodnotu, a obešli bychom se bez tvrzení 4.1.6(c). Přemýšlejme nyní o modelech teorií Q a PA. V příkladu 3.1.25 jsme dokázali, že ve struktuře N = N, +, ·, 0, s, ≤, < platí všechny instance schématu Ind. Je jasné, že v N platí také všechny axiomy Q1–Q9. To znamená, že struktura N je modelem jak Robinsonovy, tak Peanovy aritmetiky, a platí Thm(Q) ⊆ Thm(PA) ⊆ Th(N). Struktura N se nazývá standardní model aritmetiky. Teorie Th(N) je teorie standardního modelu nebo též úplná aritmetika (anglicky true arithmetic). Strukturám pro aritmetický jazyk, které nejsou izomorfní se strukturou N, říkáme nestandardní. Než se zamyslíme nad nestandardními strukturami a modely, formulujme první z řady tvrzení (další se objeví v následujících oddílech) o definovatelnosti množin a relací ve struktuře N. Připomeňme, že pro libovolný numerál n platí nN = n, číslo n je hodnotou numerálu n ve standardním modelu aritmetiky. To dále dle lemmatu 3.1.14 znamená, že je-li ϕ(x1, . . , xk) libovolná aritmetická formule, pak podmínky N |= ϕ(x)[n1, . . , nk] a N |= ϕ(n1, . . , nk) jsou navzájem ekvivalentní. 284 4 Peanova a Robinsonova aritmetika Lemma 4.1.8 Formule x | y definuje v N relaci {[n, m]; n dělí m}. Obě formule Irred(x) a Prime(x) definují v N množinu všech prvočísel. Důkaz Pro libovolná dvě přirozená čísla n a m platí N |= n | m ⇔ N |= ∃v(v · n = m) ⇔ ∃k ∈ N(N |= k · n = m) ⇔ ∃k ∈ N(k · n = m) ⇔ n dělí m. Použili jsme podmínky T8, T3 a T2 z definice 3.1.9 a dále fakty, že hodnoty termů k, n a m jsou čísla k, n a m a že symboly „· a „= jsou v N realizovány násobením přirozených čísel a rovností. Úvaha pro formuli Irred(x) je zcela analogická. Protože formule Irred(x) a Prime(x) jsou v PA ekvivalentní, definují v N (a v jakémkoliv jiném modelu Peanovy aritmetiky také) tutéž množinu. QED a0 a1 a2 a3 · · · b0 b1 b2 b3 · · ·E E E E ¤ ¥ § c ¤ ¥ § c ¤ ¥ § c ¤ ¥ § c + am bm an an+m bm+1 bn bn bm+1 · a0 am+1 bm an a0 an·(m+1) b0 bn a0 bn+1 bn+1 Obrázek 4.1.1: Nestandardní model Robinsonovy aritmetiky Na obrázku 4.1.1 je znázorněna struktura M pro aritmetický jazyk, kterou navrhla Marta Vlasáková (tehdy Bendová). Nosná množina M struktury M je sjednocením dvou disjunktních nekonečných spočetných množin {a0, a1, a2, . . . } a {b0, b1, b2, . . . }. Realizace následnické funkce je znázorněna šipkami, operace jsou definovány tabulkami, a0 realizuje symbol 0. Relace ≤M a 2 · w. Obě čísla 2 · w a y · (y + 1) jsou sudá, a jejich rozdíl lze tedy psát jako 2 · z. Platí tedy y · (y + 1) + 2 · z = 2 · w < (y + 1) · (y + 2) = y · (y + 1) + 2 · (y + 1). Z toho plyne 2 · z < 2 · (y + 1) a z ≤ y. Číslo y tedy lze psát jako součet y = z + t, a z a t jsou hledaná čísla splňující Pair(z, t, w). Zbývající úvahy ponecháváme za cvičení. QED Lemma 4.2.3 (a) PA ∀x∀w(x ∈ w → x < w). (b) N |= j ∈ q, právě když číslo j je prvek čísla q. Důkaz Tvrzení (a) lze dokázat takto: Je-li z = 0, pak x < 1 + (x + 1) · z. Je-li t = 0, pak z 1 + (x + 1) · z | t plyne 1 + (x + 1) · z ≤ t. Vezmeme-li v úvahu ještě (b) lemmatu 4.2.2 a tranzitivitu uspořádání, máme (a). Důkaz tvrzení (b) ponecháváme na čtenáři, užije se 4.2.2(c). QED Tvrzení 4.2.3(a) zdaleka není všechno, co hodláme v PA dokázat o náležení. Potřebujeme ještě tvrzení, které bychom mohli interpretovat jako každá konečná množina má nějaký kód. To uděláme v podstatě formalizací (důkazů) faktů 1 a 2. Ve znění faktů 1 a 2 je řeč o nesoudělných číslech. Relaci nesoudělnosti lze definovat dvěma způsoby: (i) Čísla a a b jsou nesoudělná, jestliže nemají společného dělitele většího než 1. (ii) Čísla a a b jsou nesoudělná, jestliže a dělí každé číslo x takové, že a dělí b · x. Obě definice jsou (v případě, kdy a = 0) ekvivalentní. Důkaz (v PA) lze získat modifikací důkazu tvrzení 4.1.7(c) z předchozího oddílu. Ponecháváme jej za cvičení, protože v dalším výkladu plně vystačíme s definicí (ii): RPrime(x, y) ≡ ∀v(x | y · v → x | v). Formuli RPrime(x, y) lze číst číslo x je nesoudělné s číslem y. Následující lemma je téměř doslova převzato z [75]. 296 4 Peanova a Robinsonova aritmetika Lemma 4.2.4 Následující sentence jsou dokazatelné v PA: (a) ∀x∀y(x = 0 & RPrime(x, y) → RPrime(y, x)), (b) ∀z∀xRPrime(z, 1 + x · z), (c) ∀u∀z∀x(u | z → RPrime(1 + x · z, 1 + (x + u) · z)). Důkaz (v PA) (a) Nechť platí oba předpoklady a nechť y | x · v. Pak existuje u1 takové, že y · u1 = x · v. Tedy x | y · u1. Protože RPrime(x, y), platí x | u1. Tedy x · u2 = u1 pro vhodné u2. Tedy y · x · u2 = x · v. Protože x = 0, máme y · u2 = v a y | v. (b) Nechť z | (1 + x · z) · v. Pak z | v + x · z · v. Z 4.1.5(j) plyne z | v. (c) Uvažujme za předpokladu 1 + x · z | (1 + (x + u) · z) · v: 1: 1 + x · z | (1 + (x + u) · z) · v 2: 1 + x · z | v + x · z · v + u · z · v 3: 1 + x · z | (1 + x · z) · v + u · z · v 4: 1 + x · z | u · z · v ; 4.1.5(j) 5: 1 + x · z | u · v ; (a), (b) 6: 1 + x · z | z · v ; u | z 7: 1 + x · z | v ; (a), (b). QED Následující věta říká, že pro naše náležení platí schéma vydělení: vždy existuje množina všech čísel, která mají takovou a takovou vlastnost. Věta 4.2.5 Každá sentence ∀u∀y∃w(Set(w) & ∀v(v ∈ w ≡ v < y & ϕ(v, u))) je v PA dokazatelná. Důkaz Budeme postupovat v podstatě tak, jak naznačují fakty 1 a 2 a naše definice náležení. Protože ale obrat „označme t součin všech čísel tvaru 1 + (v + 1) · z takových, že v < y a ϕ(v, u) není (alespoň zatím) v aritmetickém jazyce zcela korektní, obejdeme jej pomocí indukce. Uvažujme v PA: Nechť čísla u1, . . , un a y jsou dána. Zvolme nenulové z dělitelné všemi čísly 2, 3, . . , y − 1. Indukcí podle x dokážeme, že ∀x(x ≤ y → ∃t∀v(v ∈ (z, t) ≡ v < x & ϕ(v, u))), (1) kde v ∈ (z, t) je zkratka pro formuli ∀w(Pair(z, t, w) → v ∈ w) nebo pro formuli ∃w(Pair(z, t, w) & v ∈ w). Z (1) dostaneme tvrzení věty volbou x := y. Protože z je dělitelné všemi nenulovými čísly menšími než y, podmínka v ∈ (z, t) je pro v < y ekvivalentní s podmínkou 1 + (v + 1) · z | t, viz definice náležení. Pro v ≥ y platí alespoň implikace v ∈ (z, t) → 1 + (v + 1) · z | t. Z toho plyne, že místo (1) stačí dokázat ∀x(x ≤ y → ∃t∀v(1 + (v + 1) · z | t ≡ v < x & ϕ(v, u))). (2) 4.2 Aritmetizace logické syntaxe 297 Je-li x = 0, pak t = 1 vyhovuje, protože 1+(v+1)·z je alespoň 2 pro libovolné v, a tedy 1 + (v + 1) · z nedělí t. Nechť tedy t vyhovuje pro x, tj. platí ∀v(1 + (v + 1) · z | t ≡ v < x & ϕ(v, u)), (3) a nechť navíc x + 1 ≤ y. Když ¬ϕ(x, u), pak t = t vyhovuje i pro x + 1. Když naopak ϕ(x, u), zvolme t = t · (1 + (x + 1) · z). V ekvivalenci ∀v(1 + (v + 1) · z | t · (1 + (x + 1) · z) ≡ v < x + 1 & ϕ(v, u)) jistě platí implikace ←. Ověříme implikaci →. Nechť 1 + (v + 1) · z | t · (1 + (x + 1) · z). Když v = x, pak, díky 4.2.4(c), 1 + (v + 1) · z a 1 + (x + 1) · z jsou nesoudělná čísla. Tedy 1 + (v + 1) · z | t. Zbytek plyne z (3). Máme tedy dokázánu podmínku (1). Vezměme t, jehož existence je v (1) zaručena pro x := y. Pro w takové, že Pair(z, t, w), platí ∀v(v ∈ w ≡ v < y & ϕ(v, u)). (4) Díky principu LNP můžeme vzít nejmenší w splňující podmínku (4). Pro takové w platí navíc Set(w). QED V důkazu předchozí věty jsme si dovolili zápis v ∈ (z, t), jehož význam byl číslo v je prvkem některého neboli každého w takového, že Pair(z, t, w). Takto budeme postupovat i v budoucnu, čili budeme někdy v symbolických zápisech užívat funkční symboly, jejichž význam je zřejmý, ale jejichž definici (ve smyslu tvrzení (b) věty 3.5.3) jsme nevyslovili, protože aritmetický jazyk rozšiřovat nechceme. Díky tvrzení věty 4.2.5 můžeme v Peanově aritmetice mluvit o množině {v < y; ϕ(v, u)}. Zápis { v < y ; ϕ(v, u) } lze také počítat k nedefinovaným funkčním symbolům, jejichž význam je zřejmý a jejichž užití bychom se snadno mohli vyhnout za cenu méně přehledných zápisů. Za formuli ϕ(v, u) můžeme například zvolit formuli v = u1 ∨ v = u2. Protože uvnitř PA můžeme říci, že „mez y volíme dostatečně velkou, můžeme v PA mluvit o dvouprvkové množině {u1, u2}. Stejným právem můžeme mluvit i o tříprvkových, čtyřprvkových atd. množinách (formálních) přirozených čísel, a také užívat zápisy tvaru w ∪ {x}. Pišme w1 ⊆ w2 místo ∀v(v ∈ w1 → v ∈ w2). Lemma 4.2.6 V PA lze dokázat sentence: (a) ∀w1∀w2(Set(w1) & Set(w2) & w1 ⊆ w2 & w2 ⊆ w1 → w1 = w2), (b) ∀w1∀w2(Set(w1) & Set(w2) & w1 ⊆ w2 → w1 ≤ w2), (c) ∀w∀x∀y(Set(w) & y /∈ w & x ≤ y → w ∪ {x} ≤ w ∪ {y}). Důkaz Dokažme například tvrzení (c): Vezměme čísla z a t taková, že (z, t) = w∪{y}. Čísla z a t jsou obě nenulová, z je dělitelné všemi prvky množiny w i číslem y a platí 1+(y+1)·z | t. Vezměme t1 takové, že t1 · (1 + (y + 1) · z) = t. Když x /∈ w, volme t = t1 · (1 + (x + 1) · z), 298 4 Peanova a Robinsonova aritmetika jinak volme t = t1. V obou případech platí t ≤ t, tedy (z, t ) ≤ (z, t). Úvahami podobnými jako v důkazu věty 4.2.5 lze ověřit, že (z, t ) je číslo, jehož prvky jsou všechny prvky množiny w, číslo x, a nic jiného. Protože množina w ∪ {x} je definována jako nejmenší číslo, jehož prvky jsou všechny prvky množiny w, číslo x, a nic jiného, máme w ∪ {x} ≤ w ∪ {y}. QED Tvrzení (b) a (c) předchozího lemmatu říkají, že odstraníme-li z množiny některé prvky nebo nahradíme-li některé prvky menšími čísly, kód výsledné množiny není větší. Vzhledem k tvrzení (a), tj. vzhledem k platnosti axiomu extenzionality, můžeme tvrdit, že kód výsledné množiny je dokonce ostře menší. Tím jsme dospěli ke kódování konečných posloupností: B(w, u, v) ≡ ∃x(Pair(u, v, x) & x ∈ w), Lh(w, y) ≡ ¬∃vB(w, y, v) & ∀u 1 & ∀u≤x∀v v0, platí ∀u<(z+1)∃v m resp. že n ≥ m. Sentence (b) n + m = n + m, (d) ∀x(x ≤ n → x = 0 ∨ . . ∨ x = n), (c) n · m = n · m, (e) ∀x(x ≤ n ∨ n ≤ x) jsou v Q dokazatelné pro každou volbu čísel n a m. 4.4 Σ-úplnost Robinsonovy aritmetiky 323 Důkaz U všech sentencí uvedených ve znění věty je důležité si uvědomit, že pro každou volbu čísel n a m máme právo napsat jiný důkaz v Q. Ukažme si důkaz sentence v (b) například pro n = 4, m = 3: Axiom Q5 dává 4 + S(3) (0) = S(4 + S(S(0))). Ještě dvojnásobným užitím axiomu Q5 dostaneme 4+S(3) (0) = S(3) (4+0). Podle Q4 platí 4+0 = 4, tedy opravdu 4 + S(3) (0) = S(3) (4). Nyní uvažme, že S(3) (0) je jen jiné označení pro term 3 a S(3) (4) je jen jiné označení pro term 7. Podobný důkaz sentence n + m = n + m lze napsat pro každou dvojici čísel n a m. Axiom Q5 se v něm použije m-krát. Mohli bychom také říci, že existence důkazu se dokazuje metamatematickou indukcí podle m. Existenci důkazu sentence v (d) dokažme rovněž indukcí podle n. Nechť důkaz pro n je již sestrojen: . . . Tedy opravdu ∀x(x ≤ n → x = 0 ∨ . . ∨ x = n). (dn) Jeho následujícím prodloužením dostaneme důkaz pro n + 1: Nechť x je dáno, nechť x ≤ n + 1. Platí x = 0 nebo x = 0. Když x = 0, jsme hotovi. Jinak je dle Q3 x následníkem nějakého y: x = S(y). Předpoklad x ≤ n + 1 znamená existenci v takového, že v + x = n + 1. Tedy v + S(y) = n + 1. Dále platí S(v + y) = n + 1 (dle Q5) a v + y = n (dle Q1). Tedy y ≤ n. Z již dokázané formule (dn) plyne y = 0 ∨ . . ∨ y = n. Tedy pro x = S(y) platí x = 1 ∨ . . ∨ x = n + 1. Tedy opravdu ∀x(x ≤ n + 1 → x = 0 ∨ . . ∨ x = n + 1). (dn+1) Podívejme se ještě na (e). Opět předpokládejme, že důkaz pro n je již sestrojen, a napišme důkaz pro n + 1. Nechť x je dáno. Dle již dokázané formule platí x ≤ n nebo n ≤ x. Nechť x ≤ n. Podle (d) je x rovno jednomu z čísel 0, 1, . . , n. Každé z nich je menší nebo rovno číslu n + 1. Tedy x ≤ n + 1. Nechť naopak n ≤ x. Tedy u + n = x pro jisté u. Je-li u = 0, máme n = x a x ≤ n + 1. Jinak u = S(v) pro jisté v. Pokud na rovnost S(v) + n = x užijeme n-krát axiom Q5, pak dvakrát axiom Q2 a pak (n + 1)-krát axiom Q5 opačným směrem, dostaneme v + n + 1 = x. Tedy n + 1 ≤ x. Důkaz formule v (d) a v (e) pro n = 0 a důkazy formulí v (a) a (c) přenecháváme čtenáři. QED Některé kroky v důkazu předchozí věty jsou dost závislé na přesné formulaci axiomů Robinsonovy aritmetiky. Tvrzení (e) by se nepodařilo dokázat, kdybychom v axiomech Q8 a Q9 zaměnili pořadí sčítanců. 324 4 Peanova a Robinsonova aritmetika Věta 4.4.2 (Σ-úplnost Robinsonovy aritmetiky) Je-li σ ∈ Σ sentence taková, že N |= σ, pak Q σ. Mělo by být zřejmé, že oba předpoklady věty, tj. že σ ∈ Σ a σ je sentence, jsou podstatné. Slovo „úplnost v označení věty je užito neformálně ve významu podobném jako v obratu „úplnost kalkulu : v Q lze dokázat všechny Σ-sentence, které mají být dokazatelné (protože jsou pravdivé). Důkaz věty 4.4.2 rozdělíme do několika lemmat. Lemma 4.4.3 Nechť t je uzavřený term a nechť m je jeho hodnota v N. Pak Q t = m. Důkaz indukcí podle složitosti termu t. Term t buď sestává z jediného symbolu 0, nebo je utvořen z jednodušších termů pomocí některého ze symbolů +, · a S. Předpokládejme, že t má tvar (t1 + t2). Pak t1 a t2 jsou opět uzavřené termy. Vezměme jejich hodnoty m1 a m2 v N. Indukční předpoklad dává Q t1 = m1 a Q t2 = m2. Dle Tarského podmínky T2, hodnotou termu t je číslo m1 +m2. Z toho a z 4.4.1(b) plyne Q t1 + t2 = m1 + m2. Ostatní případy jsou podobné. QED Lemma 4.4.4 Nechť σ je atomická sentence. Pokud N |= σ, pak Q σ, a pokud N /|= σ, pak Q ¬σ. Důkaz Sentence σ musí mít jeden z tvarů t1 = t2 nebo t1 < t2 nebo t1 ≤ t2, kde t1 a t2 jsou uzavřené termy. Vezměme hodnoty m1 a m2 termů t1 a t2 v N. Platí N |= t1 = m1 a N |= t2 = m2. Předpokládejme, že sentence σ má tvar t1 ≤ t2, ostatní dva případy jsou podobné. Lemma 4.4.3 dává Q t1 = m1 a Q t2 = m2. Když N |= t1 ≤ t2, pak N |= m1 ≤ m2, tedy m1 ≤ m2 a lze vzít k takové, že k + m1 = m2. Z předpokladů t1 = m1, t2 = m2 a k + m1 = m2 (viz 4.4.1(b)) lze v Q dokázat t1 ≤ t2 (viz Q8). Když N /|= t1 ≤ t2, pak N /|= m1 ≤ m2, a tedy m1 > m2. Z předpokladů t1 = m1, t2 = m2 a ¬(m1 ≤ m2) (viz tvrzení 4.4.1(a)) lze v Q dokázat ¬(t1 ≤ t2). QED Lemma 4.4.5 Nechť ϕ(x1, . . , xr) je ∆0-formule a nechť n1, . . , nr jsou přirozená čísla. Pokud N |= ϕ(n1, . . , nr), pak Q ϕ(n1, . . , nr), a pokud N /|= ϕ(n1, . . , nr), pak Q ¬ϕ(n1, . . , nr). Důkaz Dokazujeme indukcí podle počtu logických spojek a omezených kvantifikátorů ve formuli ϕ, že tvrzení platí pro každé dosazení numerálů za volné proměnné formule ϕ. Je-li ϕ(x1, . . , xr) atomická, pak ϕ(n1, . . , nr) je atomická sentence a tvrzení platí díky lemmatu 4.4.4. Nechť formule ϕ(x1, . . , xr) je tvaru ϕ1(x) & ϕ2(x). Označme ψ1 a ψ2 sentence ϕ1(n1, . . , nr) a ϕ2(n1, . . , nr). Pak ϕ(n1, . . , nr) je ψ1 &ψ2. Když N |= ϕ(n1, . . , nr), pak N |= ψ1 a N |= ψ2. Dle indukčního předpokladu platí Q ψ1 a Q ψ2. Pak 4.4 Σ-úplnost Robinsonovy aritmetiky 325 ovšem Q ψ1 & ψ2. Když N /|= ϕ(n1, . . , nr), pak N /|= ψ1 nebo N /|= ψ2. Dle indukčního předpokladu platí Q ¬ψ1 nebo Q ¬ψ2. V obou případech máme Q ¬(ψ1 & ψ2), protože obě sentence ¬ψ1 → ¬(ψ1 & ψ2) a ¬ψ2 → ¬(ψ1 & ψ2) jsou tautologie, a jsou tedy dokazatelné v Q. Nechť ϕ(x1, . . , xr) je tvaru ¬ϕ1(x1, . . , xr). Označme ψ sentenci ϕ1(n1, . . , nr). Pak ϕ(n1, . . , nr) je ¬ψ. Když N |= ϕ(n1, . . , nr), pak N /|= ψ. Dle indukčního předpokladu Q ¬ψ. Když N /|= ϕ(n1, . . , nr), pak N |= ψ, Q ψ a Q ¬¬ψ. Přitom ¬¬ψ je ¬ϕ(n1, . . , nr). Nechť ϕ(x1, . . , xr) je tvaru ∀v≤xj ϕ1(v, x1, . . , xr), kde 1 ≤ j ≤ k. Označme ψ(v) formuli ϕ1(v, n1, . . , nr). Pak ϕ(n1, . . , nr) je sentence ∀v≤nj ψ(v). Pišme m místo nj. Když N |= ϕ(n1, . . , nr), pak N |= ∀v≤mψ(v) a v N platí všechny sentence ψ(0), . . , ψ(m). Indukční předpoklad pro ϕ1 říká, že každá sentence vzniklá z ϕ1 dosazením numerálů je dokazatelná v Q, pokud ovšem platí v N. Všechny sentence ψ(0), . . , ψ(m) jsou tedy dokazatelné v Q. Z předpokladů ψ(0), . . , ψ(m) lze v Q dokázat ∀v≤mψ(v) díky 4.4.1(d). Úvaha týkající se případu N /|= ϕ(n1, . . , nr) je podobná. Úvahy týkající se ostatních omezených kvantifikátorů a případů, kdy ϕ(x1, . . , xr) je utvořena z jednodušších formulí pomocí disjunkce nebo implikace, jsou rovněž analogické a přenecháváme je čtenáři. QED Lemma 4.4.6 Nechť ϕ(x1, . . , xr) je Σ-formule a nechť n1, . . , nr jsou přirozená čísla. Když N |= ϕ(n1, . . , nr), pak Q ϕ(n1, . . , nr). Důkaz Podobně jako v 4.4.5 dokazujeme indukcí podle počtu kroků, kterými je formule ϕ utvořena z ∆0-formulí, že tvrzení platí pro každé dosazení numerálů za její proměnné x1, . . , xr. Je-li počet oněch kroků nulový, pak ϕ je ∆0-formule a tvrzení pro ni platí díky lemmatu 4.4.5. V důkazu lemmatu 4.4.5 je důležité si všimnout, že v kroku týkajícím se negace a implikace (což jsou kroky, které nyní v úvahu nepřipadají) se při důkazu pozitivního případu (když |=, pak ) použije indukční předpoklad pro negativní případ (když /|=, pak ¬). Ale v krocích týkajících se konjunkce, disjunkce a omezené kvantifikace se při důkazu pozitivního případu vystačí s indukčním předpokladem rovněž pro pozitivní případ. To znamená, že je-li ϕ utvořena z jednodušších Σ-formulí pomocí konjunkce, disjunkce nebo omezené kvantifikace, lze postupovat úplně stejně jako v důkazu lemmatu 4.4.5. Nechť ϕ(x1, . . , xr) je tvaru ∃vϕ1(v, x1, . . , xr) a nechť N |= ϕ(n1, . . , nr). Platí tedy N |= ϕ1(m, n1, . . , nr) pro jisté m. Indukční předpoklad dává Q ϕ1(m, n1, . . , nr). Z předpokladu ϕ1(m, n1, . . , nr) lze v Q dokázat ∃vϕ1(v, n1, . . , nr). QED Tím je dokázána věta 4.4.2, tj. věta o Σ-úplnosti Robinsonovy aritmetiky: v lemmatu 4.4.6 stačí volit r = 0 a dostaneme tvrzení pro sentence. V závěru důkazu lemmatu 4.4.6 stojí ještě za povšimnutí, že kvantifikátory se v nyní uvažovaném kontextu nechovají „duálně . Když některá instance ϕ(m) formule ϕ(x) je dokazatelná, znamená to i dokazatelnost sentence ∃xϕ(x), jsou-li však 326 4 Peanova a Robinsonova aritmetika všechny instance ϕ(m) formule ϕ(x) dokazatelné, nemusí to znamenat dokazatelnost sentence ∀xϕ(x). Na konci oddílu 4.2 jsme poznamenali, že tehdy dosažené výsledky o formulích, jako je Sent(x) nebo LogAx(x), popisujících syntaktické pojmy, lze většinou rozdělit na výsledky o dokazatelnosti obecných faktů v PA a na výsledky o platnosti numerických instancí v N. Nyní víme více i o dokazatelnosti numerických instancí. Je-li ϕ sentencí, pak podle 4.2.11(a) platí N |= Sent(ϕ). Σ-úplnost (plus fakt, že Thm(Q) ⊆ Thm(PA)) dává PA Sent(ϕ), protože Sent(x) je Σ-formule, viz 4.3.5. Ze stejného důvodu, je-li ϕ axiomem Peanovy aritmetiky, platí N |= π(ϕ) a PA π(ϕ). Je-li m důkazem formule ϕ v PA, pak (viz 4.2.12) Q Proofπ(ϕ, m). A je-li ϕ dokazatelná v Q nebo v PA, pak (viz 4.2.13) PA PrQ(ϕ) resp. PA Prπ(ϕ). Formule Proofπ, PrQ a Prπ jsou totiž všechny v Σ. Ukažme si, že z toho v podstatě plyne odpověď na jednu z otázek ze závěru oddílu 4.2. Nechť τ(z) definuje množinu axiomů nějaké teorie T v N, a nechť navíc τ(z) ∈ Σ. Domluvme se, že tento případ (kdy τ(z) ∈ Σ) nás zajímá především. Pak podmínky T ϕ a PA Prτ (ϕ) jsou ekvivalentní: o implikaci ⇐ jsme se již zmínili v závěru oddílu 4.2, implikace ⇒ je 4.2.13, plus Thm(Q) ⊆ Thm(PA), plus Σ-úplnost. Peanova aritmetika může o všech formulích ϕ dokazatelných v nějaké teorii T tvrdit, že jsou dokazatelné, pokud jí množinu axiomů teorie T popíšeme nějakou Σ-formulí. A popsat množinu axiomů teorie T nějakou Σ-formulí lze právě tehdy, je-li T rekurzívně axiomatizovatelná. Věta o Σ-úplnosti nám umožňuje tvrdit něco i o dokazatelnosti negovaných numerických instancí. Není-li ϕ například logickým axiomem, pak N |= ¬LogAx(ϕ) podle 4.2.11(a). V tom případě platí PA ¬LogAx(ϕ), neboť formule ¬LogAx(x) je Σ(PA)-formule, viz 4.3.5(b). Podobně není-li m důkazem formule ϕ v PA, pak PA ¬Proofπ(ϕ, m) dle 4.3.5(e). To ale nedává odpověď na otázku, jaký je vztah mezi podmínkami PA ϕ a PA ¬Prπ(ϕ). O formuli ¬Prπ(x) jsme totiž nikdy netvrdili, že je v Σ(PA). Pomohla by nám „věta o Π1-úplnosti , viz 4.3.5(e), tu ale nemáme, a z věty 4.3.12 víme, že určitě neplatí. V následující větě 4.4.8 zobecníme větu 4.3.12 ve dvou směrech. Jednak Σ-úplnost nám umožní dokázat nerozhodnutelnost příslušné teorie. A dále si uvědomíme, že není nutné, aby teorie T měla aritmetický jazyk. Má-li alespoň aritmetický jazyk, tj. má-li nějaký jazyk L, v němž je všech šest symbolů aritmetického jazyka, pak každá aritmetická formule je zároveň formulí jazyka L, a o aritmetických sentencích dokazatelných v T můžeme říkat totéž, co jsme říkali dosud. Definice 4.4.7 Nechť T je teorie s alespoň aritmetickým jazykem. Řekneme, že T je korektní, jestliže každá aritmetická sentence dokazatelná v T platí v N. Řekneme, že T je Σ-korektní, jestliže každá aritmetická Σ-sentence dokazatelná v T platí v N. Je zřejmé, že PA obsahuje Q, teorie PA i Q jsou korektní, každá korektní teorie je Σ-korektní a každá Σ-korektní teorie je bezesporná. Připomeňme, že teorie T obsahuje teorii S, jestliže platí inkluze L(S) ⊆ L(T) pro jejich jazyky a inkluze Thm(S) ⊆ Thm(T) pro množiny všech dokazatelných sentencí. 4.4 Σ-úplnost Robinsonovy aritmetiky 327 Věta 4.4.8 Nechť T je rekurzívně axiomatizovatelná teorie, která obsahuje Robinsonovu aritmetiku a je Σ-korektní. Pak T je nerozhodnutelná a neúplná. Existují dokonce Σ1- a Π1-sentence nezávislé na T. Důkaz Postupujme podobně jako v důkazech vět 4.3.10 a 4.3.12. Nechť A ⊆ N je rekurzívně spočetná množina. Díky tvrzení 4.3.9(a) existuje Σ1-formule ϕ(x), která definuje množinu A v N: ∀n(n ∈ A ⇔ N |= ϕ(n)). (1) Podmínka N |= ϕ(n) je ekvivalentní s T ϕ(n): jestliže N |= ϕ(n), pak Q ϕ(n) vzhledem k Σ-úplnosti a T ϕ(n) díky předpokladu, že T obsahuje Q, a naopak jestliže T ϕ(n), pak N |= ϕ(n) díky předpokladu, že T je Σ-korektní. Ekvivalenci (1) tedy můžeme přepsat na ∀n(n ∈ A ⇔ T ϕ(n)). (2) Podmínka (2) znamená A ≤m Thm(T) prostřednictvím funkce n → ϕ(n). Toto platí pro každou rekurzívně spočetnou množinu A. Každá A ∈ RE je tedy převedi- E telná na množinu Thm(T). Z věty 3.6.6 víme, že Thm(T) je rekurzívně spočetná. Množina Thm(T) je tedy Σ1-kompletní, a tedy nerekurzívní. Teorie T je nerozhod- nutelná. Existence nezávislých Σ1- a Π1-sentencí plyne z (důkazu) věty 4.3.12. Ukažme si ale ještě jiné zdůvodnění. Vraťme se k ekvivalenci (2) a mysleme si, že rekurzívně spočetná množina A byla zvolena pevně a že je nerekurzívní. Označme Y množinu { n ; T ¬ϕ(n) }. Z (2) plyne A ∩ Y = ∅, jinak by T byla sporná. Množina Y je rekurzívně spočetná, a to například proto, že je prostřednictvím funkce n → ¬ϕ(n) převeditelná na množinu Thm(T). Platí-li A ∪ Y = N, pak podle Postovy věty 2.2.27 množiny A i Y jsou rekurzívní. To ale nejsou, o A předpokládáme, že je nerekurzívní. Tedy A ∪ Y = N, takže můžeme zvolit n0 /∈ A ∪ Y . Podmínka n0 /∈ Y znamená T ¬ϕ(n0) a podmínka n0 /∈ A znamená T ϕ(n0) vzhledem k (2). Tedy ϕ(n0) je nezávislá Σ1-sentence a ¬ϕ(n0) je T-ekvivalentní s nezávislou Π1-sentencí. QED Nechť T je rekurzívně axiomatizovatelná teorie s aritmetickým jazykem a nechť platí N |= T. Utvořme teorii (T + Q), tj. přidejme k T axiomy Robinsonovy aritmetiky. Dostaneme teorii, která splňuje předpoklady věty 4.4.8, a je tedy neúplná. Je-li (T +Q) neúplná, pak ovšem i T je neúplná. Tím je zdůvodněno, že věta 4.4.8 je zesílením věty 4.3.12. Větu 4.4.8 také považujme za jednu z variant První Gödelovy věty o neúplnosti. Když θ je ∆0-sentence, pak θ i ¬θ jsou Σ-sentence a ta z nich, která platí v N, je podle věty o Σ-úplnosti dokazatelná už v Q. Tato úvaha doplňuje naši dřívější odpověď (danou větou 4.3.12) na otázku ze závěru oddílu 4.3, pro které nejmenší n existují Σn-sentence nezávislé na PA. Nezávislé Σ1- a Π1-sentence existují, nezávislé ∆0-sentence neexistují. A Peanova aritmetika se v tomto ohledu nijak neliší od Robinsonovy aritmetiky. 328 4 Peanova a Robinsonova aritmetika Pozastavme se ještě u důkazu věty 4.4.8. Formule ϕ(x) je Σ1, lze ji tedy psát ve tvaru ∃vλ(x, v), kde λ ∈ ∆0. Víme, že sentenci ∀v¬λ(n0, v) nelze dokázat v T. Z ekvivalencí (1) a (2) plyne, že sentence ∀v¬λ(n0, v) platí v N (kdyby ne, byla by sentence ∃vλ(n, v) protipříkladem na větu o Σ-úplnosti). V N tedy platí i všechny sentence tvaru ¬λ(n0, k). Každá z těchto sentencí je ∆0, a je tedy dokazatelná v T. Existuje tedy ∆0-formule θ(v) taková, že všechny instance tvaru θ(k) jsou dokazatelné v T, ale ∀vθ(v) nikoliv. Pro Robinsonovu aritmetiku jsme to věděli, tam stačilo za θ(v) volit například formuli 0 + v = v. Fakt, že taková ∆0-formule existuje pro každou „rozumnou teorii T, se může zdát překvapivý. Domníváme se ale, že je přirozený. Platí-li všechny instance θ(0), θ(1), θ(2), . . . ve struktuře N, je správné usoudit, že v N platí i sentence ∀vθ(v). Ale máme-li nekonečně mnoho různých důkazů, jeden pro každou sentenci θ(k), nemusí to znamenat, že z nich lze utvořit jeden společný důkaz sentence ∀vθ(v). Podobná situace se vyskytuje i v teoretické informatice: máme-li pro každé n program, který počítá nějakou funkci gn : N → N, nemusí to znamenat existenci společného programu, který počítá funkci [n, x] → gn(x). Z věty 4.4.8 můžeme usoudit něco i o rozhodnutelnosti predikátové logiky. Věta 4.4.9 Množina všech formulí v jazyce aritmetiky, které jsou logicky platné, je algoritmicky nerozhodnutelná. Důkaz Robinsonova aritmetika je podle věty 4.4.8 nerozhodnutelnou teorií. Odstraníme-li z nerozhodnutelné teorie konečně mnoho axiomů, dostaneme opět nerozhodnutelnou teorii, viz větu 3.6.10. Robinsonova aritmetika je konečně axiomatizovatelná, můžeme tedy odstranit všechny. Formule v aritmetickém jazyce dokazatelné v teorii bez vlastních axiomů jsou podle věty o úplnosti predikátového kalkulu přesně ty, které jsou logicky platné. QED O Peanově aritmetice víme, že existuje Π1-sentence ψ, kterou v PA nelze dokázat ani vyvrátit. Tedy (PA + ψ) i (PA + ¬ψ) jsou bezesporné teorie. Jen jedna z nich je korektní, a lze dokonce říci která. Kdyby totiž v N platila sentence ¬ψ, musela by být dokazatelná, protože je to Σ(Q)-sentence, a ψ by tudíž nemohla být nezávislá na PA. Takže (PA + ψ) je korektní teorie a podle věty 4.4.8 je neúplná a nerozhodnutelná. Teorie (PA + ¬ψ) není Σ-korektní, a věta 4.4.8 se na ni tudíž nevztahuje. Nyní uvidíme, že větu 4.4.8 lze zobecnit i na nekorektní teorie, a tím definitivně odpovíme na první dvě otázky ze závěru oddílu 4.1. Žádné přidání rekurzívní množiny axiomů k PA nebo ke Q nedá úplnou teorii, a to bez ohledu na to, zda přidané axiomy platí v N. Žádné přidání rekurzívní množiny axiomů ke Q nedá rozhodnutelnou teorii, ledaže bychom porušili bezespornost. Lemma 4.4.10 Nechť A ⊆ N a B ⊆ N jsou disjunktní rekurzívně spočetné množiny. Pak existuje formule ϕ(x) ∈ Σ1 taková, že Q ϕ(n), kdykoliv n ∈ A, a Q ¬ϕ(n), kdykoliv n ∈ B. 4.4 Σ-úplnost Robinsonovy aritmetiky 329 Důkaz Dle tvrzení 4.3.9(a) množiny A a B jsou Σ1-definovatelné v N. Existují tedy ∆0-formule θ(x, v) a λ(x, v) takové, že formule ∃vθ(x, v) definuje množinu A a formule ∃vλ(x, v) definuje množinu B: ∀n(n ∈ A ⇔ N |= ∃vθ(n, v)), (1) ∀n(n ∈ B ⇔ N |= ∃vλ(n, v)). (2) Označme ϕ(x) formuli ∃v(θ(x, v) & ∀u≤v¬λ(x, u)). Formule θ(x, v) a λ(x, v) lze číst číslo v je svědek pro náležení čísla x do množiny A resp. do množiny B. V tom případě formule ϕ(x) říká náležení čísla x do A se dosvědčí dříve než náležení do B. Evidentně platí ϕ ∈ Σ1. Ověříme, že formule ϕ má i ostatní požadované vlastnosti. Předpokládejme n ∈ A. Pak n /∈ B, protože A a B jsou disjunktní množiny. V tom případě z podmínek (1) a (2) plyne N |= ϕ(n). Dále Σ-úplnost dává Q ϕ(n). Zbývá dokázat implikaci n ∈ B ⇒ Q ¬ϕ(n). Nechť tedy n ∈ B. Díky podmínce (2) existuje m takové, že N |= λ(n, m). Σ-úplnost dává Q λ(n, m). (3) Protože množiny A a B jsou disjunktní, máme n /∈ A, tedy N |= ∀v¬θ(n, v). Tudíž pro každé k platí N |= ¬θ(n, k), a opětovné užití Σ-úplnosti dává ∀k(Q ¬θ(n, k)). (4) Chceme v Q dokázat sentenci ¬ϕ(n), tj. sentenci ∀v(θ(n, v) → ∃u≤vλ(n, u)). Postupujme takto: Nechť v je dáno a nechť θ(n, v). Platí v ≤ m nebo m ≤ v, viz 4.4.1(e). Případ v ≤ m je ale vyloučen. Když totiž v ≤ m, pak dle 4.4.1(d) je v jedno z čísel 0, 1, . . , m a pro každé z těchto v platí ¬θ(n, v), viz (4). Takže m ≤ v. V tom případě existuje číslo u ≤ v, totiž m, pro které platí λ(n, u), viz (3). QED Připomeňme, že Ref(T) označuje množinu { ϕ ; ϕ je sentence a T ¬ϕ }, tj. množinu všech sentencí vyvratitelných v T. Věta 4.4.11 (Rosserova) Nechť T je rekurzívně axiomatizovatelná teorie, která obsahuje Robinsonovu aritmetiku a je bezesporná. Pak existují Σ1- a Π1-sentence nezávislé na T. Každá z množin Thm(T) a Ref(T) je Σ1-kompletní. Teorie T je tedy neúplná a nerozhodnutelná. Důkaz Díky větě 2.2.47 můžeme zvolit disjunktní rekurzívně spočetné množiny A a B přirozených čísel takové, že každá rekurzívně spočetná nadmnožina jedné z nich disjunktní s druhou je Σ1-kompletní. Podle lemmatu 4.4.10 k množinám 330 4 Peanova a Robinsonova aritmetika A a B existuje Σ1-formule ϕ(x) taková, že Q ϕ(n) pro všechna n ∈ A a Q ¬ϕ(n) pro všechna n ∈ B. Protože teorie T obsahuje Robinsonovu aritmetiku, máme ∀n(n ∈ A ⇒ T ϕ(n)), (1) ∀n(n ∈ B ⇒ T ¬ϕ(n)). (2) Opačné implikace netvrdíme, k tomu bychom potřebovali Σ-korektnost. Položme X = { n ; T ϕ(n) } a Y = { n ; T ¬ϕ(n) }. Jako v důkazu věty 4.4.8 rekurzívní axiomatizovatelnost teorie T dává X ∈ RS a Y ∈ RS. Navíc množiny X a Y jsou disjunktní, jinak by T byla sporná. Podmínky (1) a (2) dávají A ⊆ X a B ⊆ Y . Kdyby platilo N = X ∪ Y , podle Postovy věty by množina X byla rekurzívní. To není možné, rekurzívní nadmnožiny množiny A disjunktní s B neexistují. Platí tedy N = X ∪ Y , takže existuje n0 /∈ X ∪ Y . Pak ϕ(n0) je nezávislá Σ1-sentence, ¬ϕ(n0) je nezávislá Π1(T)-sentence, a T je tedy neúplná. Platí X ≤m Thm(T) via n → ϕ(n) a Y ≤m Ref(T) via n → ¬ϕ(n). Množiny Thm(T) a Ref(T) jsou rekurzívně spočetné. Je jasné, že rekurzívně spočetná množina, na kterou je převeditelná Σ1-kompletní množina, je také Σ1-kompletní (viz poznámku za příkladem 2.2.32). Tedy Thm(T) a Ref(T) jsou Σ1-kompletní množiny. QED Větu 4.4.11 lze označit jako Rosserovu verzi První Gödelovy věty o neúplnosti. Rosserovi se připisuje nápad, na kterém je založena konstrukce formule ϕ(x) v důkazu věty 4.4.11: mluvit o tom, zda svědek pro náležení čísla x do množiny A je menší nebo větší než svědek pro náležení x do množiny B, a nespoléhat se na fakt, že obojí najednou dosvědčit nelze. Podmínka „A a B jsou disjunktní totiž není Σ a jako taková je uvnitř teorie T nejistá, přestože ve skutečnosti platí. Rosserova metoda „porovnávání svědků umožnila zobecnit První Gödelovu větu i na nekorektní teorie. Nerozhodnutelnost (některé aritmetiky nebo predikátové logiky) se někdy cituje jako Churchova věta. Základními odkazy jsou [42] a [41]. Metoda důkazu věty 4.4.9, přes větu 3.6.10, také patří Churchovi. Důkazy vět 4.4.8 a 4.4.11, které jsme uvedli, jsou v podstatě převzaty z rukopisu C. Smory´nského [83]. Tvrzení věty 4.4.11 o nerozhodnutelnosti lze přeformulovat pomocí pojmu podstatně nerozhodnutelná teorie. Definice 4.4.12 Teorie T je podstatně nerozhodnutelná, jestliže T je bezesporná a každá bezesporná teorie S obsahující T je nerozhodnutelná. Věta 4.4.13 Robinsonova aritmetika Q je podstatně nerozhodnutelná. Je-li f rekurzívní funkce jedné proměnné, pak její graf je rekurzívně spočetná množina, a existuje tedy Σ1-formule ϕ(x, y), která jej definuje v N. Tedy v N platí sentence ϕ(n, m), právě když m = f(n). Z toho plyne N |= ∀x∃!yϕ(x, y). Díky Σ-úplnosti víme, že N |= ϕ(n, m), právě když Q ϕ(n, m). Takže je-li m funkční hodnotou v bodě n, uvnitř Q víme, že m je funkční hodnotou v bodě n. 4.4 Σ-úplnost Robinsonovy aritmetiky 331 Uvnitř Q ale nevíme, že každé číslo má jednoznačně určenou funkční hodnotu, protože ∀x∃!yϕ(x, y) není Σ-sentence. Ale formule ϕ(x, y) není funkcí f jednoznačně určena. Je více způsobů, jak Robinsonově (nebo Peanově) aritmetice popsat funkci f. V následující větě ukážeme, že popis funkce f aritmetickou Σ1-formulí lze zvolit tak, aby uvnitř Q bylo jisté, že alespoň standardní čísla mají jednoznačně určenou funkční hodnotu. Jinými slovy, formuli ϕ definující graf funkce f lze zvolit tak, aby všechny sentence tvaru ∃!yϕ(n, y) byly dokazatelné. Dokazatelnost sentence ∀x∃!yϕ(x, y) zaručit nelze, ale bez té se obejdeme. Větu 4.4.14 uvádíme zde, protože důkaz je snazší, máme-li v paměti větu 4.4.1 a důkaz Rosserovy věty 4.4.11. Použijeme ji ale až v následujícím oddílu, v důkazu věty o autoreferenci. V důkazu věty 4.4.14 se stejně jako v důkazu věty 4.4.11 a na rozdíl od důkazů vět 4.4.2 a 4.4.8 uplatní tvrzení (e) věty 4.4.1. Věta 4.4.14 (Reprezentovatelnost funkcí v Q) Pro každou obecně rekurzívní funkci f existuje Σ1-formule ϕ(x, y) taková, že pro každé n platí Q ∀y ϕ(n, y) ≡ y = f(n) . (∗) Důkaz Graf funkce f je rekurzívně spočetná množina. Existuje tedy ∆0-formule θ(x, y, v) taková, že formule ∃vθ(x, y, v) jej definuje v N. Tedy ekvivalence m = f(n) ⇔ N |= ∃vθ(n, m, v) (1) platí pro libovolnou dvojici čísel m a n. Formuli θ(x, y, v) lze číst číslo v svědčí pro fakt, že y je funkční hodnota funkce f v bodě x. Na metamatematické úrovni má každé n jednoznačně určenou funkční hodnotu f(n). Uvnitř Robinsonovy aritmetiky ale není zaručeno, že ke každému x existuje y, pro které lze dosvědčit, že je funkční hodnotou v bodě x, a není ani vyloučena existence vzájemně si protiřečících svědků. Naším úkolem je nově definovat význam „svědectví tak, aby alespoň standardní čísla 0, 1, 2, . . . měla jednoznačně určenou funkční hodnotu, a to stejnou jako ve skutečnosti. To uděláme následovně. Označme ϕ(x, y) formuli ∃w(y ≤ w & ∃v≤wθ(x, y, v) & ∀z≤w∀v≤w(θ(x, z, v) → z = y)). Číslu w ve formuli ϕ říkejme „svědek v novém smyslu . Číslo w svědčí pro y v novém smyslu, jestliže mezi čísly nepřevyšujícími w jsou y i svědkové pro y ve starém smyslu, ale nejsou tam vzájemně si protiřečící svědkové. Ověříme, že formule ϕ má požadovanou vlastnost. Nechť n0 je pevné. Označme m0 = f(n0) a zvolme pevně číslo k0, pro které platí N |= θ(n0, m0, k0). To lze díky podmínce (1). Z toho a ze Σ-úplnosti plyne Q θ(n0, m0, k0), (2) Q ¬θ(n0, m, k), je-li m = m0 a k libovolné. (3) Netvrdíme ovšem nic o dokazatelnosti sentence ∀v¬θ(n0, m, v), ta není Σ. Označme r = max{m0, k0}. Platí Q m0 ≤ r a Q k0 ≤ r. Dále platí Q ∀z≤r∀v≤r(θ(n0, z, v) → z = m0). (4) 332 4 Peanova a Robinsonova aritmetika To plyne z (3), neboť uvnitř Q víme, že každé z ≤ r i v ≤ r je rovno některému z čísel 0, 1, . . , r, viz 4.4.1(d). Uvažujme v Q: Máme m0 ≤ r. Z (2) a z k0 ≤ r plyne ∃v≤rθ(n0, m0, v). To dohromady s podmínkou (4) dává ϕ(n0, m0). Tím je ověřena implikace ← v podmínce ∗. Nechť naopak y je takové, že ϕ(n0, y). Máme tedy w, které splňuje podmínky (i) y ≤ w, (ii) ∃v≤wθ(n0, y, v) a (iii) ∀z≤w∀v≤w(θ(n0, z, v) → z = y). Platí w ≤ r nebo r ≤ w. Když w ≤ r, pak podmínka (ii) a podmínka (4) užitá na z := y dávají y = m0. Přitom jsme implikaci t ≤ w ≤ r → t ≤ r, jejíž důkaz ponecháváme za cvičení, použili na t := v a na t := y. Když r ≤ w, pak podmínka (iii) užitá na z := m0 a v := k0 dávají m0 = y. Přitom jsme implikaci t ≤ r ≤ w → t ≤ w, jejíž důkaz také ponecháváme za cvičení, použili na t := m0 a na t := k0. QED Mělo by být jasné (cvičení), že splňuje-li formule ϕ(x, y) podmínku (∗), pak ϕ definuje graf funkce f v N a všechny sentence tvaru ∃!yϕ(n0, y) jsou dokazatelné v Q. Vyslovme větu o Σ-úplnosti tak, abychom zakryli, že je v ní řeč o standardním modelu Peanovy aritmetiky: když Σ-sentence σ (ve skutečnosti) platí, pak σ je dokazatelná v Q. Tato formulace naznačuje, jak máme větu o Σ-úplnosti formalizovat v aritmetickém jazyce: pomocí implikace σ → PrQ(σ). Platí-li Q σ, pak sentence σ → PrQ(σ) je dokazatelná v PA (dokonce už v Q) díky tomu, že je dokazatelný její závěr PrQ(σ). Platí-li Q ¬σ, pak sentence σ → PrQ(σ) je ovšem také dokazatelná. Věta o formalizované Σ-úplnosti tvrdí, že implikace σ → PrQ(σ) je v PA dokazatelná vždy, tj. i v případech, kdy σ je nezávislá Σ-sentence. Důkaz věty o formalizované Σ-úplnosti lze získat „přeříkáním důkazu věty o Σ-úplnosti, který jsme uvedli, uvnitř PA. A u toho bychom případně mohli skončit. Ale neskončíme, důkazem se budeme dost podrobně zabývat. Chceme totiž upozornit na některé potíže a na některé zajímavé aspekty. Naším cílem není podat kompletní důkaz. To by opravdu znamenalo rozsáhlé části lemmat 4.4.3–4.4.6 pouze přepsat s užitím bezpatkového písma. Věta o Σ-úplnosti tvrdí něco pro všechny Σ-sentence σ. V důkazu se postupuje indukcí podle počtu logických spojek a kvantifikátorů v sentenci σ. Potíž s tím, že některé podformule sentencí nejsou sentence, jsme překonali tak, jak je vidět ve znění lemmat 4.4.5 a 4.4.6: indukcí podle složitosti se pro každou formuli dokazuje tvrzení o jejích numerických instancích. Naprosto stejně postupujeme uvnitř PA při formalizaci důkazu věty o Σ-úplnosti. V PA tedy budeme mluvit o formálních numerálech, tj. o číslech y splňujících podmínku Numeral(x, y) vůči libovolnému číslu x. Číslo x je zde opět vhodné představit si jako (standardní nebo nestandardní) prvek nějakého modelu Peanovy aritmetiky. 4.4 Σ-úplnost Robinsonovy aritmetiky 333 Nechť ψ je nějaká aritmetická formule s jednou volnou proměnnou u. Prohlédněme si následující formuli: ∃y∃z(Numeral(x, y) & SubF(u, ψ, y, z) & PrQ(z)). (∗) Již jsme si zvykli, že formule ψ je jak syntaktický objekt, tak přirozené číslo, a nepřekvapuje nás výskyt numerálu ψ v jakékoliv formuli. Σ-úplnost spolu s 4.2.11(a) dávají PA Fm(ψ). Uvnitř PA tedy o čísle ψ víme, že je formulí. Také proměnná u je syntaktický objekt, skládá se ze symbolu v následovaného zápisem přirozeného čísla. Uvnitř PA tedy víme také Var(u), neboli víme, že číslo u je proměnná. Uvnitř PA dále víme, že za u do ψ můžeme substituovat libovolný substituovatelný term, například ono y, pro které platí Numeral(x, y). Výsledkem takové substituce je sentence z, o které je řeč v (∗). Podmínku (∗) tedy čteme sentence vzniklá z ψ dosazením x-tého numerálu je dokazatelná v Q a z metamatematického hlediska je to formule s jednou volnou proměnnou x. Nic nebrání, aby proměnné x a u byly totožné. Mysleme si tedy, že jediná volná proměnná formule ψ je x. Pak formule ∃y∃z(Numeral(x, y) & SubF(x, ψ, y, z) & PrQ(z)) (∗∗) opět říká, že sentence vzniklá z ψ dosazením x-tého numerálu za jedinou volnou proměnnou je dokazatelná v Q. Ve formuli (∗∗) hraje „x dvojí úlohu. Z metamatematického hlediska je x proměnná volná ve formulích (∗∗) a ψ. Uvnitř PA je řeč o libovolném (standardním nebo nestandardním) přirozeném čísle x (tomu odpovídají volné výskyty proměnné x ve formuli (∗∗)) a dále o syntaktickém objektu x, který se objeví při syntaktické analýze formule ψ. Ztotožnění proměnných u a x značně zvyšuje nároky na představivost, ale umožňuje také následující úmluvu. Místo (∗∗) pišme PrQ( ψ( ˙x) ). Volných proměnných ve formuli ψ může být i více. Zápis PrQ( ϕ( ˙x1, . . , ˙xr) ) čteme sentence vzniklá dosazením x1-tého až xr-tého numerálu za volné proměnné formule ϕ je dokazatelná v Q a rozumí se, že formule ϕ nemá jiné volné proměnné než x1, . . , xr. Výraz ϕ( ˙x1, . . , ˙xr) s uvozujícími „růžky a s tečkami nad proměnnými tedy v aritmetickém jazyce označuje formální sentenci (číslo, které může být standardní nebo nestandardní), která vznikla z formule ϕ dosazením formálních numerálů. Formální numerály lze ovšem dosadit do libovolné formule. Protože ale vystačíme s dosazováním do skutečných (standardních) formulí, v zápisech tvaru . . ϕ( ˙x) . . nepíšeme pruh nad formulí, do které se dosazuje. Také v zápisech tvaru ¬(v10=S( ˙x)) , v nichž jsou jednotlivé symboly vyznačeny strojopisným písmem, vynecháváme pruhy (a levé apostrofy); o tom jsme se domluvili již dříve. Uvažujme o formalizaci jednotlivých tvrzení z věty 4.4.1. Označme α formuli ¬(0 = S(x)) a posuďme následující úvahu uvnitř PA: 334 4 Peanova a Robinsonova aritmetika Číslo ∀xα je axiomem Robinsonovy aritmetiky. Číslo ∀xα#(∀xα→α(˙v))#α(˙v) je tedy důkazem v Q, protože je kódem posloupnosti tvaru z1#z2#z3 , přičemž platí [Q](z1), LogAx(z2) a formule z3 je ze z1 a z2 odvozena pravidlem MP. Napsali jsme důkaz formule PrQ( ¬(0=S(˙v)) ). Tedy PA ∀vPrQ( ¬(0=S(˙v)) ). (1) Mezi mnoha „triviálními fakty o syntaktických objektech , o kterých je řeč ve větě 4.2.11(b), by mohly být i PA ∀x∀z(Numeral(v + 1, z) ≡ z = S(˙v) ), (2) PA ∀z(Numeral(0, z) ≡ z = 0 ), (3) neboť (v PA) je jasné, že (v + 1)-tý numerál je jediným způsobem utvořen z v-tého pomocí dvou závorek a symbolu S, a je také jasné, co je nultý numerál. Pokračujme v úvahách uvnitř PA: Nechť y = 0. Vezměme v takové, že v + 1 = y. Z (2) víme, že S(˙v) je y-tý numerál. Vzhledem k (1) je formule ¬(0= ˙y) dokazatelná v Q. Tím jsme dospěli k mezivýsledku PA ∀y(0 < y → PrQ( ¬(0= ˙y) )). (4) Nechť tentokrát α(z, u) označuje formuli ¬(z = u) → ¬(S(z) = S(u)) a nechť dále β(z) označuje formuli ∀uα(z, u) a γ označuje sentenci ∀zβ(z). Sentence γ je dokazatelná v Q. Vezměme některý její důkaz a označme jej m. V PA ovšem víme, že m je důkaz v Q sentence γ, tj. sentence ∀z∀uα(z, u). Uvažujme v PA dále, a to za předpokladu ∀y(x < y → PrQ( ¬( ˙x= ˙y) )): Nechť je dáno y takové, že x + 1 < y. Vezměme v takové, že v + 1 = y. Platí x < v. Dle předpokladu existuje w, které je důkazem sentence ¬( ˙x=˙v) . Vezměme posloupnosti m, (γ→β( ˙x)) , β( ˙x) , (β( ˙x)→α( ˙x, ˙v)) , α( ˙x, ˙v) , w a ¬(S( ˙x)=S(˙v)) a spojme je do jedné užitím šesti znaků #. Dostaneme důkaz v Q sentence ¬(S( ˙x)=S(˙v)) , tj. sentence ¬(S(x)= ˙y) . Tím jsme provedli indukční krok. Podmínky (4) a (3) se týkají případu x = 0. Výsledkem je PA ∀x∀y(x < y → PrQ( ¬( ˙x= ˙y) )). Z toho dále plyne PA ∀x∀y(x = y → PrQ( ¬( ˙x= ˙y) )), (5) a tím je řečeno, že první ze tří tvrzení v 4.4.1(a) je formalizovatelné v PA. Podobnými úvahami lze dospět i k formalizaci zbývajících tvrzení v (a)–(e). Z formalizace tvrzení (b) a (c) dále plyne PA ∀x1 . . ∀xr∀y(t(x1, . . , xr) = y → PrQ( t( ˙x1, . . , ˙xr)= ˙y )) (6) 4.4 Σ-úplnost Robinsonovy aritmetiky 335 pro každý aritmetický term t(x1, . . , xr). Tím jsme se přesvědčili, že lemma 4.4.3 je formalizovatelné v PA. V dosavadním textu se obvykle pohybujeme na dvou úrovních, dokazujeme, že něco je nebo není dokazatelné. Nyní máme co dělat se třemi úrovněmi. Podmínka (6) se dokazuje metamatematickou indukcí podle složitosti termu t. Přitom se užije podmínka (5) a několik podobných podmínek. Podmínku (5) jsme dokázali indukcí v PA podle x. A všechny formule, se kterými pracujeme, mluví o dokazatelnosti v Q, kde žádnou indukci nemáme a nepoužíváme. K dokončení důkazu věty o formalizované Σ-úplnosti se musíme ještě v PA zabývat lemmaty 4.4.5 a 4.4.6 a postupně dokázat, že PA ∀x1 . . ∀xr(ϕ(x1, . . , xr) → PrQ( ϕ( ˙x1, . . , ˙xr) )) (7) platí pro každou ∆0-formuli ϕ resp. pro každou Σ-formuli ϕ. Zmíníme se již pouze o univerzálním omezeném kvantifikátoru; nejprve si ale rozmyslíme ještě jedno pomocné tvrzení. Označme γ(y) formuli ∀v(v ≤ S(y) → v ≤ y ∨ v = S(y)). Lze ověřit, že Q γ(0), (8) Q ∀y(γ(y) → γ(S(y))). (9) Netvrdíme Q ∀yγ(y). Ukážeme ale, že (8) a (9) stačí k důkazu, že PA ∀xPrQ( γ( ˙x) ). (10) Označme α(y) formuli γ(y) → γ(S(y)) a zvolme m, které je důkazem sentence ∀yα v Q. Jako v důkazu podmínky (5), v PA víme ProofQ(∀yα, m). Dokážeme podmínku (10) indukcí podle x: Pro x = 0 podmínka (10) platí vzhledem k (8), protože 0 je nultý numerál, viz (3). Nechť podmínka (10) platí pro x. Máme tedy číslo w, které je důkazem sentence γ( ˙x) . Spojíme-li dohromady posloupnosti (∀yα→(γ( ˙x)→γ(S( ˙x)))) , m, (γ( ˙x)→γ(S( ˙x))) , w a γ(S( ˙x)) užitím čtyř znaků #, dostaneme důkaz sentence γ(S( ˙x)) . Tím jsme připraveni k úvaze o omezeném kvantifikátoru. Předpokládejme, že pro formuli ψ jsme již příslušné tvrzení dokázali, a zabývejme se formulí ∀v≤xψ. Je-li proměnná x mezi volnými proměnnými formule ψ, můžeme ji dočasně přejmenovat na řekněme z a pak za z dosadit x. Z tohoto důvodu lze předpokládat, že x nemá volné výskyty ve formuli ψ. Máme tedy formuli ψ(v, y1, . . , yr), pro kterou jsme již dokázali PA ∀v∀y(ψ(v, y) → PrQ( ψ(˙v, ˙y1, . . , ˙yr) )), (11) a uvažujme formuli ∀v≤xψ(v, y). Podmínku PA ∀x(∀v≤xψ(v, y) → PrQ( ∀v≤ ˙xψ(v, ˙y1, . . , ˙yr) )) (12) dokážeme opět indukcí podle x. Indukční krok vypadá takto: 336 4 Peanova a Robinsonova aritmetika Nechť ∀v≤S(x)ψ(v, y). Tedy ∀v≤xψ(v, y) a ψ(S(x), y). Vzhledem k indukčnímu předpokladu existuje důkaz w1 sentence ∀v≤ ˙xψ(v, ˙y1, . . , ˙yr) . Vzhledem k (11) máme důkaz w2 sentence ψ(S( ˙x), ˙y1, . . , ˙yr) . Z důkazů w1 a w2 a z důkazu sentence ∀v(v≤S( ˙x)→v≤ ˙x∨v=S( ˙x)) , viz (10), lze sestavit důkaz sentence ∀v≤S( ˙x)ψ(v, ˙y1, . . , ˙yr) . Tím máme podmínky (12) a (7), a tím všechno, za dokázané: Věta 4.4.15 (formalizovaná Σ-úplnost) Implikace σ→PrQ(σ) je v PA dokazatelná pro každou Σ-sentenci σ. Pro každou Σ-formuli σ(x1, . . , xr) lze v PA dokázat sentenci ∀x(σ(x) → PrQ( σ( ˙x1, . . , ˙xr) )). Věta 4.4.16 (podmínky pro dokazatelnost) Nechť T je rekurzívně axiomatizovatelná teorie obsahující Robinsonovu aritmetiku a nechť τ(z) je Σ-definice množiny axiomů teorie T v N. Pak pro libovolnou aritmetickou sentenci ϕ resp. pro libovolné dvě aritmetické sentence ϕ a ψ platí D1: když T ϕ, pak PA Prτ (ϕ), D2: PA Prτ (ϕ) & Prτ (ϕ → ψ) → Prτ (ψ), D3: PA Prτ (ϕ) → Prτ (Prτ (ϕ)). Důkaz Nechť T ϕ. Podle 4.2.13(a) formule Prτ (x) definuje v N množinu všech dokazatelných sentencí. Platí tedy N |= Prτ (ϕ). Podle 4.3.5 sentence Prτ (ϕ) je Σ(PA)-sentence. Σ-úplnost dává Q Prτ (ϕ), tedy i PA Prτ (ϕ). Podmínka D2 plyne z 4.2.14(b) pouhým dosazením. Protože Prτ (ϕ) je Σ-sentence, platí PA Prτ (ϕ) → PrQ(Prτ (ϕ)) díky formalizované Σ-úplnosti. Zbývá pouze zdůvodnit PA PrQ(Prτ (ϕ)) → Prτ (Prτ (ϕ)). Podle 4.2.14(d) platí dokonce PA ∀x(PrQ(x) → Prτ (x)). Každá sentence Prτ (αi), kde αi je některý z axiomů Robinsonovy aritmetiky, je totiž Σ-sentence platná v N. QED Z 4.2.14(b) víme, že v PA je známo, že množina všech dokazatelných formulí je uzavřena na pravidlo MP. V některých aplikacích bude stačit vědět, že to platí alespoň pro „skutečné sentence, tj. že platí podmínka D2. Je dobré si všimnout, že ke zdůvodnění platnosti podmínky D2 jsme opravdu potřebovali tvrzení 4.2.14(d),E nevystačili bychom s tvrzeními o definovatelnosti množin a podmínek uvedených v 4.2.12 a 4.2.13. Podmínku D2 lze označit jako formalizované pravidlo modus ponens. Podmínka D3 je vlastně formalizace podmínky D1. Když je něco dokazatelné, pak je dokazatelné, že je to dokazatelné. Podmínka D1 konstatuje, že na metamatematické úrovni to platí. Podmínka D3 tvrdí, že v PA je to známo také. Podmínky D1–D3 použijeme v příštím oddílu, v důkazu Druhé Gödelovy věty o neúplnosti. Setkáme se s nimi i v oddílu 5.3. Název podmínky pro dokazatelnost (anglicky derivability conditions) je oprávněn tím, že jde o (minimální) podmínky kladené na formuli Prτ (x) potřebné k tomu, aby se podařil (obvyklý) důkazy Druhé 4.4 Σ-úplnost Robinsonovy aritmetiky 337 Gödelovy věty. V literatuře se lze setkat s ekvivalentní formulací podmínky D2: PA Prτ (ϕ → ψ) → (Prτ (ϕ) → Prτ (ψ)). Poslední téma tohoto oddílu je formalizovatelnost (alespoň části) sémantiky predikátové logiky v PA. Vezmeme-li do hry ještě gentzenovský kalkulus, podaří se nám odpovědět na jednu z otázek ze závěru oddílu 4.2. Zbývající část tohoto oddílu pravděpodobně nebude podstatná pro pochopení výsledků z následujících oddílů. Úvahy o formalizované sémantice začněme prohlédnutím formule Val(z, e, a), kterou čteme číslo a je hodnota termu z při ohodnocení proměnných e: Term(z) & Seq(e) & ∃w(Seq(w) & Lh(w, z + 1) & & ∀y≤z (¬Term(y) ∨ ∨ (y = 0 & B(w, y, 0)) ∨ (Var(y) & ∃t(Lh(e, t) & y < t & ∃v(B(e, y, v) & B(w, y, v)))) ∨ (Var(y) & ∃t(Lh(e, t) & y ≥ t & B(w, y, 0))) ∨ ∃u1∃u2∃v1∃v2(y = (u1+u2) & B(w, u1, v1) & B(w, u2, v2) & & B(w, y, v1 + v2)) ∨ ( . . . podobně pro symboly „⋅ a „S . . . )) & B(w, z, a)). Stejně jako již několikrát simulujeme primitivní rekurzi pomocí posloupnosti w, která kóduje počáteční úsek příslušné funkce. Posloupnost w kóduje výpočet, který stanoví hodnotu termu z tak, že určí hodnotu všech termů menších nebo rovných z. Přitom hodnota termu 0 je nula, hodnota termu vzniklého ze dvou jednodušších termů pomocí znaménka + je součtem příslušných hodnot atd. Jako ohodnocení e se ve formuli Val připouštějí všechny posloupnosti přirozených čísel. To znamená, že se dopouštíme následujícího zjednodušení: nedefinujeme pojem struktury, v sémantice formalizované uvnitř PA uznáváme jen jedinou strukturu, a sice univerzum všech (formálních) přirozených čísel. V pátém řádku formule Val je vidět, jak jsme obešli potíž s tím, že ohodnocení proměnných má být definováno pro všechny proměnné, ale uvnitř PA máme jen konečné posloupnosti. Za hodnoty proměnných větších nebo rovných délce ohodnocení e pokládáme nuly. Jako obvykle, v PA lze dokázat, že formule Val má očekávané vlastnosti. Lemma 4.4.17 (a) Formule Val(z, e, a) je ∆1 v PA. (b) V PA lze dokázat, že při každém ohodnocení e má každý term jednoznačně určenou hodnotu a. Hodnota termu 0 je nula při jakémkoliv ohodnocení. Je-li term z utvořen z jednodušších termů pomocí symbolu + nebo ⋅, pak je jeho hodnota při ohodnocení e rovna součtu resp. součinu příslušných hodnot. A podobně, vznikne-li z z jednoduššího termu pomocí symbolu S. (c) Je-li s(v1, . . , vr) libovolný (skutečný) aritmetický term, jsou-li n1, . . , nr a m přirozená čísla taková, že N |= m = s(n1, . . , nr), a je-li q kód posloupnosti, která v bodech v1, . . , vr má hodnoty n1, . . , nr, pak PA ∀a(Val(s, q, a) ≡ a = m). 338 4 Peanova a Robinsonova aritmetika Důkaz Formule Val(z, e, a) má tvar Term(z) & Seq(e) & ∃w((. .) & B(w, z, a)) a je ekvivalentní s formulí Term(z) & Seq(e) & ∀w((. .) → B(w, z, a)). Všechny kvantifikátory ve formuli označené závorkou s tečkami lze psát jako omezené. Tím je zdůvodněno tvrzení (a). Tvrzení (b) se dokáže jako obvykle. Tvrzení (c) plyne z (b) indukcí podle počtu symbolů v termu s. QED Podobně jako v důkazu věty formalizované Σ-úplnosti pracujeme uvnitř PA s termy a formulemi, což jsou (formální) přirozená čísla. Opět je vhodné si je představit jako prvky libovolného (nestandardního) modelu, které mohou být standardní nebo nestandardní, skutečné nebo neskutečné. Tvrzení (c) říká, že o každém (skutečném, metamatematickém) termu PA ví, že má při každém skutečném ohodnocení jedinou hodnotu, a sice tu skutečnou. Dále chceme v aritmetickém jazyce simulovat Tarského definici, tj. definovat, kdy je formule splněna ohodnocením proměnných. Nebudeme se pokoušet udělat to najednou pro všechny formule. Pro začátek se spokojíme s definicí pro atomické formule a pro ∆0-formule. Formuli ∃z1∃z2∃a1∃a2(Val(z1, e, a1) & Val(z2, e, a2) & ((x = z1=z2 & a1 = a2) ∨ ∨ (x = z1 u. Lze ověřit, že právě zapsaná podmínka začínající slovy „členy s indexy. . . je ∆1 v PA. Jako obvykle je posloupnost w ve formuli SatBdd(x, e) záznamem výpočtu, který určí pravdivostní hodnotu formule x při ohodnocení e. Vedlejším produktem výpočtu je určení pravdivostních hodnot všech formulí y ≤ x při všech ohodnoceních proměnných d přípustných vzhledem k x a e. Je-li formule y sestavena z jednodušších formulí y1 a y2 pomocí některé logické spojky, výpočet se odvolává na pravdivostní hodnoty formulí y1 a y2 při tomtéž ohodnocení, a ty jsou umístěny v tomtéž sloupci tabulky w v dřívějších řádcích příslušných k y1 a y2. Složitější situace nastane, je-li y utvořena z jednodušší formule y pomocí omezené kvantifikace. V tom případě se výpočet odvolává na pravdivostní hodnoty formule y při ohodnoceních d , o kterých byla řeč v předchozím odstavci. Tyto pravdivostní hodnoty jsou umístěny v dřívějším řádku příslušném k formuli y . Tím jsme se dostali k vysvětlení obratu posloupnost d je vzhledem k x a e přípustná a obratu číslo t je dostatečně velké vzhledem k x a e. Posloupnost d pokládejme za přípustnou vzhledem k x a e, jestliže e má nenulovou délku, délka posloupnosti d je nejvýše max{x+1, délka e} a žádný její člen nepřevyšuje maximální člen posloupnosti e. Předpokládejme, že d je posloupnost přípustná vzhledem k x a e a dále že y ≤ x je formule tvaru ∀u. Všechna tvrzení kapitoly 3 o gentzenovském kalkulu GK, která mají ryze syntaktický důkaz, lze formalizovat v PA. Budeme potřebovat větu o eliminovatelnosti řezů, tvrzení o vzájemné simulovatelnosti kalkulů HK a GK a větu 3.3.4. Věta 4.4.21 Nechť F je konečná množina aritmetických sentencí, nechť ϕ je aritmetická sentence. Pak existuje číslo m takové, že PA PrF (ϕ) → Prm,F (ϕ). Důkaz Máme množinu sentencí F a sentenci ϕ. Vezměme číslo m0 tak velké, že ϕ i všechny sentence v F jsou v Σ+ m0 . Protože pracujeme s aritmetickým jazykem, množina axiomů rovnosti má osm prvků (axiomy E1–E3, tři instance axiomu E4 a dvě instance axiomu E5). Označme tuto množinu E. Lze ověřit, že všechny prvky množiny E jsou sentence v Π+ 4 , tedy v Σ+ 5 . Označme S sekvent F, E ⇒ ϕ . Všechny formule sekventu S jsou v Σ+ max{5,m0}. Položme m1 = max{5, m0}. Tvrdíme, že číslo m = 1 + m1 vyhovuje, protože: Nechť sentence ϕ je v kalkulu HK dokazatelná z množiny předpokladů F. Pak sekvent S je dokazatelný v kalkulu GK. Podle věty 3.3.13 o eliminovatelnosti řezů má sekvent S i bezřezový důkaz w1. Podle věty 3.3.4 každá formule v důkazu w1 je s-podformulí některé formule sekventu S. Je jasné, že je-li formule z 344 4 Peanova a Robinsonova aritmetika s-podformulí formule y a je-li Fmm1 (y), pak Fmm1 (z). Z toho plyne, že pro každou formuli z v důkazu w1 platí Fmm1 (z). Podle věty o simulovatelnosti kalkulu GK kalkulem HK, viz 3.3.2, má sentence ϕ důkaz w2 z množiny předpokladů F ∪ E v kalkulu HK, tj. důkaz w2 z množiny předpokladů F v kalkulu HKe. Prohlédnutím konstrukce důkazu w2 v důkazu věty 3.3.2 lze ověřit, že důkaz w2 obsahuje pouze formule utvořené z formulí v důkazu w1 pomocí logických spojek. Všechny takové formule z splňují podmínku Fmm(z). QED Věta 4.4.22 (a) Nechť F je konečná množina aritmetických sentencí. Pak implikace F → Con(F) je dokazatelná v PA. (b) Nechť F je konečná množina axiomů Peanovy aritmetiky. Pak PA Con(F). Důkaz Nechť F = {ψ1, . . , ψk} je dána. Vzpomeňme si, jak je sentence Con(F) definována pomocí formule PrF , a užijme předchozí větu na množinu F a na sentenci ϕ := (0 = S(0)): pro jisté m platí PA ¬Con(F) → Prm,F (0 = S(0)). Zbývá zdůvodnit PA F → ¬Prm,F (0 = S(0)): Dokazujme sporem. Nechť ψ1, ψ2, . . a ψk. Nechť zároveň existuje číslo w tvaru x1#x2# . . #xt takové, že pro každé l, kde 1 ≤ l ≤ t, platí Fmm(xl), a w je důkaz sentence 0 = S(0) z množiny předpokladů F. Ověříme indukcí podle l, že ∀eSatm(xl, e). Je-li xl jeden z předpokladů, tj. jedna ze sentencí ψ1, . . , ψk, pak ∃eSatm(xl, e) dle 4.4.20(h), a také ∀eSatm(xl, e) dle 4.4.20(e). Je-li xl logický axiom, uplatní se 4.4.20(f). A je-li xl odvozena z předchozích členů pomocí pravidel generalizace nebo pomocí pravidla MP, uplatní se tvrzení z 4.4.20(b) týkající se kvantifikátorů a implikace. Tím jsme dospěli ke sporu. Sentence 0 = S(0) je jednou z formulí xl, a platí o ní tedy ∀eSatm(0 = S(0), e). Díky 4.4.20(h) o ní platí také ¬∀eSatm(0 = S(0), e). Tvrzení (b) plyne bezprostředně z (a): obsahuje-li F pouze axiomy Peanovy aritmetiky, pak PA F. QED Věta 4.4.22 dává odpověď na jednu z otázek ze závěru oddílu 4.2. Jedna z konečných množin F axiomů Peanovy aritmetiky je Q, a platí tedy PA Con(Q). Tomu, abychom mohli tvrdit PA Con(π), brání rozdíl mezi obraty „pro každou F, která je konečná, PA ví, že . . . a „PA ví, že pro každou konečnou F . . . . Kdybychom měli (jeden) důkaz tvrzení, že každá konečná část množiny { z ; π(z) } je bezesporná, znamenalo by to i důkaz bezespornosti celé množiny { z ; π(z) }. Takový důkaz ale (zatím?) nemáme. Máme pouze nekonečně mnoho různých důkazů různých formulí tvaru Con(F) a není zřejmé, jak z nich utvořit společný důkaz tvrzení, že každá konečná část množiny { z ; π(z) } je bezesporná. Pomohlo by, kdybychom místo dílčích definicí pravdy Satn mohli sestrojit jednu společnou (uniformní) definici pravdy pro všechny aritmetické formule najednou. Fakt, že aritmetická klasifikace formulí Satn (na rozdíl od formulí Fmn) vzrůstá se vzrůstajícím n, ale naznačuje, že to možná nepůjde. 4.4 Σ-úplnost Robinsonovy aritmetiky 345 Konstatujme, že sentence Con(π), přes dílčí úspěchy v dokazování bezespornosti, zůstává kandidátem na konkrétní tvrzení, které je nezávislé na PA. Cvičení 1. Dokažte v Q sentence ∀x∀y(x ≤ y ≤ n → x ≤ n), ∀x∀y(x ≤ n ≤ y → x ≤ y) a ∀x(S(x) + n = x + n + 1). 2. Dokažte, že sentence ∀x(S(x) + 0 = x + 1) a ∀x∃v(0 + v = x) nejsou v Q dokazatelné. To znamená, že tvrzení (e) věty 4.4.1 by neplatilo, kdybychom v axiomu Q8 zaměnili pořadí sčítanců. 3. Dokažte, že (a)–(d) ve větě 4.4.1 by bylo možno dokázat i v případě, kdybychom v axiomech Q8 a Q9 zaměnili pořadí sčítanců. 4. Dokažte, že každá Σ-korektní teorie je bezesporná. 5. Rozhodněte, zda platí (a) Jsou-li ϕ a ψ aritmetické sentence takové, že PA ϕ ∨ ψ, pak platí PA ϕ nebo PA ψ. (b) Jsou-li ϕ a ψ aritmetické Σ-sentence takové, že PA ϕ∨ψ, pak platí PA ϕ nebo PA ψ. Návod k (b). Použijte Σ-korektnost na disjunkci ϕ ∨ ψ a Σ-úplnost zvlášť na ϕ a na ψ. 6. Rozhodněte, zda platí (a) Je-li ∃xϕ(x) aritmetická sentence taková, že PA ∃xϕ(x), pak existuje číslo n takové, že PA ϕ(n). (b) Je-li ∃xϕ(x) aritmetická sentence taková, že ϕ je omezená a PA ∃xϕ(x), pak existuje číslo n takové, že PA ϕ(n). Návod. V případě (a) vezměte omezenou formuli ψ(y) splňující podmínky N |= ∀yψ(y) a PA ∀yψ(y). Existenci takové sentence zaručuje věta 4.3.12. Dále uvažujte sentenci ∃x∀y(ψ(y) ∨ ¬ψ(x)). 7. Dokažte, že množina všech logicky platných formulí v jazyce aritmetiky je Σ1-kompletní. 8. Dokažte, že splňuje-li Σ1-formule ϕ(x, y) podmínku (∗) z věty 4.4.14, pak ϕ definuje v N graf funkce f a všechny sentence tvaru ∃yϕ(n, y) jsou v Q doka- zatelné. 9. Vyvoďte z lemmatu 4.4.10, že ke každé rekurzívní množině A ⊆ N existuje formule ϕ(x) ∈ Σ1 taková, že Q ϕ(n) pro všechna n ∈ A a Q ¬ϕ(n) pro všechna n /∈ A. 10. Vyvoďte totéž tvrzení z věty 4.4.14. 346 4 Peanova a Robinsonova aritmetika 11. Dokažte, že splňuje-li teorie T předpoklady Rosserovy věty 4.4.11, pak každá z množin Σ1 ∩ Thm(T) i Π1 ∩ Thm(T) je Σ1-kompletní. 12. Zdůvodněte, že relace { [ϕ, e] ; ϕ ∈ ∆0 & N |= ϕ[e] } je PR. Z toho plyne, že i relace { [ϕ(x), n] ; ϕ(x) ∈ ∆0 & N |= ϕ(n) } je PR. Jinými slovy, úloha rozhodnout, zda daná formule je ∆0-formulí s jednou volnou proměnnou, která je v N splněna daným číslem n, je primitivně rekurzívní. Zdůvodněte dále, že množina { ϕ(x) ; ϕ(x) ∈ ∆0 & N /|= ϕ(ϕ) } je příklad množiny, která je primitivně rekurzívní, není ale ∆0-definovatelná. Návod. Analyzujte konstrukci formule SatBdd a důkaz lemmatu 4.4.19. Podmínka „ϕ je ∆0-formule a e je ohodnocení proměnných takové, že (některá nebo každá) pravdivostní relace m pro ϕ, e a k, kde k je dost velké vzhledem k ϕ a e, přiřazuje dvojici [ϕ, e] hodnotu 1 je primitivně rekurzívní, neboť velikost pravdivostní relace lze odhadnout primitivně rekurzívní funkcí ve ϕ a e. 13. Nechť M je struktura pro aritmetický jazyk a A je její podstruktura. Řekneme, že A splňuje Tarského-Vaughtovu podmínku pro Γ-formule, jestliže pro každou formuli ϕ(x, y) ∈ Γ a pro každou r-tici b1, . . , br prvků množiny A platí implikace M |= (∃xϕ)[b] ⇒ ∃a ∈ A(M |= ϕ[a, b]). Řekneme, že struktura A je Γ-elementární, jestliže všechny Γ-formule jsou absolutní pro podstrukturu A. Dokažte, že když A splňuje Tarského-Vaughtovu podmínku pro Πm-formule, pak A je Σm+1-elementární. 14. Dokažte, že když A je Σm+1-elementární podstruktura struktury M a M |= PA, pak A |= IΣm. Návod. Dokažte indukcí dle k, že A |= IΣk pro každé k ≤ m. Zdůvodněte úvahami podobnými jako v cvičení 5 oddílu 4.2, že máte-li Σk−1-indukci a je-li ϕ(x, y) ∈ Σk, pak formule ϕ(0, y) & ∀x(ϕ(x, y) → ϕ(S(x), y)) je ekvivalentní s Πk+1-formulí, a je tedy absolutní pro podstrukturu A vzhledem k předpokladu, že A je Σm+1-elementární. 15. Nechť M |= PA. Řekneme, že prvek a modelu M je Γ-definovatelný, jestliže existuje formule ψ(x) ∈ Γ, která jej v M definuje. Zdůvodněte využitím věty 4.3.12, že existuje model Peanovy aritmetiky, který má nestandardní ∆0-definovatelné prvky. 16. Nechť M |= PA a nechť Dn označuje množinu všech Σn+1-definovatelných prvků modelu M. Zdůvodněte, že množina Dn je podstruktura modelu M, tj. že obsahuje nulu a je uzavřená na sčítání, násobení a přičítání jedničky. 17. Nechť Dn a M jsou jako v předchozím cvičení. Dokažte užitím cvičení 13 a 14, že Dn je Σn+1-elementární podstruktura modelu M, která je modelem teorie IΣn. 4.4 Σ-úplnost Robinsonovy aritmetiky 347 18. Nechť α(x, y) označuje formuli číslo x je formule s jednou volnou proměnnou, platí Fmn+1(x) a přitom pro (některé nebo každé) ohodnocení e přiřazující číslo y oné jediné volné proměnné formule x platí Satn+1(x, e). Stručněji řečeno, formule α(x, y) říká číslo x je Σ+ n+1-formule s jedinou volnou proměnnou, která je (n+1)-splněná číslem y. Zdůvodněte, že formule α je Σn+1(PA). Nechť dále β(x, y) je formule α(x, y) & ∀v(α(x, v) → v = y). Zdůvodněte, že jsou-li Dn a M jako v předchozích cvičeních, pak formule β je absolutní pro podstrukturu Dn. Vysvětlete, jak se přitom uplatní vědomost, že Dn |= IΣn. Zdůvodněte, že ∀b ∈ Dn∃m ∈ N(M |= β(m, y)[b]). Nakonec dokažte, že formule ∀y∃x 0, pro j − 1 tvrzení platí a nechť e je ohodnocení atomů pj+1, . . , pm takové, že e |= Qjpj . . Q1p1B(p). Uvažujme nejprve případ Qj = ∃. Podmínka e |= ∃pj . . Q1p1B(p) znamená, že alespoň jedno z obou ohodnocení 1 e a 0 e, která rozšiřují e na atom pj, splňuje formuli Qj−1pj−1 . . Q1p1B(p). Indukční předpoklad říká, že existuje kripkovský protipříklad K na formuli A∗ j−1, ve kterém jsou atomy pj, . . , pm ohodnoceny všude shodně dle 1 e nebo dle 0 e. Označme b onen vrchol modelu K, pro který platí b −/ A∗ j−1. Atomy pj+1, . . , pm jsou všude ohodnoceny dle e. Atom pj je ohodnocen nějak, ale všude shodně. Tedy b − pj ∨ ¬pj a b −/ A∗ j . Model K je hledaným protipříkladem na formuli A∗ j . Nechť j > 0, Qj = ∀ a nechť dále e je ohodnocení atomů pj+1, . . , pm takové, že e |= ∀pj . . Q1p1B(p). Tedy obě rozšíření 1 e a 0 e ohodnocení e na atom pj splňují formuli Qj−1pj−1 . . Q1p1B(p). Indukční předpoklad říká, že existují kripkovské protipříklady K1 a K0 a jejich vrcholy b1 a b0 takové, že b1 v K1 nesplňuje formuli A∗ j−1, b0 v K0 nesplňuje A∗ j−1, atomy pj+1, . . , pm jsou ve všech vrcholech obou modelů ohodnoceny shodně dle e, atom pj je v K1 ohodnocen všude kladně a v K0 všude záporně. Předpokládejme, že b1 je kořenem v K1, b0 je kořenem v K0, a utvořme nový model K přidáním nového kořenu a jako na obrázku 5.1.2. Musíme ještě stanovit pravdivostní hodnoty všech atomů vyskytujících se v A∗ j , tedy atomů p1, . . , pm a q1, . . , qj, v novém kořenu a, a také pravdivostní hodnoty atomu qj v celém modelu K. To udělejme takto: ◦ atomy pj+1, . . , pm ohodnoťme v a podle e, ◦ atomy p1, . . , pj a q1, . . , qj−1 prohlašme v a za nesplněné, 5.1 Intuicionistická logika 383 ◦ atomu qj přidělme v každém vrcholu x modelu K tutéž pravdivostní hodnotu, kterou v x má formule A∗ j−1. Je zřejmé, že při takovémto přidělení pravdivostních hodnot je v K splněna podmínka perzistence. Navíc a − A∗ j−1 → qj (protože qj a A∗ j−1 mají všude tutéž pravdivostní hodnotu), a −/ pj → qj (protože b1 − pj a b1 −/ qj) a a −/ ¬pj → qj (protože b0 − ¬pj a b0 −/ qj). Tedy a −/ A∗ j a model K je hledaným protipříkladem na formuli A∗ j , ve kterém jsou atomy pj+1, . . , pm ohodnoceny všude dle e. Zmiňme se ještě o implikaci ⇐ v případě, kdy j > 0. Snadno lze ověřit, že je-li model K protipříkladem na formuli (pj ∨ ¬pj) → A∗ j−1, ve kterém jsou pj+1, . . , pm ohodnoceny všude dle e, pak K má podmodel K , ve kterém je atom pj ohodnocen všude shodně a který je protipříkladem na formuli A∗ j−1. A je-li K protipříkladem na formuli (A∗ j−1 → qj) → ((pj → qj) ∨ (¬pj → qj)), pak K má dva disjunktní podmodely K1 a K0, oba jsou protipříklady na formuli A∗ j−1, přičemž pj je v K1 ohodnocen všude kladně a v K0 všude záporně. Na modely K , K1 a K0 lze vztáhnout indukční předpoklad. Podrobnosti přenecháváme čtenáři a sublemma tím máme za dokázané. Pro j = m sublemma říká, že formule A je logicky platná, právě když formule A∗ má kripkovský protipříklad. Funkce A → A∗ je tedy hledaným logaritmickým převodem. QED 5.1.3 Sémantika intuicionistické predikátové logiky V intuicionistické predikátové logice máme co dělat s týmiž formulemi jako v klasické predikátové logice: jsou to formule sestavené z atomických formulí pomocí čtyř logických spojek &, ∨, →, ¬ a dvou kvantifikátorů ∀ a ∃. Sémantika intuicionistické predikátové logiky je založena na pojmu kripkovské struktury pro daný jazyk. Protože malá latinská písmena chceme užívat pro prvky struktur, domluvme se, že vrcholy kripkovských rámců budeme v tomto pododdílu značit řeckými písmeny ze začátku abecedy. Definice 5.1.17 Řekneme, že trojice W, ≤, l je kripkovská (intuicionistická predikátová) struktura pro jazyk L, jestliže relace ≤ je uspořádání na neprázdné množině W a l je funkce definovaná na množině W, která splňuje podmínky: ◦ všechny hodnoty l(α) funkce l jsou struktury pro jazyk L (ve smyslu klasické predikátové logiky bez rovnosti), ◦ jsou-li A a B nosné množiny struktur l(α) a l(β) a platí-li α ≤ β, pak A ⊆ B, ◦ jsou-li sl(α) a sl(β) realizace libovolného (funkčního nebo predikátového) symbolu s ve strukturách l(α) a l(β) a platí-li α ≤ β, pak sl(α) ⊆ sl(β) . Dvojici W, ≤ říkáme (kripkovský) rámec struktury W, ≤, l . I v predikátové logice můžeme prvky množiny W chápat jako informační stavy. Podmínka A ⊆ B pro nosné množiny struktur l(α) a l(β) takových, že α ≤ β, říká, 384 5 Některé neklasické logiky že při přechodu ze stavu α do stavu β dosažitelného z α nemohou zmizet žádné objekty (univerza, o kterém se mluví). Podmínka sl(α) ⊆ sl(β) říká, že nemohou zmizet ani informace o vztazích mezi objekty. Může ale vyjít najevo existence nových objektů a nových vztahů. A1 A2 A3 a b a b a b c ƒ ƒ ƒ ƒ ƒ ƒ ƒƒo       U ƒ ƒ ƒ ƒ ƒ ƒ ƒƒo       U E E EU ƒƒo § ¤ ¥c § ¤ ¥c § ¤ ¥c § ¤ ¥c § ¤ ¥c Obrázek 5.1.5: Predikátová kripkovská struktura Na obrázku 5.1.5 je příklad predikátové kripkovské struktury W, ≤, l pro jazyk s jedním binárním predikátovým symbolem R. Rámec W, ≤ této struktury má tři prvky α1, α2 a α3, které nejsou znázorněny a kterým funkce l přiřazuje struktury A1, A2 a A3. Relace ≤ je nejmenší (tranzitivní a) reflexivní relace na množině {α1, α2, α3} obsahující množinu {[α1, α2], [α1, α3]}. Tenkými šipkami je znázorněna jak inkluze mezi nosnými množinami struktur, tak relace dosažitelnosti ≤. Silnější šipky znázorňují relaci R. Nová informace, která byla získána při přechodu ze stavu α1 do stavu α2, zní, že pro objekt a platí a R a. Nová informace, která byla získána při přechodu ze stavu α1 do stavu α3, zní, že kromě objektů a a b existuje také objekt c, pro který platí a R c, b R c a c R c. Je-li e ohodnocení proměnných v nějaké struktuře l(α) a platí-li α ≤ β, pak vzhledem k inkluzi, která platí pro nosné množiny struktur l(α) a l(β), je ohodnocení e současně i ohodnocením proměnných ve struktuře l(β). Snadno lze ověřit, že je-li t term jazyka L a je-li b jeho hodnota ve struktuře l(α), pak b je hodnota termu t i v každé struktuře l(β) takové, že α ≤ β. Definice 5.1.18 Nechť W, ≤, − je kripkovská struktura pro jazyk L. Relace − mezi prvky α množiny W, predikátovými formulemi ϕ a ohodnoceními e proměnných ve struktuře l(α) je definována podmínkami: ◦ je-li ϕ atomická formule jazyka L, pak α − ϕ[e], právě když l(α) |= ϕ[e] (ve smyslu klasické predikátové logiky), ◦ α − (ϕ & ψ)[e], právě když α − ϕ[e] a α − ψ[e], 5.1 Intuicionistická logika 385 ◦ α − (ϕ ∨ ψ)[e], právě když α − ϕ[e] nebo α − ψ[e], ◦ α − (ϕ → ψ)[e], právě když pro každý stav β ≥ α, pro který platí β − ϕ[e], platí i β − ψ[e], ◦ α − (¬ϕ)[e], právě když pro každý stav β ≥ α platí β −/ ϕ[e], ◦ α − (∃xϕ)[e], právě když existuje prvek a nosné množiny struktury l(α) takový, že α − ϕ[e(x/a)], ◦ α − (∀xϕ)[e], právě když pro každý stav β ≥ α a pro každý prvek b nosné množiny struktury l(β) platí β − ϕ[e(x/b)]. Podmínku α − ϕ[e] čteme „formule ϕ je splněna ohodnocením e ve vrcholu α . Je zřejmé, že posledních šest podmínek odpovídá podmínkám T4–T9 z definice 3.1.9 (v jiném pořadí). Podmínka pro univerzální kvantifikátor se podobá podmínce pro implikaci a negaci v tom, že chceme-li určit, zda α − (∀xϕ)[e], potřebujeme vědět, kterými ohodnoceními je formule ϕ splněna ve vrcholech dosažitelných z vrcholu α. Naproti tomu chceme-li určit, zda α − (∃xϕ)[e], stačí vědět, kterými ohodnoceními je formule ϕ splněna v samotném vrcholu α. V dalším budeme někdy ztotožňovat vrchol α kripkovské struktury W, ≤, l se strukturou l(α), tj. budeme si myslet, že prvky množiny W jsou struktury v klasickém smyslu a že l je identická funkce, a budeme psát například D − ϕ[e] místo D = l(α) a α − ϕ[e]. Takovéto zjednodušení je ovšem zcela korektní pouze tehdy, je-li funkce l prostá, což obecně být nemusí. Podívejme se ještě jednou na strukturu z obrázku 5.1.5. K libovolnému objektu d libovolného ze tří stavů této struktury existuje v tomtéž stavu objekt d takový, že R[d, d ]. Tedy formule ∃yR(x, y) je splněna všemi prvky všech tří stavů. To znamená, že αi − ∀x∃yR(x, y) pro i ∈ {1, 2, 3}. Platí α1 −/ ∀xR(x, y)[b], není totiž pravda, že ve všech stavech viditelných z α1 vede do b šipka ze všech objektů. Ani a ovšem v α1 nesplňuje formuli ∀xR(x, y). Tedy α1 −/ ∃y∀xR(x, y). Platí ale α2 − ∃y∀xR(x, y) i α3 − ∃y∀xR(x, y). To znamená, že formule ¬∃y∀xR(x, y) není splněna v žádném ze tří stavů, a naopak formule ¬¬∃y∀xR(x, y), kterou lze číst „nemůže neexistovat y takové, že . . . , je ve všech splněna. Lemma 5.1.19 Nechť W, ≤, l je kripkovská struktura, nechť α a β jsou její vrcholy takové, že α ≤ β, a nechť ϕ je formule a e ohodnocení proměnných ve struktuře l(α). Když α − ϕ[e], pak β − ϕ[e]. Důkaz Indukcí podle složitosti formule ϕ. QED Řekneme, že struktura W, ≤, l je (intuicionistický kripkovský) protipříklad na sekvent Γ ⇒ ∆ , jestliže existuje vrchol α ∈ W a ohodnocení proměnných e ve struktuře l(α) tak, že α − ϕ[e] pro všechny formule ϕ ∈ Γ a α −/ ϕ[e] pro všechny formule ϕ ∈ ∆. Sekvent Γ ⇒ ∆ je intuicionisticky logicky platný, jestliže nemá žádný kripkovský protipříklad. Formule ϕ je intuicionisticky logicky platná, jestliže sekvent ⇒ ϕ je intuicionisticky logicky platný. 386 5 Některé neklasické logiky Dále řekneme, že formule ϕ je intuicionistický důsledek množiny formulí ∆, jestliže je v každém vrcholu každé kripkovské struktury splněna každým ohodnocením proměnných, které v něm splňuje všechny formule z množiny ∆. Formule ϕ je intuicionistický důsledek formule ψ, jestliže je intuicionistickým důsledkem množiny {ψ}. Formule ϕ a ψ jsou intuicionisticky ekvivalentní, jestliže každá z nich je intuicionistickým důsledkem druhé. Příklad 5.1.20 Nechť P je unární predikátový symbol, nechť W, ≤, l je kripkovská struktura pro jazyk {P} a nechť α je vrchol struktury W, ≤, l , v němž je (některým čili každým ohodnocením proměnných) splněna sentence ∀v(P(v)∨¬P(v)). Je-li a je libovolný prvek nosné množiny struktury l(α), pak z příslušných řádků definice 5.1.17 plyne α − (P(x) ∨ ¬P(x))[a] i α − (∃vP(v) ∨ ¬P(x))[a]. Tudíž první dva z následujících tří sekventů jsou intuicionisticky logicky platné: ∀v(P(v) ∨ ¬P(v)) ⇒ P(x), ¬P(x) , ∀v(P(v) ∨ ¬P(v)) ⇒ ∃vP(v), ¬P(x) , ∀v(P(v) ∨ ¬P(v)) ⇒ ∃vP(v), ∀v¬P(v) . Zvolme W = {A1, A2}, kde A1 ≤ A2, A1 = {a}, A2 = {a, b} a pro realizaci symbolu P platí PA 1 = ∅ a PA 2 = {b}. Tím jsme získali intuicionistickou strukturu, která je protipříkladem na třetí sekvent: objekt a splňuje v A1 i v A2 formuli ¬P(x), objekt b splňuje v A2 (tj. všude, v A1 se totiž nevyskytuje) formuli P(x), tedy A1 − ∀v(P(v) ∨ ¬P(v)); na druhé straně ale A1 −/ ∀v¬P(v) (protože A2 −/ (¬P(x))[b]) a A1 −/ ∃vP(v). Gentzenovský kalkulus GJ pro intuicionistickou predikátovou logiku má táž výroková a strukturální pravidla, která jsme definovali v předchozím pododdílu, a dále čtyři kvantifikátorová pravidla: ∃-r: Γ ⇒ ∆, ϕx(t) / Γ ⇒ ∆, ∃xϕ , ∀-l: Γ, ϕx(t) ⇒ ∆ / Γ, ∀xϕ ⇒ ∆ , ∃-l: Γ, ϕx(y) ⇒ ∆ / Γ, ∃xϕ ⇒ ∆ , ∀-rI: Γ ⇒ ϕx(y) / Γ ⇒ ∀xϕ . kde, jako v klasické predikátové logice, t je term a y je proměnná substituovatelná za x do formule ϕ, a u pravidel generalizace, tj. u pravidel ∃-l a ∀-rI, se proměnná y nevyskytuje ve výsledném sekventu. První tři pravidla jsou úplně stejná jako v klasické predikátové logice. Pravidlo ∀-rI můžeme nazývat kritickým; stejně jako pravidla →-rI a ¬-rI je použitelné jen tak, že po jeho použití je sukcedent jednoprvkový. Z příkladu 5.1.20 je zřejmé, že klasické pravidlo ∀-r s libovolnou množinou postranních formulí v sukcedentu není korektní vůči sémantice intuicionistické predikátové logiky. 5.1 Intuicionistická logika 387 Věta 5.1.21 (o korektnosti kalkulu GJ) Každý sekvent dokazatelný v predikátovém kalkulu GJ je intuicionisticky logicky platný. Kalkulus GJ je tedy korektní vůči kripkovské sémantice intuicionistické predikátové logiky. Důkaz Korektnost strukturálních a výrokových pravidel platí ze stejných důvodů jako ve výrokové logice. Dokažme korektnost pravidla ∀-rI; ověření korektnosti ostatních pravidel ponecháváme na čtenáři. Nechť Γ ⇒ ϕx(y) je intuicionisticky logicky platný sekvent, W, ≤, l je kripkovská struktura, α její vrchol a e ohodnocení proměnných ve struktuře l(α) takové, že α − Γ[e]. Máme ověřit, že α − (∀xϕ)[e]. Podle podmínky pro univerzální kvantifikátor v definici 5.1.18 máme zdůvodnit, že β − ϕ[e(x/b)] pro libovolný vrchol β dosažitelný z vrcholu α a pro libovolný prvek b struktury l(β). Nechť tedy vrchol β ≥ α a prvek b nosné množiny struktury l(β) jsou dány. Lemma 5.1.19 dává β − Γ[e]. Dále můžeme uvažovat stejně jako v důkazu věty 3.3.1: protože proměnná y se nevyskytuje volně ve formulích z množiny Γ, platí β − Γ[e], protože sekvent Γ ⇒ ϕx(y) je intuicionisticky logicky platný, máme β − (ϕx(y))[e(y/b)], a protože proměnná y nemá volné výskyty ve formuli ∀xϕ, jsou podmínky β − ϕx(y)[e(y/b)] a β − ϕ[e(x/b)] spolu ekvivalentní. QED ∀y(. .), ¬P(z) ⇒ ¬P(z) ∀y(. .), ¬P(z) ⇒ ∃x¬P(x) ∀y(. .), ¬P(z) ⇒ . . P(z) ⇒ P(z), P(y) ¬P(z), P(z) ⇒ P(y) P(y), P(z) ⇒ P(y) ¬P(z) ∨ P(y), P(z) ⇒ P(y) ∀y(¬P(z) ∨ P(y)), P(z) ⇒ P(y) ∀y(¬P(z) ∨ P(y)), P(z) ⇒ ∀yP(y) ∀y(¬P(z) ∨ P(y)), P(z) ⇒ ∃x¬P(x) ∨ ∀yP(y) ∀y(¬P(z) ∨ P(y)), ¬P(z) ∨ P(z) ⇒ ∃x¬P(x) ∨ ∀yP(y) ∀y(¬P(z) ∨ P(y)) ⇒ ∃x¬P(x) ∨ ∀yP(y) ∃x∀y(¬P(x) ∨ P(y)) ⇒ ∃x¬P(x) ∨ ∀yP(y) Obrázek 5.1.6: Příklad důkazu v intuicionistickém predikátovém kalkulu Na obrázku 5.1.6 je příklad (bezřezového) důkazu v kalkulu GJ. Předpokládáme, že čtenář dovede doplnit formule, které jsme kvůli úspoře místa naznačili tečkami. Tento důkaz je obtížnější polovinou důkazu, že formuli ∃x¬P(x)∨∀yP(y) lze v intuicionistické logice převést na prenexní normální tvar. To je ne zcela samozřejmý výsledek, neboť věta o převeditelnosti libovolné formule na prenexní normální tvar v intuicionistické logice obecně neplatí. Větou o úplnosti a větou o kompaktnosti pro intuicionistickou logiku se nezabývejme. Spokojme se s prohlášením ex cathedra, že obě věty platí. Důkaz lze nalézt například v [14], v [22] nebo v [91]. Některá cvičení dávají návod na sestrojení alternativního důkazu věty o úplnosti pro výrokové kalkuly, ze kterého plyne věta o kompaktnosti alespoň pro výrokovou logiku a který by šlo zobecnit i na predi- 388 5 Některé neklasické logiky kátovou logiku. Také věta o eliminovatelnosti řezů platí i pro predikátovou verzi kalkulu GJ, důkaz lze získat například modifikací našeho důkazu z oddílu 3.3. Hilbertovský kalkulus HJ pro intuicionistickou predikátovou logiku lze utvořit tak, že k výrokovému kalkulu HJ uvedenému v předchozím pododdílu přidáme schémata B1 a B2 a pravidla Gen-A a Gen-E. To znamená, že axiomy a pravidla klasického hilbertovského kalkulu týkající se kvantifikátorů vyhovují bez jakékoliv modifikace i pro intuicionistickou logiku. Důkaz ekvivalence a vzájemné polynomiální simulovatelnosti kalkulů HJ a GJ ponecháváme za cvičení. Uvažujme nyní jazyk s jediným unárním predikátovým symbolem P a všechny sentence, které lze v tomto jazyce napsat bez užití binárních logických spojek. To nám dá podrobnější představu o chování kvantifikátorů v intuicionistické logice a o vzájemné interakci obou kvantifikátorů a negace. V klasické logice jsou ve hře jen čtyři sentence: ∀xP(x), ∃xP(x) a jejich negace. Vezměme první z nich, ∀xP(x), a zkoumejme, jaké implikace v intuicionistické logice platí mezi ní a sentencemi ¬∃x¬P(x), ∀x¬¬P(x), ¬¬∀xP(x) a ¬¬∀x¬¬P(x), které jsou s ní klasicky ekvivalentní. Žádné jiné sentence nemusíme uvažovat ani v intuicionistické logice: každá další sentence neobsahující binární logické spojky a klasicky ekvivalentní se sentencí ∀xP(x) už obsahuje jalové kvantifikátory nebo trojnou negaci. Snadno lze dokázat, že každé dvě formule tvaru ¬∃xϕ a ∀x¬ϕ jsou spolu intuicionisticky ekvivalentní. Z toho plyne, že sentence ∀x¬¬P(x) a ¬∃x¬P(x) jsou spolu ekvivalentní, a také ¬¬∀x¬¬P(x) je ekvivalentní s ¬¬¬∃x¬P(x), tedy s ¬∃x¬P(x). Vezmeme-li v úvahu ještě implikaci ¬¬∀xP(x) → ∀x¬¬P(x), jejíž důkaz ponecháváme na čtenáři, můžeme našich pět sentencí sestavit do posloupnosti ∀xP(x), ¬¬∀xP(x), ∀x¬¬P(x), ¬∃x¬P(x), ¬¬∀x¬¬P(x), ve které každá následující sentence vyplývá z předchozí a poslední tři jsou spolu ekvivalentní. Svislými čarami jsou odděleny neekvivalentní sentence. Protipříklad na implikaci ¬¬∀xP(x) → ∀xP(x) lze sestrojit snadno, stačí vzít kripkovskou strukturu se dvěma stavy a jediným objektem, který nejprve nemá a potom má vlastnost P. Protipříklad na implikaci ∀x¬¬P(x)→¬¬∀xP(x) je na obrázku 5.1.7. Je to kripkovská struktura, která má nekonečně mnoho stavů α0 ≤ α1 ≤ α2 ≤ . . . , jimž funkce l přiřazuje struktury A0, A1, A2 atd. Každá struktura An obsahuje jeden „nový objekt n a n „starých objektů 0, . . , n − 1. Realizace symbolu P je naznačena ovály. Staré objekty mají vlastnost P, nový ji nemá. Od okamžiku n + 1 ji ale mít bude, a to už pořád. Tedy v αn nový objekt n splňuje formuli ¬¬P(x). Objekty 0, . . , n − 1 ji ovšem splňují také, a platí to pro každé n. Tedy α0 − ∀x¬¬P(x). Na druhé straně jsou z každého stavu αn viditelné objekty, které nesplňují formuli P(x). Tedy αn −/ ∀xP(x), a proto α0 − ¬∀xP(x). Právě popsaný příklad ukazuje důležité rozdíly mezi výrokovou a predikátovou variantou intuicionistické logiky. Pro sentence ϕ = ¬¬∀xP(x) a ψ = ∀x¬¬P(x) jsme chtěli sestrojit strukturu a její vrchol α tak, aby platilo α − ψ a α −/ ϕ. Sestrojili jsme strukturu a její vrchol α dokonce takové, že α − ψ a α − ¬ϕ. Toto je něco, co by se ve výrokové logice stát nemohlo, a je to zároveň důvod, proč 5.1 Intuicionistická logika 389 jsme sentence ϕ a ψ v našem seznamu pěti sentencí oddělili dvojitou čarou. Když ψ →ϕ je výroková formule a a vrchol nějakého modelu takový, že a − ψ a a − ¬ϕ, pak a −/ ψ → ¬¬ϕ, a podle věty 5.1.15 formule ψ → ϕ není klasickou tautologií. V predikátové logice ale existují sentence ψ a ϕ takové, že ψ →ϕ je klasicky logicky platnou formulí, a přitom ψ → ¬¬ϕ není intuicionisticky logicky platnou formulí. Z toho plyne, že analogie věty 5.1.15 v intuicionistické predikátové logice neplatí. 0 T 0 T 0 T 0 T 1 T 1 T 1 T 2 T 2 T 3 T   ¨ ©   ¨ ©   ¨ © A0 A1 A2 A3 ... ... ... ... Obrázek 5.1.7: Protipříklad na schéma DNS O kripkovské struktuře řekneme, že je konečná, má-li jen konečně mnoho stavů (které ovšem mohou být nekonečné). O schématu DNS: ∀x¬¬P(x) → ¬¬∀xP(x), jehož označení pochází z anglického double negation shift, přesunutí dvojné negace před univerzální kvantifikátor, lze ověřit, že platí v každé konečné kripkovské struktuře. To znamená, že existují formule, které mají protipříklad, ale nemají konečný protipříklad, a tedy že FMP, vlastnost konečných modelů, pro intuicionistickou predikátovou logiku neplatí. I v predikátové logice ale platí, že kdo zná intuicionistickou logiku, zná vlastně i klasickou, neboť klasická predikátová logika je interpretovatelná v intuicionistické. Jednou z možností, jak zvolit příslušný překlad, je tato: ϕ∗ = ϕ, je-li ϕ atomická, (ϕ ψ)∗ = ϕ∗ ψ∗ , je-li kterákoliv ze spojek &, ∨, →, (¬ϕ)∗ = ¬ϕ∗ , (∃xϕ)∗ = ∃xϕ∗ , (∀xϕ)∗ = ∀x¬¬ϕ∗ . Formule ϕ∗ tedy vznikne z ϕ připsáním dvojné negace za každý univerzální kvantifikátor. Označme ještě Σ∗ = { ϕ∗ ; ϕ ∈ Σ } a ¬Σ = { ¬ϕ ; ϕ ∈ Σ }, kde Σ je libovolná množina formulí. Věta 5.1.22 Libovolný sekvent Γ ⇒ ∆ je klasicky logicky platný, právě když sekvent Γ∗ , ¬∆∗ ⇒ je intuicionisticky logicky platný. Tedy libovolná predikátová 390 5 Některé neklasické logiky formule ϕ je klasicky logicky platná, právě když formule ¬¬ϕ∗ je intuicionisticky logicky platná. Důkaz Je jasné, že druhá část věty plyne z první, neboť ϕ je klasicky logicky platná, právě když sekvent ⇒ ϕ je klasicky logicky platný, a ¬¬ϕ∗ je intuicionisticky logicky platná, právě když sekvent ¬ϕ∗ ⇒ je intuicionisticky logicky platný. Také je jasné, že je-li sekvent Γ∗ , ¬∆∗ ⇒ intuicionisticky logicky platný, pak sekvent Γ∗ ⇒ ¬¬∆∗ je klasicky logicky platný, a také sekvent Γ ⇒ ∆ je klasicky logicky platný; každá formule ¬¬ψ∗ v ¬¬∆∗ je totiž klasicky ekvivalentní s formulí ψ. Zbývá dokázat jen implikaci ⇒ v první části věty. Věta o úplnosti pro klasický kalkulus GK říká, že každý logicky platný sekvent je v kalkulu GK dokazatelný. Můžeme tedy postupovat indukcí podle počtu kroků v důkazu sekventu. Proberme na ukázku případ, kdy poslední krok v důkazu daného sekventu je &-r. Všechny ostatní případy jsou podobné nebo jednodušší. Mějme tedy důkaz tvaru Π ⇒ Λ, ϕ e e e £ £ £ P1 Π ⇒ Λ, ψ g g g ¡ ¡ ¡ P2 Π ⇒ Λ, ϕ & ψ v kalkulu GK. Ten lze přepracovat na důkaz v kalkulu GJ: ¬(ϕ∗ & ψ∗ ), ψ∗ ⇒ ¬ϕ∗ e e e £ £ £ P0 Π∗ , ¬Λ∗ , ¬ϕ∗ ⇒ g g g ¡ ¡ ¡ P1 Π∗ , ¬Λ∗ , ¬(ϕ∗ & ψ∗ ), ψ∗ ⇒ Π∗ , ¬Λ∗ , ¬(ϕ∗ & ψ∗ ) ⇒ ¬ψ∗ Π∗ , ¬Λ∗ , ¬ψ∗ ⇒ g g g ¡ ¡ ¡ P2 Π∗ , ¬Λ∗ , ¬(ϕ∗ & ψ∗ ) ⇒ . Důkazy P1 a P2 sekventů Π∗ , ¬Λ∗ , ¬ϕ∗ ⇒ a Π∗ , ¬Λ∗ , ¬ψ∗ ⇒ existují podle indukčního předpokladu, důkaz P0 sekventu ¬(ϕ∗ & ψ∗ ), ϕ∗ ⇒ ¬ψ∗ lze snadno sestrojit. QEDE Cvičení 1. Dokažte lemma 5.1.3. 2. Nechť a je libovolný vrchol libovolného kripkovského modelu. Dokažte, že a − ¬¬A, právě když ∀b ≥ a∃c ≥ b(c − A). 3. Nechť A je libovolná výroková formule a W, ≤, − je libovolný kripkovský model. Dokažte, že ke každému vrcholu a ∈ W existuje vrchol b ∈ W takový, že a ≤ b, a přitom b − A nebo b − ¬A. Vyvoďte z toho, že každá formule tvaru ¬¬(A ∨ ¬A) je intuicionistickou tautologií. 5.1 Intuicionistická logika 391 4. Dokažte, že množina Int-Taut je uzavřená na pravidlo substituce. 5. Rozhodněte, které z následujících formulí (schémat) jsou intuicionistické tau- tologie: (A → B) → (¬B → ¬A), A ∨ ¬A → (¬¬A → A), (¬B → ¬A) → (A → B), ¬¬A ∨ (¬¬A → A), (¬¬A → B) → (¬B → ¬A), (A → ¬¬B) → (¬¬A → ¬¬B), (A → B) ∨ (B → A), (A → ¬¬B) → ¬¬(A → B), ¬(A → B) → ¬B, ¬¬(A → B) → (A → ¬¬B), ¬(A → B) → A, A & (B ∨ C) → (A & B) ∨ (A & C), ¬(A → B) → ¬¬A, A ∨ (B & C) → (A ∨ B) & (A ∨ C), (A → B) → ((¬A → B) → B), A → (B ∨ C) → (A → B) ∨ (A → C), (A → B) → (¬¬A → ¬¬B), ¬¬(A & B) ≡ (¬¬A & ¬¬B), ¬A ∨ ¬¬A, ¬¬(¬¬A → A). 6. Nechť W, ≤, − je kripkovský model pro intuicionistickou výrokovou logiku. Řekneme, že formule A v modelu W, ≤, − definuje množinu X ⊆ W, jestliže X = { x ∈ W ; x − A }. Řekneme, že množina X ⊆ W je definovatelná v modelu W, ≤, − , jestliže existuje formule, která ji v něm definuje. Například v modelu z obr. 5.1.1 definuje formule p&q množinu {d}. Dokažte indukcí podle složitosti formule A, že neobsahuje-li formule A spojku &, pak A v modelu z obr. 5.1.1 nedefinuje množinu {d}. Vyvoďte z toho, že formule p & q není v intuicionistické logice ekvivalentní s žádnou formulí neobsahující spojku &. To znamená, že konjunkce není v intuicionistické logice vyjádřitelná pomocí ostatních logických spojek. Podobnou úvahu (a model) lze navrhnout i pro ostatní logické spojky, viz [9]. 7. Je-li A∨B intuicionistická tautologie, pak alespoň jedna z formulí A a B je také intuicionistická tautologie. Dokažte pomocí amalgamace kripkovských modelů. 8. Řekneme, že A je negativní formule, jestliže A je výroková formule sestavená pomocí konjunkce, implikace a negace z negovaných atomů. Dokažte, že není-li negativní formule intuicionistickou tautologií, pak má jednoprvkový kripkovský protipříklad, a není tedy ani klasickou tautologií. Návod. Dokažte indukcí podle složitosti formule A, že je-li W, ≤, − kripkovský model a platí-li a −/ A pro negativní formuli A a nějaký vrchol a ∈ W, pak existuje vrchol b ≥ a takový, že b −/ A a v podstromu generovaném vrcholem b žádný z atomů vyskytujících se ve formuli A nemění pravdivostní hodnotu. 9. Nechť A je negativní formule. Rozhodněte, zda formule ¬¬A → A a A ∨ ¬A musí být intuicionistické tautologie. 392 5 Některé neklasické logiky 10. Nechť p0, p1, p2, . . . , q0, q1, q2, . . . jsou navzájem různé výrokové atomy a nechť posloupnosti An a Bn výrokových formulí jsou definovány takto: A0 = ⊥, An+1 = pn ∨ (pn → An), B0 = ⊥, Bn+1 = (Bn → qn) → (pn → qn) ∨ (¬pn → qn). Má každá formule An a Bn kripkovský protipříklad? Jaká je jeho minimální hloubka a počet vrcholů? 11. Zdůvodněte, že výrokový kalkulus GJ je korektní vůči kripkovské sémantice. 12. Dokažte v kalkulu GJ všechny formule z cvičení 5, které jsou intuicionistickými tautologiemi. 13. (a) Dokažte, že každý sekvent tvaru ¬(A & B), ¬(¬A ∨ ¬B) ⇒ je v gentzenovském intuicionistickém kalkulu GJ dokazatelný. (b) Dokažte, že každý sekvent tvaru ¬(p1 & . . & pn), ¬(¬p1 ∨ . . ∨ ¬pn) ⇒ je v kalkulu GJ dokazatelný. Předpokládejte, že závorky se kumulují doprava, tj. například p1 & (p2 & (. . & pn) . .). Lze sestrojit buď bezřezový důkaz hloubky O(n2 ), nebo zobecněním bodu (a) sestrojit důkaz hloubky O(n) s řezy na formule ¬(p2 & . . & pn), ¬(p3 & . . & pn) atd. 14. Řekneme, že D je harropovská formule, jestliže disjunkce se v D vyskytuje pouze v rozsahu některé negace nebo v „levém rozsahu některé implikace. Dokažte, že když Γ ⇒ ∆ je intuicionisticky tautologický sekvent, množina Γ obsahuje pouze harropovské formule a ∆ = ∅, pak existuje formule A ∈ ∆ taková, že Γ ⇒ A je intuicionisticky tautologický sekvent. Návod. Postupujte indukcí podle počtu kroků v bezřezovém důkazu sekventu Γ ⇒ ∆ v kalkulu GJ. 15. Dokažte, že každý sekvent dokazatelný v kalkulu GJ má důkaz (s řezy), ve kterém není použito pravidlo →-w. 16. Dokažte, že je-li sekvent Γ ⇒ ∆ dokazatelný v kalkulu GJ, pak sekvent Γ ⇒ ∆ má důkaz (s řezy), ve kterém se v žádném sukcedentu nevyskytuje víc než jedna formule, tj. má důkaz v kalkulu GJ1 . 17. Dokažte, že jak užitím schématu ¬¬A → A, tak užitím schématu A ∨ ¬A lze v kalkulu HJ dokázat axiom A3 klasické výrokové logiky. 18. Dokažte implikaci ⇒ v tvrzení 5.1.15 indukcí dle délky důkazu v kalkulu HJ. 19. Navrhněte modifikace kalkulů GJ a HJ pro případ, kdy nikoliv ¬, ale ⊥ je základním symbolem, a ¬A se definuje jako A → ⊥. 20. Množina Γ výrokových formulí je D-úplná, jestliže 5.1 Intuicionistická logika 393 ◦ Γ je bezesporná, tj. neexistuje formule A taková, že z Γ lze (v kalkulu HJ) dokázat A i ¬A, ◦ Γ je deduktivně uzavřená, tj. kdykoliv Γ A, pak A ∈ Γ, ◦ kdykoliv A ∨ B ∈ Γ, pak A ∈ Γ nebo B ∈ Γ. Dokažte, že když ∆ A, pak existuje D-úplná množina Γ ⊇ ∆ taková, že Γ A. Návod. Vezměte posloupnost B0, B1, B2, . . . všech výrokových formulí a definujte posloupnost Γ0, Γ1, Γ2, . . . množin rekurzí: Γ0 = ∆, Γn+1 = Γn ∪ {Bn}, jestliže Γn ∪ {Bn} A, jinak Γn+1 = Γn. Zdůvodněte, že Γ = n Γn vyhovuje. 21. Vypracujte alternativní důkaz věty o úplnosti kalkulu HJ vůči kripkovské sémantice založený na předchozím cvičení. Vezměte model W, ≤, − , kde W je množina všech D-úplných množin, ≤ je inkluze a − je pro atomy definována podmínkou Γ − p ⇔ p ∈ Γ. Model W, ≤, − je „univerzální protipříklad : každá formule nedokazatelná v kalkulu HJ je nesplněna v některém vrcholu tohoto (jednoho) modelu. 22. Zdůvodněte, že z předchozích cvičení plyne i věta o kompaktnosti pro intuicionistickou výrokovou logiku. 23. (topologická sémantika intuicionistické logiky) Nechť S je topologický prostor. Funkce v z množiny všech výrokových formulí do množiny všech otevřených množin prostoru S je topologická evaluace v S, jestliže splňuje rovnosti v(A & B) = v(A) ∩ v(B), v(A ∨ B) = v(A) ∪ v(B), v(⊥) = ∅, v(A → B) = Int(v(A) ∪ v(B)), kde Int(X) je vnitřek množiny X (tj. sjednocení všech otevřených podmnožin množiny X). Definujme dočasně, že A je topologická tautologie, jestliže platí v(A) = S pro každý prostor S a pro každou topologickou evaluaci v v S. Dokažte, že každá intuicionistická tautologie je topologickou tautologií. Návod. Postupujte indukcí podle počtu kroků v důkazu v kalkulu HJ. Dokažte pomocné tvrzení, že je-li X libovolná a Z uzavřená množina prostoru S, pak Int(Z ∪ X) ⊆ Z ∪ Int(X) a Int(Z ∪ X) = Int(Z ∪ Int(X)). 24. Dokažte, že každá topologická tautologie je intuicionistickou tautologií. Návod. Definujte, že podmnožina nějakého kripkovského modelu je otevřená, jestliže s každým prvkem x obsahuje i všechny y dosažitelné z x. 25. Definujme dočasně, že sekvent je skoro uzavřený, jestliže splňuje první čtyři z pěti podmínek v definici 5.1.8. Nechť Γ ⇒ ∆ je sekvent nedokazatelný v kalkulu GJ. Vezměte za W množinu všech skoro uzavřených nedokazatelných sekventů sestavených z podformulí formulí vyskytujících se v Γ ⇒ ∆ . Definujte relaci dosažitelnosti na množině W podmínkou Π1 ⇒ Λ1 ≤ Π2 ⇒ Λ2 ⇔ Π1 ⊆ Π2. 394 5 Některé neklasické logiky Dokončete důkaz úplnosti kalkulu GJ vůči kripkovské sémantice. Zdůvodněte, že i pro kalkulus vzniklý z GJ odstraněním pravidla →-w platí věta o úplnosti a věta o eliminovatelnosti řezů. 26. Dokažte, že v logice vzniklé přidáním schématu (A → B) ∨ (B → A) k intuicionistické logice nelze dokázat A ∨ ¬A, lze ale dokázat formule ¬A ∨ ¬¬A i (¬¬A → A) → (A ∨ ¬A). Návod. Uvažte, že daná logika je korektní vůči třídě všech lineárně uspořádaných rámců. 27. Dokažte, že když X je libovolná bezesporná množina výrokových formulí uzavřená na pravidlo substituce a platí Int-Taut ⊆ X, pak X ⊆ Taut. Množina Taut je tedy jedinou maximální bezespornou množinou obsahující množinu Int-Taut. Jak rozumíte termínu bezesporná? Návod. Není-li A tautologie, pak z A lze substitucí získat formuli A takovou, že ¬A je tautologie. 28. Rozhodněte, zda množina všech intuicionistických tautologií, které jsou negativními formulemi, resp. které jsou harropovskými formulemi, je PSPACE-kom- pletní. 29. Nechť P je unární predikátový symbol. Určete, jaké implikace platí v intuicionistické predikátové logice mezi formulemi (a) ∃xP(x), ¬¬∃xP(x), ∃x¬¬P(x), ¬∀x¬P(x), ¬¬∃x¬¬P(x), (b) ¬∀xP(x), ∃x¬P(x), ¬∀x¬¬P(x), ¬¬∃x¬P(x), (c) ¬∃xP(x), ∀x¬P(x), ¬∃x¬¬P(x), ¬¬∀x¬P(x). Sestrojte příslušné důkazy v kalkulu GJ a kripkovské protipříklady. Ve všech případech, kdy zjistíte, že implikace není intuicionisticky logicky platná, určete také, zda je možné, aby současně platily premisa a negace závěru. 30. Určete, které z následujících formulí jsou intuicionisticky logicky platné. Sestrojte příslušné důkazy a protipříklady. Předpokládejte, že formule χ neobsahuje volné výskyty proměnné x. ¬∃xϕ ≡ ∀x¬ϕ, ∀x(ϕ & ψ) ≡ ∀xϕ & ∀xψ, ∃x¬ϕ → ¬∀xϕ, ∀x(χ ∨ ϕ) ≡ χ ∨ ∀xϕ, ∃x(χ ∨ ϕ) ≡ χ ∨ ∃xϕ, ∀x(χ → ϕ) ≡ χ → ∀xϕ, ∃x(¬ϕ → ∀v¬ϕ(v)), ∀x(ϕ → χ) ≡ ∃xϕ → χ, ¬¬∃x(ϕ → ∀vϕ(v)), ∀x(ϕ ∨ ¬ϕ) & ∀x¬¬ϕ → ¬¬∀xϕ, ¬¬∀xϕ → ∀x¬¬ϕ, ∀x(ϕ ∨ ¬ϕ) → (¬¬∃xϕ → ∃xϕ). 31. Dokažte, že schéma DNS platí ve všech konečných kripkovských strukturách. 5.1 Intuicionistická logika 395 32. Navrhněte definici harropovské formule i pro predikátovou logiku, předpokládejte platnost věty o eliminovatelnosti řezů a dokažte predikátovou verzi cvičení 14: když množina Γ obsahuje pouze harropovské formule, ∆ = ∅ a sekvent Γ ⇒ ∆ je dokazatelný v kalkulu GJ, pak existuje formule ϕ ∈ ∆ taková, že i sekvent Γ ⇒ ϕ je dokazatelný v kalkulu GJ. 33. Dokažte, že analogické tvrzení, jako bylo v předchozím cvičení dokázáno pro disjunkci, platí i pro existenční kvantifikátor: když ϕ je formule v L, když Γ je množina harropovských formulí v L a když sekvent Γ ⇒ ∃xϕ je dokazatelný v kalkulu GJ, pak existuje term t v jazyce L takový, že i sekvent Γ ⇒ ϕx(t) je dokazatelný. 34. Navrhněte definici negativní formule i pro predikátovou logiku a dokažte, že formule ¬¬ϕ → ϕ je v kalkulu GJ dokazatelná pro každou negativní formuli ϕ. 35. Nechť funkce g je definovaná rovnostmi ϕg = ¬¬ϕ, je-li ϕ atomická, (ϕ & ψ)g = ϕg & ψg , (ϕ → ψ)g = ϕg → ψg , (¬ϕ)g = ¬ϕg , (ϕ ∨ ψ)g = ¬(¬ϕg & ¬ψg ), (∃xϕ)g = ¬∀x¬ϕg , (∀xϕ)g = ∀xϕg . Dokažte, že libovolná predikátová formule ϕ je klasicky logicky platná, právě když formule ϕg je intuicionisticky logicky platná. Funkce ϕ → ϕg je tedy také interpretací klasické predikátové logiky v intuicionistické. Návod. Nejprve dokažte predikátovou analogii věty 5.1.22. Pak uvažte, že každá formule ϕg je negativní formulí a užijte předchozí cvičení. 5.2 Gödelova fuzzy logika (napsal Petr Hájek) V tomto oddílu se seznámíme s jednou z významných vícehodnotových logik, nazývanou Gödelova logika. To potřebuje vysvětlení. Jak bylo řečeno v úvodu k této kapitole, klasická logika je dvouhodnotová, má dvě pravdivostní hodnoty. To lze zobecnit tak, že pravdivostní hodnoty 1 (pravda) a 0 (nepravda) považujeme za extremální a mezi nimi připouštíme mezilehlé hodnoty částečné pravdivosti. (Hned na začátku čtenáře důrazně varujeme, aby se nepokoušel myslet na pravděpodobnost, jde o něco zcela jiného.) První, kdo se takovými logikami zabýval, byl polský logik Jan Lukasiewicz ([56] jsou jeho sebrané spisy). Později zavedl jiné systémy vícehodnotové logiky E. Post [65]. V souvislosti s intuicionistickou logikou studoval vícehodnotové logiky A. Heyting [36] a také Kurt Gödel. Jeho kratičká práce [26] se stala základem logiky, kterou zde probereme. Z dalších významných autorů, kteří se vícehodnotovými logikami zabývali, jmenujme alespoň tyto: Moisil, Rose, Rosser, Chang, Belluce, Scott. V roce 1965 vyšla Zadehova práce [100], která se stala základem teorie fuzzy množin a fuzzy logiky. „Fuzzy znamená „roztřepený , „neostrý ; za fuzzy považujeme vágní pojmy jako „malý , „velký , „vysoký apod., 396 5 Některé neklasické logiky které nemají ostré hranice (to souvisí s některými známými logickými paradoxy, tím se však nezabýváme). Fuzzy logiku tedy můžeme chápat jako logiku komparativní pravdy: výroky mohou být více či méně pravdivé. To je rozumná myšlenka. Potíž byla v tom, že po řadu let (desetiletí) se fuzzy logikou zabývali nelogikové (inženýři, odborníci na řízení) a dělali to, co uměli. Matematikové a logikové nad tím ohrnovali nos a jen výjimečně se fuzzy logikou zabývali. Čestnou výjimkou jsou např. monografie S. Gottwalda [27], [28]. Zadeh sám správně rozlišuje fuzzy logiku v širokém smyslu (cokoli, co se týká fuzzy pojmů a množin) a v úzkém smyslu (vícehodnotové logické kalkuly vhodné pro formulaci usuzování za vágnosti). V současné době je fuzzy logika v úzkém smyslu předmětem intenzívního matematického studia a ukazuje se, že kalkuly fuzzy logiky mají pozoruhodné (a krásné) logické vlastnosti. Gödelova logika je jedním z několika takových kalkulů. Gödel sám pochopitelně na žádnou fuzzy logiku nemyslel (ta přišla o 33 let později); použil vícehodnotovou logiku jako prostředek studia logiky intuicionistické. A protože jsme s intuicionistickou logikou seznámeni, bude se nám Gödelova logika dobře studovat a vyložíme mimo jiné i původní Gödelův výsledek z r. 1932. Probereme jak výrokovou, tak predikátovou Gödelovu logiku a na závěr se stručně zmíníme o některých jiných fuzzy logikách. Čtenáři, který se zajímá o tuto problematiku hlouběji, doporučujeme monografii [34]. 5.2.1 Gödelova výroková fuzzy logika Gödelovu výrokovou fuzzy logiku budeme značit písmenem G. Formule jsou budovány z výrokových atomů pomocí logických spojek &, ∨, →, ¬ (stejně jako v klasické a v intuicionistické logice). Předpokládáme, že výrokových atomů je konečně nebo spočetně mnoho. Standardní množina pravdivostních hodnot logiky G je reálný jednotkový interval [[0, 1]]; pravdivostní ohodnocení je zobrazení v přiřazující každému atomu p hodnotu v(p) ∈ [[0, 1]]. Pravdivostní funkce logických spojek jsou definovány následovně. Pravdivostní funkce konjunkce je funkce min(x, y), (minimum); pravdivostní funkce disjunkce je max(x, y). Pravdivostní funkce implikace je funkce (x ⇒ y) definovaná takto: x ⇒ y = 1 jestliže x ≤ y y jinak. Pravdivostní funkce negace je funkce x → −x definovaná předpisem −x = (x ⇒ 0); platí tedy −0 = 1 a −x = 0 pro x > 0 (hned si všimněme, že −(−x) se obecně nerovná x). Množinu [[0, 1]] s operacemi max a min, právě definovanou funkcí ⇒ a vytčenými prvky 0 a 1 značíme [[0, 1]]G a nazýváme standardní G-algebrou (obecné G-algebry definujeme později). Pomocí pravdivostních funkcí se každé ohodnocení výrokových atomů jednoznačně rozšíří na ohodnocení v všech formulí takové, že pro každé dvě formule 5.2 Gödelova fuzzy logika 397 A a B platí v(A & B) = min(v(A), v(B)), v(A ∨ B) = max(v(A), v(B)), v(A → B) = (v(A) ⇒ v(B)), v(¬A) = −v(A). Formule A je tautologie (přesněji: [[0, 1]]G-tautologie), jestliže v(A) = 1 pro každé ohodnocení v. Nyní uvidíme souvislost logiky G s intuicionistickou logikou. Věta 5.2.1 (a) Všechny axiomy hilbertovského kalkulu HJ pro intuicionistickou logiku jsou [[0, 1]]G-tautologie. (b) Dále každá formule tvaru (A → B) ∨ (B → A) je [[0, 1]]G-tautologie. (c) [[0, 1]]G-tautologie jsou uzavřeny na modus ponens: když A a A → B jsou [[0, 1]]G-tautologie, pak i B je [[0, 1]]G-tautologie. (d) Avšak formule A ∨ ¬A obecně není [[0, 1]]G-tautologie. Důkazu předřadíme lemma, které je užitečné na více místech: Lemma 5.2.2 Pro každé x, y, z ∈ [[0, 1]] platí z ≤ (x⇒y), právě když min(x, z) ≤ y. (Tomu se říká, že operace ⇒ je reziduum operace maxima.) Důkaz Je-li x ≤ y, pak (x ⇒ y) = 1 a podmínky z ≤ 1 a min(x, z) ≤ y platí pro každé z. Je-li x > y, pak (x ⇒ y) = y, a zřejmě v tomto případě máme z ≤ y, právě když min(x, z) ≤ y. QED Důkaz věty 5.2.1 (a) Pro většinu axiomů je ověření tautologičnosti velmi lehké. Ověříme axiom A2. Následující řádky jsou ekvivalentní: 1 ≤ (a ⇒ (b ⇒ c)) ⇒ ((a ⇒ b) ⇒ (a ⇒ c)) a ⇒ (b ⇒ c) ≤ (a ⇒ b) ⇒ (a ⇒ c) min(a ⇒ b, a ⇒ (b ⇒ c)) ≤ a ⇒ c min(a, a ⇒ b, a ⇒ (b ⇒ c)) ≤ c. Všimněme si, že min(a, a ⇒ b) ≤ min(a, b); tedy min(a, a ⇒ b, a ⇒ (b ⇒ c)) ≤ min(a, b, a ⇒ (b ⇒ c)) ≤ min(a, b, b ⇒ c) ≤ min(a, b, c) ≤ c. Tím je dokázán poslední ze čtyř navzájem ekvivalentních řádků, a tedy i první. (b) Zřejmě max(x ⇒ y, y ⇒ x) = 1, neboť x ≤ y nebo y ≤ x. (c) Je-li v(A) = 1 a v(B) < 1, je v(A → B) = v(B) < 1; tedy je-li v(A) = 1 a v(A → B) = 1, pak v(B) = 1. (d) Pro v(p) = 1 2 je v(p ∨ ¬p) = max(1 2 , 0) = 1 2 . QED 398 5 Některé neklasické logiky Můžeme tedy definovat hilbertovský kalkulus pro logiku G: axiomy jsou axiomy kalkulu HJ a dále všechny instance schématu (A → B) ∨ (B → A) (nazývaného axiom prelinearity), odvozovací pravidlo je modus ponens. Protože jiným než hilbertovským kalkulem se v případě logiky G nezabýváme, značíme právě definovaný kalkulus opět písmenem G. Kalkulus G je korektní vůči [[0, 1]]G-tautologiím: každá formule dokazatelná v G je [[0, 1]]G-tautologie. Vidíme, že logika G je silnější než intuicionistická a slabší než klasická (takovým logikám se říká intermediární). O logice G jsme se už nepřímo zmínili ve cvičení 26 oddílu 5.1. Teorií rozumíme (jako obvykle) libovolnou množinu formulí — vlastních axiomů této teorie. Pojem důkazu je definován obvyklým způsobem: důkaz v teorii T (nad logikou G) je posloupnost formulí A1, . . , An, z nichž každá je buď axiom logiky G, nebo vlastní axiom teorie T (tj. prvek množiny T), nebo je odvozena z některých předchozích formulí pomocí odvozovacího pravidla. T A (přesněji T G A) značí, že formule A je dokazatelná v teorii T (nad logikou G). Pro logiku G platí věta o dedukci v obvyklém znění: T ∪ {A} G B, právě když T G A → B (k tomu stačí axiomy A1 a A2). Ukážeme teď, že (na rozdíl od intuicionistické logiky) disjunkce je v logice G vyjádřitelná pomocí ostatních spojek: Lemma 5.2.3 Formule A∨B a ((A→B)→B)&((B→A)→A) jsou nad logikou G ekvivalentní pro každou volbu formulí A a B. Důkaz Označme C formuli ((A → B) → B) & ((B → A) → A). Snadno lze ověřit, že jak z předpokladu A, tak z předpokladu B lze v logice G dokázat jak formuli (A → B) → B, tak formuli (B → A) → A. Z toho a užitím axiomů A4–A7 se dokáže G A ∨ B → C, a to stejně, jako kdybychom pracovali v klasické nebo v intuicionistické logice. Obráceně platí G (A → B) → (((A → B) → B) → B), G (A → B) → (C → A ∨ B). Zcela analogicky se dokáže G (B → A) → (C → A ∨ B). Tedy G (A → B) ∨ (B → A) → (C → A ∨ B). Díky tomu, že formule (A → B) ∨ (B → A) je axiom, máme G C → A ∨ B. QED Nic takového, co jsme právě udělali pro disjunkci, nelze udělat pro konjunkci ani pro implikaci. Metody, kterými je v [9] dokázáno, že konjunkci ani implikaci v intuicionistické logice nelze vyjádřit pomocí ostatních logických spojek, lze totiž přizpůsobit i pro logiku G, viz [89]. 5.2 Gödelova fuzzy logika 399 Zobecníme nyní pojem struktury pravdivostních hodnot. G-algebrou budeme rozumět libovolnou lineárně uspořádanou množinu L = (L, ≤) s nejmenším prvkem 0L, největším prvkem 1L a operacemi minima min(x, y), maxima max(x, y) a rezidua x ⇒ y definovaného takto: pro x ≤ y je x ⇒ y = 1, pro x > y je x ⇒ y = y.2 L-ohodnocení výrokových atomů je zobrazení v přiřazující každému výrokovému atomu p hodnotu v(p) ∈ L. To se rozšíří na ohodnocení v(A) libovolné formule A užitím operací algebry L jako pravdivostních funkcí (pochopitelně definujeme −x = (x ⇒ 0L)). Formule A je L-tautologie, jestliže v(A) = 1L pro každé L-ohodnocení v. Snadno lze ověřit korektnost kalkulu G vůči takto zobecněné sémantice: je-li formule A dokazatelná v kalkulu G, pak A je L-tautologií pro každou G-algebru L. Nadto: L-modelem teorie T rozumíme L-ohodnocení v takové, že pro každou formuli A ∈ T platí v(A) = 1L. Silná korektnost říká, že je-li formule A dokazatelná v T (nad logikou G), pak v(A) = 1L pro každý L-model teorie T. Pochopitelně nás zajímá, zda to platí také obráceně. Kladnou odpověď dá věta o úplnosti, ke které směřujeme. Nejprve si uvědomme některé základní vlastnosti G-algeber. Připomeňme, že izomorfismus dvou lineárně uspořádaných množin (L1, ≤1) a (L2, ≤2) je prosté zobrazení f množiny L1 na L2 zachovávající uspořádání, tj. splňující podmínku, že pro každé a, b ∈ L1 je a ≤1 b, právě když f(a) ≤2 f(b). Lemma 5.2.4 (a) Každý izomorfismus f lineárně uspořádaných množin (L1, ≤1) a (L2, ≤2) majících nejmenší a největší prvek 0i, 1i (i = 1, 2) zobrazuje 01 na 02, zobrazuje 11 na 12 a zachovává operace maxima, minima a rezidua, tj. je izomorfismem G-algeber daných uspořádanými množinami (L1, ≤1) a (L2, ≤2). (b) Každé dvě konečné G-algebry stejné mohutnosti jsou izomorfní. (c) Každou konečnou nebo spočetnou G-algebru lze izomorfně vnořit do G-algebry racionálních čísel z intervalu [[0, 1]]. Důkaz Jde vesměs o zřejmé věci, pro (a) ukažme například, že f(11) = 12 a f(x ⇒1 y) = f(x) ⇒2 f(y). Skutečně, je-li 01 nejmenší v L1, tj. 01 ≤ x pro každé x ∈ L1, pak f(01) ≤ f(x) pro každé x ∈ L1, a tedy (jelikož f je zobrazení na L2) f(01) ≤ y pro libovolné y ∈ L2, tedy f(01) je nejmenší v L2, f(01) = 02. Podobně pro reziduum: ať x, y ∈ L1. Pak buďto x ≤1 y, a pak x ⇒1 y = 11, f(x ⇒1 y) = 12, f(x) ≤2 f(y), tedy f(x)⇒2 f(y) = 12; nebo x >1 y, a pak x⇒1 y = y, f(x) >2 f(y), tedy f(x) ⇒2 f(y) = f(y). V obou případech f(x ⇒1 y) = f(x) ⇒2 f(y). Tvrzení (b) a (c) plynou z toho, že obdobná tvrzení platí pro lineárně uspořádané množiny a z (a) víme, že izomorfismus vůči uspořádání je zároveň izomorfismem ve smyslu G-algeber. Vskutku: každé dvě lineárně uspořádané množiny téže konečné mohutnosti jsou izomorfní a každou nejvýše spočetnou lineárně uspořádanou 2Vlastně bychom měli mluvit o lineárně uspořádaných G-algebrách; obvyklý pojem G-algebry je obecnější. My však s jinými než lineárně uspořádanými G-algebrami nebudeme pracovat, a proto použijeme naši terminologii (srov. [34]). 400 5 Některé neklasické logiky množinu s nejmenším a největším prvkem lze izomorfně zobrazit na nějakou podmnožinu uspořádaného racionálního intervalu [[0, 1]] tak, že obrazem nejmenšího prvku je 0 a obrazem největšího prvku je 1. QED Věta 5.2.5 Pro libovolnou formuli A platí: A je [[0, 1]]G-tautologie, právě když A je L-tautologie pro každou G-algebru L. Důkaz Když A je L-tautologií pro každou G-algebru L, pak i pro L = [[0, 1]]G. Obráceně, jestliže L je G-algebra a v je L-ohodnocení takové, že v(A) < 1L, pak vezměme množinu X obsahující 0L a 1L a hodnoty všech výrokových atomů formule A v ohodnocení v. Množina X je konečná a lze ji izomorfně vnořit do [[0, 1]] se zachováním nejmenšího a největšího prvku. Buď f takový izomorfismus; víme, že f zachovává i operace G-algebry (tj. operace max, min a ⇒). Nechť v je [[0, 1]]G-ohodnocení splňující v (p) = f(v(p)) pro každý výrokový atom p vyskytující se v A; pak pro každou podformuli B formule A máme v (B) = f(v(B)) a speciálně v (A) = f(v(A)) < 1 (protože v(A) < 1L). QED Dokázali jsme vlastně více, než jsme tvrdili: Jestliže A není [[0, 1]]G-tautologie, pak umíme zkonstruovat konečnou G-algebru L takovou, že A není L-tautologie. Body nosné množiny L struktury L jsou čísla 0 a 1, a dále hodnoty v(pi), kde p1, . . , pn jsou atomy formule A. Množina L má tedy nejvíce n + 2 prvků; má-li méně, můžeme další libovolně přidat. Máme tedy následující důsledek: Důsledek 5.2.6 Buď A formule obsahující n výrokových atomů. A je [[0, 1]]G-tautologie, právě když je Ln+2-tautologie, kde Ln+2 je G-algebra mající přesně n + 2 prvků (struktura Ln+2 je určena jednoznačně až na izomorfismus). Definice 5.2.7 Teorie T je úplná (nad logikou G), jestliže pro každou dvojici formulí A a B platí T A → B nebo T B → A (nebo obojí). Lemma 5.2.8 Buď T teorie a C formule nedokazatelná v T. Pak existuje úplná teorie T ⊇ T taková, že C je nedokazatelná v T . Důkaz Protože je nejvýše spočetně mnoho výrokových atomů, lze uspořádané dvojice všech formulí seřadit do spočetné posloupnosti [A0, B0], [A1, B1], [A2, B2], . . . Položme T0 = T a předpokládejme, že již máme teorii Tn ⊇ T0 takovou, že pro všechna i < n platí Tn Ai → Bi nebo Tn Bi → Ai, a přitom Tn C. Tvrdíme, že pak buďto Tn ∪ {An → Bn} C, nebo Tn ∪ {Bn → An} C; v prvním případě bude Tn+1 = Tn ∪ {An → Bn}, v druhém Tn+1 = Tn ∪ {Bn → An}. Dokazujeme sporem: ať C je dokazatelná jak v Tn ∪ {An → Bn}, tak v Tn ∪ {Bn → An}. Dle věty o dedukci je Tn (An → Bn) → C a Tn (Bn → An) → C, tedy Tn [(An → Bn) ∨ (Bn → An)] → C, 5.2 Gödelova fuzzy logika 401 a tedy Tn C, což je ve sporu s předpokladem (postřehli jste, že výraz v hranatých závorkách je axiom logiky G). Stačí tedy vzít za T sjednocení všech teorií Tn; zřejmě T ⊇ T, teorie T je úplná a T C (neboť každý důkaz v T je důkazem v některé Tn). QED Definice 5.2.9 Nechť T je úplná teorie. Pro každou formuli A nechť [A]T je množina { B ; T A ≡ B } (třída všech formulí ekvivalentních s A v T). Množinu všech tříd { [A]T ; A formule } označme LT . Definujme, že [A]T ≤ [B]T , jestliže T A → B. Poznamenejme, že relace ≤ je dobře definována: platí-li [A]T = [A ]T , pak T A→B, právě když T A →B; a podobně T B →A, právě když T B →A . Lemma 5.2.10 Nechť T je úplná teorie. Pak (a) Relace ≤ je lineární uspořádání množiny LT , největší prvek je třída všech formulí dokazatelných v T a nejmenší prvek je třída všech formulí vyvratitelných v T (tj. takových formulí B, že T ¬B). (b) Pro libovolné dvě formule A a B platí: min([A]T , [B]T ) = [A & B]T , max([A]T , [B]T ) = [A ∨ B]T , [A]T ⇒ [B]T = [A → B]T , kde max, min a ⇒ jsou operace definované pomocí uspořádání ≤. Důkaz (a) Připomeňme dokazatelnost následujících formulí v G: A → A, (A → B) & (B → C) → (A → C), (A → B) & B → A) → (A ≡ B). Z toho dostáváme [A] ≤ [A], jestliže [A] ≤ [B] a [B] ≤ [C], pak [A] ≤ [C], jestliže [A] ≤ [B] a [B] ≤ [A], pak [A] = [B], (vynecháváme index T). Protože teorie T je úplná, pro každou dvojici A a B formulí buď T A → B, nebo T B → A, platí tedy [A] ≤ [B] nebo [B] ≤ [A]; relace ≤ je lineární uspořádání. Zbytek je zřejmý. (b) Je-li [A] ≤ [B], tedy T A → B, pak T A ≡ (A & B), takže min([A], [B]) = [A] = [A & B]. Podobně z [A] ≤ [B] plyne T B ≡ (A ∨ B). Je-li [A] ≤ [B], pak T A → B, tedy [A → B] = 1LT = [A] ⇒ [B]. Nechť tedy [A] > [B], tj. T A → B a T B → A. Chceme ověřit T (A → B) ≡ B. Jedna implikace je zřejmá: T B →(A→B). Vyšetřme dvojici formulí A a A→B. Víme T (A & (A → B)) → B, (∗) 402 5 Některé neklasické logiky a dále buď T A→(A→B), nebo T (A→B)→A. První možnost by vzhledem k (∗) dávala T A → B (neboť v T by byly dokazatelné formule A → (A & A), (A&A)→(A&(A→B)) a (A&(A→B))→B, což je ve sporu s předpokladem); tedy nastává druhá možnost T (A → B) → A a z ní podobně plyne T (A → B) → B. Tedy v případě [A] > [B] dostáváme [A → B] = [B] = [A] ⇒ [B]. QED G-algebru určenou uspořádanou množinou (LT , ≤) značíme LT a nazýváme ji G-algebrou teorie T. Věta 5.2.11 (o silné úplnosti kalkulu G) Nechť T je teorie nad logikou G a nechť A je formule. Následující tři tvrzení jsou ekvivalentní: (i) T G A, (ii) v(A) = 1 pro každý [[0, 1]]G-model v teorie T ( A je pravdivá v každém modelu teorie T nad standardní G-algebrou), (iii) vL(A) = 1 pro každou G-algebru L a každý L-model v teorie T ( A je pravdivá v každém modelu teorie T nad libovolnou G-algebrou). Důkaz Implikace (i) ⇒ (iii) je silná korektnost (viz předchozí výklad); implikace (iii) ⇒ (ii) je evidentní. Zbývá předpokládat (ii) a dokázat (i), neboli: předpokládáme T A a najdeme [[0, 1]]G-model v teorie T, v němž v(A) < 1. Nechť S je úplné rozšíření teorie T, pro které platí S A. Vyšetříme algebru LS. Protože předpokládáme spočetný jazyk, je množina LS (tříd S-ekvivalentních formulí) spočetná. Definujme LS-ohodnocení v takto: pro každý výrokový atom p je v(p) = [p]S. Z vlastností algebry LS ihned plyne, že vLS (B) = [B]S pro libovolnou formuli B; přitom pokud je B axiom teorie T, je [B]S = 1LS , ale [A]S < 1LS , neboť S A. Tedy v je LS-ohodnocení, v němž A není pravdivá (nemá hodnotu 1LS ). My však chceme [[0, 1]]G-model; proto použijeme lemma 5.2.4(c) a vnoříme LS do [[0, 1]]G pomocí vhodného izomorfismu f (dokonce lze uvést f takový, že zobrazuje LS do racionálních čísel intervalu [[0, 1]], ale to je teď nepodstatné). Definujme [[0, 1]]G-ohodnocení v takto: v (p) = f(v(p)). Pro všechny formule B platí v (B) = f(vLS (B)). Tedy v je [[0, 1]]G-model teorie S. Tím spíše v je [[0, 1]]G-model teorie T a platí v (A) < 1. QED Důsledek 5.2.12 (úplnost kalkulu G) Pro libovolnou formuli A jsou následující čtyři tvrzení ekvivalentní: (i) A je dokazatelná v logice G, (ii) A je [[0, 1]]G-tautologie, (iii) A je L-tautologie pro každou G-algebru L, (iv) A je Ln+2-tautologie, kde n je počet výrokových atomů ve formuli A (a Ln+2 je (n + 2)-prvková G-algebra). 5.2 Gödelova fuzzy logika 403 Úplnost logiky G (vůči tautologiím nad racionálním intervalem [[0, 1]] ∩ Q) dokázal M. Dummett, viz [18]. Nyní vyložíme výsledky o výpočtové složitosti Gödelovy fuzzy výrokové logiky. Nechť G-Taut značí množinu všech tautologií logiky G a G-Sat značí množinu všech formulí splnitelných v logice G (A je v G-Sat, jestliže existuje [[0, 1]]G-ohodnocení v takové, že v(A) = 1). Připomeňme, že pro analogické množiny Taut a Sat klasické (booleovské) logiky platí, že Sat je NP-kompletní a Taut je coNP-kompletní (viz kapitolu 2). Ukažme, že pro množiny G-Sat a G-Taut platí totéž. Pro jistotu ještě připomeňme, že G-Taut = Taut: například formule p∨¬p je v Taut a není v G-Taut. Věta 5.2.13 Platí G-Sat = Sat. Množina G-Sat je tedy NP-kompletní. Důkaz Zřejmě Sat ⊆ G-Sat (je-li A splnitelná v klasické logice ohodnocením v s hodnotami 0 a 1, pak totéž ohodnocení v dává formuli A hodnotu 1 i ve smyslu algebry [[0, 1]]G). Obráceně nechť A ∈ G-Sat a nechť v je [[0, 1]]G-ohodnocení takové, že v(A) = 1 ve smyslu [[0, 1]]G. Definujme ohodnocení v takto: v (p) = 0, jestliže v(p) = 0; v (p) = 1, pokud v(p) > 0. Ověřte, že pro každou formuli B platí: v (B) = 0, jestliže v(B) = 0; v (B) = 1, jestliže v(B) > 0 (indukcí podle počtu logických spojek ve formuli B). Tedy v (A) = 1 a A ∈ Sat. QED Věta 5.2.14 Množina G-Taut je coNP-kompletní. Důkaz Máme ukázat, že množina G-Taut je v třídě coNP a že je v ní kompletní. K první věci stačí ukázat, že množina všech formulí, které nejsou G-tautologie, je v NP. Jde o to ukázat, že existuje nedeterministický algoritmus pracující v polynomiálním čase, který přijme formuli A, právě když pro nějaké ohodnocení v platí v(A) < 1. Činnost takového algoritmu popíšeme neformálně; čtenář může vypracovat detaily. Uvědomme si, že dle důsledku 5.2.6 stačí ohodnocovat čísly 0, 1 k+1 , 2 k+2 , . . , k k+1 , 1, kde k je počet atomů formule A. Algoritmus tedy nedeterministicky uhodne takové ohodnocení a pak deterministicky spočítá příslušnou hodnotu dané formule. Kompletnost ukážeme tak, že udáme funkci f počitatelnou v logaritmickém prostoru a takovou, že pro libovolnou formuli A je A ∈ Taut, právě když f(A) ∈ G-Taut. Takovou funkcí je například funkce, která ve formuli A nahradí každý atom p jeho dvojitou negací ¬¬p (ověřte). QED Nyní si ještě položme otázku, zda logika G umožňuje odvozovat částečně pravdivé důsledky z částečně pravdivých předpokladů. Ukážeme, že ano. Buď r ∈ [[0, 1]]; říkejme, že formule A je r-pravdivá při ohodnocení v, jestliže v(A) ≥ r (nyní pracujeme s [[0, 1]]G-ohodnoceními). Lemma 5.2.15 (o korektnosti vůči r-pravdivosti) Nechť r ∈ [[0, 1]] a dále nechť T je teorie, A formule dokazatelná v teorii T a v pravdivostní ohodnocení. Jestliže každý axiom teorie T je r-pravdivý, pak i formule A je r-pravdivá při ohodnocení v. 404 5 Některé neklasické logiky Důkaz Jediné, co je třeba ověřit, je skutečnost, že pravidlo modus ponens zachovává r-pravdivost. Nechť v(C) ≥ r a v(C → D) ≥ r. Kdyby v(D) < r, bylo by v(C → D) = v(D) < r, což není. Tedy v(D) ≥ r. Vidíme tedy, že je-li v(B) ≥ r pro každý axiom B ∈ T, pak každý důkaz v T nad G sestává jen z formulí r-pravdivých při ohodnocení v. QED Toto tvrzení lze dokonce obrátit, logika G je silně úplná vůči r-pravdivosti. Říkejme, že v je r-model teorie T, jestliže v(B) ≥ r pro každý axiom B ∈ T. Věta 5.2.16 Nechť T je teorie, A formule a 0 < r ≤ 1. Pak T G A, právě když A je r-pravdivá v každém r-modelu v teorie T, tj. právě když v(A) ≥ r pro každé [[0, 1]]G-ohodnocení v, které každému prvku B ∈ T přiřazuje hodnotu alespoň r. Důkaz V jednom směru jde o předcházející lemma. Obráceně nechť formule A je r-pravdivá v každém r-modelu teorie T. Je-li r = 1, jde o úplnost dokázanou výše. Je-li 0 < r < 1, pak si všimněme, že pro každé 0 < s < 1 platí, že A je s-pravdivá v každém s-modelu teorie T. Pro dané s stačí vzít libovolné prosté rostoucí zobrazení f intervalu [[0, 1]] na sebe takové, že f(r) = s. Pro daný s-model v teorie T buď v (p) = f−1 (v(p)) pro každý výrokový atom p. Všimněme si, že v(B) = f(v (B)) pro každou formuli B; jelikož v je r-model teorie T, je v (A) ≥ r, a tedy v(A) = f(v (A)) ≥ s. QED Výklad Gödelovy výrokové fuzzy logiky uzavřeme důkazem Gödelova výsledku z r. 1932, kvůli němuž se Gödel vícehodnotovou logikou zabýval. Pro tento účel definujme: Definice 5.2.17 Konečná sémantika výrokové logiky je libovolná struktura tvaru H = H, ∗, ⊕, ⇒, −, 1H , kde H je konečná (neprázdná) množina, ∗, ⊕ a ⇒ jsou binární operace na H (chápané jako pravdivostní funkce konjunkce, disjunkce a implikace), − je unární operace na H (pravdivostní funkce negace) a 1H je vytčený prvek struktury H (pravda). Struktura H je n-hodnotová sémantika, jestliže její nosná množina H má n prvků. Každá G-algebra Ln+2 je příkladem (n + 2)-hodnotové sémantiky. Také dvouhodnotová sémantika klasické výrokové logiky je příkladem sémantiky vyhovující definici 5.2.17. Protože každá sémantika H vyhovující definici 5.2.17 je konečná, lze pravdivostní funkce zadávat tabulkami. Ke konečné sémantice H se obvyklým způsobem definuje H-ohodnocení v výrokových atomů a jeho rozšíření přiřazující každé formuli A její hodnotu v(A). Formule A je H-tautologie, když v(A) = 1H pro každé H-ohodnocení v. Naše (Gödelova) otázka je, zda existuje konečná sémantika H ekvivalentní se sémantikou 5.2 Gödelova fuzzy logika 405 intuicionistické logiky, tj. taková konečná sémantika H, že množina všech H-tautologií je rovna množině Int-Taut všech intuicionistických tautologií. Odpověď dává věta 5.2.21, kterou dokázal K. Gödel. Definice 5.2.18 Mějme výrokové atomy p0, p1, . . , pn. Symbolem DPn (kde „DP značí Dirichletův princip) označíme formuli, která je disjunkcí všech formulí pi ≡pj pro 0 ≤ i < j ≤ n, tj. formuli 0≤i y 1 jinak 0 pro x > 0 1 jinak produktová t-norma x · y y/x pro x > y 1 jinak 0 pro x > 0 1 jinak Obrázek 5.2.1: Spojité t-normy V úvodu k tomuto oddílu jsme se zmínili o tom, že Gödelova logika je jednou z významných fuzzy logik, nikoliv však jedinou. Obecný přístup, zpracovaný v monografii [34] (který také není jediný možný), vychází z pojmu spojité t-normy jako pravdivostní funkce konjunkce a jejího rezidua jako pravdivostní funkce implikace. Binární operace ∗ na intervalu [[0, 1]] je t-norma, jestliže je komutativní, asociativní, neklesající v obou argumentech a platí 1∗x = 1 pro každé x. Je-li t-norma spojitá, pak má operaci rezidua ⇒ definovanou takto: x ⇒ y = max{ z ; x ∗ z ≤ y }. Pravdivostní funkcí negace je operace − definovaná předpisem −x = x ⇒ 0. Pro každou spojitou t-normu platí x ⇒ y = 1 pro x ≤ y, a tedy −0 = 1. Tři nejdůležitější spojité t-normy jsou uvedeny ve druhém sloupci tabulky na obrázku 5.2.1. Ve třetím a čtvrtém sloupci tabulky jsou operace rezidua a negace příslušející k dané normě. Gödelova fuzzy logika (G a G∀), se kterou jsme se v tomto oddílu dost podrobně seznámili, je tedy logikou Gödelovy t-normy. Je vybudována výroková i predikátová logika L a L∀ Lukasiewiczovy t-normy i výroková a predikátová logika Π a Π∀ produktové t-normy. Studuje se také logika všech spojitých t-norem (basic logic BL resp. BL∀). Přehled predikátových fuzzy logik a jejich algebraických protějšků může čtenář najít v knize [57]; pro plný výklad odkazujeme k monografii [34]. Za zmínku stojí rovněž rozšíření Lukasiewiczovy logiky o pravdivostní konstanty: pro každé r ∈ [[0, 1]] (případně r ∈ [[0, 1]] ∩ Q) je k dispozici formule ¯r mající hodnotu r pro každé ohodnocení. Tuto logiku zavedl (bez vztahu k Lukasiewiczově logice) Jan Pavelka v disertační práci z r. 1979 a je známa jako Pavelkova logika. Navázal na něho Vilém Novák, který tuto logiku intenzívně studuje a rozvíjí (viz [60]). 414 5 Některé neklasické logiky Cvičení 1. Rozhodněte, které z následujících formulí (schémat) jsou [[0, 1]]G-tautologie: (A & B → C) → ((A → C) ∨ (B → C)), ¬A ∨ ¬¬A, (¬¬A → A) → A ∨ ¬A, ¬¬A → A, ¬(A & B) → ¬A ∨ ¬B, (A → B) → ¬A ∨ B, ¬(¬A & ¬B) → A ∨ B, (A → ¬B) → ¬A ∨ B. 2. Ověřte silnou korektnost kalkulu G: buď T teorie nad G a buď ϕ1, . . , ϕn důkaz v T (nad G). Nechť L je G-algebra a nechť v je L-ohodnocení, které je L-modelem teorie T. Ukažte indukcí, že vL(ϕi) = 1L pro každé i = 1, . . , n. 3. Prověřte důkaz věty o dedukci pro kalkulus G. 4. Pro každou z formulí z cvičení 1, která je [[0, 1]]G-tautologií, zdůvodněte bez užití věty o úplnosti, že je dokazatelná v G. 5. Dokažte, že každé spočetné lineární uspořádání s největším a nejmenším prvkem lze izomorfně vnořit do uspořádané množiny [[0, 1]] ∩ Q racionálních čísel z intervalu [[0, 1]]. Návod: Nechť H = H, ≤H je uvažované uspořádání a H = {h0, h1, h2, . . . } je nějaké očíslování množiny H. Předpokládejte, že h0 je nejmenší a h1 největší prvek v H. Dále postupujte metodou „cik-cak podobně jako v příkladu 3.4.12. 6. Vypracujte detaily důkazu tvrzení, že množina G-Taut je v coNP. 7. Ukažte, že formule ((p → q) → q) → ((q → p) → p) není dokazatelná v kalkulu G, je ale dokazatelná v kalkulu HK. 8. Ukažte, že axiom BG není dokazatelný predikátovém kalkulu HJ, je ale dokazatelný v kalkulu HK. 9. Vypracujte detaily důkazu korektnosti pravidla Gen-E v kalkulu G∀. 10. Ukažte, že pro klasickou logiku splývá definice úplné teorie podané zde (pro každé dvě sentence ϕ a ψ je T ϕ → ψ nebo T ψ → ϕ) s definicí obvyklou pro klasickou logiku (pro každou sentenci ϕ je T ϕ nebo T ¬ϕ). 11. Totéž platí pro pojem henkinovské teorie (henkinovského rozšíření dané teorie). 12. Postupně ukažte, že každá z následujících formulí je dokazatelná v kalkulu G∀. (Které formule je třeba doplnit, aby vzniklá posloupnost byla důkazem?) ∀x(ϕ → ψ) → (ϕ → ψ), ∀x(ϕ → ψ) → (∀xϕ → ψ), ∀xϕ → ϕ, ∀x(ϕ → ψ) & ∀xϕ → ψ, (∀xϕ → ϕ) → ((ϕ → ψ) → (∀xϕ → ψ)), ∀x(ϕ → ψ) & ∀xϕ → ∀xψ, (ϕ → ψ) → (∀xϕ → ψ), ∀x(ϕ → ψ) → (∀xϕ → ∀xψ). 5.2 Gödelova fuzzy logika 415 13. V důkazu úplnosti logiky G∀ vypracujte důkaz (indukcí), že ϕ H D = [ϕ]T pro každou sentenci ϕ. Návod: indukční krok pro případ, kdy ϕ má tvar ∀xψ, vypadá takto: ∀xψ H D = inf v ψ H D[v] = inf c ψx(c) H D = inf c [ψx(c)]T = [∀xψ]T . 14. Dokažte, že každé spočetné lineární uspořádání H lze vnořit do hustého spočetného lineárního uspořádání vnořením zachovávajícím všechna suprema i infima existující v H. Návod: Pro a ∈ H buď α+ nejbližší větší prvek H, pokud takový existuje (horní soused), jinak buď α+ = α. Pokud α+ = α, přidejte mezi α a α+ exemplář racionálních čísel větších než 0 a menších než 1 (pro různé α různé exempláře). 5.3 Logika dokazatelnosti Hlavní myšlenku stojící v pozadí Gödelových vět o neúplnosti lze stručně vyjádřit takto: aritmetický jazyk umožňuje napsat sentenci, která říká o sobě já jsem nedokazatelná, a dokázat o ní, že opravdu je nedokazatelná. V roce 1952 položil L. Henkin otázku, která vypadá poněkud kuriózně: co kdybychom naopak napsali sentenci, která o sobě říká já jsem dokazatelná; byla by taková sentence dokazatelná? Henkinovu otázku vyřešil v roce 1955 (pozitivně) M. H. Löb v článku [55]. Fakt, že sentence ϕ tvrdí svou vlastní dokazatelnost například v Peanově aritmetice, se symbolicky zapíše PA ϕ ≡ Prπ(ϕ), (∗) a my se ptáme, co můžeme říci o dokazatelnosti takto definované sentence. Není ale v použití slova „definované skryta nepřesnost? Věta o autoreferenci zaručuje existenci sentence ϕ, která splňuje podmínku (∗), ale netvrdí, že taková sentence je určena jednoznačně. Nejsme tedy možná oprávněni říci, že ϕ je definována vztahem (∗). O jedné sentenci, totiž o sentenci 0 = 0, můžeme okamžitě říci, že splňuje podmínku (∗) a je dokazatelná. To ale samozřejmě není odpověď na Henkinovu otázku. Tím jsme dospěli k přesnější formulaci Henkinovy otázky: platí o každé sentenci ϕ, která splňuje podmínku (∗), že je dokazatelná? Uvědomme si, že takovýmto zpřesněným způsobem je možno (a nutno) chápat i První Gödelovu větu: každá sentence, která tvrdí svou vlastní nedokazatelnost v PA, je v PA nedokaza- telná. Pozor, není to ale tak, že když nějaká sentence tvrdí něco o sobě, tak to také musí být pravda. Ponecháváme na čtenáři, aby si rozmyslel, že tvrdí-li sentence ϕ o sobě moje negace je dokazatelná, pak negace sentence ϕ určitě v PA dokazatelná není. Věta 5.3.1 (Löbova) Nechť T je teorie obsahující Peanovu aritmetiku a nechť τ(z) je Σ-formule, která definuje v N množinu T. Nechť ϕ je libovolná sentence, pro kterou platí T ϕ ≡ Prτ (ϕ). Pak ϕ je dokazatelná v T. 416 5 Některé neklasické logiky Důkaz Předpokládejme tedy, že sentence ϕ splňuje podmínku 1: T ϕ ≡ Prτ (ϕ). Chceme dokázat dokazatelnost sentence ϕ v T. Domluvme se, že „T před znakem psát nebudeme, všechny dokazatelnosti myslíme v teorii T. Vezměme pomocnou sentenci λ, o které platí 2: λ ≡ Prτ (λ) → ϕ. Taková sentence λ existuje díky větě o autoreferenci. Předpokládejme na chvíli, že λ je dokazatelná v T. Pak je v T dokazatelná jednak implikace Prτ (λ) → ϕ (díky (2)), jednak její premisa Prτ (λ) (díky podmínce D1). Tedy je dokazatelná i sentence ϕ. Tím jsme dokázali implikaci 3: Když T λ, pak T ϕ. Vezměme nyní z ekvivalence (2) jen jednu implikaci a použijme na ni podmínku D1: Prτ (λ → (Prτ (λ) → ϕ)). Dvojí užití podmínky D2 dává Prτ (λ) → Prτ (Prτ (λ) → ϕ), Prτ (λ) → (Prτ (Prτ (λ)) → Prτ (ϕ)). Vezmeme-li nyní v úvahu implikaci Prτ (λ) → Prτ (Prτ (λ)) (dokazatelnou díky podmínce D3), máme 4: Prτ (λ) → Prτ (ϕ). Uvědomme si, že podmínka (4) je vlastně formalizací podmínky (3), a rovněž důkaz byl formalizací důkazu podmínky (3). A teď už rychle dostaneme dokazatelnost sentence ϕ: 5: Prτ (λ) → ϕ ; 4, 1 6: λ ; 5, 2 ϕ ; 3. QED Všimněme si, že z ekvivalence (2) se nakonec uplatnily obě implikace, ale z podmínky (1) jsme vystačili s jedinou implikací. To znamená, že postačující podmínkou pro dokazatelnost sentence ϕ je dokazatelnost implikace Prτ (ϕ) → ϕ. Na důkazu Löbovy věty je pozoruhodné, že se v něm nevyskytují žádné proměnné ani kvantifikátory, přesněji řečeno všechny jsou skryty ve formuli Pr. Veškeré formule vyskytující se v důkazu jsou sestaveny jen z logických spojek, z formule Pr a ze sentencí (totiž λ a ϕ), jejichž vnitřní strukturu není nutno uvažovat. To je totéž, co lze říci i o důkazu Druhé Gödelovy věty. Navíc oba důkazy vystačily s podmínkami D1–D3. Jako by to byly důkazy v nějakém zvláštním logickém kalkulu z axiomů D1–D3. 5.3 Logika dokazatelnosti 417 Logické kalkuly, ve kterých se uvažují formule sestavené z dále nedělitelných formulí — atomů — pomocí logických spojek a jednoho dodatečného unárního operátoru, se studují a nazývají se modální výrokové logiky. Dodatečný operátor se nazývá modalita (nebo modalita nutnosti), zpravidla se značí P a čte se „nutně . Lze pochopitelně uvažovat i jiné nebo další modality. I v (nejobvyklejším) případě, kdy se uvažuje jen jediná modalita nutnosti, existuje více modálních logik, které se liší v tom, jaký význam se té modalitě dává. Liší se tedy sémantikou. V tomto oddílu se zabýváme modální logikou, ve které se modalita nutnosti P interpretuje formulí Pr, tj. nutnost se chápe jako formální dokazatelnost v nějaké axiomatické teorii. Tato modální logika se nazývá logikou dokazatelnosti. Logika dokazatelnosti nám umožní hlouběji pochopit metodu autoreference. Pokud tato logika bude úplná a rozhodnutelná, což bude, dá nám zároveň obecnou metodu pro řešení takových otázek, jako položil L. Henkin. Zdůrazněme, že naším cílem není logická analýza modalit v přirozené řeči. Zajímáme se o aplikace modální logiky v metamatematice. Možnost modální analýzy sentencí definovaných autoreferencí se otevřela až formulováním podmínek D1–D3. Právě formulaci podmínek D1–D3 je asi nutno považovat za velký přínos Löbova článku [55]. Samotné tvrzení Löbovy věty lze získat i jednodušeji, viz cvičení. Před Löbem formuloval P. Bernays jiné podmínky — známé jako Hilbertovy-Bernaysovy podmínky pro dokazatelnost — které také umožňují dokázat Druhou Gödelovu větu, ale na rozdíl od Löbových podmínek na nich nelze založit modální logiku. O Hilbertových-Bernaysových podmínkách si lze přečíst ve Smory´nského knize [80]. Kniha [80] je celá věnována autoreferenci, náš text v tomto oddílu z ní do značné míry vychází a je jí pokryt s výjimkou pojednání o gentzenovském kalkulu pro logiku dokazatelnosti a o její algoritmické složitosti. Gentzenovský kalkulus pro logiku dokazatelnosti se studuje v článku [74]. Z novějších zdrojů doporučujeme také Boolosovu knihu [8]. Čtivý výklad o historii logiky dokazatelnosti je článek [7]. 5.3.1 Modální formule, aritmetická sémantika Modální (výrokové) formule jsou formule sestavené z konstanty ⊥ a z výrokových atomů podle stejných pravidel jako v klasické výrokové logice s tím, že kromě negace se připouští ještě unární operátor P. Příklady modálních formulí jsou P¬P⊥, (Pp → P¬⊥) a P((p ∨ q) → (Pp ∨ Pq)). Domluvme se, že pro prioritu operací a pro vypouštění nadbytečných závorek platí obvyklá domluva s tím, že modalita P má nejvyšší možnou prioritu (stejnou jako negace). Rovněž symbol ⊥ má obvyklý význam: je to logická konstanta pro nepravdu (spor). Formuli PA čteme „nutně A , v našem kontextu případně též „je dokazatelné, že A . Kromě ⊥ a P se často užívají duální symboly: je zkratka pro ¬⊥ a QA je zkratka pro ¬P¬A. Formuli QA čteme „možná A ; něco je možné, jestliže není nutný opak. 418 5 Některé neklasické logiky Logika dokazatelnosti (stejně jako klasická výroková logika) není příliš závislá na volbě seznamu logických spojek. Uvidíme ale, že logická konstanta ⊥ je užitečná a neradi bychom ji postrádali. Jak již bylo řečeno v úvodu, nutnost chceme chápat jako dokazatelnost. Teď se domluvme přesněji, že uvažujeme dokazatelnost v Peanově aritmetice vyjádřenou formulí Prπ, kde π je přirozená definice axiomů Peanovy aritmetiky. S pomocí formule Prπ tedy definujeme aritmetickou sémantiku modální logiky. Definice 5.3.2 Aritmetický překlad je libovolná funkce ∗ z množiny všech modálních formulí do množiny všech aritmetických sentencí, která splňuje podmínky: ◦ ⊥∗ = (0 = S(0)), ◦ funkce ∗ komutuje se všemi logickými spojkami, tj. (A→B)∗ = A∗ →B∗ atd., ◦ (PA)∗ = Prπ(A∗). Definice aritmetického překladu neříká nic o atomech, těm mohou být přiřazeny libovolné sentence. Existuje tedy více — nekonečně mnoho — aritmetických překladů. Jsou-li ale dány funkční hodnoty překladu na atomech, říkejme jim ohodnocení atomů, určuje definice překladu jednoznačně hodnoty na všech ostatních modálních formulích. Aritmetický překlad tedy hraje v aritmetické sémantice modální logiky stejnou úlohu jako pravdivostní ohodnocení v sémantice klasické výrokové logiky. A definice překladu hraje stejnou úlohu jako pravdivostní tabulky logických spojek: určuje, jak se ohodnocení formule spočítá z ohodnocení podformulí. Je-li A modální formule a ∗ aritmetický překlad, dovolme si o hodnotě A∗ funkce ∗ v bodě A mluvit jako o překladu formule A. Překlad jedné modální formule A je určen ohodnocením jen těch atomů, které se v A skutečně vyskytují. Neobsahuje-li formule A výrokové atomy, její překlad A∗ je táž aritmetická sentence pro všechny překlady ∗. Definice 5.3.3 Řekneme, že modální formule A je PA-platná, jestliže PA A∗ pro každý překlad ∗. Formule A je N-platná, jestliže N |= A∗ pro každý překlad ∗. Množinu všech PA-platných resp. N-platných formulí označme PA-Taut resp. N-Taut. Kromě „PA-platná a „N-platná by se také mohlo říkat PA-tautologie nebo N-tautologie. Každá PA-tautologie je samozřejmě zároveň N-tautologií. Definice modální tautologie je podobná jako v klasické výrokové logice: A je tautologie, právě když pro každé ohodnocení atomů atd. Jeden rozdíl je v tom, že uvažujeme současně dvě definice modální tautologie. Druhý je v tom, že z definice není zřejmé, zda množina všech tautologií (v tom či onom smyslu) je obecně rekurzívní nebo alespoň rekurzívně spočetná. O některých formulích ale můžeme rovnou rozhodnout, zda vyhovují našim definicím. Příklad 5.3.4 Je-li sentence 0 = S(0) v PA dokazatelná, pak v PA je každá sentence dokazatelná. Uvnitř PA je tento fakt také znám: PA Prπ(0 = S(0)) → Prπ(ϕ) pro 5.3 Logika dokazatelnosti 419 libovolnou sentenci ϕ. Tedy překlad modální formule P⊥→Pp je vždy dokazatelný, takže formule P⊥ → Pp je PA-platná i N-platná. Příklad 5.3.5 Nechť A je modální formule Pp → p. Vezměme překlad ∗, který atom p ohodnocuje sentencí ν z První Gödelovy věty. Pak A∗ je aritmetická sentence Prπ(ν) → ν. To je sentence, která není v PA dokazatelná: kdyby byla, pak by vzhledem k dokazatelnosti sentence ¬Prπ(ν) → ν platilo PA ν, což není pravda. Našli jsme překlad ∗, pro který platí PA A∗ . Tedy formule Pp → p není PA-tau- tologií. Příklad 5.3.6 Modální formule ¬P⊥ se bez ohledu na ohodnocení atomů přeloží na sentenci ¬Prπ(0 = S(0)), tj. na sentenci Con(π). O té víme, že ve struktuře N platí, ale v PA není dokazatelná. Formule ¬P⊥ je tedy N-platná, ale není PA-platná. Příklad 5.3.7 Formuli A = ¬P⊥ → ¬P¬P⊥ lze číst „není-li dokazatelný spor, pak není dokazatelné, že není dokazatelný spor . Tato formule vyjadřuje v modální logice Druhou Gödelovu větu. Jejím překladem je sentence Con(π)→¬Prπ(Con(π)), o které z cvičení 4 oddílu 4.5 víme, že je v PA dokazatelná. Formule A je tedy PA-platná. Opačná implikace ¬P¬P⊥ → ¬P⊥ je také PA-platná, což lze rychle zjistit dosazením formule ¬P⊥ za atom p do formule v příkladu 5.3.4. Vidíme, že modální logika umožňuje formulovat obecné fakty o dokazatelnosti v PA, tj. fakty nezávislé na konkrétních tvrzeních. „Je-li dokazatelný spor, pak je dokazatelná každá formule je příklad obecného faktu. Tvrzení „Bezoutova věta je v PA dokazatelná nepovažujeme za obecný fakt. Dvojí definice logické platnosti formule (PA-platná a N-platná) nám umožňuje odlišit obecné fakty o dokazatelnosti, které jsou pravdivé, od obecných faktů o dokazatelnosti, o jejichž pravdivosti „ví Peanova aritmetika. Příklad 5.3.6 ukazuje, že to není totéž. Mohli bychom si také klást obecnější otázku, totiž uvažovat dvě teorie T a S a ptát se, jaké obecné fakty o dokazatelnosti v teorii T ví teorie S. Aritmetická interpretace by tak byla zadána dvojicí S, Prτ , kde formule Prτ definuje dokazatelnost v teorii T a určuje, jak se překládají modální formule, a S určuje, ve které teorii se ptáme na dokazatelnost jejich překladů. Takto obecnou situací se zabývat nebudeme, ale vypůjčíme si z ní terminologii. Místo „A je PA-platná nebo „N-platná budeme také říkat, že formule A platí v aritmetické interpretaci PA, Prπ resp. v interpretaci N, Prπ . Čtenář by si ale neměl myslet, že modálních logik se vztahem k dokazatelnosti v axiomatických teoriích existuje velké množství, jiná pro každou aritmetickou interpretaci S, Prτ . Je sice pravda, že například Zermelova-Fraenkelova teorie množin ví o Peanově aritmetice, že je bezesporná, což Peanova aritmetika o sobě neví. Uvažujeme-li ale, co se o dokazatelnosti v T dá dokázat uvnitř téže teorie T, v mnoha případech dostaneme tutéž modální logiku, totiž tu, kterou zde prezentujeme. Korektní a dostatečně silné teorie se neliší ve svých znalostech o vlastní dokazatelnosti. 420 5 Některé neklasické logiky 5.3.2 Logické kalkuly V tomto pododdílu se pokusíme axiomatizovat množinu všech PA-platných formulí a množinu všech N-platných formulí pomocí vhodných kalkulů. V následujících pododdílech dospějeme mimo jiné k důkazům úplnosti těchto kalkulů vůči aritmetické sémantice. Začněme definicí fregovského kalkulu pro jednu z modálních logik. Definice 5.3.8 Axiomy modální logiky K4 jsou L1: všechny výrokové tautologie, a dále všechny modální formule tvaru L2: P(A → B) → (PA → PB), L3: PA → PPA. Logika K4 má odvozovací pravidla MP: A , A → B / B, Nec: A / PA. K4 je tradiční označení, viz např. [38]. Výrokovou tautologií myslíme modální formuli, která vznikne z nějaké klasické výrokové tautologie substitucí modálních formulí za její atomy. Vzpomeňme si, že podobně jsme v oddílu 3.2 (na str. 157) definovali predikátové formule, které jsou tautologiemi. Například p → (Pq → p) a ⊥ → p jsou modální formule, které jsou tautologiemi. Také ¬A → (A → ⊥) je výroková tautologie bez ohledu na volbu formule A. Když ∗ je libovolný překlad a modální formule A je PA-platná, tj. platí PA A∗ , pak díky podmínce D1 platí i PA Prπ(A∗). To znamená, že množina všech PA-platných modálních formulí je uzavřena na pravidlo Nec. Je-li A modální formule, která je výrokovou tautologií, pak A∗ je predikátová sentence, která je rovněž tautologií (v před chvílí zmíněném „predikátovém smyslu), a je tedy dokazatelná v PA. Také překlady axiomů L2 a L3 jsou v PA dokazatelné, to plyne bezprostředně z podmínek D2 a D3. Z toho je jasné, že logika K4 je korektní vůči interpretaci PA, Prπ . Kdykoliv je dokázána nějaká modální formule A, můžeme díky pravidlu Nec usoudit, že platí i PA. To ale neznamená, že implikace A→PA musí být PA-platná. Vezměme sentenci ν z První Gödelovy věty. Kdyby platilo PA ν → Prπ(ν), pak by vzhledem k dokazatelnosti sentence ν → ¬Prπ(ν) platilo i PA ¬ν. To ale není pravda. Vidíme, že sentence ν je aritmetickým protipříkladem na modální formuli p→Pp. Tento příklad zároveň ukazuje, že věta o dedukci pro logiku K4 neplatí a neplatí pro žádnou modální logiku, která je korektní vůči interpretaci PA, Prπ a má mezi odvozovacími pravidly pravidlo Nec. Pravidlo Nec se anglicky nazývá rule of necessitation, česky snad pravidlo přidání nutnosti. Hraje v modální logice podobnou úlohu, jako pravidlo generalizace v predikátové logice, a někdy se mu i tak říká. Ukažme si několik příkladů důkazů v našem kalkulu. 5.3 Logika dokazatelnosti 421 1: ⊥ → p ; L1 2: P(⊥ → p) ; Nec 3: P(⊥ → p) → (P⊥ → Pp) ; L2 4: P⊥ → Pp ; MP. V druhém důkazu si už dovolíme malé přeskakování. 1: A → (B → A & B) ; L1 2: P(A → (B → A & B)) ; Nec 3: PA → P(B → A & B) ; 2, L2 4: P(B → A & B) → (PB → P(A & B)) ; L2 5: PA & PB → P(A & B) ; 3, 4. Nejen s pojmem tautologie, ale i s pojmem tautologický důsledek můžeme zacházet analogicky, jako když jsme v oddílu 3.2 konstruovali důkazy v kalkulu HK. Formule (5) je tautologickým důsledkem formulí (3) a (4). Jinak řečeno, formuli (5) lze snadno odvodit z formulí (3) a (4) bez užití axiomů L2 a L3 a pravidla Nec, neboť formule (3) → ((4) → (5)) je výrokovou tautologií čili instancí schématu L1. K formuli (5) ještě poznamenejme, že opačnou implikaci P(A&B)→PA&PB lze v logice K4 dokázat také, naopak nelze dokázat analogickou formuli pro disjunkci. O tom jsou některá cvičení. Podívejme se ještě na jeden důkaz v logice K4. Začněme s implikací 1: P(p ≡ ¬Pp) → (Pp → P¬Pp) ; L2. Protože zápis p≡¬Pp je zkratkou pro konjunkci (p→¬Pp)&(¬Pp→p), v odvození formule (1) jsme kromě axiomu L2 použili také schéma P(A&B)→PA. V odvození řádku (8) níže využijeme i opačnou implikaci ekvivalence p ≡ ¬Pp. Označme D předpoklad P(p ≡ ¬Pp) implikace (1). 2: ¬Pp → (Pp → ⊥) ; L1 3: P¬Pp → (PPp → P⊥) ; 2, Nec, dvakrát L2 4: D → (Pp → (PPp → P⊥)) ; 1, 3 5: Pp → PPp ; L3 6: D → (¬P⊥ → ¬Pp) ; 4, 5. 422 5 Některé neklasické logiky Dosud napsaný důkaz je vlastně modální simulací důkazu První Gödelovy věty a formule (6) vyjadřuje část První Gödelovy věty: když nějaká sentence tvrdí svou vlastní nedokazatelnost, pak, pokud ovšem není dokazatelný spor, není dokazatelná. K plnému znění První Gödelovy věty chybí tvrzení, že existuje sentence, která tvrdí svou vlastní nedokazatelnost. Pochopitelně lze simulovat i důkaz Druhé Gödelovy věty: 7: PD → (P¬P⊥ → P¬Pp) ; 6, Nec, dvakrát L2 8: D → (P¬Pp → Pp) ; L2 9: D → PD ; L3 10: D → (P¬P⊥ → Pp) ; 9, 7, 8 11: D → (¬P⊥ → ¬P¬P⊥) ; 6, 10. Tím jsme skoro dokázali formuli ¬P⊥ → ¬P¬P⊥, která nás zajímá a o které z příkladů k aritmetické sémantice víme, že je PA-platná. Bohužel předpokladu D se zbavit nelze, formule ¬P⊥ → ¬P¬P⊥ není v logice K4 dokazatelná. Z toho je jasné, že chceme-li mít modální logiku úplnou vzhledem k aritmetické interpretaci, musíme k axiomům nebo pravidlům logiky K4 přidat ještě něco. Jednou z možností je přidat odvozovací pravidlo, které umožňuje odvodit formuli A, pokud je dokázána implikace D → A, kde jako v řádku (11), D je autoreferenční předpoklad o nějakém atomu p, který se nevyskytuje v A. O takovém pravidlu, pravidlu autoreference, se zmíníme v části o kripkovské sémantice. Další možnosti, jak rozšířit logiku K4, jsou přidat k ní buď Löbův axiom L4, nebo Löbovo pravidlo LR: L4: P(PA → A) → PA, LR: PA → A / A. Rozmyslíme si, že obě možnosti jsou ekvivalentní. Všimněme si ještě, že jak Löbův axiom, tak Löbovo pravidlo je modálním vyjádřením Löbovy věty: je-li implikace Prπ(ϕ) → ϕ dokazatelná, pak je dokazatelná i sentence ϕ. Löbův axiom je vlastně formalizací Löbova pravidla ve stejném smyslu, jako je axiom L3 formalizací pravidla Nec. Lemma 5.3.9 Množina všech formulí dokazatelných v rozšíření logiky K4 o Löbův axiom L4 je uzavřena na Löbovo pravidlo LR. V rozšíření logiky K4 o Löbovo pravidlo lze dokázat všechny instance Löbova axiomu. Rozšíření logiky K4 o Löbův axiom nebo o Löbovo pravidlo jsou tedy spolu ekvivalentní. Důkaz Je-li již dokázána implikace PA → A, lze použitím pravidla Nec získat předpoklad Löbova axiomu, a tedy i formuli PA. Tato formule a opětovné užití implikace PA → A dává A. Naopak, předpokládejme, že máme dokázat formuli P(PA → A) → PA. Označme ji B. Stačí v logice K4 dokázat formuli PB → B a pak užít pravidlo LR: 5.3 Logika dokazatelnosti 423 1: PB → (PP(PA → A) → PPA) ; L2 2: P(PA → A) → PP(PA → A) ; L3 3: PB → (P(PA → A) → PPA) ; 1, 2 4: P(PA → A) → (PPA → PA) ; L2 5: PB → (P(PA → A) → PA) ; 3, 4 6: B ; 5, LR. QED Nyní už můžeme oficiálně definovat logiku dokazatelnosti a dokázat její aritmetickou korektnost. Ještě si uvědomme, že vzhledem k tomu, že uvažujeme současně dvě různé aritmetické interpretace, potřebujeme dvě modální logiky. Definice 5.3.10 Modální logika GL, logika dokazatelnosti, vznikne přidáním Löbova axiomu L4 k logice K4. Modální logika GLω má jediné odvozovací pravidlo modus ponens a jejími axiomy jsou všechny formule dokazatelné v logice GL a dále všechny formule tvaru PA → A. Věta 5.3.11 (o korektnosti vůči aritmetické sémantice) (a) Každá modální formule dokazatelná v (kalkulu z definice 5.3.10 pro logiku) GL je PA-platná. (b) Každá modální formule dokazatelná v logice GLω je N-platná. Důkaz Platnost axiomů L1–L3 a korektnost pravidel MP a Nec vůči interpretaci PA, Prπ jsme již konstatovali. K důkazu korektnosti logiky GL zbývá ověřit PA-platnost Löbova axiomu L4. Vzhledem k lemmatu 5.3.9 stačí zdůvodnit, že množina všech PA-platných modálních formulí je uzavřena na pravidlo LR. To je ale přesně to, co věta 5.3.1 tvrdí pro formuli τ := π (tj. pro přirozenou definici axiomů Peanovy aritmetiky). Předpokládejme nyní, že N |= Prπ(A∗) pro nějaký překlad nějaké modální formule A. Pak platí PA A∗ (viz podmínku Def na str. 349), a protože PA je korektní teorie, musí platit i N |= A∗ . Tedy N |= Prπ(A∗) → A∗ . Tím je dokázána N-platnost schématu PA→A a dokončen důkaz věty o korektnosti obou modálních logik vůči aritmetickým interpretacím. QED Postup přijmout jako axiomy logiky GLω (mimo jiné) všechny formule dokazatelné v logice GL je oprávněn faktem, že množina všech formulí dokazatelných v logice GL je algoritmicky rozhodnutelná. To dokážeme v následujícím pododdílu. V logice GL, a tedy ovšem i v GLω , lze snadno dokázat formuli ¬P⊥→¬P¬P⊥, stačí volit A := ⊥ v axiomu L4. V logice GLω lze navíc dokázat formuli ¬P⊥, a tedy i formuli ¬P¬P⊥; stačí volit A := ⊥ ve schématu PA → A. Víme ale, že formule ¬P⊥ není PA-platná, a tedy není v logice GL dokazatelná. Z toho je zároveň vidět, že schéma PA → A není PA-platné, což už ostatně víme z jednoho z příkladů. 424 5 Některé neklasické logiky Pravidlo Nec není v logice GLω z dobrého důvodu přípustné. Jeho použitím na již dokázanou formuli ¬P⊥ bychom dostali P¬P⊥, což je formule, která jednak není N-platná, jednak je ve sporu s již dokázanou formulí ¬P¬P⊥. Modální logiky, které jsou definovány axiomatickými schématy, mezi nimiž je alespoň L1 a L2, a schematickými odvozovacími pravidly, mezi nimiž je alespoň MP a Nec, se nazývají normální modální logiky. Logika GL je, logika GLω není normální modální logika. Schématu PA → A se říká schéma reflexe. Toto schéma lze v přirozené řeči považovat za korektní a v několika modálních logikách vystupuje jako axiom. Jeho N-platnost se odvolává na fakt, že struktura N je modelem Peanovy aritmetiky. To je argument, který není možno formalizovat uvnitř PA. Peanova aritmetika ví, že ve sporné teorii je dokazatelné cokoliv, ale neví o sobě, je-li bezesporná. Nemůže tedy s jistotou tvrdit, že jen pravdivé sentence jsou v ní dokazatelné. Ve skutečnosti to ovšem je pravda. Až dokážeme úplnost logiky GLω vůči aritmetické sémantice, budeme zároveň vědět, že schéma reflexe je vlastně jediný obecný fakt o dokazatelnosti, který je platný ve skutečnosti, jehož platnost ale není známa uvnitř Peanovy aritmetiky.E Pp, p, PPp ⇒ Pp Pp ⇒ PPp Pp ⇒ Pp, ⊥ Pp, ¬Pp ⇒ ⊥ p ⇒ p Pp, p → ¬Pp, p ⇒ ⊥ PPp, P(p → ¬Pp), Pp ⇒ P⊥ Pp, P(p → ¬Pp) ⇒ P⊥ P(p → ¬Pp) ⇒ Pp, ¬P⊥ P(p → ¬Pp), ¬P⊥ ⇒ ¬Pp Obrázek 5.3.1: Důkaz v gentzenovském kalkulu pro logiku GL Gentzenovský kalkulus pro logiku GL vznikne přidáním jediného (!) modálního pravidla ke gentzenovskému výrokovému systému z kapitoly 1: P-r: Γ, PΓ, PA ⇒ A / PΓ ⇒ PA , kde PΓ značí množinu { PB ; B ∈ Γ }. Všimněme si, že pravidlo P-r je použitelné jen tak, že před jeho použitím i po něm je sukcedent jednoprvkový. V tom se pravidlo P-r podobá kritickým pravidlům intuicionistického gentzenovského kalkulu. Dále si všimněme, že následující jednodušší (odvozená) modální pravidla lze snadno simulovat pomocí pravidla P-r a několikanásobného užití pravidla W: PΓ ⇒ A PΓ ⇒ PA Γ ⇒ A PΓ ⇒ PA . Pamatujme si tedy, že pravidlo P-r umožňuje odstranit z antecedentu sekventu libovolnou formuli B, pokud je pravda, že v antecedentu je i formule PB nebo že ji tam přidáme, a pokud současně v sukcedentu je jediná formule A, kterou musíme 5.3 Logika dokazatelnosti 425 nahradit formulí PA. Přitom byla-li v antecedentu formule PA, je povoleno ji odstranit bez náhrady. Je vidět, že pravidlo P-r i jeho odvozené varianty zachovávají podformule. Na obrázku 5.3.1 jsme na ukázku převedli do gentzenovského kalkulu již dříve uvedený fregovský důkaz modální verze První Gödelovy věty. V tomto důkazu je pravidlo P-r užito dvakrát. Jednou má formule A tvar Pp, podruhé je užito odvozené pravidlo Γ ⇒ A / PΓ ⇒ PA a formule A má tvar ⊥. V důkazu je také jednou užito pravidlo řezu na formuli PPp. Protože v tomto oddílu mezi základní logické symboly počítáme i symbol ⊥, předpokládáme, že v našem kalkulu máme také pravidlo příslušné k tomuto symbolu, totiž pravidlo ⊥-l: / Γ, ⊥ ⇒ ∆ , které jsme dosud explicitně neformulovali, ale vlastně o něm byla řeč ve cvičeních oddílu 1.4. V důkazu z obrázku 5.3.1 se toto pravidlo neuplatnilo. Žádné pravé pravidlo pro symbol ⊥ neexistuje, stejně jako neexistuje žádné levé pravidlo pro modalitu. Nepokoušíme se sestrojit gentzenovský kalkulus pro logiku GLω , bez toho se v dalším obejdeme. Věta 5.3.12 Je-li formule A dokazatelná ve fregovském kalkulu pro logiku GL, pak sekvent ⇒ A je dokazatelný v gentzenovském kalkulu. Naopak, je-li sekvent Γ ⇒ ∆ dokazatelný v gentzenovském kalkulu pro logiku GL, pak formule Γ → ∆ je dokazatelná ve fregovském kalkulu. Důkaz V následujících třech řádcích je sekvent vpravo vždy odvoditelný jediným krokem dle pravidla P-r ze sekventu vlevo: P(A → B), PA, A → B, A, PB ⇒ B / P(A → B), PA ⇒ PB , PA, A, PPA ⇒ PA / PA ⇒ PPA , P(PA → A), PA → A, PA ⇒ A / P(PA → A) ⇒ PA . Ve všech případech lze sekvent vlevo velmi rychle dokázat, a to bez dalšího užití modálního pravidla. V druhém případě máme dokonce iniciální sekvent. Ze sekventu vpravo lze jedním nebo dvěma kroky dokázat axiom L2 resp. L3 resp. L4. Simulaci pravidel MP a Nec přenecháváme čtenáři. Simulace pravidla P-r ve fregovském kalkulu je také jednoduchá. Předpokládejme, že sekvent PΓ ⇒ PA byl jedním krokem odvozen ze sekventu Γ, PΓ, PA ⇒ A a že již máme fregovský důkaz formule Γ& PΓ&PA→A. Tento důkaz můžeme přepracovat (doplnit) na důkaz formule PΓ → PA: 1: Γ & PΓ & PA → A 2: Γ & PΓ → (PA → A) 3: P( Γ & PΓ) → P(PA → A) ; Nec, L2 4: P( Γ & PΓ) → PA ; L4 426 5 Některé neklasické logiky 5: PΓ & PPΓ → PA 6: PΓ → PA ; L3. V odvození řádku 5 jsme využili již známý fakt, že modalita nutnosti komutuje s konjunkcí (viz náš druhý příklad důkazu v kalkulu pro logiku GL). V posledním řádku jsme z premisy implikace odstranili formule PPB, kde B ∈ Γ. Každá z nich je totiž zbytečná, neboť vyplývá z formule PB, která se v premise implikace vyskytuje také. QED 5.3.3 Kripkovská sémantika V této části ukážeme, že logika dokazatelnosti má kromě aritmetické sémantiky také uspokojivou kripkovskou sémantiku v mnohém podobnou sémantice intuicionistické logiky. Definici dobrého uspořádání lze snadno rozšířit i na uspořádání, které není lineární, nebo dokonce na libovolnou relaci. Tak dostaneme pojem fundované relace. Relace R ⊆ A2 je fundovaná na množině A, jestliže pro každou neprázdnou podmnožinu Y ⊆ A existuje prvek a ∈ Y takový, že ∀x ∈ A(x R a ⇒ x /∈ Y ). Jinými slovy, každá neprázdná podmnožina Y množiny A má R-minimální prvek. Každá fundovaná relace je automaticky antireflexivní: kdyby pro nějaké x platilo x R x, množina {x} by neměla R-minimální prvek. Naopak, každá tranzitivní a antireflexivní relace na konečné množině je fundovaná. Definice 5.3.13 Řekneme, že dvojice W, R je kripkovský rámec (pro logiku dokazatelnosti), jestliže W = ∅ a R ⊆ W2 je tranzitivní relace taková, že relace R−1 je fundovaná. Požadujeme tedy, aby každá neprázdná podmnožina množiny W měla maximální prvek vzhledem k relaci R. Domluvme se, že stejně jako v oddílu o intuicionistické logice mluvíme o prvcích rámce jako o vrcholech, případný nejmenší vrchol je kořen, maximální vrcholy jsou listy. Relace R je relace dosažitelnosti. Definice 5.3.14 Řekneme, že trojice W, R, − je kripkovský model (pro logiku dokazatelnosti), jestliže W, R je kripkovský rámec a relace − (pravdivostní relace) splňuje podmínky: ◦ x − A → B, právě když x −/ A nebo x − B, a podobně pro všechny ostatní logické spojky (pro ⊥ to znamená x −/ ⊥), ◦ x − PA, právě když ∀y ∈ W(x R y ⇒ y − A). Zápis x − A čteme stejně jako v intuicionistické logice „formule A je splněna ve vrcholu x nebo „x splňuje (formuli) A . Modalita nutnosti se chová podobně jako implikace a negace v intuicionistické logice: pravdivostní hodnota formule PA 5.3 Logika dokazatelnosti 427 ve vrcholu x závisí na pravdivostní hodnotě formule A ve vrcholech dosažitelných z x (ve světech možných z hlediska x). Naproti tomu implikace a negace se chovají „klasicky : pravdivostní hodnota formule ¬A nebo A → B ve vrcholu x závisí jen na pravdivostních hodnotách formulí A a B v témže vrcholu x. Negace formule A je v x splněna, právě když A v x splněna není. Definice neříká nic o ohodnocení výrokových atomů. Pravdivostní hodnota atomu p ve vrcholu x může být zvolena libovolně a bez ohledu na ohodnocení atomu p v ostatních vrcholech. V kripkovské sémantice logiky dokazatelnosti tedy na rozdíl od intuicionistické logiky nemáme žádnou podmínku perzistence. Příklad 5.3.15 Vzhledem k tomu, že negace se vyčísluje klasicky, můžeme kripkovský model graficky znázornit tak, že ke každému vrcholu připíšeme například p nebo ¬p podle toho, zda atom p v onom vrcholu je nebo není splněn, viz obrázek 5.3.2. Z vrcholu b není dosažitelný žádný vrchol (ani b, relace dosažitelnosti je antireflexivní), takže b − PA pro libovolnou formuli A. Totéž lze říci i o vrcholu c. Z a jsou dosažitelné vrcholy b a c, a v obou je splněna formule p → r, tedy a − P(p → r). Platí také a − PP⊥, protože formule P⊥ je splněna ve všech (obou) vrcholech dosažitelných z a. Připomeňme, že QA je zkratka pro formuli ¬P¬A. V našem modelu platí například b −/ Qp a a − Qp. a b c ƒ ƒ ƒƒo   U p, r ¬p, ¬r p, ¬r Obrázek 5.3.2: Kripkovský model pro logiku dokazatelnosti Řekneme, že formule A platí v modelu W, R, − , jestliže A je splněna v každém vrcholu x z W. Sekvent Γ ⇒ ∆ platí v modelu W, R, − , jestliže v každém vrcholu x ∈ W, ve kterém jsou splněny všechny formule z Γ, je splněna také některá formule z ∆. Řekneme, že formule A nebo sekvent Γ ⇒ ∆ platí v kripkovském rámci W, R , jestliže formule A resp. sekvent Γ ⇒ ∆ platí v každém modelu W, R, − , tj. jestliže A či Γ ⇒ ∆ platí při každé volbě pravdivostní relace − na W, R . Příklad 5.3.16 Formule r → p, P(r → p) a P(p → r) platí, formule p → r neplatí v modelu z obrázku 5.3.2. Příklad 5.3.17 V jakémkoliv modelu W, R, − je formule P⊥ splněna ve vrcholu x právě tehdy, když z x není dosažitelný žádný (jiný) vrchol, tj. když x je maximálním prvkem (listem) v rámci W, R . Formule ¬P⊥ neplatí v žádném rámci, protože z fundovanosti plyne, že nějaké maximální prvky existovat musí. Relace R může být i prázdná. V tom případě v rámci W, R platí formule P⊥. 428 5 Některé neklasické logiky Definice 5.3.18 Nechť W, R, − je kripkovský model pro logiku dokazatelnosti. Řekneme, že vrchol x ∈ W je ∆-korektní, kde ∆ je množina modálních formulí, jestliže x splňuje formuli PD → D, kdykoliv PD je podformule některé formule v množině ∆. Vrchol x ∈ W je A-korektní, kde A je modální formule, jestliže x je {A}-korektní. Příklad 5.3.19 V modelu z obrázku 5.3.2 vrchol b je (Pp)-korektní. Vrchol b ale není (P¬p)-korektní, protože platí b − P¬p a b −/ ¬p. Vrchol a není (P(p→r))-korektní, je (P(r → p))-korektní nebo třeba (P(r → p) & ¬P⊥)-korektní. Vrchol a je také (Qp)- i (Q¬r)-korektní, není (Q(p & ¬r))-korektní.       d d d q a0       d d d q a0 q T a1 Obrázek 5.3.3: Přidání nového kořenu ke kripkovskému modelu Bohužel, termín „korektní je v této kapitole trochu přetížen. Korektní pravidla, axiomy a kalkuly, a teď ještě korektní vrcholy kripkovských modelů. Nyní směřujeme k důkazu korektnosti logik GL a GLω vůči kripkovské sémantice. Důkaz pro logiku GLω je o dost komplikovanější a budeme v něm potřebovat lemma, které se týká situace jako na obrázku 5.3.3. Nalevo je kripkovský rámec s kořenem a0, rámec vpravo je z něj utvořen přidáním nového kořenu a1. Dosavadní kořen a0 je v novém rámci dosažitelný jen z vrcholu a1. Lemma 5.3.20 Nechť A je modální formule, W, R, − je kripkovský model s kořenem a0 a a0 je A-korektní vrchol modelu W, R, − . Nechť rámec W , R je utvořen z rámce W, R přidáním nového kořenu a1 jako na obrázku 5.3.3. Nechť pravdivostní relace − rozšiřuje relaci − tak, že každý výrokový atom má v a1 tutéž pravdivostní hodnotu, jako měl (a má stále) v a0. Pak A má v a0 i v a1 tutéž pravdivostní hodnotu a nový kořen a1 je A-korektní. Důkaz Dokážeme indukcí podle složitosti podformule B formule A, že B má v a0 a v a1 tutéž pravdivostní hodnotu, a pokud B začíná modalitou, neporušuje A-korektnost vrcholu a1. Pro atomy je to pravda, tak byly hodnoty atomů v a1 zvoleny. Je-li B sestavena pomocí některé logické spojky z formulí, které mají v a0 i v a1 stejnou pravdivostní hodnotu, pak i B má v a0 i v a1 stejnou pravdivostní hodnotu. Nechť B začíná modalitou, B = PD. Když a0 − ¬PD, podle definice pravdivostní relace to znamená, že pro nějaký vrchol x dosažitelný z a0 platí x −/ D. Vrchol x je dosažitelný i z a1, tedy a1 − ¬PD. Když a0 − PD, pak a0 − D (vzhledem ke korektnosti vrcholu a0), a1 − PD (protože D je splněna ve všech vrcholech dosažitelných z a1) a a1 − D (protože, podle indukčního předpokladu, D má 5.3 Logika dokazatelnosti 429 stejnou hodnotu v a0 i v a1). V obou případech má formule PD stejnou pravdivostní hodnotu v a0 i v a1 a neporušuje A-korektnost vrcholu a1. QED Věta 5.3.21 (korektnost vůči kripkovské sémantice) (a) Když GL A, pak formule A platí v každém kripkovském modelu. (b) Když GLω A, pak je formule A splněna v každém A-korektním vrcholu libovolného kripkovského modelu. Důkaz Uvažujme Löbův axiom L4. Nechť A je modální formule a nechť x je vrchol nějakého kripkovského modelu W, R, − . Předpokládejme, že x −/ PA. Chceme dokázat x −/ P(PA → A). Uvažujme množinu Y všech vrcholů dosažitelných z x, ve kterých formule A není splněna: Y = { y ∈ W ; x R y & y −/ A }. Z x −/ PA plyne, že Y = ∅. Díky fundovanosti relace R existuje nějaký R-maximální prvek množiny Y . Označme y0 některý takový maximální vrchol. Uvažujme libovolný vrchol z dosažitelné z vrcholu y0. Díky tranzitivitě relace R platí x R z, tj. vrchol z je dosažitelný z x. Kdyby platilo z −/ A, měli bychom z ∈ Y , tedy spor s tím, že vrchol y0 je maximální v množině Y . Tedy z − A. Toto platí pro každý vrchol z dosažitelný z vrcholu y0 (netvrdíme ovšem, že takové vrcholy z existují). Tedy y0 − PA. Vrchol y0 je dosažitelný z vrcholu x a splňuje formuli PA & ¬A. Tedy není pravda, že implikace PA→A je splněna ve všech vrcholech dosažitelných z x, a tedy opravdu x −/ P(PA → A). Dokázali jsme, že (každý) Löbův axiom je splněn v každém vrcholu x libovolného kripkovského modelu. Löbův axiom tedy platí v každém kripkovském modelu. Ověření platnosti ostatních axiomů logiky GL přenecháváme čtenáři. Důkaz bodu (a) lze uzavřít konstatováním, že množina všech modálních formulí splněných v daném vrcholu x daného modelu W, R, − je uzavřena na pravidlo MP a množina všech modálních formulí platných v daném modelu W, R, − je navíc uzavřena na pravidlo Nec. Nechť nyní A1, . . , Ak(=A) je důkaz formule A v logice GLω . Nechť W, R, − je libovolný kripkovský model a a0 jeho A-korektní vrchol. Chceme ověřit a0 − A. Jako obvykle můžeme předpokládat, že a0 je kořen rámce W, R . Potíž je v tom, že nemůžeme rovnou dokázat indukcí podle j, že a0 − Aj. Nevíme totiž, zda v a0 jsou splněny všechny axiomy PD → D použité v důkazu. Z korektnosti vrcholu a0 plyne pouze, že to platí, je-li PD podformulí formule A. Potřebovali bychom vědět, že a0 je nejen A-korektní, ale dokonce {A1, . . , Ak}-korektní. Vezměme v úvahu všechny formule PD vyskytující se v důkazu A1, . . , Ak. Zvolme číslo n větší, než je jejich počet. Použijme n-krát lemma 5.3.20 o přidání nového kořenu. To znamená, že k modelu přidáme n nových vrcholů a1, . . , an, vrchol ai prohlásíme za dosažitelný z vrcholů aj pro j > i, a jen z nich, a každému atomu přidělíme v nových vrcholech a1, . . , an tutéž pravdivostní hodnotu, jakou měl v a0. Vezměme libovolnou formuli PD vyskytující se v důkazu A1, . . , Ak. Pokud PD je zároveň podformulí formule A, víme o ní z lemmatu, že cestou proti směru šipek od a0 k an nemění pravdivostní hodnotu. Pokud PD není podformulí formule A, 430 5 Některé neklasické logiky cestou od a0 k an pravdivostní hodnotu změnit může, ale z definice pravdivostní relace vyplývá, že jen z PD na ¬PD, a tedy nejvýše jednou. Protože n je větší než počet všech takových formulí PD, existuje i takové, že od ai k ai+1 se nestane nic: žádná formule PD vyskytující se v důkazu A1, . . , Ak nezmění pravdivostní hodnotu. Snadno se ověří, že v tom případě vrchol ai je {A1, . . , Ak}-korektní. Indukcí podle j dostaneme, že ai splňuje každou formuli Aj, tedy ai − A. Lemma říká, že formule A má v ai a v a0 stejnou pravdivostní hodnotu, tedy a0 − A. QED Úplnost obou systémů vůči kripkovské sémantice lze dokazovat různým způsobem. Ve Smory´nského knize [80] je důkaz, jehož vedlejším produktem je důkaz úplnosti i pro logiku K4 a případně i jiné modální systémy. V Solovayově článku [86] je kratší důkaz jen pro logiku dokazatelnosti. My se přidržíme postupu paralelního s předchozím oddílem. To nám umožní využít některé zkušenosti, které jsme udělali s intuicionistickou logikou. Na rozdíl od před chvílí uvedeného důkazu korektnosti logik GL a GLω , ve kterém jsme pracovali s fregovskými kalkuly, nyní dáváme přednost (vzhledem k větě 5.3.12 ekvivalentnímu) gentzenovskému kalkulu pro logiku GL. Úplnost logiky GLω (tj. úplnost jejího fregovského kalkulu) pak bude snadným důsledkem úplnosti logiky GL.E Věta 5.3.22 (úplnost logiky GL) Je-li libovolný sekvent délky n dokazatelný v logice dokazatelnosti, pak má také bezřezový důkaz hloubky O(n3 ). Není-li dokazatelný, pak má kripkovský protipříklad hloubky nejvýše n, v němž má každý vrchol nejvýše n následníků. Gentzenovský kalkulus pro logiku GL je tedy úplný vůči kripkovské sémantice intuicionistické logiky a platí pro něj věta o eliminovatelnosti řezů. Intuicionistická výroková logika má vlastnost FMP. Platí PA-Taut ∈ PSPACE, tj. úloha rozhodnout, zda daný sekvent je logicky platný, je rozhodnutelná v polynomiálním prostoru. Důkaz Důkaz ponecháváme na čtenáři, protože je velmi podobný příslušnému důkazu v intuicionistické logice a opírá se o dvě lemmata podobná lemmatům 5.1.7 a 5.1.10. Z prvního lemmatu uveďme pouze vzorek: sekvent Γ, A→B ⇒ ∆ platí ve všech kripkovských modelech, právě když oba sekventy Γ ⇒ ∆, A a Γ, B ⇒ ∆ platí ve všech kripkovských modelech, z kterého by mělo být jasné, jak je třeba formulovat zbývajících sedm případů (logická spojka taková nebo onaká, a to v antecedentu nebo v sukcedentu). Rozdíl oproti lemmatu 5.1.1 je v tom, že zkoumanou formuli nikdy v sekventu neponecháváme, takže vícenásobným užitím tohoto lemmatu je otázka, zda daný sekvent platí ve všech kripkovských modelech, převedena na tutéž otázku týkající se nikoliv uzavřeného sekventu (ten pojem zde odpadá), nýbrž na otázku týkající se sekventu, v němž jsou jen atomy a formule začínající modalitou. Druhé lemma říká, že je-li PΓ, Π ⇒ P∆, Λ sekvent takový, že množiny Π a Λ obsahují pouze atomy, pak sekvent PΓ, Π ⇒ P∆, Λ platí ve všech kripkovských 5.3 Logika dokazatelnosti 431 modelech, právě když (PΓ∪Π)∩(P∆∪Λ) = ∅, nebo existuje formule A ∈ ∆ taková, že sekvent Γ, PΓ, PA ⇒ A platí ve všech kripkovských modelech. Důkaz je úplně stejný jako v případě lemmatu 5.1.10. Poznamenejme, že právě z tohoto lemmatu lze vypozorovat formulaci pravidla P-r. Na obou lemmatech lze stejně jako v intuicionistické logice založit algoritmus, který rozhodne o logické platnosti daného sekventu, a to se stejným odhadem na paměťový prostor. I zde platí, že algoritmus k danému sekventu vlastně buď sestrojí konečný kripkovský protipříklad, nebo nalezne jeho bezřezový důkaz v gentzenovském kalkulu. Více podrobností o důkazu je v článku [90]. QED Věta 5.3.23 (úplnost logiky GLω ) Modální formule A je dokazatelná ve fregovském kalkulu pro logiku GLω , právě když je splněna ve všech A-korektních vrcholech libovolného kripkovského modelu. Úloha N-Taut je také v PSPACE. Důkaz Nechť A je libovolná modální formule. Sestavme seznam PD1, . . , PDn všech jejích podformulí začínajících modalitou. Libovolný vrchol libovolného kripkovského modelu je A-korektní, právě když splňuje konjunkci n i=1(PDi →Di). To znamená, že podmínky (ii) a (iii) v následujícím seznamu jsou ekvivalentní: (i) GLω A, (ii) A je splněna v každém A-korektním vrcholu libovolného kripkovského modelu, (iii) n i=1(PDi → Di) → A platí v každém kripkovském modelu, (iv) GL n i=1(PDi → Di) → A. Implikace (i) ⇒ (ii) je již dokázaná věta o korektnosti logiky GLω . Podmínky (iii) a (iv) jsou ekvivalentní podle věty o úplnosti pro logiku GL. Platí také implikace (iv) ⇒ (i): formuli A lze dokázat z formule v (d) a z předpokladů PDi → Di bez užití pravidla Nec, tedy ji lze dokázat v kalkulu pro logiku GLω . Tím jsme ověřili, že všechny čtyři podmínky jsou ekvivalentní. Implikace (ii) ⇒ (i) je to, co se mělo dokázat — úplnost logiky GLω . Formuli v (iv) lze sestrojit z A v logaritmickém prostoru. Tedy ekvivalence (i) ⇔ (iv) je vlastně převodem úlohy N-Taut na úlohu PA-Taut, a úloha N-Taut je tedy v třídě PSPACE. QED Zbývající část tohoto oddílu lze číst selektivně, zejména již máme pohromadě vše, co potřebujeme k důkazu věty 5.3.30 o aritmetické úplnosti GL a GLω . To je upozornění pro netrpělivého čtenáře. V souvislosti se sémantikou, ať už aritmetickou nebo kripkovskou, jsme se nikde nezmínili o kompaktnosti. Možná, že tady je určitý prostor pro další výzkum. Nevíme, zda pro aritmetické interpretace N, Prπ a PA, Prπ věta o kompaktnosti platí, dokonce si nejsme jisti, jak by se měla formulovat. Je ale známo, že pro kripkovskou sémantiku věta o kompaktnosti neplatí, viz cvičení. V tomto pododdílu o kripkovské sémantice se ještě chceme zmínit o některých důsledcích věty o úplnosti logik GL a GLω vůči kripkovské sémantice a také dokázat, 432 5 Některé neklasické logiky že obě úlohy jsou PSPACE-kompletní. V následujícím pododdílu se zmíníme o některých důsledcích věty o eliminovatelnosti řezů pro logiku GL. Definujme formuli ·PA, kde A je libovolná modální formule, jako zkratku za formuli A & PA. Formuli ·PA čteme „silně nutně A . Symbol ·P je odvozená modalita, říkejme jí operátor silné nutnosti. Je-li nějaká aritmetická sentence ϕ (například Con(π) → ¬Prπ(Con(π))) v PA dokazatelná s pomocí předpokladu, že nějaká jiná sentence (například ν) splňuje nějakou autoreferenční podmínku (v našem případě ν ≡ ¬Prπ(ν)), pak ϕ je dokazatelná i bez tohoto předpokladu. V modální logice tento fakt vystihuje pravidlo autoreference: DiR: ·P(q ≡ B) → A / A, kde atom q se nevyskytuje ve formuli A, a navíc všechny jeho výskyty ve formuli B jsou v rozsahu platnosti některé modality P. Zkratka DiR znamená diagonalization rule. Místo „atom q se vyskytuje jen v rozsahu platnosti některé modality říkejme také, že atom q se vyskytuje pouze v modálním kontextu. Z následující věty a ze cvičení plyne, že kalkulus vzniklý přidáním pravidla DiR k logice K4 je ekvivalentní s logikou GL. Věta 5.3.24 (de Jonghova) Když GL ·P(q ≡B)→A a atom q se ve formuli B vyskytuje jen v modálním kontextu a nevyskytuje se ve formuli A, pak GL A. Logika GL je tedy uzavřena na pravidlo DiR. Důkaz Předpokládejme GL A. Podle věty o úplnosti má formule A nějaký kripkovský protipříklad K = W, R, − . Změníme-li kdekoliv v modelu K ohodnocení atomu q, nebude to mít vliv na pravdivostní hodnoty formule A, protože ta atom q neobsahuje. Tvrdíme, že atomu q lze ve vrcholech modelu K přidělit (nové) pravdivostní hodnoty tak, aby v K platila formule ·P(q ≡B). Tím dostaneme protipříklad na formuli ·P(q≡B)→A. Ukažme si postup na modelu z obrázku 5.3.2. Předpokládejme, že B je formule Pq → p. Chceme tedy zvolit pravdivostní hodnoty atomu q tak, aby ekvivalence q≡(Pq→p) byla splněna ve všech třech vrcholech. Víme b − p, c − Pq a c − ¬p, takže b − Pq → p a c −/ Pq → p. Ekvivalenci q ≡ (Pq → p) lze tedy zaručit volbou b − q a c −/ q. Teď můžeme vyčíslit pravdivostní hodnotu formule Pq → p ve vrcholu a. Vychází a − Pq → p, volíme tedy a − q. Výsledkem je platnost formule q ≡ (Pq → p), a tedy i formule ·P(q ≡ (Pq → p)) v modelu K. Stejně můžeme postupovat i v případě jakéhokoliv jiného modelu K a jakékoliv jiné formule B. V každém kroku zvolíme vrchol a, v němž dosud nebyla stanovena hodnota atomu q, ale byla již stanovena ve všech vrcholech dosažitelných z a. V prvním kroku to samozřejmě znamená zvolit za a některý z listů. Vzhledem k tomu, že atom q se v B vyskytuje jen v modálním kontextu, jeho pravdivostní hodnoty ve vrcholech dosažitelných z vrcholu a dovolují určit pravdivostní hodnotu formule B v samotném vrcholu a. Atomu q pak přidělíme tutéž pravdivostní hodnotu, kterou jsme zjistili pro B. Tím bude zajištěno a − q ≡ B. QED 5.3 Logika dokazatelnosti 433 Ukažme si ještě jednu jednoduchou aplikaci věty o úplnosti. Mějme kripkovský protipříklad K na formuli A. Jako obvykle můžeme předpokládat, že model K má kořen. Rozšíříme-li model K na nový model K tak, jak je naznačeno na obrázku 5.3.3 a popsáno v lemmatu 5.3.20, dostaneme protipříklad na formuli PA. Tím je zdůvodněno, že má-li jakákoliv formule A protipříklad, pak i formule PA má protipříklad. Vzhledem k větě o úplnosti pro logiku GL vůči kripkovské sémantice to znamená, že množina všech formulí dokazatelných v logice GL je uzavřena na pravidlo opačné k pravidlu Nec, totiž na pravidlo PA / A. Týž fakt lze dokázat i důkazově teoreticky: je-li ⇒ PA poslední sekvent bezřezového důkazu, pak předposlední sekvent musí být PA ⇒ A , a užití řezu na tyto dva sekventy dává sekvent ⇒ A . Další podobné příklady jsou uvedeny ve cvičeních 14–16. Věta 5.3.25 Obě úlohy PA-Taut a N-Taut jsou PSPACE-kompletní. Důkaz I tento důkaz je podobný příslušnému důkazu o intuicionistické logice, takže postup jen naznačíme a upozorníme na některé rozdíly. Také zde definujeme převod úlohy QBF, začínáme tedy s kvantifikovanou výrokovou formulí A tvaru Qmpm . . Q1p1B(p), kde každý ze symbolů Q1, . . , Qm je jeden z kvantifikátorů ∀ nebo ∃ a formule B neobsahuje další výrokové kvantifikátory ani jiné atomy než p1, . . , pm. K formuli A sestrojíme modální formuli A∗ podobným způsobem jako v intuicionistické logice: A∗ 0 = B(p) A∗ j = Q(qj & ( ·Ppj ∨ ·P¬pj)) & P(qj → A∗ j−1) pokud Qj = ∃ Q(qj & ·Ppj) & Q(qj & ·P¬pj) & P(qj → A∗ j−1) jinak A∗ = A∗ m. Stejným způsobem jako v intuicionistické logice se dokáže, že formule A platí, právě když formule A∗ je splněna v některém vrcholu některého kripkovského modelu, tj. právě když formule ¬A∗ není dokazatelná v logice GL. Navíc dokážeme, že když formule A∗ je splněna v některém vrcholu kripkovského modelu, pak je splněna i v některém A∗ -korektním vrcholu. To se udělá takto. Nechť A∗ je splněna ve vrcholu a modelu W, R, − . Předpokládejme, že model je konečný a vrchol a je jeho kořenem. Všechny atomy ve formuli A∗ se vyskytují jen v modálním kontextu, a změníme-li jejich pravdivostní ohodnocení ve vrcholu a, nebude to mít vliv na pravdivostní hodnotu formule A∗ ve vrcholu a. Změníme je tak, aby vrchol a byl A∗ -korektní. Vezměme v úvahu, že Q je zkratka za ¬P¬ a také ·P je zkratka, a napišme si seznam všech podformulí formule A∗ , které začínají modalitou P: Ppj, P¬pj, P¬(qj & ·Ppj), P¬(qj & ·P¬pj), P(qj → A∗ j−1), kde 1 ≤ j ≤ m. Může se stát, že ve vrcholu a je splněna některá z formulí Ppj a P¬pj, ale ne obě najednou: formule A obsahuje modality pouze v případě, 434 5 Některé neklasické logiky kdy m = 0, a tehdy jsou z vrcholu a určitě dosažitelné nějaké jiné vrcholy. Správnou volbou pravdivostní hodnoty atomu pj ve vrcholu a lze zajistit, že žádná z prvních dvou formulí neporušuje A∗ -korektnost vrcholu a. Volbou a −/ qj lze zajistit, že ani žádná ze zbývajících tří formulí neporušuje A∗ -korektnost. Dokázali jsme, že když formule A neplatí, pak je formule ¬A∗ dokazatelná v logice GL (protože nemá žádný kripkovský protipříklad), a když A platí, pak formule ¬A∗ má dokonce A∗ -korektní protipříklad. Funkce A → ¬A∗ tedy redukuje úlohu QBF (přesněji řečeno, její komplement QBF, ale víme, že je to jedno) zároveň na úlohu PA-Taut i na úlohu N-Taut. Obě úlohy jsou tedy PSPACE-kompletní. QED Stejně jako v případě intuicionistické logiky je podstatným krokem v předchozím důkazu nalezení takové posloupnosti { An ; n ∈ N } formulí, že délka formule An roste polynomiálně s n, každá formule An má kripkovský protipříklad, avšak délka minimálního kripkovského protipříkladu na formuli An roste exponenciálně s n. Ve cvičení 19 je ukázáno, že v případě logiky dokazatelnosti lze při konstrukci formulí An vystačit s jediným atomem. Tento výsledek lze způsobem analogickým jako v důkazu vět 5.1.16 a 5.3.25 doplnit na důkaz tvrzení, že úloha PA-Taut zůstane PSPACE-kompletní úlohou i v případě, omezíme-li se na jediný výrokový atom. 5.3.4 Některé aplikace v metamatematice Aritmetické sentenci ϕ, která je řešením nějaké autoreferenční rovnice, tj. která splňuje podmínku tvaru PA ϕ ≡ ψ(ϕ), můžeme říkat pevný bod formule ψ(x). Věta o autoreferenci zaručuje, že každá aritmetická formule má nějaký pevný bod. V úvodu k tomuto oddílu jsme se v souvislosti s Löbovou větou zmínili o otázce, zda aritmetická sentence je faktem, že splňuje nějakou autoreferenční podmínku, určena jednoznačně. To je otázka po jednoznačnosti pevných bodů: jsou každé dva pevné body nějaké formule ψ(x) navzájem ekvivalentní? V tomto pododdílu mimo jiné uvidíme, že s pomocí modální logiky lze na tuto otázku určitým způsobem odpovědět. Zatím víme, že alespoň pro některé formule ψ je odpověď ano. Každé dva pevné body formule ¬Prπ(x) jsou spolu ekvivalentní, protože jsou ekvivalentní se sentencí Con(π). Každý pevný bod formule Prπ(x) je podle Löbovy věty dokazatelný, tedy ekvivalentní se sentencí 0=0. Mějme nějakou modální formuli A, výrokový atom p a jiný výrokový atom q, který se nevyskytuje ve formuli A. Současně s formulí A uvažujme formuli Ap(q) vzniklou z formule A substitucí atomu q za všechny výskyty atomu p. Uvědomme si, že (Ap(q))q(p) je formule A a pišme A(p) a A(q) místo A a Ap(q). Formule A(p) a A(q) mohou ovšem obsahovat i jiné atomy než p a q. Věta 5.3.26 (a) Jsou-li formule A a atomy p a q jako výše, pak v logice GL lze dokázat sekvent P(p ≡ q) ⇒ P(A(p) ≡ A(q)) . (b) Pokud se navíc atom p vyskytuje ve formuli A(p) pouze v modálním kontextu, pak je v logice GL dokazatelný i sekvent P(p ≡ q) ⇒ A(p) ≡ A(q) . 5.3 Logika dokazatelnosti 435 Důkaz V (a) postupujme indukcí podle počtu logických symbolů ve formuli A(p). Je-li jich nula, máme sekvent P(p≡q) ⇒ P(p≡q) nebo P(p≡q) ⇒ P(r ≡r) , který je v obou případech evidentně dokazatelný. Když A(p) má tvar B(p) ∨ C(p), pak indukční předpoklad dává důkazy sekventů P(p ≡ q) ⇒ P(B(p) ≡ B(q)) a P(p ≡ q) ⇒ P(C(p) ≡ C(q)) . V tom případě sestrojme samostatně důkaz sekventu P(B(p) ≡ B(q)), P(C(p) ≡ C(q)) ⇒ P(B(p) ∨ C(p) ≡ B(q) ∨ C(q)) a požadovaný sekvent P(p ≡ q) ⇒ P(B(p) ∨ C(p) ≡ B(q) ∨ C(p)) odvoďme dvěma řezy. V (b) postupujme také indukcí, avšak podle počtu kroků, kterými je formule A utvořena pomocí logických spojek z formulí začínajících modalitou. Bázi indukce lze snadno odvodit z tvrzení (a), kroky týkající se logických spojek jsou podobné jako v důkazu tvrzení (a). Podrobnosti opět ponecháváme na čtenáři. QED Věta 5.3.27 Jsou-li formule A a atomy p a q jako výše a atom p se ve formuli A(p) vyskytuje pouze v modálním kontextu, pak v logice GL lze dokázat sekvent P(p ≡ A(p)), P(q ≡ A(q)) ⇒ P(p ≡ q) . Důkaz Sekvent 1: p ≡ A(p), q ≡ A(q), A(p) ≡ A(q) ⇒ p ≡ q je tautologický a jako takový je dokazatelný (bez užití pravidla P-r). Dále postupujme takto: 2: P(p ≡ q) ⇒ A(p) ≡ A(q) ; Věta 5.3.26(b) 3: p ≡ A(p), q ≡ A(q), P(p ≡ q) ⇒ p ≡ q ; 1, 2, Cut 4: P(p ≡ A(p)), P(q ≡ A(q)) ⇒ P(p ≡ q) ; 3, W, P-r. QED Větu 5.3.26 můžeme označit jako větu o substituci, věta 5.3.27 je věta o jednoznačnosti pevných bodů pro logiku dokazatelnosti. Jak už jsme poznamenali, je-li ψ(x) formule ¬Prπ(x) nebo formule Prπ(x), pak řešení ϕ rovnice ϕ ≡ ψ(ϕ) je určeno jednoznačně v tom smyslu, že každé dva pevné body jsou spolu dokazatelně ekvivalentní. Na základě věty 5.3.27 můžeme usoudit, že je to pravda i o mnoha dalších formulích ψ(x). Ukažme si úvahu na formuli Prπ(x) → χ z důkazu Löbovy věty. Věta 5.3.27 říká, že modální formule B: (P(p ≡ Pp → r) & P(q ≡ Pq → r) → P(p ≡ q)) je dokazatelná v logice GL. Tedy musí být N-platná. Kdybychom ale měli dvě navzájem neekvivalentní sentence λ1 a λ2 splňující podmínky PA λ1 ≡Prπ(λ1)→χ a PA λ2≡Prπ(λ2)→χ, měli bychom zároveň aritmetický protipříklad na formuli B: při ohodnocení atomů p, q a r sentencemi λ1, λ2 a χ by v N neplatil překlad formule B. 436 5 Některé neklasické logiky Věta 5.3.27 říká, že autoreferenční rovnice ϕ ≡ ψ(ϕ) má jednoznačně určený pevný bod za podmínky, že sentence ψ(ϕ) je tvaru A∗ , kde A(p) je modální formule a ∗ je aritmetický překlad, který atomu p přiřazuje hodnotu (aritmetickou sentenci) ϕ. Takovým autoreferenčním rovnicím můžeme říkat gödelovské. Užitím modální logiky jsme tedy ukázali, že všechny gödelovské autoreferenční rovnice mají jednoznačně (až na dokazatelnou ekvivalenci) určené řešení. Zdaleka ne všechny autoreferenční rovnice jsou gödelovské. Příkladem formule ψ(x), na kterou se věta 5.3.27 nevztahuje, je formule před každým důkazem sentence x existuje menší důkaz její negace ¬x, jejímž řešením je Rosserova sentence, viz 4.5.6. O jisté variantě Rosserovy sentence je v článku [29] dokázáno, že není svou autoreferenční rovnicí určena jednoznačně. Žádná obecná věta o jednoznačné řešitelnosti autoreferenčních rovnic tedy neplatí. O rovnicích ϕ ≡ Prπ(¬ϕ) a ϕ ≡ Prπ(ϕ) víme víc než to, že jejich řešení existují a jsou jednoznačně určena. Jejich řešení lze explicitně vyjádřit bez užití autoreference, neboť, jak jsme už připomněli, řešením první je sentence Con(π), řešením druhé je sentence 0 = 0. Nyní směřujeme k tvrzení, že toto je pravda vždy, řešení každé gödelovské autoreferenční rovnice lze explicitně vyjádřit, tj. sestavit z „parametrů rovnice pomocí logických spojek a formule Prπ(x). Nejprve dokážeme větu o interpolaci, která je zajímavá i samostatně. Věta 5.3.28 Nechť Γ, Π ⇒ ∆, Λ je sekvent dokazatelný v logice GL. Pak existuje modální formule D, která je sestavena pouze z takových atomů, jež se současně vyskytují v obou sekventech Γ ⇒ ∆ a Π ⇒ Λ , a přitom taková, že oba sekventy Γ ⇒ ∆, D a Π, D ⇒ Λ jsou dokazatelné v logice GL. Důkaz Postupujme analogicky jako v důkazu lemmatu 3.3.15, indukcí dle hloubky bezřezového důkazu daného sekventu. Případy, kdy v posledním kroku je užito některé výrokové pravidlo, jsou úplně stejné. Případy, kdy je užito kvantifikátorové pravidlo, zde ovšem odpadají. Zabývejme se podrobněji případem, kdy v posledním kroku důkazu je užito modální pravidlo. Máme tedy důkaz, jehož finální sekvent S je z předposledního sekventu odvozen pomocí pravidla P-r. Antecedent sekventu S tudíž obsahuje pouze formule začínající modalitou, jeho sukcedent obsahuje právě jednu formuli, která také začíná modalitou, a přitom jak antecedent, tak sukcedent sekventu S je sjednocením dvou množin modálních formulí. Sekvent S má tedy tvar PΓ, PΠ ⇒ ∆, Λ , kde množina ∆∪Λ obsahuje jedinou modální formuli PA. Předposlední sekvent našeho důkazu musí být Γ, Π, PΓ, PΠ ⇒ A . Poslední krok našeho důkazu má tedy jeden z tvarů Γ, PΓ, PA, Π, PΠ ⇒ A PΓ, PΠ ⇒ PA Γ, PΓ, PA, Π, PΠ ⇒ A PΓ, PΠ ⇒ PA , kde složené závorky dole naznačují, že pro dané sjednocení {PA} = ∆ ∪ Λ sukcedentu sekventu S může platit PA ∈ Λ nebo PA ∈ ∆, kdežto složené závorky nahoře naznačují, jak jsme se tudíž rozhodli rozložit antecedent a sukcedent předposledního sekventu na dvě množiny. Ponecháváme na čtenáři, aby si rozmyslel, 5.3 Logika dokazatelnosti 437 že případ ∆ = Λ = {PA} nemusíme uvažovat. V prvním (levém) případě dává indukční předpoklad formuli D, která je sestavena pouze z atomů vyskytujících se současně v sekventech Γ, PΓ ⇒ a Π, PΠ, PA ⇒ A a která přitom splňuje podmínku, že sekventy Γ, PΓ ⇒ D a Π, PΠ, PA, D ⇒ A jsou oba dokazatelné v logice GL. Ze sekventu Γ, PΓ ⇒ D lze odvodit sekvent PΓ ⇒ PD , ze sekventu Π, PΠ, PA, D ⇒ A lze odvodit sekvent PΠ, PD ⇒ PA . Formule PD je tedy hledanou formulí, neboť obsahuje pouze atomy vyskytující se současně v obou sekventech PΓ ⇒ a PΠ ⇒ PA . V druhém případě dává indukční předpoklad formuli D splňující požadavek na výrokové atomy a takovou, že sekventy Γ, PΓ, PA ⇒ A, D a Π, PΠ, D ⇒ jsou oba dokazatelné v logice GL. Ponecháváme na čtenáři, aby domyslel, že v tom případě sekventy PΓ ⇒ PA, ¬P¬D a PΠ, ¬P¬D ⇒ jsou oba dokazatelné a že formule ¬P¬D splňuje požadavek na výrokové atomy. V tomto případě je tedy formule ¬P¬D hledanou formulí. QED Věta 5.3.29 Nechť A(p) je modální formule, v níž se atom p vyskytuje jen v modálním kontextu. Pak existuje formule D sestavená pouze z atomů formule A(p) různých od p a taková, že ekvivalence D ≡ A(D) je dokazatelná v logice GL. Důkaz Zvolme atom q nevyskytující se ve formuli A(p). Pak formule A(p) a atomy p a q jsou jako v tvrzeních 5.3.26(b) a 5.3.27 a můžeme pokračovat v odvozování v gentzenovském kalkulu, které v důkazu věty 5.3.27 skončilo řádkem (4): 5: A(p) ≡ A(q), A(p) ⇒ A(q) . Tento sekvent je snadno dokazatelný, neboť je tautologický. 6: P(p ≡ A(p)), P(q ≡ A(q)) ⇒ A(p) ≡ A(q) ; 2, 4, Cut 7: P(p ≡ A(p)), P(q ≡ A(q)), A(p) ⇒ A(q) ; 5, 6, Cut. První a třetí formule antecedentu sekventu (7) neobsahuje atom q, druhá formule P(q ≡ A(q)) a formule A(q) v sukcedentu neobsahují atom p. Věta 5.3.28 říká, že existuje modální formule D, která neobsahuje atomy p ani q, obsahuje pouze atomy vyskytující se ve formuli A a přitom následující dva sekventy 8: P(p ≡ A(p)), A(p) ⇒ D 9: P(q ≡ A(q)), D ⇒ A(q) jsou dokazatelné v logice GL. Vezměme důkaz sekventu (8) a substituujme v něm formuli D za všechny výskyty atomu p. Dále vezměme důkaz sekventu (9) a substituujme v něm formuli D za všechny výskyty atomu q. Tím získáme důkazy sekventů 10: P(D ≡ A(D)), A(D) ⇒ D 11: P(D ≡ A(D)), D ⇒ A(D) . Formule D se totiž substituce nedotkne, neboť ta atomy p a q neobsahuje. Takže: 438 5 Některé neklasické logiky 12: P(D ≡ A(D)) ⇒ D ≡ A(D) ; 10, 11 13: ⇒ P(D ≡ A(D)) ; P-r 14: ⇒ D ≡ A(D) ; 12, 13, Cut. QED Nejen v Peanově aritmetice, nýbrž i v logice dokazatelnosti můžeme uvažovat autoreferenční rovnice tvaru p ≡ A(p) s atomem p vyskytujícím se ve formuli A pouze v modálním kontextu. Věta 5.3.29 zaručuje řešitelnost takových rovnic. Na aritmetické straně to znamená, že o gödelovských autoreferenčních rovnicích můžeme říci více než to, že mají jednoznačně určené řešení: jejich řešení lze vypočítat. Mějme například rovnici ϕ≡Prπ(ϕ)→λ, která se vyskytla v důkazu Löbovy věty, a počítejme její řešení, tj. hledejme modální formuli D takovou, že substituujeme-li ji za atom p do formule p ≡ Pp → r, dostaneme formuli dokazatelnou v logice GL. Pracnou analýzou důkazu věty 5.3.29 (a věty 5.3.28), nebo několika pokusy a s trochou štěstí lze zjistit, že hledaná formule je formule Pr → r. To znamená, že explicitním řešením rovnice ϕ ≡ Prπ(ϕ) → λ je aritmetická sentence Prπ(λ) → λ. Z našich příkladů důkazů v logice GL víme, že existuje modální formule A(p), ve které se atom p vyskytuje pouze v modálním kontextu, a přitom taková, že formule P(p ≡ A(p)) → (¬P⊥ → ¬Pp) je dokazatelná v logice GL. Položme si otázku, zda existuje modální formule A(p), v níž se atom p vyskytuje opět pouze v modálním kontextu a která splňuje silnější podmínku GL P(p ≡ A(p)) → (¬P⊥ → ¬Pp & ¬P¬p). (∗) Pokud ano, mohli bychom užít větu o korektnosti logiky GL vůči aritmetické sémantice spolu s větou o autoreferenci a dokázat existenci aritmetické sentence ϕ, pro kterou platí PA Con(π) → ¬Prπ(ϕ) & ¬Prπ(¬ϕ). (∗∗) Měli bychom tedy alternativní (modální) důkaz klasické verze Rosserovy věty 4.5.6. Rozmysleme si, že takto větu 4.5.6 dokazovat nelze. Kdyby totiž existovala modální formule A splňující podmínku (∗), díky větě 5.3.29 by existovala i modální formule D taková, že v logice GL lze dokázat formuli ¬P⊥→¬PD&¬P¬D. Taková modální formule D ale neexistuje, viz cvičení 20. Avšak ve cvičeních 21 a 22 je ukázáno, že Rosserovu větu lze přesto dokázat jistými úvahami o logice dokazatelnosti, totiž využitím věty 5.3.30 o úplnosti logik GL a GLω vůči aritmetické sémantice. 5.3.5 Aritmetická úplnost Úplnost logik GL a GLω vůči jejich aritmetickým interpretacím dokázal R. Solovay v článku [86]. Hlavní metoda použitá v důkazu je autoreference v množném čísle, tj. užití věty 4.5.11: v důkazu věty 5.3.30 vystupují sentence λ1, . . , λn, a každá z nich je „definována tím, co tvrdí o sobě a o ostatních λi. Připadá nám pozoruhodné, že v důkazu úplnosti modálních logik, které mají vztah k autoreferenci, se uplatňuje 5.3 Logika dokazatelnosti 439 opět autoreferenční konstrukce, a to jedna z nejzajímavějších vůbec. A je asi docela případné zakončit náš text, ve kterém autoreference hrála dost podstatnou roli, právě tímto důkazem. Věta 5.3.30 (Solovay, 1975) (a) Každá PA-platná modální formule je dokazatelná v logice GL. (b) Každá N-platná modální formule je dokazatelná v logice GLω . Důkaz Zpočátku uvažujme o obou tvrzeních souběžně. Předpokládejme, že A je modální formule, která není dokazatelná v logice GL či v logice GLω . Chceme dokázat, že formule A není PA-platná resp. N-platná, tj. že existuje aritmetický překlad či takový, že PA A resp. N /|= A . Máme větu o úplnosti vůči kripkovské sémantice: formule A má nějaký konečný kripkovský protipříklad K. Jako obvykle můžeme předpokládat, že ten vrchol modelu K, ve kterém formule A není splněna, je v modelu K kořenem. Dále předpokládejme, že celkový počet vrcholů v modelu K je n, že jsou označeny 1, . . , n a že kořen má označení 1. Tedy K = W, R, − , W = {1, . . , n}, 1 −/ A. V (b) navíc platí, že kořen 1 je A-korektní. Model K a formuli A pokládejme v celém důkazu za pevně dané. O modelu K můžeme mluvit i uvnitř Peanovy aritmetiky. Například R je konečná množina dvojic, uvnitř PA je popsána konečně mnoho podmínkami tvaru i R j a ¬(i R j). Také pravdivostní relace − je popsána jen konečně mnoha podmínkami (alespoň pokud se týká atomů vyskytujících se ve formuli A). Označme S(i) množinu { j ; i R j }. Množina S(i) je množina všech vrcholů rámce {1, . . , n}, R modelu K dosažitelných z vrcholu i. Navíc položme S(0) = {1, . . , n}. Naším plánem je na základě rámce {1, . . , n}, R sestrojit sentence λ1, . . , λn (jejich počet je rovný počtu vrcholů rámce) a potom z nich a z relace − sestrojit aritmetický překlad resp. . Jak už jsme řekli, sentence λ1, . . , λn si opatříme na základě autoreference v množném čísle. To znamená, že každou sentenci λi budeme definovat jako výrok o rámci W, R a o číslech λ1, . . , λn. Mysleme si tedy, že máme v ruce numerály λ1, . . , λn a v PA s jejich pomocí definujme funkci g: g(0) = 0, g(x + 1) = j když Proofπ(¬λj, x) a přitom g(x) R j nebo g(x) = 0 g(x) jinak. Zdůrazněme ještě jednou, že toto je definice funkce uvnitř Peanovy aritmetiky. Na metamatematické úrovni jsme napsali Σ-formuli s volnými proměnnými x a y, kterou čteme číslo y je funkční hodnota funkce g v bodě x. Uvažujme v PA o průběhu funkce g. Možné hodnoty funkce g jsou buď číslo 0, nebo prvky 1, . . , n modelu K. Funkce g začíná v nule. V každém okamžiku buď stojí na místě, nebo skočí do některého vrcholu kripkovského rámce. Po prvním skoku jsou možné i další skoky, ale vždy jen do vrcholů dosažitelných z dosavadní hodnoty. Z toho je (Peanově 440 5 Některé neklasické logiky aritmetice) jasné, že skoků nemůže být nekonečně mnoho, a tedy že funkce g po jisté době nabude definitivní hodnoty: 1: ∃x∀y ≥ x(g(y) = 0) ∨ . . ∨ ∃x∀y ≥ x(g(y) = n). Domluvme se opět, že vypouštíme „PA před znakem dokazatelnosti. O definitivní hodnotě můžeme mluvit jako o limitě. Podmínku (1) tedy můžeme přepsat na 2: lim g = 0 ∨ . . ∨ lim g = n. Pokud se funkce g v nějakém okamžiku octne ve vrcholu i, pak tam buď zůstane, nebo skončí v některém vrcholu z množiny S(i): 3: ∃x(g(x) = i) → lim g = i ∨ j∈S(i) lim g = j. Tím jsme získali postačující informaci o tom, kam a jak funkce g skáče. Ptejme se ještě, kdy či proč skáče. Skok do vrcholu i mohl nastat jen v okamžiku nalezení důkazu sentence ¬λi: 4: Je-li i = 0, pak ∃x(g(x) = i) → Prπ(¬λi). Je-li funkce g v nějakém okamžiku x ve vrcholu i a už tam zůstane, znamená to, že za číslem x nebyl nalezen důkaz žádné sentence ¬λj pro j ∈ S(i). To ale znamená, že každá taková sentence ¬λj nemá žádný důkaz, protože každá dokazatelná sentence jistě má neomezeně velké důkazy. Takže 5: lim g = i → j∈S(i) ¬Prπ(¬λj). Teď jsme schopni definovat sentence λ1, . . , λn: λi ≡ lim g = i, 1 ≤ i ≤ n. K tomu přidejme ještě sentenci λ0: λ0 ≡ lim g = 0. Sentence λ0 je na rozdíl od sentencí λi pro 1 ≤ i ≤ n definována přímo, bez užití autoreference. V definicích všech sentencí λ0, . . , λn vystupují numerály λ1, . . , λn, nikoliv numerál λ0. Sentence λi mají následující vlastnosti: 6: n i=0 λi ; 2 7: λi → j∈S(i) ¬Prπ(¬λj) ; 5 8: Je-li i = j, pak λi → ¬λj, neboť funkce g nemůže mít dvě různé limity. Dále platí 9: Je-li i = 0, pak λi → Prπ(¬λi) ; 4. O průběhu funkce g uvažujeme vlastně na třech úrovních: ve skutečnosti, uvnitř PA, a roli hrají také některé fakty, o kterých je dokazatelné, že jsou dokazatelné. Uvnitř PA zatím můžeme říci, že funkce g skáče modelem K ve směru relace dosažitelnosti R, ale dost neochotně. Skok do vrcholu i může nastat pouze v případě, je-li po ruce důkaz, že i není definitivní hodnota. 5.3 Logika dokazatelnosti 441 Je-li i listem v modelu K, pak sentence λi je ekvivalentní s ∃x(g(x) = i), což je Σ-sentence. Není-li i listem, platí alespoň jedna implikace: λi → ∃x(g(x) = i). Z toho můžeme usoudit 10: λi → Prπ(∃x(g(x) = i)) ; Formalizovaná Σ-úplnost ∃x(g(x) = i) → λi ∨ j∈S(i) λj ; 3 11: Prπ(∃x(g(x) = i) → λi ∨ j∈S(i) λj) ; D1 12: λi → Prπ(λi ∨ j∈S(i) λj) ; 11, D2, 10 13: Je-li i = 0, pak λi → Prπ( j∈S(i) λj) ; 12, 9. Podmínka (13) říká, že pokud funkce g provede vůbec nějaký skok a skončí ve vrcholu i, pak je dokazatelné, že neskončí v i, nýbrž v některém vrcholu j dosažitelném z i. Podmínka (7) říká, že žádné takové j není vyloučeno, a to ani v případě, kdy funkce g žádný skok neprovede, tj. v případě, kdy i = 0. To jsou fakty známé o průběhu funkce g uvnitř Peanovy aritmetiky. Zbývá zjistit, co se stane ve skutečnosti. 14: N |= Prπ(¬λi) → ¬λi ; Schéma reflexe Je-li i = 0, pak N |= λi → ¬λi. ; 9, 14 15: Je-li i = 0, pak N |= ¬λi. 16: N |= λ0 ; 15, 6 N |= n i=1 ¬Prπ(¬λi) ; 7 (pro i = 0), 16 17: Každá λi, pro 1 ≤ i ≤ n, je s PA bezesporná. Podmínky (16) a (17) říkají, že v Peanově aritmetice nelze dokázat žádnou sentenci ¬λi pro 0 ≤ i ≤ n. Z toho a z (8) plyne, že nelze dokázat ani žádnou sentenci λi. Všechny sentence λ0, . . , λn jsou tedy na PA nezávislé, v N platí λ0. To je zároveň odpověď na otázku, co se stane ve skutečnosti: nikdy se nestane nic, funkce g neopustí nulu. Dosud zjištěné vlastnosti funkce g a sentencí λi se použijí v důkazech obou tvrzení (a) a (b). Víme, že aritmetický překlad je zadán svými hodnotami na výrokových atomech. V (a) použijeme překlad , který definujeme takto: pro každý atom p zjistíme, ve kterých vrcholech modelu K je splněn, a atom p pak přeložíme na disjunkci příslušných sentencí λi: p = { λi ; 1 ≤ i ≤ n & i − p }. Překlad má vlastnosti vyjádřené v následujícím tvrzení. 442 5 Některé neklasické logiky Sublemma A Nechť 1 ≤ i ≤ n a nechť B je modální formule. Když i − B, pak λi → B . Když naopak i −/ B, pak λi → ¬B . Toto sublemma dokážeme indukcí podle složitosti modální formule B. Je-li B atom a i − B, pak B je disjunkce sentencí, mezi nimiž je λi, a tedy opravdu λi → B . Když i −/ B, pak z (8) plyne λi → ¬B . Případ, kdy formule B je sestavena z jednodušších formulí pomocí některé logické spojky, je přímočarý, a jeho ověření přenecháváme čtenáři. Nechť B začíná modalitou, tj. má tvar PD. Předpokládejme i − PD. Pak ∀j(i R j ⇒ j − D) ∀j(i R j ⇒ λj → D ) ; Indukční předpoklad j∈S(i) λj → D Prπ( j∈S(i) λj) → Prπ(D ) ; D1, D2 λi → Prπ(D ) ; 13. Předpokládejme, že naopak i −/ PD. V tom případě existuje j takové, že i R j a j −/ D. Pak λj → ¬D ; Indukční předpoklad Prπ(λj → ¬D ) ; D1 λi → ¬Prπ(D ) ; 7. V obou případech jsme dokázali, co bylo třeba, neboť (PD) je sentence Prπ(D ). Tím jsme dokončili důkaz sublemmatu A. Z dokázaného sublemmatu okamžitě vyplývá platnost tvrzení (a): protože 1 −/ A, máme λ1 → ¬A . Ze (17) plyne A . V důkazu tvrzení (b) máme navíc předpoklad, že vrchol 1 modelu K je A-korektní. Jedna z hodnot funkce g je nula, kterou jsme dosud považovali za počáteční hodnotu nemající nic společného s modelem K. Nyní prohlašme číslo 0 za nový kořen a každému atomu vyskytujícímu se ve formuli A v něm přidělme tutéž pravdivostní hodnotu, kterou má ve vrcholu 1. To znamená, že jsme model K přepracovali na model K tak, jak je znázorněno na obrázku 5.3.3. Lemma 5.3.20 říká, že nový kořen 0 je A-korektním vrcholem modelu K a že každá podformule formule A má ve vrcholech 0 a 1 tutéž pravdivostní hodnotu. Aritmetický překlad se nyní definuje takto: p = { λi ; 0 ≤ i ≤ n & i − p }. Překlad se liší od překladu tím, že v disjunkci se někdy vyskytne i sentence λ0, a to přesně tehdy, když tam je i sentence λ1. Pro podformule původní formule A platí skoro stejné pomocné tvrzení jako v důkazu tvrzení (a). Sublemma B Nechť 0 ≤ i ≤ n a nechť B je podformule formule A. Když i − B, pak λi → B . Když naopak i −/ B, pak λi → ¬B . 5.3 Logika dokazatelnosti 443 V důkazu tohoto sublemmatu opět postupujeme indukcí podle složitosti formule B. Stačí zabývat se pouze případem, kdy i = 0 a i − PD. Všechny ostatní případy jsou stejné jako v důkazu sublemmatu A. Nechť tedy 0 − PD. Pak formule D je splněna ve všech vrcholech 1, . . , n původního rámce, a díky A-korektnosti vrcholu 0 je splněna i ve vrcholu 0. Tedy ∀j(0 ≤ j ≤ n ⇒ λj → D ) ; Indukční předpoklad n j=0 λj → D D ; 6. Z posledního řádku plyne Prπ(D ), a tedy i λ0 → Prπ(D ). Ze sublemmatu B opět téměř bezprostředně vyplývá platnost tvrzení (b): z lemmatu 5.3.20 plyne 0 −/ A, neboť 1 −/ A, ze sublemmatu B plyne λ0 → ¬A a dále z řádku (16) plyne N /|= A . QED Výsledky týkající se logiky dokazatelnosti, které jsme ukázali v tomto oddílu, zdaleka nevyčerpávají problematiku aplikací modální logiky v metamatematice. Existují další modální logiky, ve kterých se kromě modality nutnosti připouštějí dodatečné „modality , vhodné pro popis různých autoreferenčních konstrukcí (uvozovky jsme užili proto, že tyto dodatečné modality nemají žádný vztah k modalitám v přirozené řeči). Například v článku [29] se zkoumají modální logiky, jejichž „jazyk kromě logických spojek a symbolu P obsahuje ještě symboly a . Každý z těchto symbolů je binární operátor, který je povoleno aplikovat pouze na formule začínající symbolem P; podmínky v definici aritmetického překladu týkající se symbolů a pak jsou E (PA PB)∗ = ∃x(Prπ(A∗) & ∀v