|
|
Нека P е една хорнова програма. Някои атомарни
формули ще наречем затворено изводими от P. Дефиницията е индуктивна
и се състои от следните две точки:
а) винаги, когато клаузата
A°.
е затворен частен случай на факт от P, атомарната формула A°
е затворено изводима от P;
б) винаги, когато клаузата
A°:-
B1°,
B2°, ..., Bm°.
е затворен частен случай на правило от P и всяка от атомарните
формули
От горната дефиниция следва веднага, че всички атомарни
формули, затворено изводими от P, са затворени. Обратното в общия
случай не е вярно. Например, ако P не съдържа нито един факт, то
никоя атомарна формула не ще бъде затворено изводима от P. Могат
разбира се да се дадат и по-интересни примери за хорнови програми, от които
са затворено изводими не всички затворени атомарни формули.
Пример 1. Нека единствените функционални
символи от сигнатурата са седем константи c1, c2, c3,
c4,
c5,
c6,
c7,
а единствените предикатни символи са два двуместни предикатни символа d
и p. Нека P е следната хорнова програма, съответстваща на
d(X,Y) :- p(Y,X).
d(X,Z) :- p(Y,X),
d(Y,Z).
p(c1,c3).
p(c2,c5).
p(c3,c5).
p(c4,c6).
p(c5,c7).
В този случай всички възможни затворени атомарни формули са краен брой
(49 с предикатен символ d и 49 с предикатен символ p). Ще
намерим кои измежду тях са затворено изводимите от P. Очевидно атомарните
формули в петте факта на P са единствените атомарни формули, за
които
d(c3,c1) :- p(c1,c3).
d(c5,c2) :- p(c2,c5).
d(c5,c3) :- p(c3,c5).
d(c6,c4) :- p(c4,c6).
d(c7,c5) :- p(c5,c7).
Освен това затворените частни случаи на втората клауза от програмата,
в които двете атомарни формули от тялото са затворено изводими от P,
могат да бъдат само от следващите пет вида, където T е някоя от
седемте константи:
d(c3,T)
:- p(c1,c3), d(c1,T).
d(c5,T)
:- p(c2,c5), d(c2,T).
d(c5,T)
:- p(c3,c5), d(c3,T).
d(c6,T)
:- p(c4,c6), d(c4,T).
d(c7,T)
:- p(c5,c7), d(c5,T).
Като вземем пред вид първите пет от изброените частни случаи и използваме
Забележка 1. Атомарните формули, затворено
изводими от програмата P от горния пример, биха могли да бъдат намерени
и с помощта на компютър. Това можем да направим като, грубо казано, изпълним
програмата поотделно върху двете цели
?- p(U,V).
?- d(U,V).
с намиране на всички резултати. Например при използване на Strawberry
Prolog би могло да се осигури показване на резултатите чрез добавяне на
втори член
Забележка 2. Не трябва да се мисли, че при
всяка хорнова програма положението ще бъде напълно аналогично на описаното
в
Пример 2. Нека единствените функционални символи
от сигнатурата са константата a и едноместният функционален символ
f,
а единственият предикатен символ - едноместният предикатен символp.
Нека P е следната хорнова програма:
p(a).
p(f(f(X))) :- p(X).
Тогава затворено изводими от P са точно онези атомарни формули,
които са от вида
?- p(U), write(p(U)).
еднократното натискане на клавиша F5 ще покаже атомарната формула
Пример 3. Нека пак единствените функционални
символи от сигнатурата са константата a и едноместният функционален
символ f, но единствен предикатен символ да бъде двуместният предикатен
символ p. Нека P е следната хорнова програма:
p(X,a).
p(f(X),f(Y)) :- p(X,Y).
Да се условим за произволен терм T да означаваме с
?- p(U,V), write(p(U,V)).
са атомарни формули от вида
Пример 4. При същата сигнатура както в пример
2 нека P е програмата
p(a).
p(f(f(X))) :- p(X).
p(f(f(f(X)))) :-
p(X).
Описание на затворено изводимите от P атомарни формули можем
да получим, като използваме лесно доказуемото твърдение, че всяко цяло
число, по-голямо
?- p(U), write(p(U)).
Strawberry Prolog (както и другите реализации на Пролог) дава обаче
само онези атомарни формули от горния вид, в които f участва четен
брой пъти (третата клауза от програмата просто остава неизползвана).
Да се върнем отново към общия случай, когато P
е произволна хорнова програма. От втората
основна лема за ербрановите структури следва съществуване на точно
една ербранова структура със свойството, че в нея са верни онези и само
онези затворени атомарни формули, които са затворено изводими от P.
Ербрановата структура с това свойство ще наричаме ербранова структура,
породена от P, и ще я означаваме с SP. Ще установим
някои други нейни свойства, като за целта най-напред ще докажем едно помощно
твърдение. В него ще става дума както за оценки в SP
на променливите, така и за субституции. Във връзка с това отбелязваме,
че и оценките в SP, и субституциите са изображения на
множеството на променливите в множеството на термовете, но никоя оценка
в SP не е субституция, понеже, преобразувайки всички
променливи в затворени термове, тя не може да преобразува никоя променлива
в себе си, докато една субституция преобразува в себе си всички променливи
с изключение най-много на краен брой. От друга страна обаче върху кое да
е крайно множество от променливи всяка оценка в SP съвпада
с някоя субституция и всяка субституция съвпада с някоя оценка
Лема за свеждане на оценките в породената ербранова
структура към субституции. Нека A е дадена атомарна формула,
v
е някоя оценка в SP на променливите и
s
е такава субституция, че
Доказателство. Тъй като всички стойности на
v
принадлежат на носителя H на SP, субституцията
s
преобразува всички променливи от множеството
Сега ще докажем едно много съществено твърдение за ербрановата структура, породена от P.
Теорема за минималния ербранов модел. Структурата
SP
е модел за P и при всеки избор на затворената атомарна формула A
следните три условия са равносилни помежду си: 1
Доказателство. За да докажем, че SP
е модел за P, да разгледаме произволна клауза C от P.
Ще покажем, че C е тъждествено вярна в структурата SP.
Да разгледаме първо случая, когато C е някой факт
A.
Нека v е произволна оценка в SP на променливите.
Разглеждаме такава субституция s, че
A
:-
B1,
B2, ..., Bm.
Нека v е оценка в SP на променливите, при
която в SP е изпълнено тялото на C, т.е.
s(A):-
s(B1),s(B2),
...,s(Bm).
От казаното преди малко е ясно, че тя е затворен частен случай на C
и всички членове на нейното тяло са затворено изводими от P. При
това положение
Теоремата, която току-що доказахме, показва, че измежду всички модели за хорновата програма P ербрановата структура, породена от P, има най-малко множество на верните затворени атомарни формули. По тази причина тази структура обикновено се нарича минимален ербранов модел за P.
Забележка 3. Носител на всяка ербранова структура е Ербрановият универсум, а той се определя еднозначно по дадената сигнатура. За улеснение на формулировките ние сме приели, че е избрана някаква сигнатура и всички хорнови програми и цели, които разглеждаме, са построени с използване на символите от тази сигнатура. При прилагането на нещата в конкретни случаи можем обаче да постъпваме и по следния начин: когато е дадена една конкретна хорнова програма, да разглеждаме подходяща сигнатура само с краен брой функционални и предикатни символи, избрани така, че измежду тях да бъдат всички използвани в програмата, и след това на основата на тази сигнатура да строим минимален ербранов модел за тази програма.
Нещата, които установихме, позволяват да се направят
някои важни изводи и относно хорновите цели, изпълними при дадена хорнова
програма. Първият от тях е непосредствено ясен от направеното дотук и гласи,
че за всяка затворена хорнова цел G следните три условия са равносилни помежду си: 1
Теорема за характеризация на изпълнимите цели
с помощта на минималния ербранов модел. Нека G е дадена хорнова
цел. Тогава следните четири условия са равносилни помежду си:
Доказателство. Това, че от
Четирите равносилни помежду си
Синтактична характеризация на изпълнимите цели
посредством затворена изводимост. За да бъде една хорнова цел G
изпълнима при дадена хорнова програма P, необходимо и достатъчно
е да съществува частен случай на G, на който всички членове са затворено
изводими
Да припомним все пак, че в горното твърдение, както
и навсякъде другаде в този въпрос, предполагаме съществуване на поне един
нулместен предикатен символ в сигнатурата, която е дадена.
Последно изменение: 10.06.2003 г.
|
|