我很难掌握关系从句逻辑,我不确定这是否是要问的地方,但如果有人能就以下问题提供指导,那将对我的修改有很大帮助。
设 P 为程序:
academic(X); student(X); other_staff(X):-
works_in(X, university).
:-student(john).
:-other_staff(john).
works_in(john, university)
问题:P 的 Herbrand 解释是什么?
我很难掌握关系从句逻辑,我不确定这是否是要问的地方,但如果有人能就以下问题提供指导,那将对我的修改有很大帮助。
设 P 为程序:
academic(X); student(X); other_staff(X):-
works_in(X, university).
:-student(john).
:-other_staff(john).
works_in(john, university)
问题:P 的 Herbrand 解释是什么?
这不是常规的 Prolog 语法:ISO Prolog 不允许“;” 头部中的运算符,在“:-”的左侧。我猜这意味着“因为 p 是学术、学生、其他员工中的每一个p(X) :- works_in(X, university)
”。
P 的 Herbrand 解释,称为 Herb(P) 是由程序中的谓词和原子组成的一组句子,它是在程序推理下闭合的最少的一组句子。这包含在 P 中断言的事实:在这种情况下,有两个一位谓词,以及可从应用该子句派生的句子:这里有两个适用的推论,都给出相同的结论,一个两位谓词。这给出了一个包含三个元素的集合 Herb(P)。