【问题标题】:Necessary and Sufficient vs Soundness and Completeness必要和充分 vs 健全性和完整性
【发布时间】:2014-12-11 19:08:02
【问题描述】:

我正在努力学习证明。我遇到了这4个术语。我正在尝试将所有内容联系起来。

A: X>Y B: Y<X

Necessary Condition 
             B implies A
Sufficient Condition 
             A implies B

A = { set of statements}  Q= a statement

Soundness 
        if A derives Q then A is a logical consequence of Q
Completeness
         if A is a logical consequence of Q then A derives Q.

所有之间的关系是什么? 感谢您的帮助。

【问题讨论】:

  • 我投票结束这个问题,因为它是关于逻辑和Mathematics 而不是编程或软件开发。

标签: logic proof proof-of-correctness


【解决方案1】:

必要/充分与健全性和完整性没有太大关系,因此我将分别解释这两个概念。

必要/充分

在您的示例中,两个语句是等效的:X&gt;Y 当且仅当Y&lt;X。所以确实是B 隐含AA 隐含B。一个更好的例子可能是:

A: X>Y+1
B: X>Y

这里A 将暗示B,即A足够 B 持有。另一种方式不成立:B 并不意味着 A(因为您可以拥有 X=10Y=9 在这种情况下只有 B 会成立)。这意味着A 对于B 来说不是必要的


完整性/健全性

当我第一次遇到它时,我花了一些时间才想明白。但这真的很简单!

假设你有以下:

A = { X>Y, Y>Z }
Q = X>Z

现在,soundess 说我们无法通过坚持A 的声明来达到疯狂。更正式地说,如果Q 不成立,它就不能从A 派生而来。或者,只能从A 派生有效的东西。

创建一组不健全的陈述很容易。举个例子

A = { x<Y, X>Y }

它们相互矛盾,因此我们可以通过矛盾证明来推导 X&gt;X(这是错误的)。

完整性表示对偶:所有有效的东西都可以从A派生。假设XYZ 是世界上唯一的变量,&gt; 是世界上唯一的关系。然后是一组语句如

A = { X>Y, Y>Z }

是完整的,因为对于任何两个给定变量ab,当且仅当a&gt;b 实际上成立时,我们才能推导出a&gt;b

如果我们只有

A = { X>Y }  (and no knowledge about Z)

那么这组陈述将是完整的,因为会有关于Z的真实陈述,我们无话可说。


简而言之:健全性表示您不能得出疯狂的结论,完整性表示您可以得出所有合理的结论。

【讨论】:

  • 感谢您的回复。这条线让我感到困惑“因为你可以有 X=10 和 Y=11 在这种情况下只有 A 会成立”我可以拿 X=10 和 Y=9 并说 B 成立但 A 不成立,因此 B 不暗示 A?
  • 啊啊啊,我把那句话搞砸了。你答对了!答案已更新:-) 谢谢。
  • 没关系。我明白了
猜你喜欢
  • 2019-07-24
  • 2014-02-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-30
  • 2017-06-10
  • 1970-01-01
相关资源
最近更新 更多