Prolog与逻辑的关系:从理论到实践
1. 谓词演算公式的转换
1.1 公式转换步骤
在处理谓词演算公式时,我们需要将其转换为合适的形式以便后续处理。以下是一个具体的公式转换示例:
原始公式: all(X, ~(all(Y, -person(Y) # respects(Y, X))) ft king(X))
- 步骤2:向内移动否定符号 :得到 all(X, exists (Y, person(Y) & ~respects(Y, X)) # king(X))
- 步骤3:Skolem化 :转换为 all(X, (person(fl(X)) & ~respects(fl(X), X)) # king(X))
,其中 fl
是Skolem函数。
- 步骤4:去除全称量词 :得到 (person(fl(X)) & ~respects(fl(X), X)) ft king(X)
- 步骤5:转换为合取范式 :结果为 (person(fl(X)) # king(X)) & (~respects(fl(X), X) # king(X))
- 步骤6:拆分为子句 :
- 第一个子句的文字为: person(fl(X))