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.