Föreläsning 9 Logik med tillämpningar
Innehåll u Semantiska tablåer i predikatlogiken u Klausulform u Herbrandmodeller u Kapitel 3.5, i Ben-Ari
Semantiska tablåer för predikatlogiken u Vi måste modifiera de semantiska tablåerna, eftersom domäner kan vara oändliga. Detta kan leda till icke-terminerande tablåer. u Vi måste kunna hantera kvantifierade formler också. u Detta gör vi genom att instansiera kvantifierade formler. xA(x) xA(x) A(a) A(a) A(a) A(a) xA(x) xA(x) Allkvantifierade formlerExistenskvantifierade formler
Viktigt att komma ihåg! u När vi skapar konstanter för existens- kvantifierade formler måste ta en ny konstant varje gång. u En allkvantifierad formel tas inte bort när man skapar en instans eftersom den gäller för alla x. Här väljer man en konstant som redan finns.
Infinita modeller u Semantiska tablåer terminerar inte alltid u Problemet: Vi vet inte om en gren är infinit eller om den kommer att stängas efter x steg… u Semantiska tablåer är alltså inte en besluts- procedur för validitet för predikatlogiken.
Vi vet i alla fall att: u Teorem (3.5.2) (sundhet) A är en predikatlogisk formel, och T dess tablå. Om T är stängd, så är A osatisfierbar. Teorem (3.5.7) (fullständighet) Om A inte är satisfierbar, så är T stängd. Om A är valid, så är tablån för A stängd.
Funktioner och termer x > y (x + 1) > (y + 1)(infix notation) >(x, y) >(+(x, 1), +(y, 1)) är samma formel i vår normala notation. Argumenten till predikatet + är termer eller mer begripligt funktionssymboler. Funktionssymboler binds i en tolkning till funktioner.
Termer och formler u a, x, f(a, x) och g(f(a, f(x)) är exempel på termer u p(a, b), p(x, f(a, b, c)) och p(x, g(x)) är exempel på formler u En term är sluten (stängd, closed) om den inte innehåller variabler. Definition (3.7.2) En tolkning (interpretation) I av en (mängd av) formler: I = (D, {R 1,..., R n }, {F 1, …, F m }, {d 1, …, d k }) där en funktion F i med n argument knyts till varje funktions- symbol f i med n argument.
Prenex konjunktiv normalform u För att kunna definiera resolution på predikatlogiken så definierar vi först klausulform för predikatlogiken. u Definition: En formel är i prenex konjunktiv normalform (PCNF) omm den har följande utseende: Q l X l … Q n X n M där Q i är kvantifierare och M är en formel i CNF fri från kvantifierare. Sekvensen med kvantifierare kallas för prefix och M kallas för matris.
Klausulform u Definition: En formel är i klausulform om den är i PCNF och prefixet endast består av allkvantifikatorer. Exempel på klausulform: x y((p(f(x)) p(x) p(y)) (p(a) p(y))) {p(f(x)) p(x) p(y), p(a) p(y)} Kan skrivas på kortare form: {pf(x) px py, pa py}
Skolemfunktioner u Problem: Klausulform förutsätter att vi kan få bort existenskvantorn. Fall 1: x yp(x,y) Det ”existerar det ett x för alla y så att p(x,y)”. Vi inför en funktion (Skolemfunktion) som ger detta x för varje y. xp(x,f(x)) u Funktionerna måste ha unika namn, dvs f ovan får inte användas någon annanstans i formeln.
Skolemkonstanter Fall2: yp(y) u I fall 2 ”existerar ett y så att p(y)”. Använd en (Skolem-) konstant c. p(c) där c mappas till just det element i tolkningen som gör formeln sann.
Konstruktion av klausulform: 1. Ge bundna variabler unika namn. 2. Reducera operatorerna till och . 3. Pressa in negationer. När en negation pressas in innanför en kvantor, så byt mot och tvärt om. 4. Flytta kvantifierarna utanför övriga formeln.Välj en kvantifierare som inte är innanför en kvantifierare som är kvar i matrisen och använd följande regler: A op QxB(x) Qx(A op B(x)) QxB(x) op A Qx(B(x) op A) 5. Använd distributiva lagar för att få matrisen i CNF. 6. Använd Skolemkonstanter och skolemfunktioner för att eliminera existenskvantorerna.
Herbrandtolkningar och -modeller u Ett sätt att förenkla arbetet med tolkningar eftersom att diskutera antalet möjliga tolkningar är komplext. u Herbrandtolkningar har en mycket enkel struktur. u Huvudegenskapen för dessa tolkningar är att om en formel har en modell, så har den även en Herbrandmodell, det finns alltså en Herbrandtolkning som satisfierar formeln.
Herbranduniversum Definition (3.9.1) S är en klausulmängd. A är mängden av konstant- symboler som förekommer i S, och F är mängden av funktionssymboler i S. Herbranduniversum för S, H s, definieras rekursivt: a i H s om a i A f i (t 1, …,t n ) H s om f i F och t n H s Om A är tom, dvs det finns inga konstanter i formeln S, så antas att en godtycklig konstant a A.
u Definition (3.9.2) En grund term är en term vars variabler har ersatts med element ur Herbranduniversum. Samma gäller för grund atom och grund klausul. u Definition (3.9.3) En Herbrandtolkning är en tolkning vars domän är ett Herbranduniversum och där konstanter och funktioner är bundna till sig själva. v(a) = a v(f(t1,..., tn)) = f(v(t1),..., v(tn)) Det finns ingen begränsning för relationerna i tolkningen.
Herbrandbas u Definition (3.9.4) S är en mängd formler och H s dess Herbranduniversum. Herbrandbasen B s är mängden av alla grundatomer som kan formas av predikaten i S och termerna i H s.
u Definition (3.9.5) En Herbrandmodell för en klausulmängd S är en Herbrandtolkning som satisfierar S. Antag vi har en Herbrandmodell M s för S. Då kan varje element i Herbrandbasen B s evalueras till T eller F. Vi kan därför beskriva Herbrandmodellen som a i M s om v(a i ) = T dvs Herbrandmodellen beskrivs av den delmängd av Herbrandbasen där elementen evalueras till T av tolkningen.
u Teorem (3.9.6) S är en klausulmängd. Det finns en modell för S omm det finns en Herbrandmodell för S. u Teorem (3.9.7) (Herbrands teorem) En klausulmängd S är osatisfierbar omm det finns en ändlig mängd av grundklausuler av S som är osatisfierbara.
Början på en algoritm för validitet 1. Negera formeln 2. Gör om till klausulform 3. Generera en ändlig mängd av grundklausuler. Dvs instansiera klausulmängden med element ur Herbranduniversum för klausulmängden. 4. Visa att mängden av grundklausuler är osatisfierbara. u Problemet här är steg 3.