Predikatlogik: Normalformer. Klas Markström

Relevanta dokument
Normalisering av meningar inför resolution 3. Steg 1: Eliminera alla och. Steg 2: Flytta alla negationer framför atomära formler

Grundläggande logik och modellteori (5DV102)

Grundläggande logik och modellteori

Robin Stenwall Lunds universitet

Robin Stenwall Lunds universitet

Robin Stenwall Lunds universitet

Grundläggande logik och modellteori (5DV102)

Sanningsvärdet av ett sammansatt påstående (sats, utsaga) beror av bindeord och sanningsvärden för ingående påståenden.

Kap. 7 Logik och boolesk algebra

*UXSS YQLQJ±/RJLNPHGWLOOlPSQLQJDUYW

Avslutning. Vad? Hur? Anmärkningar inför tentan 2. Vad ska ni kunna?

En introduktion till predikatlogik

Avslutning. Vad? Hur? Anmärkningar inför tentan 2. Vad ska kunnas?

FÖRELÄSNING 8 ANDERS MÄRAK LEFFLER IDA/HCS

DD1350 Logik för dataloger. Fö 7 Predikatlogikens semantik

Grundläggande logik och modellteori

Innehåll. Föreläsning 7. Satslogiken är för grov. Samma sak i predikatlogik: Första ordningens predikatlogik. Logik med tillämpningar

Grundläggande logik och modellteori

Datorlingvistisk grammatik I Institutionen för lingvistik och filologi Oktober 2007 Mats Dahllöf

p /\ q r DD1350 Logik för dataloger Kort repetition Fö 3 Satslogikens semantik

Formell logik Kapitel 9. Robin Stenwall Lunds universitet

Semantik och pragmatik (Serie 4)

Innehåll. Föreläsning 4-5. Logiska system. Alfabet. Calculus. Well-formed formulas. Vanliga termer i logik Satslogik. Första ordningens predikatlogik

Detta är ett ofärdigt utdrag ur ovanstående text. Vänligen sprid inte!

Semantik och pragmatik

Tommy Färnqvist, IDA, Linköpings universitet. 1 Kursadministration 1. 2 Introduktion Varför logik? Satslogik... 2

Satslogik grundläggande definitioner 3. Satslogik. Uppgift 1. Satslogikens syntax (välformade formler) Satslogikens semantik (tolkningar)

Logik för datavetare DVK:Log Tisdagen 28 oktober Institutionen för dataoch systemvetenskap David Sundgren

Föreläsning 9: NP-fullständighet

Varför är logik viktig för datavetare?

DD1350 Logik för dataloger

Logik I. Åsa Hirvonen Helsingfors universitet. Våren 2013

Artificiell Intelligens Lektion 4

Filosofisk logik Kapitel 18. Robin Stenwall Lunds universitet

Några saker som jag inte hann: Ur trigonometriska ettan kan vi uttrycka och i termer av. Vi delar båda led i trig. 1:an med :

Formell logik Kapitel 10. Robin Stenwall Lunds universitet

Logik och bevisteknik lite extra teori

Filosofisk Logik (FTEA21:4) föreläsningsanteckningar/kompendium. v. 2.0, den 29/ III. Metalogik 17-19

FÖRELÄSNING 3 ANDERS MÄRAK LEFFLER IDA/HCS

Föreläsning 7+8: NP-problem. Begreppet effektiv algoritm är alltså synonymt med går i polynomisk tid i den här kursen. Är detta en rimlig uppdelning?

Föreläsning 8+9: NP-problem. Begreppet effektiv algoritm är alltså synonymt med går i polynomisk tid i den här kursen. Är detta en rimlig uppdelning?

Tommy Färnqvist, IDA, Linköpings universitet. 2 Strukturer Domäner Tolkningar... 3

Lektion 8: Konstruktion av semantiska tablåer för PTL-formler

Föreläsning 8. Innehåll. Satisfierbarhet hos en formel. Logik med tillämpningar

Hornklausuler i satslogiken

F. Drewes Datavetenskapens grunder, VT02. Lite logik

DD1361 Programmeringsparadigm HT15

Vad är det? Översikt. Innehåll. Vi behöver modeller!!! Kontinuerlig/diskret. Varför modeller??? Exempel. Statiska system

Matriser. En m n-matris A har följande form. Vi skriver också A = (a ij ) m n. m n kallas för A:s storlek. 0 1, 0 0. Exempel 1

Grundläggande logik och modellteori

Grundläggande logik och modellteori

Exempel. Kontinuerliga stokastiska variabler. Integraler i stället för summor. Integraler i stället för summor

Mer om analytisk geometri

FUZZY LOGIC. Christopher Palm chrpa087

DD1361 Programmeringsparadigm HT16

7, Diskreta strukturer

Introduktion till predikatlogik. Jörgen Sjögren

DD1361 Programmeringsparadigm HT17

Primitivt rekursiva funktioner och den aritmetiska hierarkin

Grundläggande logik och modellteori

DD1350 Logik för dataloger. Fö 2 Satslogik och Naturlig deduktion

Om semantisk följd och bevis

Något om logik och logisk semantik

Substitution och unifiering

DD1350 Logik för dataloger

MA 11. Hur starkt de binder. 2 Reella tal 3 Slutledning 4 Logik 5 Mängdlära 6-7 Talteori 8 Diofantiska ekvationer 9 Fördjupning och kryptografi

K3 Om andra ordningens predikatlogik

Sats. Om t är en rätvinklig triangel så är summan av kvadraterna på kateterna i t lika med kvadraten på hypotenusan.

Artificiell Intelligens

1 Duala problem vid linjär optimering

Föreläsning 8: Intro till Komplexitetsteori

TMS136. Föreläsning 5

Tentamenskod: Inga hjälpmedel är tillåtna

9. Predikatlogik och mängdlära

MATEMATIKENS SPRÅK. Syftet med denna övning är att med hjälp av logik lära oss att uttrycka matematik mer exakt,

Om modeller och teorier

Föreläsning 5. Deduktion

Grundläggande logik och modellteori

13. CHURCH S OCH GÖDELS SATSER. KORT ORIENTERING OM BERÄKNINGSBARHET, EFFEKTIV UPPRÄKNELIGHET OCH AVGÖRBARHET.

Föresläsningsanteckningar Sanno II

1 De fyra fundamentala underrummen till en matris

SF1901: Sannolikhetslära och statistik. Väntevärde; Väntevärde för funktioner av s.v:er; Varians; Tjebysjovs olikhet. Jan Grandell & Timo Koski

Vektorgeometri för gymnasister

Föreläsning 9: Turingmaskiner och oavgörbarhet. Turingmaskinen. Den maximalt förenklade modell för beräkning vi kommer använda är turingmaskinen.

Algoritmer, datastrukturer och komplexitet

Föreläsning 3: Ekvationer och olikheter

8. Naturlig härledning och predikatlogik

Probabilistisk logik 1

Induktion, mängder och bevis för Introduktionskursen på I

Semantik och pragmatik

TMS136. Föreläsning 5

Viktiga frågor att ställa när ett argument ska analyseras och sedan värderas:

Vectorer, spannet av vektorer, lösningsmängd av ett ekvationssystem.

Den Gyllene Regeln och Substitutionsfunktioner

Formella metoder. Loop-program som statetransformers. Betrakta följande problem. specifikationen.

MATEMATIKENS SPRÅK. Syftet med denna övning är att med hjälp av logik lära oss att uttrycka matematik mer exakt, lära oss

Jesper Carlström 2008 (reviderad 2009)

Föreläsningsmanus i matematisk statistik för lantmätare, vecka 5 HT06

Robin Stenwall Lunds universitet

Matematisk statistik för D, I, Π och Fysiker

Transkript:

1 Precis som i satslogik så är det bekvämt att kunna hitta en normalform för meningar. Om vi kan utgå från att alla meningar är på normalform så behöver vi t.e.x. inte bekymra oss om en massa specialfall då vi designar algoritmer eller läser in data i våra program.. 2 I satslogik så har vi CNF och DNF som exempel på normalformer. 3 Vi ska idag definiera en normalform för meningar och en klausulform som går att använda då man vill avgöra om en mening är satisfierbar. 4 Vi ska också beskriva algoritmer som transformerar en mening till normalform eller klausulform.

Definition En formel är i prenex konjunktiv normalform PCNF om den är på formen Q 1 x 1 Q 2 x 2... Q n x n M där Q i är kvantifikatorer, x i variabler och M är en formel i CNF. Q 1 x 1 Q 2 x 2... Q n x n kallas formelns prefix och M dess matris

Definition En formel är i prenex konjunktiv normalform PCNF om den är på formen Q 1 x 1 Q 2 x 2... Q n x n M där Q i är kvantifikatorer, x i variabler och M är en formel i CNF. Q 1 x 1 Q 2 x 2... Q n x n kallas formelns prefix och M dess matris x y z(x y) (z x) Prefixet: Matrisen: x y z (x y) (z x)

Det finns en enkel algoritm för att omvandla en formel till PCNF Kortfattat: 1 Byt namn på all bundna (ofria) variabler så att ingen variabel förekommer i mer än en kvantifikator 2 Eliminera implikationer och ekvivalenser 3 Flytta in negationer till atomära formler 4 Flytta kvantifikatorer till vänster 5 Skriv om matrisen till CNF.

Steg 1. Byt namn på all bundna (ofria) variabler så att ingen variabel förekommer i mer än en kvantifikator ( x(f (x) x)) ( x(f (x) x)) skrivs om till ( x(f (x) x)) ( y(f (y) y))

Steg 2. Eliminera implikationer och ekvivalenser Vi använder de regler vi redan sett i satslogiken: A B ersätts med A B A B med (A B) ( A B).

Steg 2. Eliminera implikationer och ekvivalenser Vi använder de regler vi redan sett i satslogiken: A B ersätts med A B A B med (A B) ( A B). Så skrivs om till ( x(f (x) x)) ( y(f (y) y)) ( x( f (x) x)) ( y(f (y) y))

Steg 3. Flytta in negationer till atomära formler Vi gör som i satslogiken så länge inga kvantifierare är involverade. För att handskas med kvantifierare används ekvivalenserna ( x)(a) ( x)( A) ( x)(a) ( x)( A).

Steg 3. Flytta in negationer till atomära formler Vi gör som i satslogiken så länge inga kvantifierare är involverade. För att handskas med kvantifierare används ekvivalenserna ( x)(a) ( x)( A) ( x)(a) ( x)( A). Så skrivs om till ( x( f (x) x)) ( y(f (y) y)) ( x( f (x) x)) ( y (f (y) y)) och vidare till ( x( f (x) x)) ( y( f (y) y))

Steg 4. Flytta kvantifikatorer till vänster Ordningen på kvantifikatorerna måste bevaras.

Steg 4. Flytta kvantifikatorer till vänster Ordningen på kvantifikatorerna måste bevaras. Så ( x( f (x) x)) ( y( f (y) y)) skrivs om till x y(( f (x) x) ( f (y) y))

Steg 5. Skriv om matrisen till CNF. Här använder vi de vanliga reglerna från satslogiken

Steg 5. Skriv om matrisen till CNF. Här använder vi de vanliga reglerna från satslogiken Så x y(( f (x) x) ( f (y) y)) skrivs om till och formeln är nu på PCNF. x y( f (x) x f (y) y)

För meningar (slutna formler) så kan man ibland gå ett steg till. Om prefixet till en mening A bara innehåller så kan man stryka prefixet och få As klausulform.

För meningar (slutna formler) så kan man ibland gå ett steg till. Om prefixet till en mening A bara innehåller så kan man stryka prefixet och få As klausulform. Vår exempelformel var på slutet en mening med endast som kvantifikator i prefixet så vi kan skriva den på klausulform skrivs om till x y( f (x) x f (y) y) ( f (x) x f (y) y)

I satslogik så finns det för varje formel A en ekvivalent formel A som är på CNF. Detta innebär att varje modell för A är en modell för A. Det finns ingen motsvarande sats i predikatlogik om man vill nå en formel på klausulform, men om man bara bryr sig om satisfierbarhet så går det. Theorem (Skolem) För varje mening A så finns det en formel A på klausulform så att A A, dvs A är satisfierbar om och endast om A är satisfierbar. En modell för A behöver inte vara en modell för A, eller tvärtom, utan satsen säger bara att om det finns någon modell för A så finns det någon modell för A.

För att hitta en formel som den Skolem säger ska finnas så måste vi på något sätt bli av med existentiella kvantifikatorer i formler på PCNF. x y (x + 2y 0) (0 x 1) Det finns för varje värde på x många olika y som uppfyller den första delen av formeln. Något som alltid fungerar är tex att ta y = x 2, om vi sätter in det i formeln får vi x y (x + 2 x 0) (0 x 1) 2 x y (x x 0) (0 x 1) x y (0 0) (0 x 1) x y (0 x 1) x (0 x 1)

Skolems idé var att man i något som y p(x, y) kan byta ut y mot en funktion av x som väljer ut ett av dom värden som enligt y ska finnas. Vi kan då byta ut y p(x, y) mot p(x, f (x)) och bevara satisfierbarheten. De här nya funktionerna kallas Skolemfunktioner

Skolems algoritm: Input: En mening A Output: En formel A på klausulform så att A A 1 Använd den tidigare algoritmen för att omvandla A till PCNF. 2 Introducera nya Skolemfunktioner som tar bort alla 3 Stryk alla så att bara matrisen är kvar.

Skolems algoritm: Input: En mening A Output: En formel A på klausulform så att A A 1 Använd den tidigare algoritmen för att omvandla A till PCNF. 2 Introducera nya Skolemfunktioner som tar bort alla 3 Stryk alla så att bara matrisen är kvar. Vi tar en närmare titt på steg 2.

Steg 2 genomförs genom att börja med den innersta existentiella kvantifikatiorn och dess variabel x. Låt y 1... y n vara alla universellt kvantifierade variabler till vänster om x i prefixet. Vi inför nu en ny Skolemfunktion f som beror på dessa y och byter ut alla x i vår formel mot f (y 1, y 2,..., y n ) och tar bort x. Vi upprepar detta för alla exisentiella kvantifikatorer i formeln.

Steg 2 genomförs genom att börja med den innersta existentiella kvantifikatiorn och dess variabel x. Låt y 1... y n vara alla universellt kvantifierade variabler till vänster om x i prefixet. Vi inför nu en ny Skolemfunktion f som beror på dessa y och byter ut alla x i vår formel mot f (y 1, y 2,..., y n ) och tar bort x. Vi upprepar detta för alla exisentiella kvantifikatorer i formeln. y 1 y 2 x 1 y 3 x 2 (x 1 p(y 1, y 2, x 2 )) q(y 3, x 1, x 2 ) Vi inför en skolemfunktion f för x 2 som beror på y 1, y 2, y 3 och ersätter alla x 2 i matrisen med f (y 1, y 2, y 3 ) och får y 1 y 2 x 1 y 3 (x 1 p(y 1, y 2, f (y 1, y 2, y 3 ))) q(y 3, x 1, f (y 1, y 2, y 3 )) Vi inför en skolemfunktion g för x 1 som beror på y 1, y 2 och ersätter alla x 1 i matrisen med g(y 1, y 2 ) och får y 1 y 2 y 3 (g(y 1, y 2 ) p(y 1, y 2, f (y 1, y 2, y 3 ))) q(y 3, g(y 1, y 2 ), f (y 1, y 2, y 3 ))

För att göra det enklare att hålla reda på vart Skolemfunktionerna kommer ifrån kan det vara bra att välja ett namn som identifierar de variabel som den kommer ifrån. T.e.x att x 5 byts ut mot f 5.

För att göra det enklare att hålla reda på vart Skolemfunktionerna kommer ifrån kan det vara bra att välja ett namn som identifierar de variabel som den kommer ifrån. T.e.x att x 5 byts ut mot f 5. En nackdel med den enkla versionen av Skolems algoritm är att den tenderar att ge skolemfunktioner med hög arity/ställighet, Man kan nå något bättre resultat genom att ändra på PCNF-konverteringen så att man först flyttar alla kvantifikatorer så långt in i formeln som möjlgt, sedan inför Skolemfunktionerna och därefter flyttar ut de universella kvantifikatorerna.