2 离散数学-命题公式,真值表
- 格式:doc
- 大小:275.00 KB
- 文档页数:4
命题逻辑等值演算等值式定理:设A,B两个命题公式(即前面的合式公式),若A,B构成的等价式A↔B为重言式,则A与B是等值的,记作A⇔B(可以说该式子为等值式模式)常用的16组等值式模式:双重否定律:A⇔﹁﹁A幂定律:A⇔A∧A,A⇔A∨A交换律:A∨B⇔B∨A,A∧B⇔B∧A结合律:(A∨B)∨C⇔A(B∨C)(A∧B)∧C⇔A(B∧C)分配律:A∨(B∧C)⇔(A∨B)∧(A∨C)A∧(B∨C)⇔(A∧B)∨(A∧C)德摩根律:﹁(A∨B)⇔﹁A∧﹁B﹁(A∧B)⇔﹁A∨﹁B吸收律:A∨(A∧B)⇔A,A∧(A∨B)⇔A零律:A∨1⇔1,A∧0⇔0同一律:A∨0⇔A,A∧1⇔1排中律:A∨﹁A⇔1矛盾律:A∧﹁A⇔0蕴涵等值式: A→B⇔﹁A∨B等价等值式: A↔B⇔(A→B)∧(B→A)假言易位:A→B⇔﹁B→﹁A(这里可以用逆否命题的概念证明)等价否定等值式:A↔B⇔﹁A↔﹁B(或写成﹁B↔﹁A,这里可以用逆否命题的概念证明)归谬(miu)论:(A→B)∧(A→﹁B)⇔﹁A(此处可以通过蕴涵等值式,交换律以及结合律进行结合证明)上述等值式模式可以通过真值表证明等值式的验证1.等值演算法(即通过等值式模式对原式进行变形)举例:(p∨q)→r⇔(p→r)∧(q→r)证明时可以从左边开始演算也可以从右边开始演算,无硬性要求,这里我们从右边开始演算。
(p→r)∧(q→r)⇔(﹁p∨r)∧(﹁q∨r) //蕴涵等值式⇔(﹁p∧﹁q)∨r //分配律⇔﹁(p∨q)∨r //德摩根律⇔(p∨q)→r //蕴涵等值式2.真值表法(我在第一章的最后有叙述,这里不再重述)3.观察法(也可称为带入法,此处适合用以证明两式不等值的情况)关于等值演算法的补充:等值演算法可以用以证明公式的类型。
1.当最后结果为1时为重言式(永真式)2.当最后结果为0时为矛盾式(永假式)3.当最后结果只能化成某个命题变项或公式时为可满足式析取范式与合取范式简单析取式:p,﹁p,p∨q,﹁p∨q,p∨﹁q,,﹁p∨﹁q,﹁p∨﹁q∨r等(这里可以发现的是里面都只含有析取联结词,简单析取式结构就是由析取联结词和命题变项组成的一个公式)简单合取式:p,﹁p,p∧q,﹁p∧q,p∧﹁q,,﹁p∧﹁q,﹁p∧﹁q∧r等(这里可以发现的是里面都只含有合取联结词,简单合取式结构就是由合取联结词和命题变项组成的一个公式)课本中的定理:命题变项及其否定统称为文字。
【实验目的】使学生熟练掌握利用计算机语言实现逻辑运算的基本方法。
【实验内容】对给出的任意一个命题公式(不超过四个命题变元),使学生会用C语言的程序编程表示出来,并且能够计算它在各组真值指派下所应有的真值,画出其真值表。
【实验原理】给出任意一个命题公式,我们可以将它用C程序表示出来,并且能够计算它在各组真值指派下所应有的真值(或是逻辑运算的结果)。
这有多种方法。
上面我们已经给出了逻辑连结词的定义,根据这种定义方法,我们也可以把一个命题公式表示成为条件语句中的条件表达式,这样我们就可以得到该命题公式的逻辑运算结果了。
【程序代码】#include <bits/stdc++.h>using namespace std;int a[8][3]={{0,0,0},{0,0,1},{0,1,0},{0,1,1},{1,0,0},{1,0,1},{1,1,0},{1,1,1}};int b[8]={0,0,0,0,0,0,0,0};int xa[8]={0,0,0,0,0,0,0,0};int s(char c,int as,int i){//1 true;0 falseif(c=='|'){if(a[i][as]==1||a[i][as+1]==1){return 1;} else{return 0;}}if(c=='&'){if(a[i][as]==1&&a[i][as+1]==1){return 1;} else{return 0;}}if(c=='='){if(a[i][as]==a[i][as+1]){return 1;} else{return 0;}}if(c=='!'){if(a[i][as]==a[i][as+1]){return 0;return 1;}}if(c=='>'){if(a[i][as]==1||a[i][as+1]==0){return 0;} else{return 1;}}}int so(char c,int i,int as){if(c=='|'){if(xa[i]==1||a[i][as+1]==1){return 1;} else{return 0;}}if(c=='&'){if(xa[i]==1&&a[i][as+1]==1){return 1;} else{return 0;}}if(c=='='){if(xa[i]==a[i][as+1]){return 1;} else{return 0;}}if(c=='!'){if(xa[i]==a[i][as+1]){return 0;} else{return 1;}}if(c=='>'){if(xa[i]==1||a[i][as+1]==0){return 0;return 1;}}}int main(void) {string f;cin>>f;char c1=f[1];char c2=f[3];for(int i=0;i<8;i++){for(int j=0;j<3;j++){printf("%d ",a[i][j]);}printf("\n");}for(int i=0;i<8;i++){xa[i]=s(c1,0,i);}for(int i=0;i<8;i++){b[i]=so(c2,i,1);}for(int i=0;i<8;i++){printf("%d\n",b[i]);}return 0;}【实验结果】【实验心得】。
第一章命题逻辑一、等价公式(真值表)1)常用联结词:┐否定∨析取∧合取→:条件∆:双条件当且仅当Q 取值为F 时P →Q 为F ,否则为T ★等价公式表(等值公式表)常用的其它真值表┐┐P<=>P 双重否定P ∨P<=>P P ∧P<=>P幂等律(P ∧Q)∧R<=>P ∧(Q ∧R)(P ∨Q)∨R<=>P ∨(Q ∨R)结合律P ∧Q<=>Q ∧P P ∨Q<=>Q ∨P交换律P ∧(Q ∨R)<=>(P ∧Q)∨(P ∧R)P ∨(Q ∧R)<=>(P ∨Q)∧(P ∨R)分配律P ∨(P ∧Q)<=>P P ∧(P ∨Q)<=>P 吸收┐(P ∧Q)<=>┐P ∨┐Q ┐(P ∨Q)<=>┐P ∧┐Q 德摩根P ∨F<=>P P ∧T<=>P 同一律P ∨T<=>T P ∧F<=>F 零律P ∨┐P<=>T P ∧┐P<=>F否定律常用的其它真值表P ┐P T F FTP Q P ∨Q T T T T F T F T T FFFP Q P ∧Q T T T T F F F T F F FFP Q P →Q (┐P ∨Q)T T T T F F F T T FFTP→Q<=>┐P ∨Q P ∆Q<=>(P→Q)∧(Q→P)P ∆Q<=>Q ∆PP ∆Q<=>(P ∧Q)∨(┐P ∧┐Q)┐(P ∆Q)<=>P ∆┐Q R ∨(P ∨┐P)<=>T R ∧(P ∧┐P)<=>F P→Q<=>┐Q→┐P ┐(P→Q)<=>P ∧┐Q (P→Q)∧(P→┐Q)<=>┐P P→(Q→R)<=>(P ∧Q)→R (P ∆Q)∆R<=>P ∆(Q ∆R)命题公式的类型:(1)若A在它的各种赋值下均取值为真,则称A为重言式或永真式。
离散数学复习资料第1章命题逻辑本章重点:命题与联结词,公式与解释,真值表,公式的类型及判定, (主)析取(合取)范式,命题逻辑的推理理论.一、重点内容1. 命题命题表述为具有确定真假意义的陈述句。
命题必须具备二个条件:其一,语句是陈述句;其二,语句有唯一确定的真假意义.2. 六个联结词及真值表h“”否定联结词,P是命题,P是P的否命题,是由联结词和命题P组成的复合命题.P取真值1,P取真值0,P取真值0,P取真值1. 它是一元联结词.h “”合取联结词,P Q是命题P,Q的合取式,是“”和P,Q组成的复合命题. “”在语句中相当于“不但…而且…”,“既…又…”. P Q取值1,当且仅当P,Q均取1;P Q取值为0,只有P,Q之一取0.h “”析取联结词,“”不可兼析取(异或)联结词, P Q是命题P,Q的析取式,是“”和P,Q组成的复合命题. P Q是联结词“”和P,Q组成的复合命题. 联结词“”或“”在一个语句中都表示“或”的含义,前者表示相容或,后者表示排斥或不相容的或. 即“P Q”“(P Q)(P Q)”. P Q取值1,只要P,Q之一取值1,P Q取值0,只有P,Q都取值0.h “”蕴含联结词, P Q是“”和P,Q组成的复合命题,只有P取值为1,Q取值为0时,P Q取值为0;其余各种情况,均有P Q的真值为1,亦即10的真值为0,01,11,00的真值均为1. 在语句中,“如果P则Q”或“只有Q,才P,”表示为“P Q”.h “” 等价联结词,P Q是P,Q的等价式,是“”和P,Q组成的复合命题. “”在语句中相当于“…当且仅当…”,P Q取值1当且仅当P,Q真值相同.3. 命题公式、赋值与解释,命题公式的分类与判别h命题公式与赋值,命题P含有n个命题变项P1,P2,…,P n,给P1,P2,…,P n各指定一个真值,称为对P的一个赋值(真值指派). 若指定的一组值使P的真值为1,则这组值为P的真指派;若使P的真值为0,则称这组值称为P的假指派.h命题公式分类,在各种赋值下均为真的命题公式A,称为重言式(永真式);在各种赋值下均为假的命题公式A,称为矛盾式(永假式);命题A不是矛盾式,称为可满足式;判定命题公式类型的方法:其一是真值表法,任给公式,列出该公式的真值表,若真值表的最后一列全为1,则该公式为永真式;若真值表的最后一列全为0,则该公式是永假式;若真值表的最后一列既非全1,又非全0,则该公式是可满足式.其二是推导演算法. 利用基本等值式(教材的十六个等值式或演算律),对给定公式进行等值推导,若该公式的真值为1,则该公式是永真式;若该公式的真值为0,则该公式为永假式.既非永真,也非用假,成为非永真的可满足式.其三主析取(合取)范式法,该公式的主析取范式有2n个极小项(即无极大项),则该公式是永真式;该公式的主合取范式有2n个极大项(即无极小项),则该公式是永假式;该公式的主析取(或合取)范式的极小项(或极大项)个数大于0小于2n,,则该公式是可满足式.h等值式A B,命题公式A,B在任何赋值下,它们的真值均相同,称A,B等值。
一实验目的 (1)二实验内容 (1)三实验环境 (1)四实验原理和实现过程(算法描述) (1)五实验数据及结果分析; (3)六源程序清单; (7)七其他收获和体会。
(16)一实验目的熟悉掌握命题逻辑中的联接词、真值表、主范式等,进一步能用它们来解决实际问题。
二实验内容1. 从键盘输入两个命题变元P和Q的真值,求它们的合取、析取、条件和双条件的真值。
(A)2. 求任意一个命题公式的真值表(B,并根据真值表求主范式(C))三实验环境C或C++语言编程环境实现。
四实验原理和实现过程(算法描述)A:首先提示用户输入真值指派,然后判断用户输入的是否是0或者1,如果不是则利用while语句提示错误,然后提示重新输入直至输入正确,再根据用户输入的真值给代表合取,析取,蕴含,双条件的变量赋值,再以两行表格形式输出所得结果。
最后提示按#键退出,否则继续循环求真值。
B:主要思路:首先提示用户输入表达式,然后编写并调用一个函数将表达式转换为逆波兰式,在转换的同时,插入部分语句将表达式中的变量名存储到数组bianl[N]中,然后输出存好的各变量名及用户输入的表达式(建立表头),将每次的真值指派存在数组zhi[]中,编写函数zzhi()每次调用zzhi()时都使数组zhi[]中的真值加1,(利用递推实现加一时可能的进位,)然后编写并调用一函数qiuzhi ()计算每次真值指派下的逆波兰表达式的值,再输出各真值指派和求出的表达式的真值,然后调用函数zzhi()将真值指派的数组加1,最后外围利用while语句循环输出每个不同的真值指派和该指派下表达式的值。
将表达式转换成逆波兰式并将变量提取的算法:首先需要分配2个栈,一个作为临时存储运算符的栈fu[],一个作为输入逆波兰式的栈nibol[],从中缀式的左端开始取字符,逐序进行如下步骤:(1)若取出的字符是字母,则该字母直接送入nibol[]栈。
同时为了找出所有变量,将该变量名与数组bianl[]中已有的元素比较,如果bianl[]中还没有该字母,则该字母是新出现的变量,将其录入数组bianl[]中。
2 命题公式,真值表
(1) 数理逻辑是通过引入表意符号研究人类思维中的推理过程及推理正确与否的数学分支.
数学------⎧⎨⎩
符号运算
推理---思维过程:前提
结论
命题逻辑---研究由命题为基本单位构成的前提和结论之间的可推导关系.(逻辑演算) 即将推理(不涉及内函)形式化.
例1 (a) 4是偶数.
张林学习优秀.
太阳系以外的星球上有生物.
(b) 这朵花真美丽!
现在开会吗?
(c) 3 5.x +>
我正在说慌.
特征分析(a) 陈述句,非真即假.
(b) 感叹句,疑问句.
(c) 悖论.
定义1 能辩真假的陈述句,称为命题,用,,,P Q Z 表示.其判断结果称为命题的真值.
成真的命题称为真命题,其真值为真,记为,T 或为1.成假的命题称假命题,其真值为假,记为,F 或为0.
例2 (1) 2008年奥运会在北京举行.
(2) 22 5.⨯=
(3) 计算机程序的发明者是诗人拜伦.
用符号表是上述命题,并求真值.
解 (1) :P 2008年奥运会在北京举行. .T
(2) :Q 22 5.⨯= .F
(3) :R 计算机程序的发明者是诗人拜伦. .F
(2) 3, 35,+ 3(4
1).+- 例3 (1) 今天没有数学考试.
(2) 下午,我写信或做练习.
(3) 王芳不但用功,而且成绩优秀.
(4) 如果太阳从西边出来了,那么地球停止转动.
(5) 2是素数,当且仅当三角形有三条边.
特征分析(a)存在自然语言中的虚词.
(b)语句可以分解,细化.
定义2 称下列符号为逻辑联结词
否定 ⌝ 非 P ⌝
析取 ∨ 或者 P Q ∨
合取 ∧ 且 P Q ∧
蕴涵 → 若----,则----- P Q →
等价 ↔ 当且仅当 P Q ↔
逻辑联结词真值的规定
例4 将下列命题符号化.
(1) 小李聪明,但不用功. ()P Q ∧⌝
(2) 单位派小王或小苏出差. P Q ∨
(3) 如果椅子是紫色的,且是园的,那么地是平的. ()P Q R ∧→ (4) n 是偶数当且仅当它能被2整除. P Q ↔
注 1 逻辑联结词:运算符.顺序 ,,,,.⌝∧∨→↔
2 自然语言中 虽然---,但是----; 不但---,而且----; ∧
只有----,才----; 除非----,才-----; →
3 ∨ 可兼或(相容) ∨ 不可兼或(排斥)
小王是山东人或是河北人. ()()P Q P Q P Q ∨⇔∧⌝∨⌝∧
4 ,P Q -----------------------简单命题
()P Q R ∨→-----------复合命题(由简单命题及逻辑联结词按一定规则组成)
5 复合命题的真值由简单命题和逻辑联结词真值规定共同确定.
“若雪是黑的,那么太阳从西边出来了.”
P :雪是黑的. :Q 太阳从西边出来了.P Q → 真值 为 T
6 蕴含联结词的真值规定解释
“若天下雨,那么我带伞.”何时自食其言.前件:P 天下雨.后件:Q 我带伞.
则有命题 P Q → 仅当天下雨,我没有带伞时才自其言,即当前件为T ,
后件为F 时,命题才为F .对应的真值情况如下:
(3) 3,;43;ππ-22
1, 5.;23;24|x y x x y x y ==++-
定义3 真值确定的命题,称为命题常元1,0,否则为命题变元,记号仍用,.P Q
命题公式是由按下列规则生成的符号串
(1)命题常元是命题公式
(2)命题变元是命题公式
(3)若,P Q 是命题公式,则,,,,P P Q P Q P Q P Q ⌝∨∧→↔也是
命题公式.
(4)有限次运用(1),(2),(3)得到的字符串也是命题公式.
注 1 递归定义.():,,,().P Q R P P P Q P Q R ⌝→∧⌝⌝→⌝→∧
2 ,(()Q P Q ∧∨不是命题公式.
(4) 定义4 命题公式中,命题变元的一组确定的真值,称为该公式的一个真值
指派.
真值指派的全体构成的表,称为该公式的真值表.
注 命题公式12(,,,)n A P P P 一共有2n 个真值指派.
例5 求命题公式()Q P Q P ∧→→的真值表.
解
(5) 22
sin cos 1,arcsin 2,30.x x x x +=≥+>
例6 讨论下列命题公式的真值情况.
(),P P Q ⌝→→ (),P Q P ∧∧⌝ ().
P P Q ∨⌝→ 解
定义5 命题公式12(,,,)n A P P P 在2n 个真值指派下
其值⎧⎪⎨⎪⎩
永真永假至少有一个真 称A 为重言式矛盾式可满足式
(1) 数理逻辑、命题逻辑研究的内容。
(2) 命题、真值、命题常元、命题变元。
(3) 逻辑联结词。
(4) 命题公式、真值指派、永真式、真值表。
(5) 判断命题,符号化陈述句,构造命题公式的真值表。
判断命题公式的类型。