为什么子句是多重集?

Why are clauses multisets?

在自动定理证明中,通常将子句视为文字的多重集。这似乎有点奇怪,因为 X or X = X 所以使用集合似乎是等价的,但更容易也更有效。

是否存在将子句视为文字集而给出错误答案的情况,尽管表面上逻辑等价,以至于实际上有必要使用多重集?

至少部分答案与包含有关。常用的包含准则是'there exists a variable substitution that makes C a submultiset of D'。如果您将其替换为 'subset',那么尽管就其本身而言在逻辑上仍然是正确的,但一个子句可以包含其自身的因子,这将破坏使用显式因式分解的微积分。