Примеры сопоставления структур

Рассмотрим структуры, описывающие отрезки

Два факта, описывающие свойство вертикальность и горизонтальность.

vertical(seg(point(X,Y),point(X,Y1))).
horiz(seg(point(X,Y),point(X1,Y))).

?-vertical(seg(point(2,2),point(2,5))).
Yes

?- horiz(seg(point(1,4),point(2,4))).
Yes

?-horiz(seg(point(1,4),point(2,X))).
X=4

 
     
     




Декларативная семантика Пролог- программ

Различают декларативную и процедурную семантику (смысл, понимание) Пролог- программ.
Декларативный смысл, касается только отношений, определенных в программе.

Декларативная семантика определяет, что должно быть результатом работы программы, не вдаваясь в подробности, как это достигается.

Пусть задано P:-Q, R, где P, Q, R -термы.

Тогда с точки зрения декларативного смысла это предложение читается: " P-истиино, если Q R истинны." Или " Из Q и R cледует Р." Т.е. определяются логические связи между головой предложения и целями в его теле.

Таким образом, декларативный смысл программы определяет, является ли данная цель истинной (достижимой), и если - да, то при каких значениях переменных она достигается.

Конкретизацией I предложения С называется результат подстановки в него на место каждой переменной некоторого терма.

Заметим, что это отличается от конкретизации переменной.

Пример:


Haschild(X):-parent(X,Y).


Пусть дана некоторая программа и цель G, тогда в соответствии с декларативной семантикой, можно утверждать, что:
Цель G истинна (достижима) тогда и только тогда, когда:
в программе существует предложение С, такое, что существует такая его (С) конкретизация I, что  голова I cовпадает с G и  все цели в теле I истинны.

 
     
     

Пример.




female(ann). parent(ann, bob). mother(X):-parent(X, Y), female(X).
     
     

 

  

?- mother(ann).
     
     

Это определение можно распространить на вопросы следующим образом. В общем случае вопрос - список целей, разделенных запятыми.

Список целей называется истинным (достижимым), если все цели в этом списке истинны, достижимы при одинаковых конкретизациях переменных.

Запятая между целями означает конъюнкцию целей и они должны быть все истинны.







Дизъюнкция целей

Возможна дизъюнкция целей: истинна должна быть по крайней мере одна из целей.  Дизъюнкция обозначается точкой с запятой "; ".

Например:

P:-Q;R.

Читается: Р истина, если Q - истина или R – истинна.

Запятая связывает цели сильнее, чем точка с запятой.

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: