真值表

逻辑中用来确定表达式是真实的一种数学表

真值表

真值表(truth table[1]),又称真假值表[2]、逻辑真值表[3]、逻辑状态表[4],它是逻辑中用来确定表达式是真实或者有效的一种数学表。真值表中,每个命题都被判定为真或者假,真、假被称之为真值[16],通常用符号“1”或“T”表示真,“0”或“F”表示假[17][18]。真值表起源于逻辑学的兴起,古希腊时代,麦加拉学派的菲罗(Philo of Megara)将命题的推理当成真值蕴涵去处理,形成了真值表的早期思想,中世纪逻辑学家对该理论进行了延伸[6]。1879年,德国逻辑学家弗雷格(Frege)在《概念文字》一书中为明确表示布尔的展开时使用了真值表,用来定义各种函数(即真值形式)[6],真值表被正式提出[5]。进入20世纪,真值表进一步被研究和使用。1902年,美国逻辑学家皮尔斯(Peirce)发表了《最简单的数学》一文,列出了一个等价真值表[7],将真值表发展成为命题演算的一般判定方法[5]。1918年,维特根斯坦(Wittgenstein)发表《逻辑哲学论》一书,阐述了自己的逻辑思想并提出了命题真值表的定义[8]。同年,英国哲学家罗素(Russell)在伦敦举行的“逻辑原子论的哲学”第三次讲座中,使用了一个修改过的真值表[9]。而卢卡西维茨(Lukasiewicz)和波斯特(Post)分别给出了三值逻辑、多值逻辑的真值表。[10]

真值表(truth table[2]),又称真假值表[3]、逻辑真值表[4]、逻辑状态表[5],它是逻辑中用来确定表达式是真实或者有效的一种数学表。真值表中,每个命题都被判定为真或者假,真、假被称之为真值[17],通常用符号“1”或“T”表示真,“0”或“F”表示假[18][19]

真值表起源于逻辑学的兴起,古希腊时代,麦加拉学派的菲罗(Philo of Megara)将命题的推理当成真值蕴涵去处理,形成了真值表的早期思想,中世纪逻辑学家对该理论进行了延伸[7]。1879年,德国逻辑学家弗雷格(Frege)在《概念文字》一书中为明确表示布尔的展开时使用了真值表,用来定义各种函数(即真值形式)[7],真值表被正式提出[6]。进入20世纪,真值表进一步被研究和使用。1902年,美国逻辑学家皮尔斯(Peirce)发表了《最简单的数学》一文,列出了一个等价真值表[8],将真值表发展成为命题演算的一般判定方法[6]。1918年,维特根斯坦(Wittgenstein)发表《逻辑哲学论》一书,阐述了自己的逻辑思想并提出了命题真值表的定义[9]。同年,英国哲学家罗素(Russell)在伦敦举行的“逻辑原子论的哲学”第三次讲座中,使用了一个修改过的真值表[10]。而卢卡西维茨(Lukasiewicz)和波斯特(Post)分别给出了三值逻辑、多值逻辑的真值表。[11]

真值表可以直观地反映变量取值和函数间的关系;但当变量较多时,使用起来会比较复杂[16]。真值表具有定义和判定两种作用,其中判定两个复合判断是否等值为判定作用的具体体现[11][20],它可以用来证明德摩根律[21]。将真值表进行简化,可得到只适用于蕴涵式的简化真值表[9]。此外,真值表在现实世界中应用广泛,如在物理学中,应用真值表方法对无绝缘轨道电路补偿电容进行重要性评估,可以为维护人员提供监测依据[12]

定义

真值表是逻辑中用来确定表达式是真实或者有效的一种数学表。它是使用表格表示逻辑函数结果的方法,通过定义一个函数输入的所有可能组合,然后依次计算每个组合的输出[18]真值表中,每个命题都被判定为真或者假,真、假被称之为真值[17],通常用符号“”或“”表示真,用符号“”或“”表示假[18][19]

布尔函数的真值表:对任何布尔函数可以构造真值表[22]。假设函数有个参数,每个参数都有两个可能的值,那么只有种可能的参数组合可以全部列出。对于每个列表条目,可以添加函数值,形成函数的真值表。真值表是对函数的一个完整而明确的定义,它给出了每个可能情况下的函数值,显示了输入状态的每种可能组合的输出状态[18]

早期研究

真值表起源于逻辑学的兴起,约公元前4世纪,古希腊哲学家柏拉图(Platon)已经开始对真与假这个逻辑问题进行了研究。后来,麦加拉学派的菲罗(Philo of Megara)认为,一个假言命题是正确的,便不是一个真的起始和一个假的结尾,他将命题的推理当成真值蕴涵去处理,形成了真值表的早期思想。中世纪逻辑学家的推论是菲罗蕴涵的延伸,他们认为“具有真假含义的陈述是命题”,直言命题由主词、谓词、联结词组成,它可以按量的差别,划分为全称、特称、单称命题;假言命题由两个简单命题联结而成;复合命题又可分三类:条件命题,联言命题,选言命题等。对于假言命题的真值条件,他们讨论较多,认为一个真的假言命题就是“推论”,因此确定假言命题的真值条件,就等于要定义“推论”这个词[7]

19世纪中叶,英国数学家布尔(Boole)创造了以他名字命名的代数结构,建立起逻辑的代数运算系统。在他的著作中,布尔(Boole)用“”和“”表示真、假,而复杂命题的真、假值可以通过组合得到。布尔通过函数展开的形式讨论了真值函数及其所具析取范式的表述。1879年,德国逻辑学家弗雷格(Frege)在《概念文字》一书中为明确表示布尔的展开时使用了真值表,用来定义各种函数(即真值形式)[7],真值表由此被正式提出[6]

弗雷格
弗雷格

后续发展

进入20世纪,真值表进一步被研究和使用。1902年,美国逻辑学家皮尔斯(Peirce)发表了《最简单的数学》一文,列出了一个等价真值表[8],将真值表发展成为命题演算的一般判定方法[6]。后来,波兰逻辑学家卢卡西维茨(Lukasiewicz)在皮尔斯的基础上提出了三值逻辑真值表[11]。1918年,维特根斯坦(Wittgenstein)发表《逻辑哲学论》一书,阐述了自己的主要逻辑思想,并提出了命题真值表的定义、永真命题与永假命题的区分等内容[9]。同年,英国哲学家罗素(Russell)在伦敦举行的“逻辑原子论的哲学”第三次讲座中,使用了一个修改过的真值表。次年,他在《数学哲学导论》一书中也提到了真值表[10]。1921年,美国逻辑学家波斯特(Post)在他的论文《分子命题的一般理论导论》中对三值逻辑进一步推广,提出了多值(任意有穷多个值)的逻辑真值表,也用真值表阐述了不同于以往的否定方式[23]

后来,学者们肯定了真值表的作用,并开始研究提升计算效率的方法。1946年,逻辑学家艾耶尔(Ayer)在《语言、真理与逻辑》一书中提出道德命题不是经验命题,它们不能够通过观察来获知真假,也不是先天命题,可以通过真值表来必然地显示出真假[24]。1947年,由当时哈佛大学的两个大学生威廉·伯克哈特(William Burkhart)和西奥多·卡林(Theodore A.Kalin)制造的逻辑真值计算器,可以在真值表中通过隔离行来处理12个项[25]

皮尔斯
皮尔斯

优点

真值表的优点是能直观、清晰地反映变量取值和函数间的关系,具体如下[16]

(1)输入变量取值一旦确定之后,便可在真值表中查出相应的函数值[26]

(2)真值表表示形式唯一,一个逻辑函数只有一个真值表,判断逻辑关系方便[26]

(3)在把一个实际逻辑问题抽象成为逻辑函数时,采用真值表较为方便[26]

(4)真值表相对容易理解,不涉及任何公式,却可以精确地描述任何布尔公式的结果[18]

(5)在缩写形式中,真值表可作为布尔运算的简洁描述[18]

局限性

真值表的缺点是当变量较多时,就会变得比较繁琐复杂,具体如下[16]

(1)真值表不能进行定律、定理的运算[26]

(2)真值表不能用于检验简单推理。具体而言,命题逻辑中的推理,即复合推理,其有效性是通过命题之间的连结而显示的,谓词逻辑中的推理,即简单推理,其有效性却是通过词项之间的联系显示出来的,真、假是命题的属性并非词项的属性,所以可以只用真值表去研究复合推理的有效性,但不能只用真值表去研究简单推理的有效性[27]

定义作用

定义作用:真值表可以用来作为定义命题联接词的逻辑工具[11]

命题逻辑中,“”(表示否定),“”(表示析取),“”(表示合取),“”(表示蕴涵),“”(表示相互蕴涵,即等值)等命题联结词,可以通过真值表分别加以定义。表示命题逻辑联结词的符号运算子的涵义是一种真值函项,运用真值表的方法可以满足各种符号运算子的精确定义包括其所含有的命题(即复合命题的支命题)真值组合的全部可能情况,即揭示出所含命题(即支命题)的真值组合的全部可能情况,给出各种符号运算子的精确定义[11]

判定作用

判定作用:真值表可以用来作为确定命题表达式真值的逻辑工具[20]

在命题逻辑中,命题表达式的真假情况(即真值)常常是需要加以判定的,为此,就需要制定一种可行的方法,即按照一定规则给定的程序,在有穷步骤内完成判定的一种方法。真值表方法可以利用真值表来制定出一个命题逻辑的机械判定的程序,使之能对所有表达式或推理形式的真假情况进行判定[20]。真值表判定作用的具体体现为[28]

(1)判定命题表达式为永真式[28]

(2)判定复合判断推理是否为有效式[28]

(3)判定命题表达式为永假式[28]

(4)判定任意两个表达式之间的各种关系,如判断等值关系、判断矛盾关系、判断反对关系等[28]

(5)运用真值表可以解决实际问题。[28]

例:设下列三句话中一句为真,两句为假。列出真值表并回答甲是不是工人,乙是不是营业员[28]

、如果甲是工人,那么乙是营业员。

、如果乙是营业员,那么甲是工人。

、乙不是营业员。

解:令表示“甲是工人”,表示“乙是营业员”[28]




从上面真值表可知:第三行符合题意,故当三句话中一句话为真,两句话为假时,甲不是工人,乙是营业员[28]

布尔运算

布尔运算又称逻辑运算[1],通过对两个以上的物体进行并集、差集、交集运算,从而得到新实体特征,用于处理实体造型中多个实体的合并关系[29]。它对于两个逻辑型数据进行逻辑运算,其运算结果仍为逻辑型数据,即“”(真)或“”(假)[1]

基本运算

与运算:与运算的运算符号是“”或“”或“”或是空。是与运算逻辑函数,称为的与运算表达式。在与运算的真值表中,只有输入变量和的取值都为“”时,输出变量的值才为“”[30]

或运算:或运算的运算符是“”或“”。是或运算逻辑函数,称为的或运算表达式。在或运算的真值表中,只有输入变量和的取值都为“”时,输出变量的值才为“”[30]

非运算:非运算的运算符号是“”或“—”。是非运算逻辑函数,是非运算的逻辑表达式,在逻辑函数中,称为反变量,称为原变量。在非运算的真值表中,当输入变量的取值是“”时,输出变量是“”[30]

其他运算

蕴含运算:蕴含运算的运算符号是“”。是蕴含运算逻辑函数,是蕴含式,读作“蕴含”,也可以读作“如果,则”,蕴含式中输入变量为条件,为结论[32]。在蕴含运算的真值表中,当输入变量的取值为“”、的取值为“”时,输出变量的值为“”;否则为“”[1]

等价运算:等价运算的运算符号是“”。是等价运算逻辑函数,称为的等价式,可读作“等价”,也可读作“当且仅当”[32]。在等价运算的真值表中,当输入变量和的取值都为“”或都为“”时,输出变量的值为“”;否则为“”[1]

或非运算:或非运算由或运算和非运算导出,先对变量进行或操作,再进行非操作,记为。在或非运算的真值表中,只有输入变量和的取值都为“”时,输出变量的值才为“”[30]

与非运算:与非运算由与运算和非运算导出,先对变量进行与操作,再进行非操作,记为。在与非运算的真值表中,只有输入变量和的取值都为“”时,输出变量的值才为“”[30]

异或运算:异或运算的运算符是“”。是异或运算逻辑函数。在异或运算的真值表中,当输入变量与的取值相同时,输出变量是“”;当输入变量与的取值相反时,输出变量是“”[30]

同或运算:同或运算也可以称为异或非运算,其运算符是“”,是同或运算逻辑函数。在同或运算的真值表中,当输入变量与的取值相同时,输出变量是“”;当输入变量与的取值相反时,输出变量是“”[30]

德摩根律

德摩根律包括两条规则:;[21]。德摩根律凑齐了基本的布尔等式表,由它可知:为了求布尔函数的反,应将所有或运算变成与运算,所有与运算变成或运算,并对每个二进制符号求反[33]

证明:从逻辑上通过将两个真值表合并,可以创建一个“双重真值表”。因此合并的两个真值表的左侧(即原子变元的赋值)是相同的,所以只给出第一条竖线左侧的对原子变元的赋值。第二条竖线用于分隔将要合并的两个真值表的右侧。通过这种方式可以计算和的真值,如下表,第四列和最后一列是相同的。因此,德摩根律的第一个规则是正确的。通过类似的过程可以验证德摩根律的第二个规则[21]

简化真值表

简化真值表方法也称归谬赋值法,是结合真值表方法,再运用归谬法来判定蕴涵式是否是重言式的方法。基本思路是:为了检验一蕴涵式是否是重言式,先使用反证法,假定该蕴涵式假;然后依此假定按照一定顺序给蕴涵式前后件包含的支命题或命题变项赋值。如果赋值结果是某个变项出现了逻辑矛盾,即说明原先的假设是不正确的,因而证明了该公式是重言式;如果赋值不出现矛盾,说明原先的假设正确,因此,该公式不是重言式[34]

联系:该方法作为真值表方法的改进形式,可以适应更加复杂的公式[34],但是,它只适用于蕴涵式[9]。在很多场合中,同样用来判定一个真值形式是否为重言式的真值树方法比该方法更有效[35]

例题

例:用简化真值表法判定是否为重言式[36]

解:(1) 假 (假设)

(2) 真 (据(1))

(3) 假 (据(1))

(4) 真 (据(2))

(5) 真 (据(4))

(6) (3)(5)矛盾

所以是重言式[36]

方法

真值表说明了相应的复合命题与所含支命题之间的真假关系,任一复合命题,不论多么复杂,它的真值形式都是由简单命题(命题变项)和五个基本的真值联结词,经过有限次各种各样的复合而逐步构成的。构造真值表与真值形式的形成过程有关,构造过程由简单到复杂,具体步骤如下[37]

(1)找出给定形式里的所有简单命题,根据构成过程,由简而繁地将该形式的各个组成部分排成一行,最后一个为该真值形式,从而决定了该真值表的列数[37]

(2)列出该形式的所有简单命题的各种取真假值的情况,从而决定该真值表的行数[37]

(3)根据五个联结词的真值表,求出各个组成部分的真值,最后得出此形式的真值[37]

例题

例:列出公式的真值表[38]

解:在公式中加括号[38]

(1)列出所有的子公式:[38]

(2)把所有互不相同的命题变元按字母排序的先后次序从左到右排放在表头的最左边,并在的下方列出公式的所有赋值,依次为,,,,,,,[38]。当命题公式中含有个命题时,个命题共有种取值情况,故对应的真值表中一共有行[39]

(3)按公式层次从低到高排列子公式:[38]。对每组真值指派逐个计算子公式的真值,直至得到整个公式的真值,如下表所示[38]

逻辑表达式

逻辑表达式指由逻辑变量和与、或、非三种运算符连接起来所构成的式子。与真值表不同,它的特点是形式简单、书写方便,便于进行运算和转换,但表达式形式不唯一。在逻辑表达式中,等式右边的字母等称为输入逻辑变量,字母上面没有非运算符的叫做原变量,有非运算符的叫做反变量,等式左边的字母称为输出逻辑变量[5]

相互转换

由逻辑表达式转化为真值表:

方法1:将输入变量的所有取值一一代入逻辑函数表达式中,求出所对应的逻辑函数值,再将它们列成表格即可得到真值表[40]

方法2:先将逻辑函数表达式转换为标准的“与一或表达式”,再将式中每个最小项对应的函数值填为“”,其余的最小项填为“”[40]

由真值表转化为逻辑表达式:

从真值表中找出输出为“”的各行,把每行的输入变量写成乘积项,若输入状态为“”则写成“非”的形式,否则为原变量,然后相加各乘积项就得到逻辑表达式[41]

物理学

在物理学中,真值表可以应用于无绝缘轨道电路补偿电容的重要性评估。方法的基本思想是:通过建立无绝缘轨道电路调整态和分路态模型,并仿真得到补偿电容断线时全部故障类型的调整态接收电压和分路态分路电流幅值曲线;提取相应的接收电压和最小分路电流与其阈值进行对比分析,建立无绝缘轨道电路可靠性真值表;基于可靠性真值表计算各补偿电容的重要度系数,并通过柱形图确定对无绝缘轨道电路影响较大的补偿电容位置,为现场维护人员的重点监测提供依据[12]

无绝缘轨道电路调整态
无绝缘轨道电路调整态

计算机科学

真值表在计算机科学的应用体现在示例编程上,在使用二进制作为示例格式的示例编程中,真值表可以自动化生成函数。该编程是指给定一个布尔向量函数和一组语法规则,通过少量的采样构造一个函数表达式。而针对真值表函数自动生成问题具有函数表达式的语法符号序列中各语法符号的关系与它们的距离大小无关等特点,可以设计一种神经网络模型和算法,该模型在程序综合、功能等价和序列匹配的指标上都优于先进的程序综合模型[13]

LSTM 处理语法符号序列示意图
LSTM 处理语法符号序列示意图

工程学

工程学中,真值表可以用于控制器点火开关档位的判断。而针对该方法进行优化,通过穷举法列出全部可能性,并逐一进行分析和评判,可以有效避免因1个或2个点火开关信号异常导致控制器不能有效识别点火开关档位的故障,提高控制器的容错或纠错能力,从而保证控制器能按照设计者的意图进行工作。更进一步,优化后的点火开关真值表在实际测试过程中,能有效地对线束的故障和点火开关的故障进行兼容,从而保证车辆使用过程中的安全功能[14]

点火开关电路结构图
点火开关电路结构图

参考资料 41

  1. 参考 1
  2. 参考 2
  3. 参考 3
  4. 参考 4
  5. 参考 5
  6. 参考 6
  7. 参考 7
  8. 参考 8
  9. 参考 9
  10. 参考 10
  11. 参考 11
  12. 参考 12
  13. 参考 13
  14. 参考 14
  15. 参考 15
  16. 参考 16
  17. truth table — britannica
  18. 参考 18
  19. 参考 19
  20. 参考 20
  21. 参考 21
  22. 参考 22
  23. 参考 23
  24. 参考 24
  25. 参考 25
  26. 参考 26
  27. 参考 27
  28. 参考 28
  29. 参考 29
  30. 参考 30
  31. 参考 31
  32. 参考 32
  33. 参考 33
  34. 参考 34
  35. 参考 35
  36. 参考 36
  37. 参考 37
  38. 参考 38
  39. 参考 39
  40. 参考 40
  41. 参考 41
广告位:底部(ad-bottom)—— 请到中台「公共区块」编辑此内容