Föreläsning 10 Logik med tillämpningar 97-11-25 Innehåll Grundresolution Substitution Unifiering Kapitel 4.1-4.3 i Ben-Ari Grundresolutionsregeln och C2 är grundklausuler och l C1 och lc C2. C1 och C2 är då kolliderande klausuler och de kolliderar på literalerna l och lc. Resolventen C skapas då på samma sätt som för satslogiken, dvs C1 Res(C1, C2) = (C1- {l}) (C2- {lc}) Teorem (4.1.1) Resolventen C är satisfierbar omm föräldraklausulerna C1 och C2 är ömsesidigt satisfierbara. Teorem (4.1.2) Grundresolution är en sund och fullständig refuteringsprocedur för predikatlogiken. Substitutioner För att kunna använda resolution på generella predikatlogiska klausuler (med variabler) måste vi utveckla begreppet substitutioner. Definition (4.2.1) En substitution (av termer för variabler) är en mängd {x1 t1, …, xn tn} där varje xi är en distinkt variabel och ti är en term som inte är identisk med xi. Definition (4.2.2) Ett uttryck är en term, en literal, en klausul eller en klausulmängd. Låt E vara en klausul och q en substitution. Vi får en instans Eq av E genom att simultant byta ut alla förekomster av xi (ur q) mot motsvarande ti. Att göra en instansiering som Eq kan också uttryckas som att vi applicerar substitutionen q på uttrycket E. Definition (4.2.3) q = {x1 t1, …, xn tn} s = {y1 s1, …, yn sn} q och s är två substitutioner. Uttrycket qs kallas för kompositionen av substitutionerna q och s. Resultatet av kompositionen blir en ny substitution som fås genom applicera s på alla termer ti i q (om vi inte då får xi xi) och sedan lägga till alla de substitutioner från s vars variabel yi inte förekommer (som vänsterled) i q. Lemma (4.2.4) E är ett uttryck och q och s är två substitutioner. Då gäller att E(qs) = (Eq)s. Lemma (4.2.5) q(sl) = (qs)l Unifiering Unifiering är ett centralt begrepp inom datavetenskapen och "uppfanns" av Robinson ca 1965. Har stor betydelse inom teorembevisning, logikprogrammering och termomskrivning Herbrands Teorem (3.9.7): En klausulmängd S är osatisfierbar omm det finns en ändlig mängd av grundklausuler av S som är osatisfierbara. Med hjälp av substitutioner kan vi få två olika atomer lika, dvs vi kan generera grundklausuler så att de kolliderar under resolution. Steg tre i algoritmen för validitet blir löst… (se förra förel.) MGU Definition (4.3.1) En unifierare för två atomer är en substitution som gör atomerna identiska. En mest generell unifierare (MGU) är en unifierare m från vilken vi kan få alla andra unifierare q för atomerna mha av en annan substitution l. q = ml Allt kan man inte unifiera Det finns givetvis par av atomer som inte är unifierbara: p(a) och q(a) p(f(x)) och p(g(z)) p(x) och p(f(x)) Avvikelsemängd Definition (4.3.4) (lite utökad) Avvikelsemängden för en icketom mängd W av uttryck, erhålls genom att – bestämma den första positionen från vänster i vilken inte alla deluttryck i W har samma symbol, och därefter – för varje uttryck i W extrahera det deluttryck som börjar med den symbol som står i den positionen. Mängden av dessa respektive deluttryck är avvikelsemängden för W. Robinsons unifieringsalgoritm: Låt W beteckna en mängd av uttryck som ska unifieras 1. Låt k = 0, Wk = W, sk= e 2. Om Wk är en singeltonmängd, stanna; sk är en mgu for W. Annars, finn avvikelsemängden Dk for Wk. 3. Om det existerar element vk och tk i Dk så att tk är en term och vk är en variabel som inte ingår i termen tk, gå till steg 4. Annars, stanna; W är inte unifieringsbar. 4. Låt sk+1 = sk{vk tk} och Wk+1= Wk [vk tk]. 5. Låt k = k + 1. Gå till steg 2.