непосредствена резолюция между хорнова цел и положителна хорнова клауза е възможна точно когато целта е непразна и първият член на целта съвпада със заключението на клаузата;
нека G = A1 & A2 & … & Am е непразна хорнова цел (m 1) и
C = A1 :– B1 & B2 & … & Bn (n 0) е положителна хорнова клауза;
образуваме G = B1 & B2 & … & Bn & A2 & A3 & … & Am; целта G наричаме непосредствена резолвента на хорновата цел G и положителната хорнова клауза C;
ще покажем, че ако G и C са вярни в дадена структура S при оценка v, то G също е вярна в S при оценката v;
G S, v = 1 B1S, v = B2S, v = … = BnS, v = 1, CS, v = 1 A1S, v = 1,
A2S, v = A3S, v = … = AmS, v = 1 (тъй като G S, v = 1)
GS, v = (A1 & A2 & … & Am)S, v = 1;
като следствие, ако C е тъждествено вярна в S, то импликацията
G G е тъждествено вярна в S;
нека G и C имат непосредствена резолвента G; тогава за всяка субституция , G и C имат непосредствена резолвента G :
действително G = A1 & A2 & … & Am и
C = A1 :– B1 & B2 & … & Bn имат непосредствена резолвента
B1 & B2 & … & Bn & A2 & A3 & … & Am = G;
нека G е хорнова цел, C е положителна хорнова клауза;
всяка хорнова цел G, която е непосредствена резолвента на някой частен случай на G и някой частен случай на C наричаме резолвента на G и C; ще отбележим, че частните случаи на G и C може да се получават от различни субституции; ясно е, че
ако G е непосредствена резолвента на G и C, то G е
резолвента на G и C;
пример: нека C = p (f (f (X))) :– p (X), G = p (X) & p (f (X));
очевидно G и C нямат непосредствена резолвента;
имаме G[X/f (f (X))] = p (f (f (X))) & p (f (f (f (X))));
така частният случай G[X/f (f (X))] на G и частният случай C на C имат непосредствена резолвента – p (X) & p (f (f (f (X))))
G и C имат резолвента p (X) & p (f (f (f (X))));
Твърдение: нека G и C имат резолвента G; нека C е тъждествено вярна в дадена структура S; тогава, ако G е изпълнима в S, то G също е изпълнима в S;
Доказателство: нека 1, 2 са субституции и G е непосредствена резолвента на G1 и C2; тъй като C е тъждествено вярна в S, то
C2 е тъждествено вярна в S G G1 е тъждествено вярна в S;
тъй като G е изпълнима в S съществува оценка v в S, така че
G S, v = 1; имаме (G G1)S, v = 1 (G1)S, v = 1, т.е. G1 е изпълнима в S G е изпълнима в S, тъй като един неин частен случай е изпълним в S;
Твърдение: нека P е множество от положителни хорнови клаузи; нека G е хорнова цел; нека G има резолвента G с някоя клауза
от P; в такъв случай, ако G е изпълнима при P, то G е изпълнима при P;
Доказателство: нека S е произволен модел на P; тъй като G е изпълнима при P G е изпълнима в S; G е резолвента на G и някаква клауза C от P, която е тъждествено вярна в S, тъй като S е модел на P; от горното твърдение G е изпълнима в S; така G е изпълнима във всеки модел на P, т.е. G е изпълнима при P;
нека P е множество от положителни хорнови клаузи; резолвентна редица относно P наричаме всяка редица G1, G2, …(крайна или безкрайна) от хорнови цели, в която за i = 2, 3, …Gi е резолвента на Gi-1 и някоя клауза от P; считаме, че всяка редица от един член е резолвентна;
Твърдение: ако G1, G2, … е резолвентна редица относно P и за някое n N Gn е изпълнима при P, то G1, G2, …, Gn-1 са изпълними при P;
Доказателство: следва непосредствено от предното твърдение;
Следствие: ако една крайна резолвентна редица относно P завършва с празната цел (true), то всички нейни членове са изпълними при P;
пример: нека P = { p (a), p (f (f (X))) :– p (X) };
нека G = p (f (X)); строим резолвентна редица с начало G относно P;
ясно е, че G няма резолвента с p (a), тъй като всеки частен случай на G съдържа функционален символ; една резолвента на G и втората клауза е p (X), която е непосредствена резолвента на
G[X/f (X)] и клаузата; сега p (X)[X/a] = p (a) и тогава p (X) и p (a) имат резолвента true; получаваме следната резолвентна редица:
p (f (X)), p (X), true.
от горното следствие G = p (f (X)) е изпълнима при P;
нека G = p (X) & p (f (X)); отново строим резолвентна редица с начало G относно P; G[X/a] = p (a) & p (f (a)) G има резолвента
p (f (a)) с p (a); ясно е, че p (f (a)) няма резолвента с никоя от клаузите от P; така получихме редицата
p (X) & p (f (X)), p (f (a)).
G[X/f (f (X))] = p (f (f (X))) & p (f (f (f (X)))) G има резолвента
p (X) & p (f (f (f (X)))) с втората клауза; p (X) & p (f (f (f (X))))[X/a] =
= p (a) & p (f (f (f (a)))) има резолвента p (f (f (f (a)))) с първата клауза;
p (f (f (f (a)))) има резолвента само с втората клауза и тя е p (f (a)); така получаваме редицата
p (X) & p (f (X)), p (X) & p (f (f (f (X)))), p (f (f (f (a)))), p (f (a)).
ако използваме само втората клауза ще получим една безкрайна резолвентна редица:
p (X) & p (f (X)), p (X) & p (f3 (X)), p (X) & p (f5 (X)), p (X) & p (f7 (X)), …;
нека P е множество от положителни хорнови клаузи;
нека G и G са хорнови цели; ще казваме, че G е резолвентно достижима от G относно P, ако съществува крайна резолвентна редица относно P с първи член G и последен член G;
ясно е, че ако празната цел true е резолвентно достижима от някоя цел G относно P, то G е изпълнима при P;
свойства на релацията резолвентна достижимост относно P:
рефлексивност: за всяка хорнова цел G, G е резолвентно достижима от G относно P – действително редицата с един член G е резолвентна относно P с начало G и край G;
транзитивност: ако G е резолвентно достижима от G относно P и G е резолвентно достижима от G относно P, то G е резолвентно достижима от G относно P – достатъчно е да комбинираме двете резолвентни редици;
Сподели с приятели: |