Theorie Formele logica

Vergelijkbare documenten
Logic for Computer Science

Mededelingen. TI1300: Redeneren en Logica. Waarheidstafels. Waarheidsfunctionele Connectieven

RAF belangrijk te onthouden

Logica voor Informatica. Propositielogica. Normaalvormen en Semantische tableaux. Mehdi Dastani

Inleiding Wiskundige Logica

Logica voor Informatica

Tentamen TI1300 en IN1305-A (Redeneren en) Logica

Mededelingen. TI1300: Redeneren en Logica. Metavariabelen Logica, p Minder connectieven nodig

Tegenvoorbeeld. TI1300: Redeneren en Logica. De truc van Gauss. Carl Friedrich Gauss, 7 jaar oud (omstreeks 1785)

Samenvatting. TI1306 Redeneren & Logica Review Guide 2014 Door: David Alderliesten. Disclaimer

Boommethode. TI1300: Redeneren en Logica. Oefenen, wat anders? Aanvullende regels (Logica, tabel 11.1, p. 159) A (B C),A C = B

Propositielogica. Evert De Nolf Delphine Draelants Kirsten Storms Evelien Weyn. 24 augustus Universiteit Antwerpen

Tentamentips. Tomas Klos. 14 december 2010

Logica voor Informatica. Propositielogica. Syntax & Semantiek. Mehdi Dastani Intelligent Systems Utrecht University

Logica 1. Joost J. Joosten

De Resolutiemethode (Logica, hoofdstuk 15) Robinson (1965) TI1300 Redeneren en Logica

Semantiek 1 college 10. Jan Koster

Inleiding Wiskundige Logica

Formeel Denken 2014 Uitwerkingen Tentamen

Logica voor Informatica

Discrete Structuren. Piter Dykstra Opleidingsinstituut Informatica en Cognitie 9 februari 2009 BEWIJZEN

College Logica voor CKI

Logica voor Informatici najaar 2000 Opgaven en Oplossingen Hoofdstuk 3

3 De stelling van Kleene

Discrete Structuren. Piter Dykstra Opleidingsinstituut Informatica en Cognitie

Logica 1. Joost J. Joosten

Logic for Computer Science

Inleiding Wiskundige Logica

Hoofdstuk 4. In dit hoofdstuk wordt een aantal uiteenlopende eigenschappen van de propositielogica

Tentamen IN1305-I Fundamentele Informatica 1, deel I: Logica

Inleiding logica Inleveropgave 3

Kennisrepresentatie & Redeneren. Piter Dykstra Instituut voor Informatica en Cognitie

PROPOSITIELOGICA. fundament voor wiskundig redeneren. Dr. Luc Gheysens

Logica voor AI. Bewijstheorie en natuurlijke deductie. Antje Rumberg. 28 november Kripke Semantiek.

Verzamelingen. Hoofdstuk 5

Logica 1. Joost J. Joosten

Termherschrijfsystemen en Propositie-Algebra

Propositionele logica

Logica voor Informatica

Predikatenlogica in Vogelvlucht

Opmerking. TI1300 Redeneren en Logica. Met voorbeelden kun je niks bewijzen. Directe en indirecte bewijzen

Formeel Denken 2013 Uitwerkingen Tentamen

Geldwisselprobleem van Frobenius

Inhoud leereenheid 1. Inleiding. Introductie 13. Leerkern Wat is logica? Logica en informatica 13

Handout Natuurlijke Deductie

Predikatenlogica: Normaalvormen

1 Logica a. tautologie -1-

Logica voor AI. Responsiecollege. Antje Rumberg. 12 december Kripke Semantiek. Geldigheid. De bereikbaarheidsrelatie

Automaten. Informatica, UvA. Yde Venema

Hoofdstuk 15. In dit hoofdstuk geven we een inleiding op het gebied van het automatisch bewijzen

Hoorcollege Logica. Hans-Dieter A. Hiep

6.3.2 We moeten onderzoeken of de volgende bewering juist is of niet: x [ P (x ) Q (x )] xp(x ) xq(x ). De bewering is onjuist:

Logica. Oefeningen op hoofdstuk Propositielogica

Predicaten. Hoofdstuk 4

Logica voor Informatica. Propositielogica. Bewijssystemen voor propositielogica. Mehdi Dastani

rh265e 0 true. In onze schrijfwijze wordt dat dus: (de bewering) [ P ] is even waar als (de bewering) P = true.

Tentamen TI1300 en IN1305-A (Redeneren en) Logica

Inleiding Logica voor CKI, 2013/14

Over Plantinga s argument voor de existentie van een noodzakelijk bestaand individueel ding. G.J.E. Rutten

Enkele valkuilen om te vermijden

4 Beschouw de volgende formuleverzameling S: {"x "y ((Rxy Æ "z (Rxz Æ y = z)), "x "y (Ryx Æ "z (Rzx Æ y = z)),

Practicumopgave 3: SAT-solver

Wiskundige beweringen en hun bewijzen

Elfde college complexiteit. 23 april NP-volledigheid III

Eerste-orde logica (= Predikaatlogica)

Logica voor AI. Verschillende modale systemen en correctheid. Antje Rumberg. 30 november 2012.

Stelling. SAT is NP-compleet.

Logica Les 1 Definities en waarheidstabellen. (Deze les sluit aan bij les 1 van de syllabus Logica WD_online)

Caleidoscoop: Logica

1. TRADITIONELE LOGICA EN ARGUMENTATIELEER

Uitgebreide uitwerking Tentamen Complexiteit, juni 2016

Volledige inductie. Hoofdstuk 7. Van een deelverzameling V van de verzameling N van alle natuurlijke getallen veronderstellen.

Formeel Denken. Herfst 2004

Proposities. Hoofdstuk 2

Semantiek 1 college 4. Jan Koster

Getallensystemen, verzamelingen en relaties

Predikaatlogica, modellen en programma s

TI1300: Redeneren en Logica, Practicum 1 Deadline: 17 september 2010, 10:45 uur

Semantiek (2IT40) Jos Baeten. HG 7.19 tel.: Hoorcollege 3 (12 april 2007)

Tentamen TI1300 en IN1305-A (Redeneren en) Logica

Logica voor Informatici najaar 2000 Opgaven en Oplossingen Hoofdstuk 2

VERZAMELINGEN EN AFBEELDINGEN

Andere grote namen van wiskundigen en/of filosofen: Plato, Socrates, Descartes (Cartesius), Spinoza, Kant, Russell, Hilbert, Tarski en Brouwer

Hoofdstuk 3. behandeld. In de paragrafen 3.1 en 3.2 worden de noties valuatie, model en

TW2020 Optimalisering

Logica voor Informatica. Logica Toepassingen. PROLOG: Logische Programmeertaal. Mehdi Dastani

Examen G0U13 Bewijzen en Redeneren Bachelor 1ste fase Wiskunde. vrijdag 31 januari 2014, 8:30 12:30. Auditorium L.00.07

behulp van een semantisch tableau en een daarmee geconstrueerd tegenvoorbeeld.

Examen G0U13 Bewijzen en Redeneren Bachelor of Science Fysica en Wiskunde. vrijdag 3 februari 2012, 8:30 12:30

Ruimtemeetkunde deel 1

Inleiding Logica voor CKI

Oefening 4.3. Zoek een positief natuurlijk getal zodanig dat de helft een kwadraat is, een derde is een derdemacht en een vijfde is een vijfdemacht.

Logica voor Informatica. predikatenlogica. Syntax van predikatenlogica. Mehdi Dastani Intelligent Systems Utrecht University

Modelleren en Programmeren voor KI

Bewijs door inductie

Logica als een oefening in Formeel Denken

Voortgezette Logica, Week 2

Artificiële intelligentie: les van 21 november 2002

Uitwerking tentamen Analyse van Algoritmen, 29 januari

Meer oefenen. TI1300: Redeneren en Logica. Vertalen. Meerdere wegen leiden naar Rome

Transcriptie:

Theorie Formele logica Daan Pape 2e bach informatica Ugent 21 januari 2013 1

Inhoudsopgave 1 Propositie logica 3 1.1 Terminologie en notatie.............................. 3 1.2 Regels voor natuurlijke deductie......................... 3 1.3 Afgeleide bewijsregels............................... 4 1.4 Bewijstechnieken.................................. 6 1.5 Propositielogica................................... 6 1.6 Conjunctieve normaalvorm............................ 12 1.7 Horn clausules................................... 15 1.8 SAT solvers..................................... 16 1.9 Tseitintransformatie................................ 18 2 Predikaatlogica 19 2.1 Begrippen en definities............................... 19 2.2 Regels voor natuurlijke deductie......................... 21 2.3 Modellen...................................... 22 3 Verification by model checking 30 3.1 Lineaire-tijd temporele logica of LTL....................... 31 3.2 Computational Tree Logic of CTL........................ 36 3.3 Algoritmes voor model checking.......................... 43 3.4 Karakterisering van CTL via vaste punten.................... 46 3.5 CTL* en de vergelijking met CTL en LTL.................... 47 4 Modale logica en agenten 47 4.1 Begrippen en notaties van basis modale logica.................. 47 4.2 Logische engineering en correspondentietheorie................. 51 4.3 Natuurlijke deductie................................ 55 4.4 Redeneren over kennis in een multi-agentensysteem............... 55 4.5 Natuurlijke deductie................................ 58 5 Binaire beslissingsdiagramma s 59 5.1 Voorstellen van booleanse functies........................ 59 5.2 Algoritmen voor gereduceerde OBDD s...................... 63 5.3 Symbolic model checking.............................. 66 6 Algebraïsche normaalvorm en resolutie 71 6.1 Adequate verzamelingen.............................. 71 6.2 Algebraïsche normaalvorm............................. 71 2

1 Propositie logica 1.1 Terminologie en notatie In de propositielogica draait het er om dat enkel de logische structuur van zinnen overgehouden worden. Men werkt dus enkel met proposities of declaratieve zinnen die waar of vals kunnen zijn. We breken deze proposities op in basiszinnen die we met kleine letters p, q, r,... aanduiden en verbinden met,,,. Om abiguïteit te vermijden kunnen we haakjes gebruiken maar ook afspraken. heeft voorrang op en welke op hun beurt voorrang hebben op. De implicatie is rechts associatief, dit wil zeggen dat p q r moet geïnterpreteerd worden als p (q r). Met natuurlijke deductie wordt het afleiden van conclusies uit premissen bedoelt. Meestal worden deze met griekse letters aangeduid. Stel dat we formules φ 1, φ 2, φ 3,..., φ n hebben (premissen) en een formule ψ (conclusie), dan wordt deze deductie aangeduidt met: φ 1, φ 2, φ 3,..., φ n ψ 1.2 Regels voor natuurlijke deductie De eerste regel die we bekijken is en-introductie. Het stelt ons in staat φ ψ te concluderen als we φ and ψ al appart hebben geconcludeerd: φ ψ φ ψ Hand in hand met en-introductie gaat en-eliminatie: φ ψ φ e 1 i φ ψ ψ Deze regels stellen dat als men een bewijs van φ ψ heeft dat we daaruit een bewijs voor φ of ψ kunnen halen. Intutief zijn de regels van dubbele negatie: e 2 φ φ e φ φ We beginnen met implicatie- Er zijn ook regels om te introduceren en te elimineren. eliminatie of modus ponens: i φ φ ψ ψ Een andere manier van implicatie-eliminatie is de zogenaamde modus tollens: e φ ψ ψ φ MT 3

De formule van implicatie-introductie kan niet zomaar gebruikt worden, er moet een veronderstelling worden gemaakt. Meer over deze veronderstellingen staat in het puntje Bewijstechnieken verder in deze cursus. We kunnen nu de implicatie-introductie als volgt noteren: φ. ψ φ ψ i De regels in verband met conjucties gedragen zich wat anders. De of-introducties zijn makkelijkst in te zien: φ φ ψ i 1 De of-eliminatie is minder makkelijk toe te passen: ψ φ ψ i 2 φ ψ φ ψ χ. χ. χ e Definitie 1. Contradicties zijn uitdrukkingen van de vorm φ φ of φ φ met φ een formule. Een contradictie wordt met falsum aangeduidt. Elke formule kan wordt afgeleidt uit een contradictie, dit wordt genoteerd als: φ e Het feit dat zelf een contradictie voorstelt wordt aangeduidt met de bewijsregel: φ φ Met behulp van kunnen we ook een introduceren. Dit gaat als volgt: 1.3 Afgeleide bewijsregels φ. φ i Zoals eerder gezecht zijn niet alle regels hierboven absolute basis. Zo kan modus tollens e φ ψ ψ φ MT bewezen worden uit e, e en i: 4

1 φ ψ premise 2 ψ premise 3 φ assumption 4 ψ e1, 3 5 e4, 2 6 φ i3 5 Om modus tollens te gebruiken moeten we bovenstaand dus steeds in het achterhoofd houden. Het zelfde geld voor de dubbele negatie introductie: 1 φ premise 2 φ assumption 3 e1, 2 4 φ i2 3 We kunnen nog veel gelijkaardige afgeleide regels definiëren maar eigenlijk kan het meeste met PBC en LEM bewezen worden. PBC of Proof By Contradiction wordt als volgt gedefiniëerd: φ. φ P BC Dit lijkt goed op i buiten het feit dat de negatie op een andere plaats staat. PBC wordt als volgt afgeleidt: 1 φ premise 2 φ assumption 3 e1, 2 4 φ i2 3 5 φ e4 De meest handige wet is waarschijnlijk LEM of wet van het uitgesloten derde, deze wet stelt dat φ φ waar is ongeacht de waarheidswaarde van φ. Ofwel is φ waar, ofwel is φ vals en dus φ waar. Er is geen derde mogelijkheid, vandaar de naam. Volgend is de afleiding van LEM: 5

1 (φ φ) assumption 2 φ assumption 3 φ φ i 1 2 4 e3, 1 5 φ i2 4 6 φ φ i 2 5 7 e6, 1 8 (φ φ) i1 7 9 φ φ e8 1.4 Bewijstechnieken In een bewijs kunnen we van zogenaamde veronderstellingen gebruik maken, deze zijn echter maar beperkt geldig en we bakenen de geldigheid af met een box. Met een bewijs kunnen we theorema s gaan bewijzen, dit zijn alle formules φ die een geldig consequent ψ hebben. Definitie 2. Iets is bewijsbaar equivalent (we schrijven als en slechts dan als ) indien geldt dat φ ψ en ψ φ. Dit wordt genoteerd als. 1.5 Propositielogica In de propositielogica worden de griekse letters in voorgaande secties vervangen door goed gevormde formules. Deze worden opgebouwd uit een onbegrensd aantal atomen p, q, r,..., of p 1, p 2, p 3,.... Definitie 3. Een bedeling (toekenning van waarheidswaarden) is een afbeelding v : atomen {T,F} Zo kunnen we de uitbreiding v van v voor alle formules gaan vastleggen. Bijvoorbeeld: 1. v(p) = v(p) { T als v(φ) = F 2. v( φ) = F als v(φ) = T { T als v(φ) = v(ψ) = T 3. v(φ ψ) = F anders { F als v(φ) = v(ψ) = F 4. v(φ ψ) = T anders { F als v(φ) = T en v(ψ) = F 5. v(φ ψ) = T anders 6

Waar in voorgaande secties door middel van calculus bewezen werd dat φ 1, φ 2,..., φ n ψ geldig was kan er ook een nieuwe relatie φ 1, φ 2,..., φ n = ψ gedefinieërd worden. Deze kijkt naar de waarheidswaarden van de formules en trekt daaruit een conclusie. Op deze manier worden waarheidstabellen opgesteld. We mogen de verschillende begrippen dus niet verwarren: Geldig gevolg: φ 1,..., φ n = ψ is een geldig gevolg als en slechts dan als v : v(φ 1 ) = = v(φ n ) = T v(ψ) = T Tautologie: een formule φ met = φ Semantisch equivalent: twee formules φ en ψ heten semantisch equivalent (φ ψ) als φ = ψ en ψ = φ. Geldig: een formule φ is geldig als voor alle bedelingen v geldt dat v(φ) = T. Vervulbaar: een formule φ is vervulbaar als er een bedeling v bestaat met v(φ) = T Geldigheid en vervulbaarheid zijn beslisbaar, dit wil zeggen dat een computer kan nagaan of een formule geldig of vervulbaar is. Nu we al deze regels geformuleerd en toegepast hebben om de geldigheid van stellingen te bewijzen moeten we ons misschien afvragen of deze afleidingen kloppen of correct zijn. We moeten hiervoor twee zaken bewijzen: 1. De propositionele logica is correct: als φ 1,..., φ n ψ afleidbaar is dan φ 1,..., φ n = ψ. Met andere woorden dat alle bewijsbare uitspraken geldige uitspraken zijn. 2. De propositionele logica is volledig: als φ 1,..., φ n = ψ geldig is dan φ 1,..., φ n ψ. Met andere woorde ndat alle geldige uitspraken bewijsbaar zijn. Vooraleer we de correctheidsstelling kunnen bewijzen moeten we eerst iets meer vertellen over uitgebreide sequenten. Bij een uitgebreid sequent schrijft men de aannames die men in het bewijs doet bij de premissen. We bewijzen eerst de correctheidsstelling door middel van inductie op de lengte van een afleiding: Te bewijzen: Stel φ 1, φ 2,..., φ n en ψ propositionele logische formules. We moeten bewijzen dat als φ 1, φ 2,..., φ n ψ geldig is dat φ 1, φ 2,..., φ n = ψ steek houdt. Met steek houden bedoelen we dat dat ψ enkel waar mag zijn als φ 1, φ 2,..., φ n allemaal waar zijn. Bewijsmethode: We zullen inductie toepassen op de lengte van het bewijs φ 1, φ 2,..., φ n ψ waarbij met de lengte het aantal lijnen in dit bewijs wordt bedoelt. We gaan sterke inductie uitvoeren op deze lengte. Bewijs met sterke inductie: Inductiehypothese: We nemen M(k) aan: voor alle sequenten φ 1, φ 2,..., φ n ψ(n 0) hebben we een bewijs van lengte k waardoor φ 1, φ 2,..., φ n = ψ steek houdt. 7

Basisstap: als het bewijs lengte 1 heeft (k = 1) dan moet het van de vorm 1 φ premise zijn. We zitten dus in het geval waarbij n = 1 en dus φ 1 en ψ gelijk zijn aan φ. We verkrijgen zo het sequent φ φ waardoor φ = φ duidelijk steek houdt. Sterke inductiestap: we veronderstellen dat het bewijs van het sequent φ 1, φ 2,..., φ n ψ lengte k heeft en dat de te bewijzen stelling waar is voor alle aantallen kleiner dan k. Het bewijs heeft dan volgende structuur: 1 φ 1 premise 2 φ 1 premise. n φ 1 premise. k ψ bewijsregel Er zijn op dit punt twee zaken onbekend: 1. Welke constructies zijn er gebeurt tussen de puntjes? Het is niet belangrijk om dit uit te zoeken, de inductiehypothese garandeert ons namelijk dat deze stappen correct zijn. 2. Wat is de laatst toegepaste bewijsregel? Hier zegt inductie nog niets over en het is onmogelijk om te weten welke regel werd toegepast. We zijn dus verplicht om de correctheid voor alle mogelijke regels te controleren. We controleren enkele van deze regels om de structuur duidelijk te maken: i: we weten nu dat ψ van de vorm ψ 1 ψ 2 is en de bewijsregel op lijn k naar de twee lijnen hogerop waar ψ 1 en ψ 2 staan, stel k 1 en k 2, refereert. Aangezien k 1 en k 2 kleiner zijn dan k weten we dat er bewijzen van de sequenten φ 1, φ 2,..., φ n ψ 1 en φ 1, φ 2,..., φ n ψ 2 bestaan met lengte kleiner dan k. De inductiehypothese garandeert ons dan dat φ 1, φ 2,..., φ n = ψ 1 en φ 1, φ 2,..., φ n = ψ 2 steek houden. Daaruit volgt dat φ 1, φ 2,..., φ n = ψ 1 ψ 2 ook steek houdt. e: indien φ op deze manier bewezen is dan moet er een voorgaande aaname, premise zijn van de vorm η 1 η 2 op een lijn k met k < k. De bewijsregel op lijn k zal dus naar lijn k refereren via e. De inductiehypothese zegt ons dan dat er een korter bewijs van het sequent φ 1, φ 2,..., φ n η 1 η 2 bestaat. Daar e met gevallenonderzoek werkt zijn er daarvoor 2 boxen gebruikt, als we met de aannames in die boxen uitgebreide sequenten maken dan bekomen we dat er bewijzen zijn voor φ 1, φ 2,..., φ n, η 1 ψ en φ 1, φ 2,..., φ n, η 2 ψ. De inductiehypothese garandeert dan dat φ 1, φ 2,..., φ n, η 1 = ψ ne φ 1, φ 2,..., φ n, η 2 = ψ steek houden waardoor φ 1, φ 2,..., φ n = ψ ook steek houdt. Op deze manier dienen dus alle bewijsregels gecontroleerd te worden. Het gaat er dus steeds om dat we moeten bewijzen dat de deductieregels zich semantisch gezien het zelfde gedragen als de waarheidstabellen. 8

Het feit dat deze correctheidsstelling geldt maakt het mogelijk om voor een sequent φ 1, φ 2,..., φ n ψ aan te tonen dat het niet afleidbaar/bewijsbaar is. Het volstaat een bedeling te vinden waarvoor φ i waar is terwijl ψ vals is. Daaruit volgt dan dat φ 1, φ 2,..., φ n = ψ geen steek houdt. Uit de correctheidsstelling volgt dan dat φ 1, φ 2,..., φ n ψ niet geldig kan zijn en er dus geen bewijs voor is. We gaan nu over tot het bewijzen van de volledigheid van de propositie logica en willen dus bewijzen dat als φ 1, φ 2,..., φ n = ψ steek houdt, er dan een bewijs bestaat voor het sequent φ 1, φ 2,..., φ n ψ. Met andere woorden alle geldige uitspraken zijn bewijsbaar. We nemen in het bewijs dus steeds aan dat φ 1, φ 2,..., φ n = ψ steek houdt en bewijzen in 3 stappen: 1. We tonen aan dat = φ 1 (φ 1 (φ 3 (... (φ n ψ)...))) steek houdt. 2. We tonen aan dat φ 1 (φ 1 (φ 3 (... (φ n ψ)...))) geldig is. 3. We tonen aan dat φ 1, φ 2,..., φ n ψ geldig is. We bewijzen dus: 1. We weten dus dat φ 1, φ 2,..., φ n = ψ steek houdt en we gaan na dat = φ 1 (φ 1 (φ 3 (... (φ n ψ)...))) een tautologie is. Daar deze formule een geneste implicatie is, is er maar één mogelijkheid om vals te bekomen. Alle φ 1, φ 2,..., φ n moeten waar zijn en ψ moet vals zijn. Dit spreekt het feit dat φ 1, φ 2,..., φ n = ψ steek houdt echter tegen, dus houdt = φ 1 (φ 1 (φ 3 (... (φ n ψ)...))) steek. 2. Theorema 1. Als = η steek houdt, dan is η geldig. Met andere woorden, als η een tautologie is, dan is η een theorema. Deze tweede stap is de moeilijkste en langste stap. Stel dat = η steek houdt en dat gegeven is dat η n verschillende propositionele atomen p 1, p 2,..., p n bevat. We weten dan dat η naar evalueert voor alle 2 n lijnen in de waarheidstabel. Om het bewijs op te bouwen gaan we nu elke lijn in de waarheidstabel van η interpreteren als een sequent. Voor elk van deze 2 n sequenten stellen we een bewijs op waarna we deze bewijzen terug samenstellen tot een bewijs voor η. Propositie 1. Stel φ een formule met als enige propositionele atomen p 1, p 2,..., p n. Stel l gelijk welk lijnnummer in de waarheidstabel van φ. Stel nu voor alle i in 1 i n ˆp i als p i voor indien p i op lijn l is, stel anders ˆp i als p i voor. Met andere woorden: We bekomen nu ˆp i = { φ als v(φ) = T φ als v(φ) = F ˆp 1, ˆp 2,..., ˆp n φ is bewijsbaar als φ op lijn l T is. ˆp 1, ˆp 2,..., ˆp n φ is bewijsbaar als φ op lijn l F is. We bewijzen deze propositie nu met inductie op (de lengte) van φ: 9

Basisstap: φ bestaat nu uit één propositioneel atoom p en we moeten dus p p en p p aantonen wat duidelijk geldig is. Inductiestap: ook hier moeten we weer voor elke formule onderzoeken of we tot een sluitend bewijs komen. We overlopen er een paar: Als φ van de vorm φ 1 is moeten we twee gevallen onderscheiden. Stel eerst dat φ T is dan is φ 1 F. We merken op dat φ 1 dezelfde atomaire structuur heeft als φ. We kunnen nu de inductiehypothese toepassen op φ 1 om te concluderen dat ˆp 1, ˆp 2,..., ˆp n φ 1. Maar aangezien φ 1 structureel gelijk is aan φ zijn we klaar. Stel φ van de vorm φ 1 φ 2. Als φ F is, dan weten we dat φ 1 T is en φ 2 F is. Uit de inductiehypothese volgt dan dat ˆq 1,..., ˆq l φ 1 en ˆr 1,..., ˆr k φ 2 waaruit ˆp 1,..., ˆp n φ 1 φ 2 volgt. We moeten aantonen dat ˆp 1,..., ˆp n (φ 1 φ 2 ) wat gebruik makend van ˆp 1,..., ˆp n φ 1 φ 2 leidt tot het aantonen van φ 1 φ 2 (φ 1 φ 2 ). Dit kan met een simpele waarheidstabel. Als φ T is hebben we drie gevallen: (a) Als φ 1 F is en φ 2 F is krijgen we door middel van de inductiehypothese dat ˆq 1,..., ˆq l φ 1 en ˆr 1,..., ˆr k φ 2 waaruit ˆp 1,..., ˆp n φ 1 φ 2 volgt. Weer kunnen we nu met een simpele waarheidstabel φ 1 φ 2 φ 1 φ 2 aantonen. (b) Als φ 1 F is en φ 2 T is krijgen we door middel van de inductiehypothese dat ˆp 1,..., ˆp n φ 1 φ 2 en we moeten dus op gelijkaardige manier bewijzen dat φ 1 φ 2 φ 1 φ 2. (c) Als φ 1 T is en φ 2 T is krijgen we door middel van de inductiehypothese dat ˆp 1,..., ˆp n φ 1 φ 2 en we moeten dus op gelijkaardige manier bewijzen dat φ 1 φ 2 φ 1 φ 2. Als φ van de vorm φ 1 φ 2 is dan moeten we weer 4 gevallen beschouwen: (a) Als φ 1 T is en φ 2 T is krijgen we door middel van de inductiehypothese dat ˆq 1,..., ˆq l φ 1 en ˆr 1,..., ˆr k φ 2 waaruit ˆp 1,..., ˆp n φ 1 φ 2 volgt. (b) Als φ 1 F is en φ 2 T is krijgen we door middel van de inductiehypothese en de i regel dat ˆp 1,..., ˆp n φ 1 φ 2. We moeten dus enkel bewijzen dat φ 1 φ 2 (φ 1 φ 2 ). (c) Als φ 1 F is en φ 2 F is krijgen we door middel van de inductiehypothese en de i regel dat ˆp 1,..., ˆp n φ 1 φ 2. We moeten dus enkel bewijzen dat φ 1 φ 2 (φ 1 φ 2 ). (d) Als φ 1 T is en φ 2 F is krijgen we door middel van de inductiehypothese dat i regel dat ˆp 1,..., ˆp n φ 1 φ 2. We moeten dus enkel bewijzen dat φ 1 φ 2 (φ 1 φ 2 ). Als φ van de vorm φ 1 φ 2 is dan moeten we weer 4 gevallen beschouwen: (a) Als φ 1 F is en φ 2 F is krijgen we door middel van de inductiehypothese en de i regel dat ˆp 1,..., ˆp n φ 1 φ 2. We moeten dus enkel bewijzen dat φ 1 φ 2 (φ 1 φ 2 ). (b) Als φ 1 T is en φ 2 T is krijgen we door middel van de inductiehypothese dat ˆp 1,..., ˆp n φ 1 φ 2. We moeten dus enkel bewijzen dat φ 1 φ 2 φ 1 φ 2. 10

(c) Als φ 1 F is en φ 2 T is krijgen we door middel van de inductiehypothese dat ˆp 1,..., ˆp n φ 1 φ 2. We moeten dus enkel bewijzen dat φ 1 φ 2 φ 1 φ 2. (d) Als φ 1 T is en φ 2 F is krijgen we door middel van de inductiehypothese dat ˆp 1,..., ˆp n φ 1 φ 2. We moeten dus enkel bewijzen dat φ 1 φ 2 φ 1 φ 2. We passen deze techniek nu toe op de formule = φ 1 (φ 1 (φ 3 (... (φ n ψ)...))). Aangezien dat een tautologie is evalueert het als T in alle 2 n lijnen in de waarheidstabel. We moeten dus 2 n aantal bewijzen van de vorm ˆp 1, ˆp 2,..., ˆp n η opstellen, één voor elk van de gevallen dat ˆp i p i of p i is. Daarna moeten we al deze bewijzen samenstellen tot een enkelvoudig bewijs voor η zonder premissen. We demonstreren deze techniek met de tautologie p q p die twee propositionele atomen p en q heeft. Door bovenstaande propositie hebben we de garantie dat er een bewijs is voor elk van de volgende vier sequenten: (a) p, q p q p (b) p, q p q p (c) p, q p q p (d) p, q p q p We willen p q p bewijzen door de 4 bewijzen samen te nemen en we moeten de premissen dus op één of andere manier zien te verliezen. Hiervoor gebruiken we de wet van het uitgesloten derde of LEM. Deze stelt dat r r voor elke r geldt. We gebruiken nu LEM voor alle propositionele atomen (hier p en q) en nemen ze dan appart aan door middel van e. Op deze manier kunnen we alle vier de bovenstaande sequenten appart bewijzen: 1 p p LEM 2 p aanname p aanname 3 q q LEM q q LEM 4 q aanname q aanname q aanname q aanname 5 6........ 7 p q p p q p p q p p q p 8 p q p e p q p e 9 p q p e 3. Als laatste moeten we een bewijs vinden voor φ 1, φ 2,..., φ n ψ. We nemen hiervoor het bewijs uit stap 2 ( = φ 1 (φ 1 (φ 3 (... (φ n ψ)...)))) en introduceren φ 1, φ 2,..., φ n als premissen. We passen dan e n keer toe op elk van deze premissen. Op deze manier komen we aan de conclusie ψ en we hebben het gestelde dus bewezen. 11

1.6 Conjunctieve normaalvorm Definitie 4. Een literaal is een atoom p of een ontkennend atoom p. Twee literalen l 1 en l 2 heten complementair als l 1 = l 2 of l 1 = l 2. Definitie 5. Twee formules φ en ψ zijn semantisch equivalent als φ = ψ en ψ = φ steek houden. Indien twee formules φ en ψ sementisch equivalent zijn wordt dit aangeduidt door φ ψ. Definitie 6. Een conjunctieve normaalvorm of CNV is een conjunctie van disjuncties van literalen. Meer abstract wordt dit genoteerd als: L ::= p p D ::= L L D C ::= D D C Conjunctieve normaalvormen worden gebruikt omdat er een efficiënt algoritme bestaat om de geldigheid ervan te testen. Een conjunctieve normaalvorm φ is geldig als en slechts dan als iedere conjunctie van φ een koppel van complementaire literalen bevat. Dit is een veralgemening van volgend lemma: Lemma 1. Een disjunctie van literalen l 1 l 2, l m is geldig als er een i, j bestaan met 1 i, j m zodat l i = l j. We bewijzen dit lemma. Als l i gelijk is aan l j dan zal l 1 l 2 l m T zijn voor elke bedeling. Zo kan p q r q bijvoorbeeld nooit F zijn. Stel nu dat geen enkele literaal l k een complementair literaal l r bevat in l 1 l 2 l m. Dan kunnen we voor elke k, 1 k n aan l k F toewijzen als l k een atoom is of T als l k de negatie van een atoom is waardoor we false uitkomen. Zo kan de disjunctie q p r vals gemaakt worden door p en r F te maken en q T te maken. Het is dus belangrijk dat het complementaire literaal in de zelfde disjunctie gevonden wordt. Vooraleer we verder gaan dienen we eerst een nieuw begrip in te voeren, vervulbaarheid. Definitie 7. Een formule φ is vervulbaar indien er een bedeling v(φ) bestaat die T uitkomt. Een formule φ is vervulbaar als φ niet geldig is. Er zijn verschillende algoritmes om conjunctieve normaalvormen op te stellen. We geven er twee: 1. Door middel van een waarheidstabel. Het aantal disjuncties in de conjunctieve normaalvorm wordt nu gegeven door het aantal keer dat de formule φ F uitkomt. Elke disjunctie bevat nu de literaal tegengesteld met de bedeling in de waarheidstabel, dus p voor T en p voor F. Op deze manier kan men meteen de CNV aflezen. We geven een voorbeeld voor volgende waarheidstabel: 12

p q r φ T T T T T T F F T F T T T F F T F T T F F T F F F F T F F F F T Er zijn 4 rijen waar de formule F uitkomt en de CNV is dus vande vorm ψ 1 ψ 2 ψ 3 ψ 4. We kunnen nu de ψ i aflezen uit de tabel: ψ 1 = p q r ψ 2 = p q r ψ 3 = p q r ψ 4 = p q r Dit maakt dat de CNV gegeven wordt door: ( p q r) (p q r) (p q r) (p q r) 2. Een tweede manier werkt rechtstreeks in op de formule φ en bestaat uit het uitvoeren van 3 stappen: (a) Verwijder alle implicaties met φ ψ φ ψ. (b) Schuif ontkenningen door naar de atomen met De Morgan (φ ψ) φ ψ of (φ ψ) φ ψ en verwijder dubbele negaties φ φ. (c) Verdeel disjuncties over conjuncties met φ (ψ χ) (φ ψ) (ψ χ) of (φ ψ) χ (ψ χ) (ψ χ) Het is belangrijk te onthouden dat conjunctieve normaalvormen niet uniek bepaald zijn. Voor alle formules φ bestaat er een CNV ψ zo dat φ ψ en deze kan bepaald worden door middel van bovenstaande deterministische procedure. We zullen deze nu iets formeler schrijven door verschillende procedures te schrijven. We beginnen met het verwijderen van implicaties: function IMPL FREE(φ) : switch φ : case φ literaal return φ case φ is φ 1 return IMPL FREE(φ 1 ) case φ is φ 1 φ 2 return IMPL FREE(φ 1 ) IMPL FREE(φ 2 ) case φ is φ 1 φ 2 return IMPL FREE(φ 1 ) IMPL FREE(φ 2 ) 13

case φ is φ 1 φ 2 return IMPL FREE(φ 1 ) IMPL FREE(φ 2 ) end function Het is noodzakelijk om ontkenningen door te schuiven naar de literalen. Eens dit gebeurt is bekomen we een zogenaamde negatie normaal vorm of NNV. Dit gaat als volgt: function NNF(φ) : switch φ : case φ literaal return φ case φ is φ 1 return NNF(φ 1 ) case φ is φ 1 φ 2 return NNF(φ 1 ) NNF(φ 2 ) case φ is φ 1 φ 2 return NNF(φ 1 ) NNF(φ 2 ) case φ is (φ 1 φ 2 ) return NNF( φ 1 ) NNF( φ 2 ) case φ is (φ 1 φ 2 ) return NNF( φ 1 ) NNF( φ 2 ) end function Als laatste hebben we nog een functie/procedure nodig om de disjuncties te verdelen: function DISTR(η 1, η 2 ) : switch η 1, η 2 : case η 1 is η 11 η 12 return DISTR(η 11, η 2 ) DISTR(η 12, η 2 ) case η 2 is η 21 η 22 return DISTR(η 1, η 21 ) DISTR(η 1, η 22 ) case default return η 1 η 2 end function Nu kunnen we de CNF functie, die eveneens disjuncties verdeelt, definiëren: function CNF(φ) : switch φ : case φ literaal return φ case φ is φ 1 φ 2 return CNF(φ 1 ) CNF(φ 2 ) case φ is φ 1 φ 2 return DISTR(CNF(φ 1 ), CNF(φ 2 )) end function 14

Nu we deze functies gedefiniëerd hebben gelden volgende uitspraken: CNF(NNF(IMPL FREE(φ))) is een CNV van φ. CNF(NNF(IMPL FREE(φ))) φ. Het afwerken van CNF(NNF(IMPL FREE(φ))) eindigt (het bewijs wordt in het vak herschrijfsystemen gegeven). 1.7 Horn clausules Definitie 8. Een Hornclausule is een formule van de vorm p 1 p n q met n 1 en waarbij p 1,..., p n atomen, of zijn. Definitie 9. Een Hornformule is een conjunctie van Hornclausules. Het is dus een instantie van H in: P ::= p A ::= P P A C ::= A P (C is dus een Hornclausule) H ::= C C H Horn formules zijn interessant omdat er een efficiënt algoritme bestaat om de vervulbaarheid ervan na te gaan: function HORN(φ) : Maak een lijst van alle atomen inclusief en die in φ optreden. Markeer als het in de lijst optreedt. while Hornclausule P 1 P n Q in φ zodat alle P 1 P n gemarkeerd zijn en als Q nog niet gemarkeerd is do markeer Q. end while if gemarkeerd is then return niet vervulbaar else return vervulbaar met bedeling v(p ) = end if end function { T als P gemarkeerd is F als P niet gemarkeerd is Theorema 2. Het HORN algoritme is correct om de vervulbaarheid van een Horn formule φ te beslissen. Daarbij heeft de while-loop niet meer dan n + 1 iteraties nodig als n het aantal atomen in φ is, met andere woorden HORN stopt altijd bij een correcte input. We bewijzen dit in drie delen: 1. Bewijs dat het algorimte eindigt: als we in de body van de while-loop gaan heeft dit het effect dat een niet-gemarkeerde P die niet is gemarkeerd wordt. Aangezien het markeren toegepast wordt op alle voorkomens van P in φ kan de while-loop ten hoogste één iteratie meer doen dan het aantal atomen in φ. 15

2. Bewijs dat de while-lus correct is: om dit te bewijzen bespreken we eerst de rol van de markeringen. Een markering van P duidt op het feit dat P T moet zijn opdat de formule φ vervulbaar zou kunnen zijn. We gebruiken nu inductie om aan te tonen dat Alle gemarkeerde P zijn T voor alle bedelingen waarin φ T is. steek houdt na gelijk welk aantal iteraties van de while-loop. Basisgeval: als er nul iteraties geweest zijn zijn enkel alle voorkomens van gemarkeerd. Aangezien T moet zijn in alle bedelingen volgt het gestelde. Inductiehypothese: we nemen aan dat de uitspraak klopt na k iteraties van de while-loop. Inductiestap: we bewijzen nu dat de uitspraak geldt na k + 1 iteraties. Als we de (k + 1)de iteratie starten is de conditie in de while-lus zeker waar. Er bestaat dus een conjunctie P 1 P 2 P ki P van φ zodat alle P j gemarkeerd zijn. Stel nu v gelijk welke bedeling waarvoor φ T is. Door de inductiehypothese weten we dan dat alle P j en dus P 1 P 2 P ki ook T zijn in v waaruit we afleiden dat P T moet zijn in v. 3. Bewijs dat het if-statement altijd correct is: als gemarkeerd is moet er een conjuctie van de vorm P 1 P 2 P ki zijn in φ waarvan alle P i ook gemarkeerd zijn. Die conjuctie is dan gelijk aan T F = F vanaf dat φ T is. Dit is onmogelijk dus is het antwoord niet vervulbaar correct. als niet gemarkeerd is weizen we T toe aan alle gemarkeerde atomen en F aan alle niet gemarkeerde atomen waarna we met PBC aantonen dat φ T moet zijn met die bedeling. Moest φ niet T zijn met die bedeling moet één van zijn conjucties P 1 P 2 P ki P F zijn. Dit kan enkel indien alle P j T zijn en P F is, dit zou betekenen dat alle P j gemarkeerd zijn en dus dat P 1 P 2 P ki P behandeld is geweest in één van de iteraties van de while-loop waardoor P gemarkeerd zou moeten zijn. Aangezien niet gemarkeerd is moet P of een atoom q zijn wat leidt tot het waar zijn van de conjuctie, een contradictie. We merken als laatste op dat als een hornformule φ vervulbaar is het algoritme de kleinste bedeling v geeft die φ waar maakt. 1.8 SAT solvers Een SAT-solver is een andere manier om de vervulbaarheid van een formule in gelijk welke vorm te controleren. Het is een NP-volledig probleem. Er zijn verschillende soorten SATsolvers waarvan we enkel de eerste twee zullen behandelen: 1. Lineaire oplosser: deze is vergelijkbaar met het markeringsalgoritme voor Horn. 2. Kubische oplosser 3. Volledige oplosser 16

De eerste twee oplossers zijn correct maar onvolledig. We bespreken eerst de lineaire SAT solver, vooraleer deze toegepast wordt moeten we de formule φ recursief transformeren om en te verwijderen: φ als φ een atoom is T (φ 1 ) als φ = φ 1 T (φ) = T (φ 1 ) T (φ 2 ) als φ = φ 1 φ 2 ( T (φ 1 ) T (φ 2 )) als φ = φ 1 φ 2 (T (φ 1 ) T (φ 2 )) als φ = φ 1 φ 2 Daarna moet de parseboom van de formule worden opgesteld waarna dan alle toppen door middel van de propagatieregels moeten worden gemarkeerd. De propagatieregels zijn de volgende: 1:T 1:F 2:T 2:F 2:F 2:T 1:F 1:T 1:T 2:T 2:T 2:T 1:T 1:T 2:F 2:F 1:F 1:F 1:F 1:F 1:T 2:F 2:F 1:T Figuur 1: Propagatieregels voor SAT Het kan zijn dat dit algoritme geen antwoord levert, dit merkt men meteen in de parseboom. Zo kan men niet verder als men een (a b) tegenkomt. Er zijn dan verschillende mogelijkheden en dus zit de lineaire SAT-oplosser vast. Een kubische SAT-solver kan dit probleem wel oplossen door alle gevallen uit te proberen. 17

1.9 Tseitintransformatie Definitie 10. Twee formules φ en ψ zijn vervulbaarheidsequivalent als φ vervulbaar betekent dat ψ vervulbaar is. De meeste SAT-oplossers gebruiken conjunctieve normaalvormen als input. De transformatie van een formule naar een CNV is echter een dure operatie, er bestaat echter wel een algoritme om in lineaire tijd een formule tot een vervulbaarheidsequivalente CNV om te zetten. Dit is de zogenaamde Tseitintransformatie: T T (φ) = I φ T T (φ) met en als φ een atoom is T T (ψ) (I φ I ψ ) als φ = ψ T T (φ) = T T (ψ 1 ) T T (ψ 2 ) (I φ I ψ1 I ψ2 ) als φ = ψ 1 ψ 2 T T (ψ 1 ) T T (ψ 2 ) (I φ I ψ1 I ψ2 ) als φ = ψ 1 ψ 2 T T (ψ 1 ) T T (ψ 2 ) (I φ I ψ1 I ψ2 ) als φ = ψ 1 ψ 2 { ψ als ψ atoom I ψ = nieuw atoom anders De formules φ en T T (φ) zijn nu vervulbaarheidsequivalent. Met behulp van enkele equivalenties kunnen we een Tseitinnormaalvorm herschrijven als een conjunctieve normaalvorm: φ ψ (ψ φ) ( ψ φ) φ ψ χ ( ψ χ φ) (ψ φ) (χ φ) φ ψ χ (ψ χ φ) ( ψ φ) ( χ φ) φ (ψ χ) ( ψ χ φ) (ψ φ) ( χ φ) Lemma 2. De formule T T (φ) (I φ φ) is geldig. We bewijzen dit met behulp van inductie op de lengte van φ: Basisstap: als φ een atoom is, dan is de bewering duidelijk. Inductiestap: Stel dat φ van de vorm ψ χ is. Zij v een bedeling met v(t T (φ)) = T. Dan geldt v(t T (ψ)) = T en v(t T (χ)) = T en v(i φ (I ψ I χ )) = T. Door middel van de inductiehypothese halen we hieruit dat v(i ψ ) = v(ψ) en v(i χ ) = v(χ) en uiteindelijk v(i φ ) = v(i ψ I χ ) = v(ψ χ) = v(φ). Stel v een bedeling met v(t T (φ)) = T. Dan geldt v(i φ )) = T en v(t T (φ)) = T. Lemma 2 geeft dan dat v(φ) = T. Omgekeerd, zij v een bedeling met v(φ) = T en w een bedeling met w(i ψ ) = T als en slechts dan als v(ψ) = T voor alle deelformules van φ. In het bijzonder geldt dan dat w(p) = v(p) voor alle atomen die in φ optreden en dus w(φ) = v(φ). Met inductie op de lengte van ψ tonen we aan dat w(t T (ψ)) = T geldt voor alle deelformules ψ van φ: Basisstap: de bewering geldt als ψ een atoom is. 18

Inductiestap: Stel nu dat ψ = ψ 1 ψ 2. De inductiehypothese geeft dan dat w(t T (ψ 1 )) = T en w(t T (ψ 2 )) = T. We hebben w(i ψ ) = v(ψ) = v(ψ 1 ψ 2 ) = w(i ψ1 I ψ2 ) omdat v(ψ i ) = w(i ψi ) voor i = 1, 2. Dus geldt w(i ψ (I ψ1 I ψ2 )) = T en bijgevolg w(t T (ψ)) = T. Verder hebben we dat w(i φ ) = v(φ) = T en dus in totaal w(t T (φ)) = T. 2 Predikaatlogica 2.1 Begrippen en definities De predikaatlogica of eerste orde logica is ontstaan uit de nood voor meer subtiele uitdrukkingen. De predikaatlogica bevat volgende concepten: Predikaatsymbolen: P, Q, R, A, B duiden een predikaat zoals P (x) aan waarbij P meer betekenis geeft aan de variabele x. Het zijn dus relaties over het domein. Stel F (x, y) staat voor x is vader van y, dan is F een predikaatsymbool. Variabelen: x, y, z worden in een predicaat ingevuld en zijn plaatshouders voor objecten. Het zijn dus nog niet gespecifieerde elementen van het domein. Functiesymbolen: f, g, h, a, b duiden functies over het domein aan. Stel m staat voor ik dan is dat een functiesymbool van ariteit 0, dit wordt ook een constante genoemd. Stel m(y) als de moeder van y dan is dit een functiesymbool van ariteit 1. Kwantoren: en zijn de twee kwantoren die respectievelijk staan voor er bestaat en voor alle. Connectieven: deze zijn gelijk aan die van de propositielogica:,,,. De functie- en predikaatsymbolen hebben een vast aantal argumenten. Dit aantal argumenten wordt de ariteit of plaatsigheid van het predikaat genoemd. Op deze manier spreekt men soms van unaire of binaire predikaten. Zo heeft het predikaatsymbool = een ariteit van 2 en is het dus een binair predikaat. Een functie geeft dus opnieuw een object terug terwijl een predikaat een waarheidswaarde teruggeeft. In het algemeen zijn termen uitdrukkingen die objecten aanduiden en formules uidrukkingen die een waarheidswaarde uitdrukken. De notationele conventies gelden nog steeds:, y en y binden het sterkst, daarna komen en, dan komt welke rechts-associatief is. Het is belangrijk onderscheidt te maken tussen vrije en gebonden variabelen. We tonen eerst het verschil aan door een parseboom te maken van de formule ( x(p (x) Q(x))) ( P (x) Q(y)). Deze parseboom bevat twee extra s tegenover propositionele parsebomen: De kwantoren x en y hebben maar 1 kind. Predikaten zoals P (t 1, t 2,..., t n ) hebben het symbool P als top met n kinderen, namelijk de parsebomen van de termen t 1, t 2,..., t n. 19

We bekomen voor ( x(p (x) Q(x))) ( P (x) Q(y)) dus de parseboom: x Q vrij P Q P y gebonden gebonden vrij x x x Variabelen interageren dus op twee manieren met kwantoren: Gebonden variabele: een variabele is gebonden in een (deel)-formule xφ of xφ als x in φ optreedt. Vrije variabele: een variabele x in een formule φ heet vrij als dit optreden van x niet in een deelformule van φ gebonden optreedt. Met andere woorden is x in φ vrij als het een blad is in de parseboom van φ zodat er geen opwaards pad bestaat van dat blad tot een top met een kwantor in. Het bereik van x/ x in een formule xφ/ x is φ zonder in φ optredende subformules xψ of xψ. De verzameling van vrije variabelen van een formule φ is dus de verzameling van de in φ optredende variabelen die niet in het bereik van een kwantor in φ zitten. Variabelen zijn niet meer dan plaatshouders en moeten dus substitueerbaar zijn. Het is heel belangrijk om enkel de vrije voorkomens van een variabele te substitueren. Indien ook de gebonden variabelen gesubstitueerd worden is de semantiek van de formule niet langer correct. Definitie 11. Gegeven een variabele x, een term t een een formule φ. Dan is φ[t/x] de formule φ waarin alle vrije voorkomens van de variabele x vervangen zijn door t. Definitie 12. Stel een term t, een variabele x en een formule φ. We zeggen dat t vrij is voor x in φ als de variabelen van t niet gebonden worden in φ[t/x]. Of dus als geen er geen vrij x blad voorkomt in φ dat binnen het bereik van een kwantor y of y valt voor gelijk welke variabele y in t. Indien een substitutie gedaan wordt van een variabele x met een term t die niet vrij is voor x kan dit ongewenste effecten hebben. Zo kan een extra variabele y van t plots gebonden worden. We spreken daarom af enkel φ[t/x] tot te passen als t vrij voor x is in φ, in de rest van de cursus wordt dit bij een substitutie impliciet verondersteld. 20

2.2 Regels voor natuurlijke deductie Alle bewijsregels van de propositielogica gelden ook voor de predikaatlogica, daarbovenop zijn er enkele extra regels Introductie van identiteiten. t = t Dit is een axioma en wordt bedoeld als gelijkheid van uitkomsten. Daardoor kan het enkel gebruikt op termen. Eliminatie van identiteiten. =i t 1 = t 2 φ[t 1 /x] φ[t 2 /x] Dit maakt het mogelijk om iets te zeggen over de gelijkheid van substituties als t 1 en t 2 vrij zijn voor x in φ. -eliminatie xφ φ[t/x] Deze regel zegt dus dat als alle termen x in φ geldig zijn kunnen we deze door gelijk welke term t vervangen en nog steeds concluderen dat φ[t/x] geldig is. -introductie x 0. φ[x 0 /x] xφ Deze regel start door een dummy-variabele x 0 binnen een box te definiëren en die mag nergens anders voorkomen dan in die box. Als φ bewezen kan worden door x met x 0 te substitueren en over die x 0 werden geen veronderstellingen gemaakt kunnen we x dus door gelijk welke term vervangen. Vandaar dat we de mogen introduceren. -introductie φ[t/x] xφ Als we weten dat het geldt voor gelijk welke t geldt het dus ook voor één van de t s. -eliminatie xφ xe xi xi x 0 φ[x 0 /x] χ We voeren hier een gevallenonderzoek uit voor alle mogelijke x 0, indien het voor een van die x 0 geldt zonder dat we iets wisten over x 0 kunnen we de elimineren. Er bestaan heel wat basisgelijkheden in verband met kwantoren die we allemaal met bovenstaande bewijsregels kunnen bewijzen. Stel φ en ψ formules uit de predikaatlogica, dan geldt:. χ =e e 21

1. Zonder veronderstellingen over x: xφ x φ xφ x φ 2. Indien x niet vrij is in ψ: xφ ψ x(φ ψ) xφ ψ x(φ ψ) xφ ψ x(φ ψ) xφ ψ x(φ ψ) x(ψ φ) ψ xφ x(φ ψ) xφ ψ x(φ ψ) xφ ψ x(ψ φ) ψ xφ 3. xφ xψ x(φ ψ) xφ xψ x(φ ψ) 4. x yφ y xφ x yφ y xφ Daar deze regels eenvoudig te bewijzen zijn worden de bewijzen hier niet verder besproken, ze staan weergegeven in het boek Logic in Computer Science - second edition op pagina s 118-122. 2.3 Modellen We gaan nu dieper in op de semantiek van de predikaatlogica, dat is het deel waar we iets zoals waarheidstabellen uit de propositielogica verwachten. Definitie 13. Stel Γ als afkorting voor een mogelijk oneindige lijst formules φ 1, φ 2,..., φ n. Nu is Γ ψ geldig als er een afleiding met behulp van natuurlijke deductie bestaat met premissen enkel in Γ. Dus een bewijs van ψ naar Γ. Er zijn twee soorten karakterisatie van logica: 1. Een positieve karakterisatie: bewijstheorie geeft een positieve karakterisatie omdat het gemakkelijk is aan te tonen dat een gevolgtrekking geldig is. Het is echter heel moeilijk om te bewijzen dat er geen bewijs is. 2. Een negatieve karakterisatie: semantiek geeft een negatieve karakterisatie omdat het gemakkelijk is aan te tonen dat een gevolgtrekking niet geldig is, een tegenvoorbeeld volstaat. Het bewijzen is echter veel moeilijker omdat alle gevallen bekeken moeten worden. Bij predikaatlogica zijn er echter oneindig veel mogelijke bedelingen. Zo n bedeling noemen we in de predikaatlogica een model. Gödels volledigheidsstelling stelt dat de predikaatlogica correct en volledig is, met andere woorden Γ = φ als en slechts als Γ φ. Daarom is het belangrijk zowel de semantiek als de bewijstheorie goed onder de knie te hebben. 22

Definitie 14. Stel F een verzameling van functiesymbolen en P een verzameling predikaatsymbolen. Het koppel (F, P) kan men nu zien als een taal L. Een model M = (A, {f M } f F, {P M } P P ) voor L bestaat nu uit volgende onderdelen: Een niet lege verzameling A welke het universum of domein van concrete objecten wordt genoemd. Voor ieder functiesymbool met ariteit 0 (= M ) een concreet element f M of A. Voor ieder functiesymbool f F van ariteit n > 0 een functie f M : A n A. Voor ieder predikaatsymbool P F van ariteit n > 0 een deelverzameling P M A n. Het is belangrijk het onderscheid tussen f en f M en P en P M in te zien. De f en P symbolen zijn niet meer dan sybmolen, maar de f M en P M zijn respectievelijk echt een functie (of element) en een relatie in een model M. Een taal L is dus een verzameling functie- en predikaatsymbolen (F, P) terwijl een model M een taal is waaraan een verzameling A van concrete elementen is toegevoegd zoals nu wordt gedemonstreerd. Om het concept model te verduidelijken geven we een voorbeeld. Veronderderstel: F def = {i} met i een constante. De verzameling functiesymbolen bestaat dus uit 1 constante. P def = {R, F } met F een unair predicaat en R een predicaat met ariteit 2. De verzameling predikaatsymbolen bestaat dus uit 2 predikaten. Een model M bestaat uit een verzameling concrete elementen A zoals een verzameling toestanden van een computerprogramma. We interpreteren nu als volgt: i M : de initiële- of begintoestand van het systeem. R M : een predikaat die de mogelijke toestandsveranderingen bepaalt. F M : een predikaat die een verzameling van eindtoestanden bepaalt. In het voorbeeld definiëren we al deze elementen als volgt: A def = {a, b, c} i M def = a R M def = {(a, a), (a, b), (a, c), (b, c), (c, c)} F M def = {b, c} We kunnen nu gemakkelijk enkele formules in dit model testen. De formule yr(i, y) stelt dat er een toestandsverandering bestaat vanaf de begintoestand naar een willekeurige toestand van het model. Dit is waar omdat in R M overgangen (a, a), (a, b) en (a, c) gedefiniëerd zijn. De formule F (i) stelt dat de begintoestand geen eindtoestand is. Dit klopt omdat a de begintoestand is en niet gedefiniëerd is als eindtoestand in F M. Wat hierboven informeel gebeurt is, is het checken van formules over een model. Dit wordt modelchecking genoemd. 23

Met deze modellen kunnen uitdrukkingen van de vorm xφ of xφ nog niet goed uitgedrukt worden. Stel namelijk dat x vrij voorkomt, dan zou men φ[a/x] kunnen proberen. Dit is echter niet geldig omdat a geen term is maar een element van het model. Het is dus noodzakelijk om formules relatief aan een omgeving te interpreteren. Een omgeving is een soort opzoekingstabel l is waarin voor elke variabele x een waarde l(x) wordt bijgehouden. Of men kan dus zeggen dat een omgeving een functie: l : var A is die de verzameling variabelen var in de formule afbeeldt op het universum van waarden van A van het onderliggende model M. Definitie 15. Een M-bedeling of opzoekingstabel voor een model M = (A, {f M } f F, {P M } P P ) is een functie l van de verzameling van variabelen var naar A. De waarde van een term t in een model M relatief tot een M-bedeling l is inductief gedefiniëerd door: { l(t) als t een variabele is t M,l = f M (t M,l 1,..., t M,l n ) als t = f(t 1,..., t n ) Voor een M-bedeling l, een variabele x en een element a A is de (update-)bedeling l[x a] gedefiniëerd door: { a als y = x (l[x a])(y) = l(y) als y x Het is nu mogelijk om een correcte semantiek te definiëren voor formules in de predikaatlogica. Definitie 16. Stel een model M voor een paar (F, P) en een M-bedeling l. Dan noemen we M = l φ een geldigheidsrelatie M = l φ voor elke logische formule φ over (F, P) en l door structurele inductie op φ. Als M = l φ steek houdt, zeggen we dat φ waar is in het model M met betrekking tot de M-bedeling l. Wat volgt is dus de enige juiste syntax voor semantische berekeningen met predikaatlogica: P : Als φ van de vorm P (t 1, t 2,..., t n ) is moeten de termen t 1, t 2,..., t n vervangen worden door de waardes opgegeven in l zodat a 1, a 2,..., a n worden bekomen. Door nu elk functiesymbool f F als f M te interpreteren bekomen we dat M = l P (t 1, t 2,..., t n ) steek houdt als (a 1, a 2,..., a n ) in de verzameling P M zit. x: De relatie M = l xψ houdt steek als M = l[x a] ψ steek houdt voor alle a A. x: De relatie M = l xψ houdt steek als M = l[x a] ψ steek houdt voor enkele a A. : De relatie M = l ψ houdt steek als het niet het geval is dat M = l ψ steek houdt. : De relatie M = l ψ 1 ψ 2 houdt steek als M = l ψ 1 of M = l ψ 2 steek houdt. : De relatie M = l ψ 1 ψ 2 houdt steek als M = l ψ 1 en M = l ψ 2 steek houden. : De relatie M = l ψ 1 ψ 2 houdt steek als M = l ψ 2 steek houdt van zodra M = l ψ 1 steek houdt. Soms wordt M = l φ geschreven om aan te duiden dat M = l φ geen steek houdt. 24

Lemma 3. Zij M een model voor een taal l, dan geldt: 1. Als t een term is en l, l twee M-bedelingen zijn met l(x) = l (x) voor alle variabelen die in t optreden, dan geldt dat t M,l = t M,l. 2. Voor twee termen s, t en een M-bedeling l geldt dat (t[s/x]) M,l = t M,l[x sm,l]. We bewijzen nu de eerste bewering met behulp van inductie over de lengte van t, het bewijs van de tweede redenering verloopt analoog: Basisgeval: Stel dat t een variabele x is, dan treedt x op in t en geldt dat t M,l = l(x) = l (x) = t M,l. Inductiehypothese: t M,l i = t M,l i voor i = 1,..., n Inductiestap: Stel nu dat t van de vorm f(t 1,..., t n ) is met kortere deeltermen t i. Elke variabele die in t i optreedt, treedt ook in t op. Uit de inductiehyphothese volgt nu dat t M,l = f M (t M,l 1,..., t M,l n ) = f M (t M,l 1,..., t M,l n ) = t M,l waarmee het gelstelde bewezen is. Lemma 4. Zij M een model voor een taal l, dan geldt: 1. Als φ een formule is en l, l twee M-bedelingen zijn met l(x) = l (x) voor alle x die vrij zijn in φ, dan geldt dat M = l φ M = l φ. 2. Voor een term t, een formule φ en een M-bedeling l geldt M = l φ[t/x] M = l[x t M,l ] φ. We bewijzen nu de eerste bewering met behulp van inductie op de lengte van φ, het bewijs van de tweede redenering verloopt analoog: Inductiebasis: stel φ een atomaire formule P (t 1,..., t n ). Als x een variabele van een term t i is, dan geldt wegens het te bewijzen dat l(x) = l (x). Wegens lemma 3 geldt dat t M,l i = t M,l i voor i = 1,..., n en dus: M = l φ (t M,l 1,..., t M,l n ) P M (t M,l 1,..., t M,l n ) P M M = l φ Inductiehypothese: M = l φ M = l φ voor (x 1,..., x n ) vrij in φ. Inductiestap: Stel dat φ een formule ψ χ is, dan gelden: M = l φ M = l ψ en M = l χ M = l ψ en M = l χ M = l φ Stel tenslotte dat φ een formule xψ is. Dan zitten de vrije variabelen van φ in ψ voorgesteld als x. Hieruit volgt dat voor alle a A de bedelingen l[x a] en l [x a] overeenkomen voor de vrije variabelen in ψ. Hierdoor geldt dus dat: M = l φ M = l[x a] ψ voor alle a A I.H. M = l [x a] ψ voor alle a A M = l φ. De overige gevallen zijn gelijkaardig. 25

Definitie 17. Een zin is een formule zonder vrije variabelen. Als φ een zin is geldt dat M = l φ M = l φ voor alle M-bedelingen l en l omdat er geen termen door model specifieke elementen worden vervangen. De waarheidswaarde van zinnen hangt dus niet af van de bedeling. We noteren M = φ voor zinnen φ. Definitie 18. Voor een (mogelijk oneindige) verzameling Γ van l-formules en een formule ψ stellen we dat: 1. ψ is een semantisch gevolg van Γ(Γ = ψ) als en slechts als dan voor alle l-modellen M en M-bedelingen l geldt: uit M = l φ voor alle φ Γ volgt dat M = l ψ. 2. ψ is vervulbaar als M = l ψ voor tenminste één l-model M en één M-bedeling l. 3. Γ is vervulbaar of consistent als voor tenminste één l-model M en één M-bedeling l geldt dat voor alle φ Γ : M = l φ. 4. ψ is geldig als M = l ψ voor alle l-modellen M en alle M-bedelingen l. In de predikaatlogica is het = symbool dus overladen, het kan twee dingen betekenen: Het kan duiden op model-checking: M = φ. Het kan duiden op semantische gevolgtrekking: φ 1, φ 2,..., φ n = ψ. In beide gevallen is het niet steeds mogelijk alle controles op een computer uit te voeren. In het eerste geval treedt een probleem op als het universum van waardes A van het model M oneindig is. Dit zou namelijk betekenen dat om de zin xψ, waarbij x vrij is in ψ, te testen, geverifieerd moet worden dat M = [x a] ψ voor een oneindig aantal elementen a. In het tweede geval is het probleem dat als men wil verifiëren dat φ 1, φ 2,..., φ n = ψ steek houdt, alle relevante tests voor alle mogelijke modellen met de juiste structuur - dus modellen met functies en predicaten met overeenkomende ariteit - moeten uitgevoerd worden. Dit is dus steeds onmogelijk. Soms kan men deze problemen oplossen door over de semantiek te redeneren, dit werkt echter maar op een zeer beperkt aantal gevallen waaronder gelijkheid van kwantoren. We verduidelijken met een voorbeeld: x(p (x) Q(x)) = xp (x) xq(x) Stel M een model dat x(p (x) Q(x)) vervulbaar maakt, dan moeten we aantonen dat dit model ook xp (x) xq(x) vervulbaar maakt. Als we kijken naar de definitie van M = ψ 1 ψ 2 zijn er nu twee gevallen: 1. Als niet elk element van M P vervulbaar maakt klopt het omdat F vervulbaar is voor gelijk welke. 2. Als wel elk element van M P vervulbaar maakt dan moet, omdat M x(p (x) Q(x)) vervulbaar maakt, elk element van M ook Q vervulbaar maken. Deze twee gevallen gecombineerd tonen dus aan dat M ook xp (x) xq(x) vervulbaar maakt. 26

De formule in omgekeerde richting aantonen is echter niet mogelijk. xp (x) xq(x) = x(p (x) Q(x)) Stel M een model dat xp (x) xq(x) vervulbaar maakt. Indien A de onderliggende verzameling van M is en P M en Q M de onderligende representaties van P en Q, dan zegt M = xp (x) xq(x) niets anders dan dat als P M = A dat Q M ook gelijk moet zijn aan A. Echter is het zo dat als P M niet gelijk is aan A dat de implicatie zonder meer waar is (wegens F T ). Er kunnen dus geen beperkingen over het model M worden afgeleidt. Er bestaat zelfs een tegenvoorbeeld: Stel A def M def M def = {a, b}, P = {a} en Q = {b}. Dan houdt M = xp (x) xq(x) steek, maar M = x(p (x) Q(x)) niet. Stelling 1. De predikaatlogica is correct en volledig: Γ = ψ Γ ψ Bovenstaande stelling staat bekend als Gödels volledigheidsstelling en heeft een vrij lang bewijs dat we niet volledig zullen bespreken. We bewijzen nu echter wel enkele lemma s die in het bewijs gebruikt worden. Lemma 5. Zij L een taal van de eerste orde en B een bewijs met natuurlijke deductie van ψ met premissen φ 1 en aannames φ 2. Zij x 1,..., x 2 een lijst van de variabelen die vrij optreden in φ 1, φ 2 en ψ. Stel nu M een gepaste structuur voor L met m 1,..., m n als onderliggende elementen van M. Stel als laaste l een bedeling voor M met l(x i ) = m i voor i = 1,..., n. Als M = l φ 1 φ 2 dan geldt M = l ψ We bewijzen dit met inductie op de lengte van B: Inductiebasis: Als ψ φ 1 φ 2 dan volgt de bewering uit de opgave. Inductiehypothese: De variabelen x 1,..., x n bevatten alle vrije variabelen die in φ 1, φ 2, ψ optreden. Inductiestap: We onderscheiden verschillende gevallen: Stel dat ψ = χ 1 χ 2 met implicatie-introductie werd bewezen. Dan bestaat het bewijs van ψ uit premissen φ 1 in χ 1 en aannames φ 2 in χ 2. Stel nu dat M = l φ 1 φ 2, om M = l ψ te bewijzen mogen we M = l φ 1 aannemen en het volstaat dan om M = l φ 2 te bewijzen. We weten echter dat M = l φ 1 φ 2, χ 1 en uit de inductiehypothese volgt dan dat M = l φ 2. Stel dat ψ = xχ(x) met -introductie werd bewezen. Dan bestaat er een deelbewijs B met conclusie χ[x 0 /x] waarbij de variabele x 0 niet optreedt (behalve in gesloten boxen) in de premissen en aannames van B. Stel nu M = l φ 1 φ 2. We moeten nu M = l ψ bewijzen. Zij m een willekeurig element uit M en zij l = l[x 0 m]. Omdat x 0 niet in φ 1 φ 2 optreedt geldt ook dat M = l φ 1 φ 2. De variabelen x 0, x 1,..., x n bevatten alle vrije variabelen die in φ 1, φ 2, χ[x 0 /x] optreden en met behulp van de inductiehypothese volgt hieruit dat M = l χ[x 0 /x]. Omdat m willekeurig was volgt het te bewijzen. 27

Stel nu dat ψ door -eliminatie werd bewezen. Dan is er een deelbewijs B 1 van xχ(x) en een deelbewijs B 2 met premissen uit φ 1 en aannames uit φ 2 {χ[x 0 /x]} waarbij de variabele x 0 niet vrij voorkomt in φ 1 φ 2.Stel nu M = l φ 1 φ 2 en we moeten M = l ψ bewijzen. Omdat x 0 niet als vrije variabele voorkomt in B 1 volgt M = l xχ(x) uit de inductiehypothese toegepast op B 1. Zij m een element uit M met M = l[x0 m] χ[x 0 /x], uit M = l φ 1 φ 2 volgt dan dat M = l[x0 m] φ 1, φ 2 omdat x 0 niet optreedt in φ 1 φ 2. Er geldt dus dat M = l[x0 m] φ 1, φ 2, χ[x 0 /x]. Als we de inductiehypothese toepassen op B 2 verkrijgen we dat M = l[x0 m] ψ en dus dat M = l ψ omdat x 0 niet vrij voorkomt in ψ. De overige gevallen kunnen analoog worden behandeld. Een belangrijk gevolg van deze stelling is dat als Γ φ dan Γ = φ, wat dus het bewijs van Gödels volledigheidsstelling in één richting is. Definitie 19. Een verzameling van L-zinnen φ heet: consistent als φ. maximaal consistent als φ consistent is en geen echte extensie φ φ van L-zinnen consistent is. gesatureerd als voor alle L-formules φ(x) met hoogstens één vrije variabele x een constante c L bestaat met φ xφ(x) φ(c). Lemma 6. Zij φ een maximaalconsistente verzameling van L-zinnen die gesatureerd is, dan heeft φ een model. We bewijzen. Zij C de verzameling van constanten in L, dan is C. We definiëren nu een equivalentierelatie op C: c d : φ c = d Met de regels voor = kan men nagaan dat wel degelijk een equivalentierelatie is. Stel nu M := C/ de resulterende verzameling van equivalentieklassen waaruit we een model maken en stel f een functiesymbool van ariteit n. We definiëren f M ([c 1 ],..., [c n ]) = [c] als c een constante is met φ f(c 1,..., c n ) = c. Er bestaat zo n c omdat φ ( x)[f(c 1,..., c n ) = x] en omdat φ gesatureerd is. Deze twee kenmerken samen tonen namelijk aan dat er een c bestaat met φ ( x)[f(c 1,..., c n ) = x] F (c 1,..., c n ) = c f M is een goed model omdat het onafhankelijk van de keuze van representanten van de equivalentieklassen werd gedefiniëerd. Dat kan men aantonen met de regels voor de identiteit. Stel nu R een relatiesymbool van ariteit n en ([c 1 ],..., [c n ]) R M φ R(c 1,..., c n ) R M is hier ook goed omdat onafhankelijk van de keuze van representanten van de equivalentieklassen werd gedefiniëerd. Ook hier kan men dit met de regels voor de identiteit bewijzen. 28