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.