否定为失败

否定为失败是对逻辑否定做的释义,依据公式的否定为真,当且仅当这个公式不能被证明为真。否定为失败用于逻辑编程语言比如 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).