Вопрос реляционной логики Клаузала: что такое интерпретация Гербранда - PullRequest
3 голосов
/ 17 мая 2010

Мне трудно разобраться с реляционной логикой клаузалов, и я не уверен, стоит ли спрашивать об этом, но мне очень помогло бы пересмотр, если бы кто-нибудь мог дать рекомендации по следующим вопросам .

Пусть P будет программой:

academic(X); student(X); other_staff(X):-
      works_in(X, university).
:-student(john).
:-other_staff(john).
works_in(john, university)

Вопрос: Каковы интерпретации П Гербранда?

1 Ответ

1 голос
/ 31 мая 2010

Это не обычный синтаксис Пролога: ISO Пролог не позволяет ";" операторы в голове, слева от ": -". Я предполагаю, что это означает «Для каждого из академических, студенческих, other_staff, p(X) :- works_in(X, university)».

Интерпретация P в Herbrand, назовите его Herb (P) - это набор предложений, составленных из предикатов и атомов в программе, который является наименьшим из таких наборов предложений, закрытых при выводе из программы. Это содержит факты, заявленные в P: в этом случае есть два одноместных предиката и предложения, получаемые из применения предложения: здесь есть два применимых вывода, оба дают один и тот же вывод, двухместный предикат. Это дает набор, Херб (P), с тремя элементами.

...