我需要一些有关此布尔含义的帮助。
有人可以简单地解释一下这是如何工作的:
A
暗示B = B + A'
(如果 A 则 B)。也相当于A >= B
布尔含义A implies B
只是意味着“如果 A 为真,则 B 必须为真”。这意味着(双关语)如果 A 不是真的,那么 B 可以是任何东西。因此:
False implies False -> True
False implies True -> True
True implies False -> False
True implies True -> True
这也可以理解为(not A) or B
- 即“要么 A 为假,要么 B 必须为真”。
这是我的想法:
if(A)
return B;
else
return True;
如果 A 为真,则 b 是相关的,应该检查,否则,忽略 B 并返回真。
我想我知道 Serge 的来源,我会尝试解释其中的区别。评论太长了,所以我将其发布为答案。
Serge 似乎是从质疑暗示是否适用的角度来解决这个问题的。这有点像科学家试图确定两个事件之间的关系。考虑以下故事:
一位科学家在四个不同的日子里访问了四个不同的国家。她想在每个国家/地区确定下雨是否意味着人们会使用雨伞。她生成以下真值表:
下雨了吗?人们会下雨吗=> 雨伞?评论 用雨伞? 不,不 ??没有下雨,所以没来得及观察 没有是的??人们正在遮挡烈日;我不知道他们会在雨中做什么 是 否 否 也许当地政府禁止使用雨伞,没有人可以使用它们。这里绝对没有暗示。 是的是的 ??也许这些人不管天气如何都用雨伞
在上面,科学家不知道雨和雨伞之间的关系,她正试图确定它是什么。只有在其中一个国家的某一天,她才能明确地说这意味着不是正确的关系。
同样,似乎 Serge 正在尝试测试是否 A=>B,并且只能在一种情况下确定它。
但是,当我们评估布尔逻辑时,我们会提前知道关系,并想测试关系是否被遵守。另一个故事:
一位母亲告诉她的儿子,“如果你弄脏了,就洗个澡”(dirty=>bath)。隔四天,当母亲下班回家时,她会检查是否遵守了规则。她生成以下真值表:
弄脏?洗澡?遵守规则?评论 不 不 是 儿子没有弄脏,所以不需要洗澡。给他一块饼干。 不 是 是 儿子不需要洗澡,但无论如何都想洗澡。特别干净!给他一块饼干。 是 否 否 儿子没有遵守规则。今晚没有饼干,也没有电视。 是 是 是 弄脏后他洗澡清理。给他一块饼干。
妈妈提前定了规矩。她知道泥土和浴缸之间的关系,她想确保遵守规则。
当我们使用布尔逻辑时,我们就像母亲一样:我们提前知道运算符,并且我们希望使用这种形式的语句。也许我们想将陈述转换为不同的形式(就像最初的问题一样,他或她想知道两个陈述是否等价)。在计算机编程中,我们经常希望将一组变量插入语句中,并查看整个语句的计算结果是真还是假。
这不是知道蕴含是否适用的问题——如果不应该,它就不会被写在那里。真值表不是关于确定规则是否适用,而是关于确定是否遵守了规则。
我喜欢用这个例子:如果正在下雨,那就是多云。
Raining => Cloudy
与许多初学者的想法相反,这绝不意味着下雨会导致多云,或者多云会导致下雨。(编辑:这仅意味着,目前,既不是下雨也不是阴天。请参阅我最近在此处发布的有关物质含义的博客文章。除其他外,我开发了物质含义的通常“定义”的基本原理. 读者需要熟悉基本的证明方法,例如直接证明和反证法。)
~[Raining & ~Cloudy]
从真值表来看,只有a=1和b=0才可以推断出a=>b的值。在这种情况下,a=>b 的值为 0。对于其余的值 (a,b),a=>b 的值是未定义的:两者 (a=>b)=0(“a 并不意味着b") 和 (a=>b)=1 ("a 暗示 b") 是可能的:
a b a=>b comment
0 0 ? it is not possible to infer whether a implies b because a=0
0 1 ? --"--
1 0 0 b is 0 when a is 1, so it is possible to conclude
that a does not imply b
1 1 ? whether a implies b is undefined because it is not known
whether b can be 0 when a=1 .
对于 a 隐含 b,当 a=1 时 b=1 总是必要且充分的,因此当 a=1 和 b=0 时没有反例。对于真值表的第 1、2、4 行,不知道是否有反例:这些行与 (a=>b)=1 不矛盾,但也不证明 (a=>b)=1 . 相反,第 3 行立即反驳 (a=>b)=1,因为它提供了当 a=1 和 b=0 时的反例。我想我的这些解释可能会让一些读者感到震惊,但我们所学的逻辑基础似乎存在严重错误,这也是布尔可满足性等问题尚未解决的原因之一。
Serge Rogatch 对这个问题做出了最好的贡献。
布尔逻辑仅适用于量化(或评估)的结果为真或假并且布尔逻辑命题之间的关系基于此事实的情况。
所以命题之间必然存在关系或联系。
在高阶逻辑中,关系不仅仅是开/关、1/0或+电压/-电压的情况,对一个措辞命题的评估更为复杂。如果带词命题之间不存在关系,则带词命题的蕴涵不等同于布尔逻辑命题。
虽然蕴涵真值表总是为二元命题产生正确的结果,但对于可能根本没有任何关联的带词命题,情况并非如此。
~AVB真值表:
AB 结果/评估
1 1 1
1 0 0
0 1 1
0 0 1
措辞命题A:月亮是由酸奶油制成的。
措辞提议 B:明天我将中奖。
AB 结果/评估
1 ? ?
如您所见,在这种情况下,您甚至无法确定决定结果的 B 的状态。现在这有意义吗?
在这个真值表中,命题 ~A 总是计算为 1,因此,最后两行不适用。但是,最后两行始终适用于布尔逻辑。
这是一个紧凑的声明:
假设我们有两个陈述,A 和 B,每一个都可能是真或假。在没有任何进一步信息的情况下,有 2 x 2 = 4 种可能性:“A 而不是 B”、“B 而不是 A”、“既不是 A 也不是 B”和“既不是 A 又不是 B”。
现在施加额外的限制,即“如果 A,那么也是 B”。施加此限制后,表达式“x -> y”(其中 -> 是“蕴涵”运算符)表示A == x 和 B == y是否仍然可能。在此附加限制之后不再可能的唯一结果是 A == 1 和 B == 0,因为这与限制本身相矛盾。因此,我们有 1 -> 0 为零,并且每隔一对都是 1。