否定为失败

否定为失败是对逻辑否定做的释义，依据公式的否定为真，当且仅当这个公式不能被证明为真。否定为失败用于逻辑编程语言比如 Prolog。

在逻辑中，否定的标准解释是公式的否定为真，当且仅当这个公式为假。如果这个公式非真非假，它的否定被当作是未知。反过来，依据否定为失败的解释，这个公式的否定被当作为真。

在 Prolog 中用的否定被解释器按否定为失败处理。假如程序执行期间，解释器必须求值 NOT a(b)，它尝试证明 a(b) 为真。如果这个尝试不成功，则 NOT a(b) 被当作为真。

否定为失败与把不知道为真的东西作为假的常见缺省假定有关。这叫做封闭世界假定。

外部链接

 Report from the W3C Workshop on Rule Languages for Interoperability. Includes notes on NAF and SNAF (scoped negation as failure).

Category:计算机逻辑