布尔意义

时间:2009-11-30 23:37:58

标签: boolean-logic

我需要一些布尔含义的帮助。

有人可以用简单的术语解释这是如何运作的:

A暗示B = B + A'(如果A然后是B)。也相当于A >= B

7 个答案:

答案 0 :(得分:89)

布尔含义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必须为真”。

答案 1 :(得分:14)

以下是我对此的看法:

if(A)
  return B;
else
  return True;

如果A为真,那么b是相关的并且应该被检查,否则,忽略B并返回true。

答案 2 :(得分:14)

我想我会看到Serge的来源,我会尝试解释其中的差异。评论太长了,所以我将其作为答案发布。

从询问暗示是否适用的角度来看,塞尔似乎正在接近这一点。这有点像科学家试图确定两个事件之间的关系。请考虑以下故事:

  

科学家在四天内访问了四个不同的国家。在每个国家,她想确定下雨是否意味着人们会使用遮阳伞。她生成以下真值表:

Did it rain?  Did people      Does rain => umbrellas?  Comment
              use umbrellas?  
No            No              ??                       It didn't rain, so I didn't get to observe
No            Yes             ??                       People were shielding themselves from the hot sun; I don't know what they would do in the rain
Yes           No              No                       Perhaps the local government banned umbrellas and nobody can use them. There is definitely no implication here.
Yes           Yes             ??                       Perhaps these people use umbrellas no matter what weather it is

在上文中,科学家并不知道雨和雨伞之间的关系,她正试图确定它是什么。只有在其中一个国家的某一天,她才能明确表示暗示并不是正确的关系。

同样地,似乎Serge试图测试A => B,并且只能在一种情况下确定它。

然而,当我们评估布尔逻辑时,我们提前知道关系,并想测试关系是否被遵守。另一个故事:

  

一位母亲告诉她的儿子,"如果你弄脏了,洗澡" (脏=>浴)。在母亲下班回家的四个不同日子里,她检查是否遵守了规则。她生成以下真值表:

Get dirty?   Take a bath?   Follow rule?   Comment
No           No             Yes            Son didn't get dirty, so didn't need to take a bath. Give him a cookie.
No           Yes            Yes            Son didn't need to take a bath, but wanted to anyway. Extra clean! Give him a cookie.
Yes          No             No             Son didn't follow the rule. No cookie and no TV tonight.
Yes          Yes            Yes            He took a bath to clean up after getting dirty. Give him a cookie.

母亲提前制定了规则。她知道泥土和浴室之间的关系是什么,她想确保遵守规则。

当我们使用布尔逻辑时,我们就像母亲一样:我们提前知道运算符,并且我们希望使用该形式的语句。也许我们想要将语句转换为不同的形式(就像原始问题一样,他或她想知道两个语句是否相同)。在计算机编程中,我们经常希望将一组变量插入到语句中,并查看整个语句的计算结果是true还是false。

这不是一个知道暗示是否适用的问题 - 如果它不应该,它就不会写在那里。真值表不是关于确定规则是否适用,而是关于确定是否遵守规则。

答案 3 :(得分:9)

我喜欢用这个例子:如果下雨,那就是阴天。

Raining => Cloudy

与许多初学者的想法相反,这绝不表明下雨会导致浑浊,或者浑浊导致下雨。 (编辑:仅表示目前下雨而不是阴天。请参阅我最近关于材料含义的博文here。除此之外,我还提出了通常的定义和物质含义的基本原理。读者需要熟悉基本的证明方法,例如直接证明和矛盾证明。)

~[Raining & ~Cloudy]

答案 4 :(得分:0)

从真值表判断,可以仅针对a = 1和b = 0推断a => b的值。在这种情况下,a => b的值为0.对于其余值(a,b),a => b的值未定义:两者(a => b)= 0(“a doesn “暗示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时提供反例。 我想我可能会因为这些解释而震惊一些读者,但似乎在我们所教授的逻辑的基础知识中存在严重错误,这也是布尔可满足性尚未解决等问题的原因之一。

答案 5 :(得分:0)

Serge Rogatch对此问题的最佳贡献。

布尔逻辑仅适用于量化(或评估)的结果为真或假且布尔逻辑命题之间的关系基于此事实的情况。

因此,命题之间必然存在关系或联系。

在高阶逻辑中,关系不仅仅是开/关,1/0或+电压/电压的情况,措辞命题的评估更复杂。如果措辞命题之间不存在关系,那么措辞命题的含义就不等同于布尔逻辑命题。

虽然蕴涵真值表总能为二元命题产生正确的结果,但这与措辞命题的情况并非如此,这些命题可能完全没有任何关系。

~V B真值表:

B结果/评估

1 1 1

1 0 0

0 1 1

0 0 1

有问题的命题A:月亮是由酸奶油制成的 有抱负的主张B:明天我将赢得乐透。

B结果/评估

1? ?

如您所见,在这种情况下,您甚至无法确定决定结果的B的状态。这现在有意义吗?

在这个真值表中,命题〜A总是计算为1,因此,最后两行不适用。但是,最后两行始终适用于布尔逻辑。

http://thenewcalculus.weebly.com

答案 6 :(得分:0)

这是一个紧凑的声明:

假设我们有两个语句A和B,每个语句可以为true或false。没有任何进一步的信息,就有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。