离散数学,逻辑学,命题公式求真值表
命题公式及其真值表
第二节 命题公式及其真值表在上节中,用,,p q r L 表示确定的简单命题。
简单命题又称为命题常项或命题常元。
命题常项有确定的真值。
在数理逻辑中,不仅要研究具体的逻辑关系,还要研究抽象的逻辑关系,因而不仅要有命题常项,还要有命题变项。
称真值可以变化的简单陈述句为命题变项或命题变元,仍然用,,p q r L 表示命题的变项。
命题常项、命题变项及联结词可按下述定义合式的公式。
定义2.1 (1)单个的命题变项(或常项)是合式公式;(2)若A 是合式公式,则(¬A )也是合式公式;(3)若A ,B 是合式公式,则(A ∧B ),(A ∨B ),(A →B ),(A ↔B )也是合式公式;(4)有限次地应用(1)~(3)形成的符号串都是合式公式。
这样定义的合式公式也称为命题公式,简称公式。
单独使用(¬A ),(A ∧B ),(A ∨B ),(A →B ),(A ↔B )时,外层括号可以省去,即可写成¬A ,A ∧B ,A ∨B ,A →B ,A ↔B 。
在定义 2.1.中出现的A ,B L 是用来表示任意的合式公式的。
在以下的论述中出现的A ,B ,C 等也同样是用来表示任意公式的。
定义2.2 设1p ,2p L ,n p 是出现在公式A 中的全部的命题变项,给1p ,2p L ,np 各指定一个真值,称为A 的一个赋值或解释。
若指定的一组真值使A 的真值为1,则称这组真值为A 的成真赋值(或成真解释)。
若指定的一组真值使A 的真值为0,则称这组真值为A 的成假赋值(或成假解释)。
本书中对含n 个命题变项的公式的赋值形式做如下规定:(1)设A 中含的命题变项为1p ,2p L ,n p ,赋值12n a a a L (i a 为0或1)是指11p a =,22p a =,L ,n n p a =。
(2)若出现在A 中的命题变项为p ,q ,r ,L ,赋值12n a a a L 是指1p a =,2q a =,L ,即按字典顺序赋值。
离散数学第一章命题逻辑知识点总结
数理逻辑部分第1章命题逻辑命题符号化及联结词命题: 判断结果惟一的陈述句命题的真值: 判断的结果真值的取值: 真与假真命题: 真值为真的命题假命题: 真值为假的命题注意: 感叹句、祈使句、疑问句都不是命题,陈述句中的悖论以及判断结果不惟一确定的也不是命题。
简单命题(原子命题):简单陈述句构成的命题复合命题:由简单命题与联结词按一定规则复合而成的命题简单命题符号化用小写英文字母p, q, r, … ,p i,q i,r i (i≥1)表示简单命题用“1”表示真,用“0”表示假例如,令p:是有理数,则p 的真值为 0q:2 + 5 = 7,则q 的真值为 1联结词与复合命题1.否定式与否定联结词“”定义设p为命题,复合命题“非p”(或“p的否定”)称为p的否定式,记作p. 符号称作否定联结词,并规定p为真当且仅当p为假.2.合取式与合取联结词“∧”定义设p,q为二命题,复合命题“p并且q”(或“p与q”)称为p与q 的合取式,记作p∧q. ∧称作合取联结词,并规定 p∧q为真当且仅当p 与q同时为真注意:描述合取式的灵活性与多样性分清简单命题与复合命题例将下列命题符号化.(1) 王晓既用功又聪明.(2) 王晓不仅聪明,而且用功.(3) 王晓虽然聪明,但不用功.(4) 张辉与王丽都是三好生.(5) 张辉与王丽是同学.解令p:王晓用功,q:王晓聪明,则(1) p∧q(2) p∧q(3) p∧q.令r : 张辉是三好学生,s :王丽是三好学生(4) r∧s.(5) 令t : 张辉与王丽是同学,t 是简单命题 .说明:(1)~(4)说明描述合取式的灵活性与多样性.(5) 中“与”联结的是两个名词,整个句子是一个简单命题.3.析取式与析取联结词“∨”定义设p,q为二命题,复合命题“p或q”称作p与q的析取式,记作p∨q. ∨称作析取联结词,并规定p∨q为假当且仅当p与q同时为假.例将下列命题符号化(1) 2或4是素数.(2) 2或3是素数.(3) 4或6是素数.(4) 小元元只能拿一个苹果或一个梨.(5) 王晓红生于1975年或1976年.解令p:2是素数, q:3是素数, r:4是素数, s:6是素数,则 (1), (2), (3) 均为相容或.分别符号化为: p∨r , p∨q, r∨s,它们的真值分别为 1, 1, 0.而 (4), (5) 为排斥或.令t :小元元拿一个苹果,u:小元元拿一个梨,则 (4) 符号化为 (t∧u) ∨(t∧u).令v :王晓红生于1975年,w:王晓红生于1976年,则 (5) 既可符号化为 (v∧w)∨(v∧w), 又可符号化为v∨w , 为什么?4.蕴涵式与蕴涵联结词“”定义设p,q为二命题,复合命题“如果p,则q” 称作p与q的蕴涵式,记作p q,并称p是蕴涵式的前件,q为蕴涵式的后件. 称作蕴涵联结词,并规定,p q为假当且仅当p 为真q 为假.p q 的逻辑关系:q 为p 的必要条件“如果p,则q ” 的不同表述法很多:若p,就q只要p,就qp 仅当q只有q 才p除非q, 才p 或除非q, 否则非p.当p 为假时,p q 为真常出现的错误:不分充分与必要条件5.等价式与等价联结词“”定义设p,q为二命题,复合命题“p当且仅当q”称作p与q的等价式,记作p q. 称作等价联结词.并规定p q为真当且仅当p与q同时为真或同时为假.说明:(1) p q 的逻辑关系:p与q互为充分必要条件(2) p q为真当且仅当p与q同真或同假联结词优先级:( ),, , , ,同级按从左到右的顺序进行以上给出了5个联结词:, , , , ,组成一个联结词集合{, , , , },联结词的优先顺序为:, , , , ; 如果出现的联结词同级,又无括号时,则按从左到右的顺序运算; 若遇有括号时,应该先进行括号中的运算.注意: 本书中使用的括号全为园括号.命题常项命题变项命题公式及分类命题变项与合式公式命题常项:简单命题命题变项:真值不确定的陈述句定义合式公式 (命题公式, 公式) 递归定义如下:(1) 单个命题常项或变项p,q,r,…,p i ,q i ,r i ,…,0,1是合式公式(2) 若A是合式公式,则 (A)也是合式公式(3) 若A, B是合式公式,则(A B), (A B), (A B), (A B)也是合式公式(4) 只有有限次地应用(1)~(3)形成的符号串才是合式公式说明: 元语言与对象语言, 外层括号可以省去合式公式的层次定义(1) 若公式A是单个的命题变项, 则称A为0层公式.(2) 称A是n+1(n≥0)层公式是指下面情况之一:(a) A=B, B是n层公式;(b) A=B C, 其中B,C分别为i层和j层公式,且n=max(i, j);(c) A=B C, 其中B,C的层次及n同(b);(d) A=B C, 其中B,C的层次及n同(b);(e) A=B C, 其中B,C的层次及n同(b).例如公式p 0层p 1层p q 2层(p q)r 3层((p q) r)(r s) 4层公式的赋值定义给公式A中的命题变项p1, p2, … , p n指定一组真值称为对A的一个赋值或解释成真赋值: 使公式为真的赋值成假赋值: 使公式为假的赋值说明:赋值=12…n之间不加标点符号,i=0或1.A中仅出现p1, p2, …, p n,给A赋值12…n是指p1=1, p2=2, …, p n=nA中仅出现p,q, r, …, 给A赋值123…是指p=1,q=2 , r= 3 …含n个变项的公式有2n个赋值.真值表真值表: 公式A在所有赋值下的取值情况列成的表例给出公式的真值表A= (q p) q p的真值表例 B = (p q) q的真值表例C= (p q) r的真值表命题的分类重言式矛盾式可满足式定义设A为一个命题公式(1) 若A无成假赋值,则称A为重言式(也称永真式)(2) 若A无成真赋值,则称A为矛盾式(也称永假式)(3) 若A不是矛盾式,则称A为可满足式注意:重言式是可满足式,但反之不真.上例中A为重言式,B为矛盾式,C为可满足式A= (q p)q p,B =(p q)q,C= (p q)r等值演算等值式定义若等价式A B是重言式,则称A与B等值,记作A B,并称A B是等值式说明:定义中,A,B,均为元语言符号, A或B中可能有哑元出现.例如,在 (p q) ((p q) (r r))中,r为左边公式的哑元.用真值表可验证两个公式是否等值请验证:p(q r) (p q) rp(q r) (p q) r基本等值式双重否定律 : 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零律: A11, A00同一律: A0A, A1A排中律: A A1矛盾律: A A0等值演算:由已知的等值式推演出新的等值式的过程置换规则:若A B, 则(B)(A)等值演算的基础:(1) 等值关系的性质:自反、对称、传递(2) 基本的等值式(3) 置换规则应用举例——证明两个公式等值例1 证明p(q r) (p q)r证p(q r)p(q r) (蕴涵等值式,置换规则)(p q)r(结合律,置换规则)(p q)r(德摩根律,置换规则)(p q) r(蕴涵等值式,置换规则)说明:也可以从右边开始演算(请做一遍)因为每一步都用置换规则,故可不写出熟练后,基本等值式也可以不写出应用举例——证明两个公式不等值例2 证明: p(q r) (p q) r用等值演算不能直接证明两个公式不等值,证明两个公式不等值的基本思想是找到一个赋值使一个成真,另一个成假.方法一真值表法(自己证)方法二观察赋值法. 容易看出000, 010等是左边的的成真赋值,是右边的成假赋值.方法三用等值演算先化简两个公式,再观察.应用举例——判断公式类型例3 用等值演算法判断下列公式的类型(1) q(p q)解q(p q)q(p q) (蕴涵等值式)q(p q) (德摩根律)p(q q) (交换律,结合律)p0 (矛盾律)0 (零律)由最后一步可知,该式为矛盾式.(2) (p q)(q p)解 (p q)(q p)(p q)(q p) (蕴涵等值式)(p q)(p q) (交换律)1由最后一步可知,该式为重言式.问:最后一步为什么等值于1?(3) ((p q)(p q))r)解 ((p q)(p q))r)(p(q q))r(分配律)p1r(排中律)p r(同一律)这不是矛盾式,也不是重言式,而是非重言式的可满足式.如101是它的成真赋值,000是它的成假赋值.总结:A为矛盾式当且仅当A0A为重言式当且仅当A1说明:演算步骤不惟一,应尽量使演算短些对偶与范式对偶式与对偶原理定义在仅含有联结词, ∧,∨的命题公式A中,将∨换成∧, ∧换成∨,若A中含有0或1,就将0换成1,1换成0,所得命题公式称为A的对偶式,记为A*.从定义不难看出,(A*)* 还原成A定理设A和A*互为对偶式,p1,p2,…,p n是出现在A和A*中的全部命题变项,将A和A*写成n元函数形式,则 (1) A(p1,p2,…,p n) A* (p1, p2,…, p n) (2) A(p1, p2,…, p n) A* (p1,p2,…,p n) 定理(对偶原理)设A,B为两个命题公式,若A B,则A* B*.析取范式与合取范式文字:命题变项及其否定的总称简单析取式:有限个文字构成的析取式如p, q, p q, p q r, …简单合取式:有限个文字构成的合取式如p, q, p q, p q r, …析取范式:由有限个简单合取式组成的析取式A 1A2Ar, 其中A1,A2,,A r是简单合取式合取范式:由有限个简单析取式组成的合取式A 1A2Ar, 其中A1,A2,,A r是简单析取式范式:析取范式与合取范式的总称公式A的析取范式: 与A等值的析取范式公式A的合取范式: 与A等值的合取范式说明:单个文字既是简单析取式,又是简单合取式p q r, p q r既是析取范式,又是合取范式(为什么?)命题公式的范式定理任何命题公式都存在着与之等值的析取范式与合取范式.求公式A的范式的步骤:(1) 消去A中的, (若存在)(2) 否定联结词的内移或消去(3) 使用分配律对分配(析取范式)对分配(合取范式)公式的范式存在,但不惟一求公式的范式举例例求下列公式的析取范式与合取范式(1) A=(p q)r解 (p q)r(p q)r(消去)p q r(结合律)这既是A的析取范式(由3个简单合取式组成的析取式),又是A的合取范式(由一个简单析取式组成的合取式)(2) B=(p q)r解 (p q)r(p q)r(消去第一个)(p q)r(消去第二个)(p q)r(否定号内移——德摩根律)这一步已为析取范式(两个简单合取式构成)继续: (p q)r(p r)(q r) (对分配律)这一步得到合取范式(由两个简单析取式构成)极小项与极大项定义在含有n个命题变项的简单合取式(简单析取式)中,若每个命题变项均以文字的形式在其中出现且仅出现一次,而且第i(1i n)个文字出现在左起第i位上,称这样的简单合取式(简单析取式)为极小项(极大项).说明:n个命题变项产生2n个极小项和2n个极大项2n个极小项(极大项)均互不等值用m i表示第i个极小项,其中i是该极小项成真赋值的十进制表示. 用M i 表示第i个极大项,其中i是该极大项成假赋值的十进制表示, m i(M i)称为极小项(极大项)的名称.m与M i的关系: m i M i , M i m ii主析取范式与主合取范式主析取范式: 由极小项构成的析取范式主合取范式: 由极大项构成的合取范式例如,n=3, 命题变项为p, q, r时,(p q r)(p q r) m1m3是主析取范式(p q r)(p q r) M1M5 是主合取范式A的主析取范式: 与A等值的主析取范式A的主合取范式: 与A等值的主合取范式.定理任何命题公式都存在着与之等值的主析取范式和主合取范式, 并且是惟一的.用等值演算法求公式的主范式的步骤:(1) 先求析取范式(合取范式)(2) 将不是极小项(极大项)的简单合取式(简单析取式)化成与之等值的若干个极小项的析取(极大项的合取),需要利用同一律(零律)、排中律(矛盾律)、分配律、幂等律等.(3) 极小项(极大项)用名称m i(M i)表示,并按角标从小到大顺序排序.求公式的主范式例求公式A=(p q)r的主析取范式与主合取范式.(1) 求主析取范式(p q)r(p q)r , (析取范式)①(p q)(p q)(r r)(p q r)(p q r)m 6m7,r(p p)(q q)r(p q r)(p q r)(p q r)(p q r)m 1m3m5m7③②, ③代入①并排序,得(p q)r m1m3m5m6m7(主析取范式)(2) 求A的主合取范式(p q)r(p r)(q r) , (合取范式)①p rp(q q)r(p q r)(p q r)M 0M2,②q r(p p)q r(p q r)(p q r)M 0M4③②, ③代入①并排序,得(p q)r M0M2M4 (主合取范式)主范式的用途——与真值表相同(1) 求公式的成真赋值和成假赋值例如 (p q)r m1m3m5m6m7,其成真赋值为001, 011, 101, 110, 111,其余的赋值 000, 010, 100为成假赋值.类似地,由主合取范式也可立即求出成假赋值和成真赋值.(2) 判断公式的类型设A含n个命题变项,则A为重言式A的主析取范式含2n个极小项A的主合取范式为1.A为矛盾式A的主析取范式为0A的主合取范式含2n个极大项A为非重言式的可满足式A的主析取范式中至少含一个且不含全部极小项A的主合取范式中至少含一个且不含全部极大项例某公司要从赵、钱、孙、李、周五名新毕业的大学生中选派一些人出国学习. 选派必须满足以下条件:(1)若赵去,钱也去;(2)李、周两人中至少有一人去;(3)钱、孙两人中有一人去且仅去一人;(4)孙、李两人同去或同不去;(5)若周去,则赵、钱也去.试用主析取范式法分析该公司如何选派他们出国?解此类问题的步骤为:①将简单命题符号化②写出各复合命题③写出由②中复合命题组成的合取式④求③中所得公式的主析取范式解①设p:派赵去,q:派钱去,r:派孙去,s:派李去,u:派周去.② (1) (p q)(2) (s u)(3) ((q r)(q r))(4) ((r s)(r s))(5) (u(p q))③ (1) ~ (5)构成的合取式为A=(p q)(s u)((q r)(q r))((r s)(r s))(u(p q))④ A (p q r s u)(p q r s u)结论:由④可知,A的成真赋值为00110与11001,因而派孙、李去(赵、钱、周不去)或派赵、钱、周去(孙、李不去).A的演算过程如下:A (p q)((q r)(q r))(s u)(u(p q)) ((r s)(r s)) (交换律) B1= (p q)((q r)(q r))((p q r)(p q r)(q r)) (分配律)B2= (s u)(u(p q))((s u)(p q s)(p q u)) (分配律)B 1B2(p q r s u)(p q r s u) (q r s u)(p q r s)(p q r u)再令B3 = ((r s)(r s))得A B1B2B3(p q r s u)(p q r s u)注意:在以上演算中多次用矛盾律要求:自己演算一遍推理理论推理的形式结构推理的形式结构—问题的引入推理举例:(1) 正项级数收敛当且仅当部分和有上界.(2) 若推理: 从前提出发推出结论的思维过程上面(1)是正确的推理,而(2)是错误的推理.证明: 描述推理正确的过程.判断推理是否正确的方法•真值表法•等值演算法判断推理是否正确•主析取范式法•构造证明法证明推理正确说明:当命题变项比较少时,用前3个方法比较方便, 此时采用形式结构“” . 而在构造证明时,采用“前提: , 结论: B”.推理定律与推理规则推理定律——重言蕴涵式构造证明——直接证明法例构造下面推理的证明:若明天是星期一或星期三,我就有课. 若有课,今天必备课. 我今天下午没备课. 所以,明天不是星期一和星期三.解设p:明天是星期一,q:明天是星期三,r:我有课,s:我备课推理的形式结构为例构造下面推理的证明:2是素数或合数. 若2是素数,则是无理数.若是无理数,则4不是素数. 所以,如果4是素数,则2是合数.用附加前提证明法构造证明解设p:2是素数,q:2是合数,r:是无理数,s:4是素数推理的形式结构前提:p∨q, p r, r s结论:s q证明① s附加前提引入②p r前提引入③r s前提引入④p s②③假言三段论⑤p①④拒取式⑥p∨q前提引入⑦q⑤⑥析取三段论请用直接证明法证明之。
离散数学(一)知识梳理
离散数学(一)知识梳理•逻辑和证明部分o命题逻辑题型▪命题符号化问题将自然语言转为符号化逻辑命题▪用命题变量来表示原子命题▪用命题联结词来表示连词▪命题公式的类型判断判断命题公式是否是永真式、矛盾式、可能式▪利用真值表判断▪利用已知的公式进行推理判断▪利用主析取和合取范式判断▪定理:A为含有n个命题变元的命题公式,若A的主析取范式含有2^n个极小项,则A为重言式,若极小项在0到2^n之间,则为可满足式,若含有0个极小项,则A为矛盾式;若A的主合取范式含有2^n个极大项,则A为矛盾式,若极小项在0到2^n之间,则为可满足式,若含有0个极小项,则A为重言式▪翻译:一个命题公式化成主范式后,若所有项都分布在主析取范式中(主合取范式为1)则为重言式;若所有项都分布在主合取范式中(主析取范式为0)则为矛盾式;若均有分布,则为可满足式。
【思想来源:真值表法求主范式】▪一个质析取式是重言式的充要条件是其同时含有某个命题变元及其否定式;一个质合取式是矛盾式的充要条件是其同时含有某个命题变元及其否定式▪一个析取范式是矛盾式当且仅当它的每项都是矛盾式;一个合取范式是重言式当且仅当它的每项都是重言式▪求(主)析取或合取范式▪等值演算法▪ 1. 利用条件恒等式消除条件(蕴含和双条件)联结词,化简得到一个范式▪ 2. 在缺项的质项中不改变真值地添加所缺项,化简得到一个主范式▪ 3. 找出包含所有命题变元排列中剩余项,凑出另一个主范式(思想上类似于真值表法)▪真值表法▪ 1. 画出命题公式真值表▪ 2. 根据真值表结果求出主范式▪主析取范式:真值为1的所有项,每一项按对应01构成极小项▪主合取范式:真值为0的所有项,每一项按对应01构成极大项▪形式证明与命题推理利用推理规则构造一个命题公式的序列,证明结论▪形式证明:命题逻辑的论证是一个命题公式的序列,其中每个公式或者是前提,或者是由它之前的公式作为前提推得的结论,序列的最后一个是待证的结论,这样的论证也称为形式证明。
离散数学(命题逻辑)
联结词运算规则
我们所学的5种基本联结词也称为逻辑 运算符,其运算顺序为: ┐,∧,∨,→,↔ 如果出现的基本联结词相同,又无括号 时,则按从左到右的运算顺序; 如果遇有括号时,不管出现的基本联结 词如何,都先进行括号中的运算。
36
真值表
p p T F q
p
F T
T T F F
T F T F
而 (4)为排斥或. (4) 令 t :小元元拿一个苹果,u:小元元拿一个梨, 则 (4) 符号化为 (t∧u) ∨(t∧u).
28
四、联结词与复合命题(续)
4.蕴涵式与蕴涵联结词“”
定义4 设 p,q为二命题,复合命题 “如果p,则q” 称作p与q
的蕴涵式,记作pq ,并称 p是蕴涵式的前件, q为蕴涵
9
主要内容
数理逻辑 集合论 代数结构 图论 组合分析初步 形式语言和自动机初步
10
数理逻辑
莱 布 尼 兹
逻辑学是研究 推理的科学
数理逻辑用 数学方法研 究推理的一 门数学学科
11
利用计算的方 法来代替人们 思维中的逻辑 推理过程
数理逻辑
------ 一套符号体系 + 一组规则 数理逻辑又称符号逻辑、理论逻辑。它既 是数学的一个分支,也是逻辑学的一个分 支。 是用数学方法研究逻辑或形式逻辑的学科。 其研究对象是对证明和计算这两个直观概 念进行符号化以后的形式系统。
抽不同抽不同牌的香烟牌的香烟11411420141013collegecomputersciencetechnologybupt谁养鱼英国人住在红色房屋英国人住在红色房屋瑞典人养狗瑞典人养狗丹麦人喝茶丹麦人喝茶绿色的房子在白色房子的左边绿色的房子在白色房子的左边绿色房屋的屋主喝咖啡绿色房屋的屋主喝咖啡抽抽pallmallpallmall香烟的屋主养鸟香烟的屋主养鸟黄色屋主抽黄色屋主抽dunhilldunhill位于最中间的屋主喝牛奶位于最中间的屋主喝牛奶挪威人住在第一间房屋挪威人住在第一间房屋10
离散数学实验——求真值表
一实验目的 (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[]中。
离散数学课件真值表和等价公式PPT文档16页
离散数学课件真值表和等价公式
1、 舟 ቤተ መጻሕፍቲ ባይዱ 遥 以 轻飏, 风飘飘 而吹衣 。 2、 秋 菊 有 佳 色,裛 露掇其 英。 3、 日 月 掷 人 去,有 志不获 骋。 4、 未 言 心 相 醉,不 再接杯 酒。 5、 黄 发 垂 髫 ,并怡 然自乐 。
谢谢你的阅读
❖ 知识就是财富 ❖ 丰富你的人生
离散数学(1.4真值表与等价公式)
1
第一章 命题逻辑(Propositional Logic) 1.4真值 表与等价公式
1.4.1 真值表(Truth Table) 1.4.2 等价公式(Propositional Equivalences) 1.4.1 真值表 前面在定义联结词时,曾经使用过真值表,下面给出 真值表的定义. 定义1.4.1 (对公式的赋值或解释)设P1 , P2 ,…,Pn是出 现在公式A中的全部的命题变元, 给P1 , P2 ,…,Pn各指 定一个真值,称为对A的一个赋值或解释。若指定的 一组值使A的真值为真(假), 称这组值为A的成真(假)赋值.
练习2:构造公式 (P Q ∧Q 真值表。
P
F F T T
Q
F T F T
(P Q )
(P Q)
(P Q) ∧ Q
11
第一章 命题逻辑(Propositional Logic) 1.4真值 表与等价公式
练习2:构造公式 (P Q ∧Q 真值表。
P
F F T T
Q
F T F T
F F F F F
Q R P (Q R) (P ∧ Q R
T T F T T T T T T T T T T T T
T F T
T T F
F
T
T
F
T
F
T
F
Байду номын сангаас
T T T
T
T
T
T
17
第一章 命题逻辑(Propositional Logic) 1.4真值 表与等价公式
由真值表可知,两个公式为等价式。
F F T T
F T F T
链接版第一章真值表、逻辑和证明
CHAPTER 1TRUTH TABLES, LOGIC, AND PROOFSGlossarystatement, proposition:命题logical connective:命题联结词compound statement:复合命题propositional variable:命题变元negation:否定(式)truth table:真值表conjunction:合取disjunction:析取propositional function:命题公式fallacy: 谬误syllogism:三段论universal quantification:全称量词化existential quantification:存在量词化hypothesis(premise):假设,前提,前件conditional statement, implication:条件式,蕴涵式consequent, conclusion:结论,后件converse:逆命题contrapositive:逆否命题biconditional, equivalence:双条件式,等价logically equivalent:(逻辑)等价的contingency:可满足式tautology:永真式(重言式)contradiction, absurdity:永假(矛盾)式logically follow:是…的逻辑结论argument:论证axioms:公理postulate:公设rules of reference:推理规则modus ponens:肯定律m odus tollens:否定律reductio ad absurdum:归谬律proof by contradiction:反证法counterexample:反例minterm:极小项disjunctive normal form:主析取范式maxterm:极大项conjunctive normal form:主合取范式本章内容及教学要点:1.1 Statements and Connectives教学内容:statements(propositions),compound statement,connectives:negation,conjunction,disjunction,truth tables1.2 Conditional Statements教学内容:implications(conditional statements),biconditional,equivalent,and quantifications1.3Equivalent Statements教学内容:logical equivalence,converse,inverse,contrapositive,tautology,contradiction(absurdity),contingency,properties of logical connectives1.4 Axiomatic Systems: Arguments and Proofs教学内容:rules of reference,augument,valid argument,hypotheses,premises,law of detachment(modus ponens),syllogism,modus tollens,addition,proof by contradiction1.5 Normal Forms教学内容:minterm,disjunctive normal form,maxterm,conjunctive normal form定理证明及例题解答Logic, developed by Aristotle, has been used through the centuries in the development of many areas of learning including theology, philosophy, and mathematics. It is the foundation on which the whole structure of mathematics is built. Basically it is the science of reasoning, which may allow us to determine statements about mathematics whether are true or false based on a set of basic assumptions called axioms. Logic is also used in computer science to construct computer programs and to show that programs do what they are designed to do.逻辑学是研究人的思维形式的科学. 而数理逻辑是逻辑学的一个重要分支,是用数学形式化的方法研究思维规律的一门学科. 由于它使用了一套符号来简洁地表达出各种推理的逻辑关系,故它又称符号逻辑.数理逻辑用数学方法研究推理、利用符号体系研究推理过程中前提和结论之间的关系. 数理逻辑的主要内容:逻辑演算(L S 和L p)、公理化集合论、模型论、构造主义与证明论. 数理逻辑在电子线路、机器证明、自动化系统、编译理论、算法设计方法方面有广泛的应用.The rules of logic specify the meaning of mathematical statements. Logic is the basis of all mathematical reasoning, and it has practical applications to the design of computing machines, to system specifications, to artificial intelligence(AI), to computer programming, to programming languages, and to other areas of computer science, as well as to many other fields of study.1.1 Statements and Connectivess(命题和联结词)命题逻辑研究的对象是命题及命题之间的逻辑关系.Propositions are the basic building blocks of logic. Many mathematical statements are constructed by combining one or more propositions.定义1.1.1 A proposition is a statement or declarative sentence that is either true or false, but not both(命题是一个非真即假的陈述句).因此不能判断真假的陈述句、疑问句、祈使句和感叹句都不是命题.(1)The true or false value assigned to a statement is called its truth value; (一个命题的真或假称为命题的真值. 真用T或1表示,假用F或0表示) (2)一个陈述句有真值与是否知道它的真假是两回事.例1.1.1 判断下列语句是不是命题?若是,给出命题的真值:(1) 陕西师大不是一座工厂.(2) 你喜欢唱歌吗?(3) 给我一块钱吧!(4) 我不是陕西师大的学生.(5) 我正在说谎.Logical connectives(命题联结词)数理逻辑的特点是并不关心具体某个命题的真假,而是将逻辑推理变成类似数学演算的形式化过程, 关心的是命题之间的关联性. 因此需要进行命题符号化.命题联结词的作用是为了将简单命题组合成复合命题.We will now introduce the logical connectives that are used to form new propositions from existing propositions. And once truth values have been assigned to simple propositions, we can progress to more complicated compound statements.A statement that contains no connectives is called a simplestatement. We will use p,q,r…to represent simple statements(简单命题就是简单陈述句,用字母p,q,r…(或带下标)表示);Sometimes, the letters p,q,r,s,…are used to denote propositional variables that can be replaced by statements(命题变元:可以用命题代替的变元).A statement that contains logical connectives(命题联结词) is called compound statements(复合命题). In general, a compound statement may have many component parts, each of which is itself a statement, represented by some propositional variable. The truth of a compound proposition is determined by the truth or falsity of the component parts.propositional constant(命题常元):T(1)或F(0),或者表示一个确定的命题;propositional variable(命题变元):可用一个特定的命题取代。
离散数学之逻辑运算和命题公式真值表
return 0;
}
{
int show();
show();
return 0;
}
int hequ(int P,int Q)
{
return(P&Q);
}
int xiqu(int P,int Q)
{
return(P|Q);
}
int tiaojian(int P,int Q)
{
if(P==1&&Q==0)
return(0);
else
实现任意输入公式的真值表计算。一般我们将公式中的命题变元放在真值表的左边,将公式的结果放在真值表的右边。命题变元可用数值变量表示,合适公式的表示及求真值表转化为逻辑运算结果;可用一维数表示合式公式中所出现的n个命题变元,同时它也是一个二进制加法器的模拟器,每当在这个模拟器中产生一个二进制数时,就相当于给各个命题变元产生了一组真值指派。算法逻辑如下:
return(1);
}
int shuangtiaojian(int P,int Q)
{
return(!P^Q);
}
int Pfaoding(int P)
{
return(!P);
}
int show()
{
cout<<"P Q R P∧Q P∧R┐P∧R (P∧Q)∨(┐P∧R)"<<endl;
for(int p=0;p<2;p++)
1、逻辑联接词的运算
从键盘输入两个命题变元P和Q的真值,输出它们的合取、析取、条件、双条件和P的否定的真值。
#include <iostream.h>
离散数学实验报告命题逻辑—构造命题公式的真值表
【实验目的】使学生熟练掌握利用计算机语言实现逻辑运算的基本方法。
【实验内容】对给出的任意一个命题公式(不超过四个命题变元),使学生会用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章命题逻辑命题符号化及联结词命题: 判断结果惟一的陈述句命题的真值: 判断的结果真值的取值: 真与假真命题: 真值为真的命题假命题: 真值为假的命题注意: 感叹句、祈使句、疑问句都不是命题,陈述句中的悖论以及判断结果不惟一确定的也不是命题。
简单命题(原子命题):简单陈述句构成的命题复合命题:由简单命题与联结词按一定规则复合而成的命题简单命题符号化用小写英文字母p, q, r, … ,p i,q i,r i (i≥1)表示简单命题用“1”表示真,用“0”表示假例如,令p:是有理数,则p 的真值为 0q:2 + 5 = 7,则q 的真值为 1联结词与复合命题1.否定式与否定联结词“”定义设p为命题,复合命题“非p”(或“p的否定”)称为p的否定式,记作p. 符号称作否定联结词,并规定p为真当且仅当p为假.2.合取式与合取联结词“∧”定义设p,q为二命题,复合命题“p并且q”(或“p与q”)称为p与q 的合取式,记作p∧q. ∧称作合取联结词,并规定 p∧q为真当且仅当p 与q同时为真注意:描述合取式的灵活性与多样性分清简单命题与复合命题例将下列命题符号化.(1) 王晓既用功又聪明.(2) 王晓不仅聪明,而且用功.(3) 王晓虽然聪明,但不用功.(4) 张辉与王丽都是三好生.(5) 张辉与王丽是同学.解令p:王晓用功,q:王晓聪明,则(1) p∧q(2) p∧q(3) p∧q.令r : 张辉是三好学生,s :王丽是三好学生(4) r∧s.(5) 令t : 张辉与王丽是同学,t 是简单命题 .说明:(1)~(4)说明描述合取式的灵活性与多样性.(5) 中“与”联结的是两个名词,整个句子是一个简单命题.3.析取式与析取联结词“∨”定义设p,q为二命题,复合命题“p或q”称作p与q的析取式,记作p∨q. ∨称作析取联结词,并规定p∨q为假当且仅当p与q同时为假.例将下列命题符号化(1) 2或4是素数.(2) 2或3是素数.(3) 4或6是素数.(4) 小元元只能拿一个苹果或一个梨.(5) 王晓红生于1975年或1976年.解令p:2是素数, q:3是素数, r:4是素数, s:6是素数,则 (1), (2), (3) 均为相容或.分别符号化为: p∨r , p∨q, r∨s,它们的真值分别为 1, 1, 0.而 (4), (5) 为排斥或.令t :小元元拿一个苹果,u:小元元拿一个梨,则 (4) 符号化为 (t∧u) ∨(t∧u).令v :王晓红生于1975年,w:王晓红生于1976年,则 (5) 既可符号化为 (v∧w)∨(v∧w), 又可符号化为v∨w , 为什么4.蕴涵式与蕴涵联结词“”定义设p,q为二命题,复合命题“如果p,则q” 称作p与q的蕴涵式,记作p q,并称p是蕴涵式的前件,q为蕴涵式的后件. 称作蕴涵联结词,并规定,p q为假当且仅当p 为真q 为假.p q 的逻辑关系:q 为p 的必要条件“如果p,则q ” 的不同表述法很多:若p,就q只要p,就qp 仅当q只有q 才p除非q, 才p 或除非q, 否则非p.当p 为假时,p q 为真常出现的错误:不分充分与必要条件5.等价式与等价联结词“”定义设p,q为二命题,复合命题“p当且仅当q”称作p与q的等价式,记作p q. 称作等价联结词.并规定p q为真当且仅当p与q同时为真或同时为假.说明:(1) p q 的逻辑关系:p与q互为充分必要条件(2) p q为真当且仅当p与q同真或同假联结词优先级:( ),, , , ,同级按从左到右的顺序进行以上给出了5个联结词:, , , , ,组成一个联结词集合{, , , , },联结词的优先顺序为:, , , , ; 如果出现的联结词同级,又无括号时,则按从左到右的顺序运算; 若遇有括号时,应该先进行括号中的运算.注意: 本书中使用的括号全为园括号.命题常项命题变项命题公式及分类命题变项与合式公式命题常项:简单命题命题变项:真值不确定的陈述句定义合式公式 (命题公式, 公式) 递归定义如下:(1) 单个命题常项或变项p,q,r,…,p i ,q i ,r i ,…,0,1是合式公式(2) 若A是合式公式,则 (A)也是合式公式(3) 若A, B是合式公式,则(A B), (A B), (A B), (A B)也是合式公式(4) 只有有限次地应用(1)~(3)形成的符号串才是合式公式说明: 元语言与对象语言, 外层括号可以省去合式公式的层次定义(1) 若公式A是单个的命题变项, 则称A为0层公式.(2) 称A是n+1(n≥0)层公式是指下面情况之一:(a) A=B, B是n层公式;(b) A=B C, 其中B,C分别为i层和j层公式,且n=max(i, j);(c) A=B C, 其中B,C的层次及n同(b);(d) A=B C, 其中B,C的层次及n同(b);(e) A=B C, 其中B,C的层次及n同(b).例如公式p 0层p 1层p q 2层(p q)r 3层((p q) r)(r s) 4层公式的赋值定义给公式A中的命题变项p1, p2, … , p n指定一组真值称为对A的一个赋值或解释成真赋值: 使公式为真的赋值成假赋值: 使公式为假的赋值说明:赋值=12…n之间不加标点符号,i=0或1.A中仅出现p1, p2, …, p n,给A赋值12…n是指p1=1, p2=2, …, p n=nA中仅出现p,q, r, …, 给A赋值123…是指p=1,q=2 , r= 3 …含n个变项的公式有2n个赋值.真值表真值表: 公式A在所有赋值下的取值情况列成的表例给出公式的真值表A= (q p) q p的真值表例 B = (p q) q的真值表例C= (p q) r的真值表命题的分类重言式矛盾式可满足式定义设A为一个命题公式(1) 若A无成假赋值,则称A为重言式(也称永真式)(2) 若A无成真赋值,则称A为矛盾式(也称永假式)(3) 若A不是矛盾式,则称A为可满足式注意:重言式是可满足式,但反之不真.上例中A为重言式,B为矛盾式,C为可满足式A= (q p)q p,B =(p q)q,C= (p q)r等值演算等值式定义若等价式A B是重言式,则称A与B等值,记作A B,并称A B是等值式说明:定义中,A,B,均为元语言符号, A或B中可能有哑元出现.例如,在 (p q) ((p q) (r r))中,r为左边公式的哑元.用真值表可验证两个公式是否等值请验证:p(q r) (p q) rp(q r) (p q) r基本等值式双重否定律 : 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零律: A11, A00同一律: A0A, A1A排中律: A A 1矛盾律: A A0等值演算:由已知的等值式推演出新的等值式的过程置换规则:若A B, 则(B)(A)等值演算的基础:(1) 等值关系的性质:自反、对称、传递(2) 基本的等值式(3) 置换规则应用举例——证明两个公式等值例1 证明p(q r) (p q)r证p(q r)p(q r) (蕴涵等值式,置换规则)(p q)r(结合律,置换规则)(p q)r(德摩根律,置换规则)(p q) r(蕴涵等值式,置换规则)说明:也可以从右边开始演算(请做一遍)因为每一步都用置换规则,故可不写出熟练后,基本等值式也可以不写出应用举例——证明两个公式不等值例2 证明: p(q r) (p q) r用等值演算不能直接证明两个公式不等值,证明两个公式不等值的基本思想是找到一个赋值使一个成真,另一个成假.方法一真值表法(自己证)方法二观察赋值法. 容易看出000, 010等是左边的的成真赋值,是右边的成假赋值.方法三用等值演算先化简两个公式,再观察.应用举例——判断公式类型例3 用等值演算法判断下列公式的类型(1) q(p q)解q(p q)q(p q) (蕴涵等值式)q(p q) (德摩根律)p(q q) (交换律,结合律)p0 (矛盾律)0 (零律)由最后一步可知,该式为矛盾式.(2) (p q)(q p)解 (p q)(q p)(p q)(q p) (蕴涵等值式)(p q)(p q) (交换律)1由最后一步可知,该式为重言式.问:最后一步为什么等值于1(3) ((p q)(p q))r)解 ((p q)(p q))r)(p(q q))r(分配律)p1r(排中律)p r(同一律)这不是矛盾式,也不是重言式,而是非重言式的可满足式.如101是它的成真赋值,000是它的成假赋值.总结:A为矛盾式当且仅当A0A为重言式当且仅当A 1说明:演算步骤不惟一,应尽量使演算短些对偶与范式对偶式与对偶原理定义在仅含有联结词, ∧,∨的命题公式A中,将∨换成∧, ∧换成∨,若A中含有0或1,就将0换成1,1换成0,所得命题公式称为A的对偶式,记为A*.从定义不难看出,(A*)* 还原成A定理设A和A*互为对偶式,p1,p2,…,p n是出现在A和A*中的全部命题变项,将A和A*写成n元函数形式,则 (1) A(p1,p2,…,p n) A* (p1, p2,…, p n)(2) A(p1, p2,…, p n) A* (p1,p2,…,p n)定理(对偶原理)设A,B为两个命题公式,若A B,则A* B*.析取范式与合取范式文字:命题变项及其否定的总称简单析取式:有限个文字构成的析取式如p, q, p q, p q r, …简单合取式:有限个文字构成的合取式如p, q, p q, p q r, …析取范式:由有限个简单合取式组成的析取式A 1A2Ar, 其中A1,A2,,A r是简单合取式合取范式:由有限个简单析取式组成的合取式A 1A2Ar, 其中A1,A2,,A r是简单析取式范式:析取范式与合取范式的总称公式A的析取范式: 与A等值的析取范式公式A的合取范式: 与A等值的合取范式说明:单个文字既是简单析取式,又是简单合取式p q r, p q r既是析取范式,又是合取范式(为什么)命题公式的范式定理任何命题公式都存在着与之等值的析取范式与合取范式.求公式A的范式的步骤:(1) 消去A中的, (若存在)(2) 否定联结词的内移或消去(3) 使用分配律对分配(析取范式)对分配(合取范式)公式的范式存在,但不惟一求公式的范式举例例求下列公式的析取范式与合取范式(1) A=(p q)r解 (p q)r(p q)r(消去)p q r(结合律)这既是A的析取范式(由3个简单合取式组成的析取式),又是A的合取范式(由一个简单析取式组成的合取式)(2) B=(p q)r解 (p q)r(p q)r(消去第一个)(p q)r(消去第二个)(p q)r(否定号内移——德摩根律)这一步已为析取范式(两个简单合取式构成)继续: (p q)r(p r)(q r) (对分配律)这一步得到合取范式(由两个简单析取式构成)极小项与极大项定义在含有n个命题变项的简单合取式(简单析取式)中,若每个命题变项均以文字的形式在其中出现且仅出现一次,而且第i(1i n)个文字出现在左起第i位上,称这样的简单合取式(简单析取式)为极小项(极大项).说明:n个命题变项产生2n个极小项和2n个极大项2n个极小项(极大项)均互不等值用m i表示第i个极小项,其中i是该极小项成真赋值的十进制表示. 用M i表示第i个极大项,其中i是该极大项成假赋值的十进制表示, m i(M i)称为极小项(极大项)的名称.m与M i的关系: m i M i , M i m ii主析取范式与主合取范式主析取范式: 由极小项构成的析取范式主合取范式: 由极大项构成的合取范式例如,n=3, 命题变项为p, q, r时,(p q r)(p q r) m1m3是主析取范式(p q r)(p q r) M1M5 是主合取范式A的主析取范式: 与A等值的主析取范式A的主合取范式: 与A等值的主合取范式.定理任何命题公式都存在着与之等值的主析取范式和主合取范式, 并且是惟一的.用等值演算法求公式的主范式的步骤:(1) 先求析取范式(合取范式)(2) 将不是极小项(极大项)的简单合取式(简单析取式)化成与之等值的若干个极小项的析取(极大项的合取),需要利用同一律(零律)、排中律(矛盾律)、分配律、幂等律等.(3) 极小项(极大项)用名称m i(M i)表示,并按角标从小到大顺序排序.求公式的主范式例求公式A=(p q)r的主析取范式与主合取范式.(1) 求主析取范式(p q)r(p q)r , (析取范式)① (p q)(p q)(r r)(p q r)(p q r)m 6m7,r(p p)(q q)r(p q r)(p q r)(p q r)(p q r)m 1m3m5m7③②, ③代入①并排序,得(p q)r m1m3m5m6m7(主析取范式)(2) 求A的主合取范式(p q)r(p r)(q r) , (合取范式)①p rp(q q)r(p q r)(p q r)M 0M2,②q r(p p)q r(p q r)(p q r)M 0M4③②, ③代入①并排序,得(p q)r M0M2M4 (主合取范式)主范式的用途——与真值表相同(1) 求公式的成真赋值和成假赋值例如 (p q)r m1m3m5m6m7,其成真赋值为001, 011, 101, 110, 111,其余的赋值 000, 010, 100为成假赋值.类似地,由主合取范式也可立即求出成假赋值和成真赋值.(2) 判断公式的类型设A含n个命题变项,则A为重言式A的主析取范式含2n个极小项A的主合取范式为1.A为矛盾式A的主析取范式为0A的主合取范式含2n个极大项A为非重言式的可满足式A的主析取范式中至少含一个且不含全部极小项A的主合取范式中至少含一个且不含全部极大项例某公司要从赵、钱、孙、李、周五名新毕业的大学生中选派一些人出国学习. 选派必须满足以下条件:(1)若赵去,钱也去;(2)李、周两人中至少有一人去;(3)钱、孙两人中有一人去且仅去一人;(4)孙、李两人同去或同不去;(5)若周去,则赵、钱也去.试用主析取范式法分析该公司如何选派他们出国解此类问题的步骤为:①将简单命题符号化②写出各复合命题③写出由②中复合命题组成的合取式④求③中所得公式的主析取范式解①设p:派赵去,q:派钱去,r:派孙去,s:派李去,u:派周去.② (1) (p q)(2) (s u)(3) ((q r)(q r))(4) ((r s)(r s))(5) (u(p q))③ (1) ~ (5)构成的合取式为A=(p q)(s u)((q r)(q r))((r s)(r s))(u(p q))④ A (p q r s u)(p q r s u) 结论:由④可知,A的成真赋值为00110与11001,因而派孙、李去(赵、钱、周不去)或派赵、钱、周去(孙、李不去).A的演算过程如下:A (p q)((q r)(q r))(s u)(u(p q)) ((r s)(r s)) (交换律) B1= (p q)((q r)(q r))((p q r)(p q r)(q r)) (分配律)B2= (s u)(u(p q))((s u)(p q s)(p q u)) (分配律)B 1B2(p q r s u)(p q r s u) (q r s u)(p q r s)(p q r u)再令B3 = ((r s)(r s))得A B1B2B3(p q r s u)(p q r s u) 注意:在以上演算中多次用矛盾律要求:自己演算一遍推理理论推理的形式结构推理的形式结构—问题的引入推理举例:(1) 正项级数收敛当且仅当部分和有上界.(2) 若推理: 从前提出发推出结论的思维过程上面(1)是正确的推理,而(2)是错误的推理.证明: 描述推理正确的过程.判断推理是否正确的方法•真值表法•等值演算法判断推理是否正确•主析取范式法•构造证明法证明推理正确说明:当命题变项比较少时,用前3个方法比较方便, 此时采用形式结构“” . 而在构造证明时,采用“前提: , 结论: B”.推理定律与推理规则推理定律——重言蕴涵式构造证明——直接证明法例构造下面推理的证明:若明天是星期一或星期三,我就有课. 若有课,今天必备课. 我今天下午没备课. 所以,明天不是星期一和星期三.解设p:明天是星期一,q:明天是星期三,r:我有课,s:我备课推理的形式结构为例构造下面推理的证明:2是素数或合数. 若2是素数,则是无理数.若是无理数,则4不是素数. 所以,如果4是素数,则2是合数.用附加前提证明法构造证明解设p:2是素数,q:2是合数,r:是无理数,s:4是素数推理的形式结构前提:p∨q, p r, r s结论:s q证明① s附加前提引入②p r前提引入③r s前提引入④p s②③假言三段论⑤p①④拒取式⑥p∨q前提引入⑦q⑤⑥析取三段论请用直接证明法证明之。
离散数学真值表的计算
离散数学真值表的计算⼤⼀菜鸡肝了近两个⼩时的成果,⽤于计算真值表;拿来⽔⼀篇博客(并不);代码中⽐较重要的两部分是原式向后缀式的转换,遍历所有原⼦命题的可能取值;具体的细节看代码吧,尽量添加了注释;#include<bits/stdc++.h>using namespace std;const int maxn = 105;const int maxstr = 1e5 + 10;char s[maxstr],str[maxstr],Vstr[maxn];//依次为原式,后缀式,存放原⼦命题的符号bool var[maxn];//不同原⼦命题的真值map<char,int>v;//储存原⼦命题对应的编号void Print_true(bool b){//打印bool对应的真值符号if(b) printf("T\t");else printf("F\t");}int Priority(char c){//返回运算符的优先级int p;switch (c) {case '!': p = 5; break;case '&': p = 4; break;case '|': p = 3; break;case '-': p = 2; break;case '=': p = 1; break;default : p = 0; break;}return p;}bool ToPostfix(){//原式转化为后缀表达式int cnt = 0;int len = strlen(s);stack<char>ope;for(int i=0; i<len; i++){if(s[i] == '('){ope.push(s[i]);}else if(s[i] == ')'){if(ope.empty()) return false;while(ope.top() != '('){str[cnt++] = ope.top();ope.pop();if(ope.empty()) return false;}ope.pop();}else if(Priority(s[i]) == 0){str[cnt++] = s[i];}else {if(ope.empty()){ope.push(s[i]);}else {if(Priority(s[i]) > Priority(ope.top())){ope.push(s[i]);}else{while(!ope.empty() && ope.top() != '(' && Priority(s[i]) <= Priority(ope.top())) {str[cnt++] = ope.top();ope.pop();}ope.push(s[i]);}}}}while(!ope.empty()){str[cnt++] = ope.top();ope.pop();}str[cnt] = 0;return true;}bool Calculate(bool a, bool b, char ope){//进⾏真值的运算bool ans;if(ope == '&'){if(a == true && b == true) ans = true;else ans = false;}else if(ope == '|'){if(a == true || b == true) ans = true;else ans = false;}else if(ope == '-'){if(a == true && b == false) ans = false;else ans = true;}else if(ope == '='){if(a == b) ans = true;else ans = false;}return ans;}void init_var(int n, int sum){//对var数组初始化while(sum>0){bool x = sum%2;var[n--] = x;sum /= 2;}do{var[n--] = false;}while(n > 0);}bool Result(){//对后缀式进⾏计算stack<bool>res;int len = strlen(str);for(int i=0; i<len; i++){if(str[i] == '!'){if(res.empty()){printf("计算出现异常!\n");}else {bool f = res.top();// printf("text = %d\n",f);res.pop();res.push(!f);}}else if(Priority(str[i])){bool a,b;if(res.empty()) printf("计算出现异常!\n");else {b = res.top();res.pop();}if(res.empty()) printf("计算出现异常!\n");else {a = res.top();res.pop();}bool ans = Calculate(a, b, str[i]);res.push(ans);}else {res.push(var[v[str[i]]]);}}return res.top();}void Print_Out(){//打印提⽰语printf("您好,欢迎使⽤离散数学真值表计算V1.2版本。
命题公式真值表
1-4 真值表与等价公式
1.真值表
定义1-4.1 在命题公式中,对于分量指派真值的各种可能 组合,就确定了这个命题公式的各种真值情况,把它汇列成 表,就是命题公式的真值表.
例 2 构造下列命题公式的真值表: (1) P Q ; (3) ( P Q) P ; (5) ( P Q) (P Q) . (2) P Q ; (4) ( P Q) (P Q) ;
3.等价公式
定 义 1-4.2 给 定 两 个 命 题 公 式 A 和 B , 设
A 、 B 中的原子变元 , 如果给 P 1,P 2 ,… , P n 为出现于 A 与 B 的真值都相同, P 1,P 2 ,…, P n 任一组真值指派 ,
则称 A 和 B 是等价的(或逻辑相等),记作 A B .
1-4 真值表与等价公式
例 3 证明: P Q ( P Q) (Q P)
4.基本等价公式
对合律
(双否定)
P P
交换律
结合律
P Q Q P, P Q Q P
P (Q R) ( P Q) R , P (Q R) ( P Q) R P (Q R) ( P Q) ( P R) ,
1-3 命题公式与翻译
2、命题的翻译
练习 将下列命题符号化: (1)她既聪明又用功. (2)他虽聪明但不用功. (3)虽然这次语文考试的题目很难,但是王丽还是取得了好成绩. (4)张三或李四都可以做这件事. (5)一公安人员审查一起案件,事实如下,请将案件事实符 号化: 张三或李四盗窃了机房的一台电脑,若是张三所为,则作案 时间不能发生在午夜前;若李四的证词正确,则午夜时机房 的灯未灭; 若李四证词不正确,则作案时间发在午夜前; 午夜时机房的灯全灭了.
离散数学-1-4 真值表与等价公式
5
二、命题公式分量指派
不难看出,含n(n≥1)个命题变元的公式共 有2n个不同的指派(赋值)。 下面的问题是,指定P,Q,R的真值为何值 时,(P∨Q)→R的真值为1;指定P,Q,R的 真值为何值时,(P∨Q)→R的真值为0。 为看清命题公式在各种指派下的取值情况, 通常构造下面的“真值表”。
6
三、真值表
25
六、等值演算
例2.4 证明:(P→Q)→R P→(Q→R) 证 方法一:真值表法,可自己证明。 方法二 :设A=(P→Q)→R,B=P→(Q→R)
先将A,B通过等值演算化成容易观察真值的情况,再进行判断。
A=(P→Q)→R (┐P∨Q)→R (蕴涵等值式) ┐(┐P∨Q)∨R (蕴涵等值式) (P∧┐Q)∨R (德摩根律) B=P→(Q→R) ┐P∨(┐Q∨R) (蕴涵等值式) ┐P∨┐Q∨R (结合律) 容易观察到,000,010是A的成假赋值,而它们是 B的成真赋值
17
六、等值演算
虽然用真值法可以判断任何两个命题公式 是否等值,但当命题变元较多时,工作量 是很大的。可以先用真值表验证一组基本 的又是重要的等价公式,以它们为基础进 行公式之间的演算,来判断公式之间的是 否等值。下面给出 15 组(共 24 个)重要的 等值式,希望同学们牢牢记住它们。在下 面公式中出现的P,Q,R仍然是元语言符号, 它们代表任意的命题公式。P15 表1-4.8
7
三、真值表
(2) 按从低到高的顺序写出公式的各个层次。 (3) 对应各个赋值计算出各层次的真值,直到最后计 算出公式的真值。 例 求下列公式的真值表,并求成真赋值和成假赋 值。 (1)(┐P∧Q)→┐R (2)(P∧┐P)(Q∧┐Q)
(3) ┐(P→Q)∧Q∧R
离散数学复习资料
离散数学复习资料第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等值。
离散数学-命题演算
Lu Chaojun, SJTU
19
方法一
• 从每个使为真的解释写出一个各命题变
元的合取式;然后写出各合取式的析取式.
例:有三个成真解释.
P
Q
由(P,Q)=(F,F)可写出合取式: F
F
T
P Q
F
T
T
T
F
F
由(P,Q)=(F,T)可写出合取式: T
T
T
P Q
由(P,Q)=(T,T)可写出合取式:P Q
– 例如: PQ = P Q
这两个公式语法上是不同的,但语义上相同(即有 相同意义).
Lu Chaojun, SJTU
3
如何证明两公式等值?
• 真值表法 • 利用等值定理 • 利用基本等值式进行推导
Lu Chaojun, SJTU
4
例:利用真值表证明等值
证明(PP)Q = Q. 证:列出真值表即可看出等式成立.
于是得到: (PQ) (PQ) (PQ)
Lu Chaojun, SJTU
20
方法二
• 从每个使为假的解释写出一个各命题变
元的析取式;然后写出各析取式的合取式.
例:有两个成假解释.
P
Q
由(P,Q)=(T,F)可写出析取式: F
F
T
P Q
F
T
T
T
F
F
由(P,Q)=(T,T)可写出析取式: T
T
F
13. PQ = PQ 14. PQ = (PQ)(PQ) [同真或同假] 15. PQ = (PQ)(PQ) [一真一假]
Lu Chaojun, SJTU
15
其他常用等值式(续)
16. PQ = (PQ) (QP) [充分必要] 17. P(QR) = Q(PR) [交换前提] 18. (PR)(QR) = (P Q)R [析取前提] 补充: 19. P(QR) = (PQ) (PR) 20. P(QR) = (PQ) (PR) 21. (PQ)R = (PR) (QR) 22. (PQ)R = (PR) (QR)
离散数学第1章命题公式与翻译 真值表与等价公式
这个合式公式的定义,是以递归形式给出的,其 中(1)称为基础,(2)(3)称为归纳,(4)称为界限。
按照定义,下列公式都是合式公式: ┐(P∧Q),┐(P→Q),(P→(P∨┐Q), (((P→Q)∧(Q→R)) (S T)) 而 (P→Q)→(∧Q),(P→Q,(P∧Q)→Q) 等都不是合式公式。
在这里,请注意和的区别与联系: 区别:
是逻辑联结词,它出现在命题公式中;
不是逻辑联结词,它表示两个命题公式的一种
关系,不属于这两个公式的任何一个公式中的符 号。
2、等价公式的证明方法: ⑴真值表法
例题5 证明 P Q (P→Q) ∧(Q→P) 证明 列出其值表 表 1-4.7
注意
由表1-4.4 (表1-4.2)可以看出,有一类公式不论命 题变元作何种指派,其真值永为真(假),我们把这 类公式记为T(F)。 在真值表中,命题公式真值的取值数目,决定于 分量(命题变元)的个数。例如,由2个命题变元 组成的命题公式共有四种可能的真值,由3个命题 变元组成的命题公式共有八种真值。一般说来,n 个命题变元组成的命题公式共有2n种真值情况。
同理(P∧Q)∨(┐P∧┐Q)与P 同,如表1-4.6所示。 表1-4.6 P Q P T T T F F T F F T F F T Q
Q对应的真值相
(P∧Q)∨(┐P∧┐Q) T F F T
二、等价公式
1.定义
定义1-4.2 给定两个命题公式A和B,设P1, P2,……,Pn为所有出现于A和B中的原子变 元,若给P1,P2,……,Pn任一组真值指派, A和B的真值都相同,则称A和B是等价的或逻 辑相等。记作A B。
P T T F F
命题公式及真值表
离散结构命题公式及真值表教学目标基本要求(1)会判断命题公式及其层次;(2)真值表;(3)公式类型;重点难点真值表的应用。
命题中的符号命题中的符号:(1) 命题常元:真值唯一确定。
例如:T、F(2) 命题变元:真值可变化。
例如:P、Q、R(3) 联接词:优先级按¬, ∧, ∨, →, ↔递减(4) 辅助符号如括号()。
命题中的符号任意组成的符号串是否都有意义?例:(∧p ¬q) pq →(思考:按什么规律组成的符号串才有意义?合式公式合式公式:合法的命题公式。
(简称公式)(1)命题常元或变元是合式公式(2)若A, B是合式公式,(¬A),(A∧B),(A∨B),(A→B),(A↔B)也是合式公式(3)只有有限次地应用(1)、(2)形成的符号串才是合式公式注意这个定义是递归的。
(1)是递归的基础,由(1)开始,使用规则(2),可以得到任意的合式公式。
公式简写的约定1) 最外层括号可以省略;2) 省略括号后, 运算顺序与联结词的优先级一致,则可以省略;3) 相同联结词按从左到右的顺序计算,则可以省略。
公式的层次定义:(1)若公式A 是单个的命题变项,则称A 为0层公式。
(3)若公式的层次为k ,则称A 是k 层公式。
(2)若有下面情况之一的,称A 为n+1层公式:A 是¬B ,B ∧C ,B ∨C ,B→C ,B↔C ,其中B 、C 分别是i 层、j 层公式,且n=max(i,j); 例:((¬p ∧q)∨(p ∧ ¬q))→r1层 2层 3层 4层公式的解释命题公式代表一个命题,但只有当公式中的每一个命题变元都用一个确定的命题代入时,命题公式才有确定值,成为命题。
解释(I):给公式A( P1,P2,…,Pn )中的命题变元P1,P2,…,Pn指定一组真值称为对A的一个解释(赋值)。
成真赋值: 使公式为真的赋值。
成假赋值: 使公式为假的赋值。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
离散逻辑学实验
班级:10电信实验班学号:Q 姓名:王彬彬
一、实验目的
熟悉掌握命题逻辑中的联接词、真值表、主范式等,进一步能用它们来解决实际问题。
二、实验内容
1. 从键盘输入两个命题变元P和Q的真值,求它们的合取、析取、条件和双条件的真值。
(A)
2. 求任意一个命题公式的真值表(B,并根据真值表求主范式(C))
三、实验环境
C或C++语言编程环境实现。
四、实验原理和实现过程(算法描述)
1.实验原理
(1)合取:二元命题联结词。
将两个命题P、Q联结起来,构成一个新的命题P∧Q, 读作P、Q的合取, 也可读作P与Q。
这个新命题的真值与构成它的命题P、Q的真值间的关系为只有当两个命题变项P = T, Q = T时方可P∧Q =T, 而P、Q只要有一为F则P∧Q = F。
这样看来,P∧Q可用来表示日常用语P与Q, 或P并且Q。
(2)析取:二元命题联结词。
将两个命题P、Q联结起来,构成一个新的命题P∨Q, 读作P、Q的析取, 也可读作P或Q。
这个新命题的真值与构成它的命题P、Q的真值间的关系为只有当两个命题变项P = F, Q = F时方可P∨Q =F, 而P、Q只要有一为T则P∨Q = T。
这样看来,P∨Q可用来表示日常用语P或者Q。
(3)条件:二元命题联结词。
将两个命题P、Q联结起来,构成一个新的命题P→Q, 读作P条件Q, 也可读作如果P,那么Q。
这个新命题的真值与构成它的命题P、Q的真值间的关系为只有当两个命题变项P = T, Q = F时方可P→Q =F,
其余均为T。
(4)双条件:二元命题联结词。
将两个命题P、Q联结起来,构成一个新的命题P←→Q, 读作P双条件于Q。
这个新命题的真值与构成它的命题P、Q的真值间的关系为当两个命题变项P = T, Q =T时方可P←→Q =T, 其余均为F。
(5)真值表:表征逻辑事件输入和输出之间全部可能状态的表格。
列出命题公式真假值的表。
通常以1表示真,0 表示假。
命题公式的取值由组成命题公式的命题变元的取值和命题联结词决定,命题联结词的真值表给出了真假值的算法。
真值表是在逻辑中使用的一类数学表,用来确定一个表达式是否为真或有效。
(6)主范式:
主析取范式:在含有n个命题变元的简单合取式中,若每个命题变元与其否定不同时存在,而两者之一出现一次且仅出现一次,称该简单合取式为小项。
由若干个不同的小项组成的析取式称为主析取范式;与A等价的主析取范式称为A的主析取范式。
任意含n个命题变元的非永假命题公式A都存在与其等价的主析取范式,并且是惟一的。
主合取范式:在含有n个命题变元的简单析取式中,若每个命题变元与其否定不同时存在,而两者之一出现一次且仅出现一次,称该简单析取式为大项。
由若干个不同的大项组成的合取式称为主合取范式;与A等价的主合取范式称为A的主合取范式。
任意含n个命题变元的非永真命题公式A都存在与其等价的主合取范式,并且是惟一的。
五、代码设计结果:
六、代码:
#include <>
#include <>
#include <>
#include ""
#include ""
#define N 50
void panduan(int b[N],int f);取命题公式的真值表,主合取和主析取\n\n");
zhumain();
printf("\n 2.求取合取析取等真值\n\n");
sel();
return 0;
}
七、实验心得:
从这次实验中了解到如何通过程序,把字符串的逻辑公式,实现运算的功能。
这是关键,同时对括号等的处理,这也很重要。