构造任意合式公式的真值表

合集下载

命题公式及其真值表

命题公式及其真值表

第二节 命题公式及其真值表在上节中,用,,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-3、4翻译、真值表

1-3、4翻译、真值表

(4)除非你陪我或替我叫车,否则我不去。 除非你陪我或替我叫车,否则我不去。 除非你陪我或替我叫车 (5)如果下班早,就去商店看看,除非我很累。 如果下班早, 如果下班早 就去商店看看,除非我很累。 解 (4)设 P:你陪我。 Q:你替我叫车。 R:我去。 设 :你陪我。 :你替我叫车。 :我去。 则命题符号化为: 则命题符号化为: R →( P ∨ Q) ( ) 或┐( P ∨ Q ) → ┐ R (5)设 P:我下班早。 Q:我去商店看看。R:我很 设 :我下班早。 :我去商店看看。 : 累。 则命题符号化为: 则命题符号化为: ( P ∧ ┐R ) → Q 或 ┐R → ( P → Q )
这个合式公式的定义,是以递归形式给出的,其中 称为 这个合式公式的定义,是以递归形式给出的,其中(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 ) ) ∧ , , ∧ 等都不是合式公式。 等都不是合式公式。
二、翻译(符号化) 翻译(符号化)
有了联结词的合式公式概念, 有了联结词的合式公式概念,我们可以把自然语言中的有 些语句,翻译成数理逻辑中的符号形式。 些语句,翻译成数理逻辑中的符号形式。 把一个用文字叙述的命题相应地写成由命题标识符、 把一个用文字叙述的命题相应地写成由命题标识符、联结 词和圆括号表示的合式公式,称为命题的符号化 命题的符号化。 词和圆括号表示的合式公式,称为命题的符号化。 符号化应该注意下列事项: 确定给定句子是否为命题。 符号化应该注意下列事项:① 确定给定句子是否为命题。 句子中联结词是否为命题联结词。 ② 句子中联结词是否为命题联结词。③ 要正确地表示原子命 题和适当选择命题联结词。 题和适当选择命题联结词。

命题、联结词、命题公式与真值表

命题、联结词、命题公式与真值表
命题、联结词、命题公式与真值表
1、一些基本概念 逻辑、命题、真值
2、联结词 3、命题公式 4、真值表
问题?
一、命题的定义
命题P——不关心其具体涵义,只关心其值的 真值
命题变元——定义域:真、假 命题常元——T和F 命题公式(也称命题,合式公式)——含命题变元
的断言,由以下规则生成: (1)单个原子公式是命题。 (2)若A、B是命题公式,┐A、A∧B、A∨B、
pq
qp (qp) q (qp) qp
00
1
0
1
01
0
0
1
10
1
0
1
11
Hale Waihona Puke 111回顾一下:五个联结词真值表
否定
等价(双条件)
合取
析取
蕴涵(条件)
几个相关概念
1、合式公式的层次:
0层
1层
2层
3层
pq
qp (qp) q (qp) qp
00
1
0
1
01
0
0
1
10
1
0
1
11
1
1
1
几个相关概念
A(BC) (D E)
1 01
10
p
2、什么情况下,下面论述为真:
q
说小王不会唱歌或小李不会跳舞是正确的,而
说如果小王会唱歌,小李会跳舞是不正确的。
(p q) (pq)
综合问题1
Key:
A→B、AB也是命题公式。 (3) 有限步应用条款(1)(2)生成的公式。
例:下列符号串都是命题公式
下列符号串是否为命题公式?
命题、联结词、命题公式与真值表

命题公式真值表

命题公式真值表

说明:
(1)命题变元是没有真假值的,只有当命题变元用 确定的命题代入时,才得到一个命题,命题的真值 依赖于代换变元的那些命题的真值;
1-3 命题公式与翻译
(2) 不是所有由命题变元 ,常元 ,联结词和括号组成的字符串 都能成为命题公式.例如, P , P (Q ) 等不是命题公式.
定义 1-3.1 命题演算的合式公式,规定为: (1)单个命题变元本身是一个合式公式; (2)如果 A 是合式公式,那么 A 是合式公式; (3)如果 A 和 B 是合式公式,那么
1-3 命题公式与翻译
2、命题的翻译
练习 将下列命题符号化: (1)她既聪明又用功. (2)他虽聪明但不用功. (3)虽然这次语文考试的题目很难,但是王丽还是取得了好成绩. (4)张三或李四都可以做这件事. (5)一公安人员审查一起案件,事实如下,请将案件事实符 号化: 张三或李四盗窃了机房的一台电脑,若是张三所为,则作案 时间不能发生在午夜前;若李四的证词正确,则午夜时机房 的灯未灭; 若李四证词不正确,则作案时间发在午夜前; 午夜时机房的灯全灭了.
分配律
P (Q R) ( P Q) ( P R)
吸收律
P ( P Q) P , P ( P Q) P
1-4 真值表与等价公式
4.基本等价公式
德·摩根律 同一律 零律 否定律 (互补律) 条件式转化律 双条件转化律
( P Q) P Q , ( P Q) P Q
1-3 命题公式与翻译
1、命题公式(合式公式)
定义 1 由命题变元、常元、联结词、括号以规定的格式联结 起来的字符串称为命题公式,也称合式公式.命题公式中的命 题变元称为命题公式的分量.
例如,若 P 和 Q 是命题变元, 则下面式子均是命题公式

用真值表法判断命题公式

用真值表法判断命题公式

用真值表法判断命题公式命题公式是数理逻辑中的一个重要概念。

在推理和证明中,判断一个命题公式的真假性是非常重要的。

其中,真值表法是一种常用的方法。

本文将介绍真值表法的基本原理和应用。

一、命题公式的基本概念命题是一个陈述句,它要么是真的,要么是假的。

例如,“今天下雨了”、“1+1=2”、“苹果是红色的”等都是命题。

在数理逻辑中,命题通常用字母p、q、r等来表示。

命题公式是由命题符号和逻辑符号组成的符号串。

命题符号表示命题,逻辑符号表示命题之间的关系。

逻辑符号包括非()、合取(∧)、析取(∨)、条件(→)、双条件()等。

例如,p∧q表示p和q都为真时,整个命题为真。

二、真值表法的基本原理真值表法是用来判断命题公式真假性的一种方法。

它的基本原理是列出所有可能的命题符号取值组合,并按照逻辑符号的运算规则计算出整个命题的真值。

真值表的每一行对应一个命题符号取值组合,最后一列为整个命题的真值。

例如,对于命题公式p∨q,可以列出如下的真值表:p q p∨q----------------T T TT F TF T TF F F其中,T表示真,F表示假。

在该真值表中,第一列和第二列分别代表p和q的取值,第三列代表整个命题的真值。

在第一行中,p 和q都为真,所以整个命题为真。

三、真值表法的应用真值表法可以用来判断任意命题公式的真假性。

下面以两个例子来说明其应用。

例一:判断(p→q)∧(q→p)是否为重言式。

首先,列出该命题公式的真值表:p q p q p→q q→p (p→q)∧(q→p)--------------------------------------------------------T T F F T T TT F F T F F FF T T F T T TF F T T T T T在该真值表中,最后一列的值都为真。

因此,该命题公式是重言式。

例二:判断(p∨q)→(p∧q)是否为永假式。

首先,列出该命题公式的真值表:p q p∨q p∧q (p∨q)→(p∧q)------------------------------------T T T T TT F T F FF T T F FF F F F T在该真值表中,最后一列的值都不为假。

利用真值表法求取主析取范式以及主合取范式的实现

利用真值表法求取主析取范式以及主合取范式的实现

#include "stdio.h"#include "stdlib.h"#include "string.h"#include "math.h"#define N 50void pd(int b[N],int f);int H1 (char T1[N], char T2[N], int T3[N], int y);int H2 (char T1[N], char T2[N], int T3[N], int y);int main(){int i1,i2,d=1,T3[N],kh=0,jg,j=0,y;int w=0,hequ[N],h=0,x=0,xiqu[N];char T1[N],T2[N],T10[N],s;hequ[0]=-1;xiqu[0]=-1;printf("#########################################\n"); printf("## 用!表示否定 ##\n");printf("## 用&表示合取 ##\n");printf("## 用|表示析取 ##\n");printf("## 用^表示条件 ##\n");printf("## 用~表示双条件 ##\n");printf("#########################################\n\n"); printf("请输入一个合法的命题公式:\n");gets(T1);strcpy(T10,T1);for(i1=0;i1<strlen(T1);i1++){if(T1[i1]==')' || T1[i1]=='(')kh++;if(T1[i1]>='a' && T1[i1]<='z' || T1[i1]>='A' && T1[i1]<='Z') {for(i2=0;i2<j;i2++)if(T2[i2]==T1[i1])d=0;if(d==1){T2[j]=T1[i1];j++;}d=1;}}1printf("\n输出真值表如下:\n \n");for(i1=0;i1<y;i1++)printf(" %c ",T2[i1]);printf(" ");puts(T1);printf("\n");for(i1=0;i1<j;i1++)T3[i1]=0;for(i2=0;i2<j;i2++)printf(" %d ",T3[i2]);jg=H1(T1,T2,T3,y);if(jg==0)hequ[h++]=w;elsexiqu[x++]=w;printf(" %d\n",jg);strcpy(T1,T10);for(i1=0;i1<(int)pow(2,j)-1;i1++) {++w;pd(T3,j-1);jg=H1(T1,T2,T3,y);if(jg==0)hequ[h++]=w;elsexiqu[x++]=w;strcpy(T1,T10);for(i2=0;i2<j;i2++)printf(" %d ",T3[i2]);printf(" %d\n",jg);}if(hequ[0]==-1)printf("\n该命题公式不存在主合取范式。

命题及其符号化

命题及其符号化

11.1 命题及其符号化[教学重点] 命题的概念和六个联结词的定义[教学目的]1:使学生了解逻辑的框架,命题逻辑的基本要素是命题。

2:通过示例理解命题的概念。

3:通过示例理解合取、析取、异或、蕴涵、等价的含义,了解逻辑语言的精确性,为学习逻辑学打好基础。

4:学会命题符号化的方法。

[教学准备][教学方法]讲述法[课时安排]二课时。

[教学过程]讲述:逻辑是解决推理方法的学科,中心是推理,基本要素是命题,称为命题逻辑。

数理逻辑则是用数学方法研究推理;首先要理解命题是什么,然后了解怎样用数学方法描述命题,甚至逻辑推理。

后者式命题符号化的问题。

板书:第一章命题基本概念1.1 命题及其符号化讲述:首先讨论命题。

板书:一命题A) 概念:在二值逻辑中,命题是或真或假,而不会同时又真又假的陈述句。

判断要点:a 陈述句;b 或真或假,唯一真值;讲述:例:(1)地球是圆的;真的陈述句,是命题(2)2+3=5;真的陈述句,是命题(3)你知道命题逻辑吗?非陈述句,故非命题(4)3-x=5;陈述句,但真假随x的变化而变化,非命题(5)请安静!非陈述句,故非命题(6)火星表面的温度是800 C;现时不知真假的陈述句,但只能要么真要么假,故是命题(7)明天是晴天;尽管要到第二天才能得知其真假,但的确是要么真要么假,故是命题2(8) 我正在说谎;无法得知其真假,这是悖论注意到(4)不是命题,后续章节中会提到,这被称为谓词,命题函数或命题变项。

讲述:类似一般的事物,也有不同的命题,分成不同的类型。

板书:B) 分类:a 简单命题,通常用p,q,r,…,等表示命题变项,命题常项用1(T),0(F)表示;b 复合命题,由简单命题和联结词构成;讲述:简单命题可以简单地用单个字母表示,但复合命题还包含了联结词,多个命题变项由联结词联结起来成为复合命题。

所以还需要考虑联结词的问题。

板书:二逻辑联结词讲述:首先最为简单的一种情况,就是日常语言中所说的“不”,这是对原有意思的的否定,所以称为否定式板书:1)否定式和否定联结词:命题p⌝p;符号⌝即为否定联结词。

离散数学右箭头真值表

离散数学右箭头真值表

离散数学右箭头真值表
一、合式公式
原子命题:不可再分的命题,即不包含任何逻辑联结词的命题命题变元:公式中没有确定真值的变量,其真值只能在 0,1 两者中选择
合式公式(递归定义法):
①真值 1 和 0 是合式公式;
②原子命题公式是一个合式公式;
③如果 A 是合式的公式,那么¬A是合式公式;
④如果 A 和 B 均是合式的公式,那么A∧B,A∨B,A→B,A↔B 都是合式公式;
⑤当且仅当有限次地应用①至④条规则由逻辑联结词、圆括号所组成的有意义的符号串是合式的公式。

我们把合式的公式简称为命题公式。

一般一个命题公式的真值是不确定的,只有用确定的命题去取代命题公式中的命题变元,或对其中的命题变元进行真值指派时,命题公式才成为具有确定真值的命题。

二、真值表
设 A 为一命题公式,对其中出现的命题变元做所有可能的每一组真值指派S,连同公式 A 相应S(A) 的取值汇列成表,称为 A 的真值表。

一个真值表由两部分构成:
①表的左半部分列出公式的每一种解释;
②表的右半部分给出相应每种解释公式得到的真值。

为构造的真值表方便和一致,有如下约定:
(1)命题变元按字典序排列。

(2)对公式的每种解释,以二进制数从小到大或者从大到小顺序排列。

(3)若公式复杂,可先列出各子公式的真值(若有括号从里层向外展开),最后列出所给公式的真值。

1-4真值表与等价公式

1-4真值表与等价公式

第一章 数理逻辑 1-4 真值表与等价公式
10
2、等价公式-证明(真值表法)
例题 5 证明 PQ(PQ)(QP)
第一章 数理逻辑 1-4 真值表与等价公式
11
2、等价公式-汇总
下面的命题定理(表1-4.8)都可以用真值表 予以验证:
对合律 等幂律 结合律 交换律 分配律 吸收律 德·摩根律 同一律 零律 否定律
从真值表可见,上述两个命题公式在分量的不同 指派下,其对应的真值与另一命题公式完全相同。
同理如: (PQ)(PQ)与PQ。
第一章 数理逻辑 1-4 真值表与等价公式
9
2、等价公式-概念
定义:1-4.2 给定两个命题公式A和B,设P1, P2,…,Pn为所有出现于A和B中的原子变元, 若给P1,P2,…,Pn任一组真值指派, A和B的 真值都相同,则称A和B是等价的或逻辑相等。 记作AB。
PQ F F F T
(PQ) (PQ) T F F T
6
第一章 数理逻辑 1-4 真值表与等价公式
1、真值表
例题4 给出(PQ)(PQ)的真值表 公式不论命题变元做何种指派,其真值永为真, 我们把这类公式记为T。
P Q PQ (PQ) P Q PQ T T T F F T F F T F F F F T T T F F T T F T F T F T T T (PQ)( PQ) T T T T
第一章 数理逻辑 1-4 真值表与等价公式
18
第一章 数理逻辑 1-4 真值表与等价公式
16
小结
真值表
完整性
等价公式
等价公式表1-4.8 等价置换
命题公式(合式公式)证明方法
列真值表法 利用等价公式

合式公式及赋值

合式公式及赋值

(a) A B,
B为n层公式
(b) A B C , A B C , A B C , A B C , A B C
其中B, C分别为i, j层公式且n maxi, j
例1.试求下列公式的层次: (p q) r , (( p q)) ((r s) p)
合式公式及赋值
一、合式公式
命题常元(常项):简单命题称为命题常元(真值确定) 命题变元(变项):真值可以变化的简单陈述句(真值不确定)
表示: p, q, r ,, pi , qi , ri , 注:同一符号是常元还是变元由条件及上下文确定 命题公式(合式公式):将命题变项用联结词及括号按一定逻辑关系 联接起来的符号串。
二、合式公式的赋值及真值表
合式公式的赋值:
设p1 , p 2 ,, p n 是出现在公式A中的全部命题变项, 给p1 , p 2 ,, p n 各指定一个真值,称为 对A的一个赋值或解释。
注:1、变项以下标形式出现的赋值 2、变项以字母顺序形式出现的赋值
问题:一个公式含有n个命题变项,其赋值有多少个?
真值表:将公式A在所有赋值情况下的取值情况列成的表
步骤:1.找公式的所有的命题变项(下标或字母顺序) 2.列出所有的赋值情况 3.按从低到高顺序写出公式的各个层次 4.对各个赋值计算各层次的真值,直到最后计算出公式的真值
例2.求下列公式的真值表,并指出成真赋值、成假赋值
(1) (p q) r (2) ( p p) (q q) (3) ( p q) q r
成真赋值、成假赋值
永真式(重言式): 永假式(矛盾式): 可满足式:
例3.下列公式中,哪些公式真值表相同
(1) p q (4)( p q) (q p)

构造真值表的步骤

构造真值表的步骤

构造真值表的步骤
构造真值表的步骤:
①确定命题逻辑表达式中涉及的基本命题变量数目如A B C等通常用大写字母表示;
②计算总共需要列出多少行真值表每一变量有两种状态真因此行数为2^n n为变量数;
③按照二进制数递增顺序依次填写每一行中各命题变量的取值从00…0到11…1;
④对于两个变量情形第一列变化缓慢第二列较快三个及以上变量遵循灰码顺序;
⑤根据逻辑运算符含义如AND OR NOT XOR等逐一计算出复合命题在每种情况下的值;
⑥从最简单的子表达式开始逐步合并直至得出整个公式的最终结果构成最后一列;
⑦检查每一行运算是否正确特别注意优先级括号影响如先非后与再或按从左往右处理;
⑧举例说明若公式为(A ∧B) ∨(¬A ∧C) A B C各有两行组合共需列出八行完整表格;
⑨在完成所有计算后观察真值表找出规律如蕴含等价逆否命题等帮助理解记忆公式;
⑩利用真值表验证论证有效性展示前提集合能否推出结论行数较少时直观有效;
⑪对于复杂公式可能出现中间结果列帮助分解步骤直至得到单一输出列简化理解;
⑫最后总结真值表反映出命题逻辑所有可能性为形式逻辑推理提供坚实证据支撑。

命题公式真值表

命题公式真值表

(4) (P Q) (P Q);
(5) (P Q) (P Q).
A
6
1-4 真值表与等价公式
解 (1) P Q 的真值表为:
P
Q
T
T
T
F
F
T
F
F
P Q
T F T T
(2) P Q 的真值表为:
P
Q
PQ
T
T
T
T
F
F
F
T
T
F
F
T
A
7
1-4 真值表与等价公式
(3) (P Q) P 的真值表为:
(1)单个命题变元本身是一个合式公式;
(2)如果 A 是合式公式,那么 A是合式公式;
(3)如果 A 和 B 是合式公式,那么
A B , A B , A B, A B 是合式公式;
(4)当且仅当能够有限次地应用(1)、(2)、(3)
所得到的包含命题变元,联结词和括号的字符串
是合式公式.
A
3
1-3 命题公式与翻译
A 中的 X 用Y 置换,所得公式 B 与公式 A 等价,即 A B .
例 4 证明: Q (P (P Q)) Q P
例 5 证明下列等价式
(1) (P Q) (P Q) P ;
(2) P (Q R) Q (P R) .
练习 证明 P (Q R) (P Q) R
A
14
1-4 真值表与等价公式
例 6 化简下列命题公式: (1) P (P (Q P)) (2) (P Q) (Q P)
说明:
(1)命题变元是没有真假值的,只有当命题变元用 确定的命题代入时,才得到一个命题,命题的真值 依赖于代换变元的那些命题的真值;

合式公式真值表等价置换定理 第二课

合式公式真值表等价置换定理 第二课

1 ∧ 2 ∧ 3 ⇔T 变换为( ∧…… ∧ ) ∨ ( ∧…… ∧ ) 的形式 排除( ∧…… ∧ ) 中Pi ∧ Pj的可能即可。A2, C1, D ¬ (( P → Q ) ∧ P ) ⇔ T
Q ∨ ¬ (( P → Q ) ∧ P ) ⇔ Q ∨ ¬ (( ¬ P ∨ Q ) ∧ P ) ⇔ Q ∨ ¬ (( ¬ P ∧ P ) ∨ ( Q ∧ P )) ⇔ Q ∨ ¬ (Q ∧ P ) ⇔ Q ∨ (¬ Q ∨ ¬ P ) ⇔
2、等价定理与常用等价式 、 定理: 和 是两个命题公式 是两个命题公式, 当且仅当A 定理:A和B是两个命题公式,A ⇔ B当且仅当 当且仅当 证明: 证明 (1)由A ⇔ B 知,在所有可能的真值指派下,A、B的真值总是 相同的,从而,A ↔ B是一个重言式。 (2)由A ↔ B为重言式, 可知:在所有可能的真值指派下,A、 B的真值总是相同的,所以A ⇔ B。 注意:“当且仅当” 注意: 当且仅当” 的证明需要分为 仅当” “当”和“仅当” 两个部分 B是一个重言式。 是一个重言式。 是一个重言式
对应于所有可能的真值指派, 、 的真值都相同 的真值都相同。 对应于所有可能的真值指派,A、B的真值都相同。又称 为两命题公式逻辑相等。记为: 为两命题公式逻辑相等。记为:A ⇔ B 思考: ((P →Q) ( P ∨ Q))在真值表中值有何特征? 思考 ( ) )
例2 :永真式和永假式 P T T F F 定义3 定义 Q T F T F ¬P∨P ∨ T T T T
2. 命题演算的合式公式 • 基础 (1). 单个命题变元本身是个合式公式;
约定(1)最外层的括号可以省去 • 归纳 约定 如果A是一个合式公式,那么 A也是一个合式公 (2). 最外层的括号可以省去 式; (2)运算符优先次序: , ∧, ∨, →, 运算符优先次序: 运算符优先次序

命题的合式公式

命题的合式公式

计算机科学M O O C课程群离散数学基础•我们会逐渐进入命题逻辑的形式讨论:我们对命题只注意其命题形式,对联结词只注意其逻辑意义。

•命题逻辑合式公式的定义给出了命题逻辑研究的对象范围。

所有符合定义的合式公式构成合式公式空间,它可被视为命题逻辑的符号化语言。

语言的结构包括符号表、语法规则(即合适公式定义)和语义(也即真值)。

•定义:符号化语言 Lp 的符号表包括−小写英文字母:p, q, r, … 称为命题变量(或原子变量)。

所有可能出现的命题变量的集合记为 Var;−命题联结词:包括五个联结词 ¬, ∧, ∨, →, ↔;−助记符:包括左右两个小括号 (, )。

•定义:命题逻辑的合式公式 (wff, well‐formed formula)•一个命题变量 p 是一个 wff;•若 A 是 wff,则 (¬A) 也是 wff;•若 A, B 是 wff,则 (A∧B), (A∨B), (A→B), (A↔B) 也是wff;•当且仅当有限次使用上述规则得到的才是 wff。

上述定义是一个归纳定义,1)是归纳基始,2) 3)是归纳步,4)是最小化规则命题逻辑的合式公式以下简称为公式•定义:联结词的优先级−规定联结词的运算优先级从高到底为:¬ ∧ ∨ → ↔−书写公式时,在不引起误解的情况下,可以省略部分小括号。

»例:(p→(q∧r))可写成 p→(q∧r), 或 p→q∧r•定义:真值赋值函数−具有形式 t:Var→{0,1} 的函数,它为变量表 Var 中的每个命题变量 p∈Var 指派一个真值 (1/0)。

»例:Var = {p, q},可以定义赋值函数t如下:t(p)=0,t(q)=1•定义:真值赋值函数−在含有 n 个命题变量的 Var上,可以定义的赋值函数有 2n 个,称为对此 n 个命题变量的 2n 个解释。

»例:对 Var={p, q},可以有 2n=4个不同的解释:t0(p)=0,t0(q)=0; t1(p)=0,t1(q)=1;t2(p)=1,t2(q)=0; t3(p)=1,t3(q)=1;•定义:合式公式的真值−设下述 A, B, C 都是合式公式。

命题公式及真值表

命题公式及真值表

离散结构命题公式及真值表教学目标基本要求(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. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

构造任意合式公式的真值表
#include "stdio.h"
#include"thesis.h"
int main()
{
Thesis a[30];
char x='1';
int i=0,N;
cout<<"请输入命题变元(不超过30个)(输入'0'结束输入):"<<endl;
while(int(x)!=48)
{
cin>>x;
if(i>19)
{cout<<"Error:变元个数太多!"<<endl;break;}
if(x!='0')
{
a[i].inname(x);
i++;
}
}
N=i;
int M;
M=N;
string A;
cout<<"请输入命题公式( 否定:!,合取:&,析取:| )"<<endl;
cin>>A;
cout<<A<<"的真值表为:"<<endl;
for(int j=0;j<M;j++)
cout<<char(a[j].getvalue())<<" ";
cout<<"真值"<<endl;
assignment(A,N,M,&a[0]);
system("pause");
return 0;
}
#include"thesis.h"
#ifndef THESIS_H
#define THESIS_H
#include<string>
#include<stdlib.h>
#include<iostream>
using namespace std;
class Thesis //命题类
{
int value;char name; //value:命题的真值
(0/1) name:命题名
public:
Thesis(){value=2;name='A';};
friend Thesis operator !(Thesis &q)
{q.invalue(1-q.getvalue()); return q;} //重载逻辑运算符
friend Thesis operator &(Thesis &p,Thesis &q)
{p.invalue((p.getvalue()+q.getvalue())/2);
return p;}
friend Thesis operator |(Thesis &p,Thesis &q)
{if(p.getvalue()+q.getvalue()>0)
p.invalue(1);
else p.invalue(0);
return p;}
friend Thesis operator >(Thesis &p,Thesis &q)
{if(p.getvalue()==1&&q.getvalue()==0)
p.invalue(0);
else p.invalue(1);
return p;}
friend Thesis operator <(Thesis &p,Thesis &q) {if(p.getvalue()==q.getvalue())
p.invalue(1);
else p.invalue(0);
return p;}
void invalue(int x){value=x;} //输入value
void inname(char x){name=x;} //输入name
int getvalue(){return value;} //获取
真值
int getname(){return name;} //获取命题

};
void assignment(string A,int N,int M,Thesis a[]); //声明函数
int bds(string A,int N,Thesis a[]);
int run(string A,int &i,int L,int N,Thesis a[]);
void assignment(string A,int N,int M,Thesis a[])//命题赋值并计算真值
{
for(int j=0;j<2;j++)
{
a[N-1].invalue(j);
if(N>1)
{
assignment(A,N-1,M,&a[0]);
}
else
{
for(int i=0;i<M;i++)
{
cout<<a[i].getvalue()<<" ";
}
cout<<bds(A,M,&a[0])<<endl;
}
}
}
int bds(string A,int N,Thesis a[]) //
识别输入的表达式并计算真值
{
Thesis answer,Temp;
char d[5]={'!','|','&','>','<'}; //定义运算符号集合
int L;
int i=0;
L=strlen(&A[0]); //表达式长度
while(i<L)
{
if(A[i]=='(')
{
int k=1;
for(int j=i+2;j<L;j++)
{
if(k!=0)
{
if(A[j]=='(')
k++;
if(A[j]==')')
k--;
}
if(k==0)
{
int l=j-i-1;
char *p=new char[l+1];
string B;
for(int m=0;m<l;m++)
p[m]=A[i+1+m];
p[l]='\0';
B=p;
delete p;
Temp.invalue(bds(B,N,&a[0]));
if(i==0)
answer.invalue(Temp.getvalue());
i=j+1;
break;
}
}
}
else
{
if(A[i]=='!') //否定的计算
{
Temp.invalue(run(A,i,L,N,&a[0]));
answer=!Temp;
i++;
continue;
}
else if(A[i]=='|')
{
Temp.invalue(run(A,i,L,N,&a[0]));
answer=answer|Temp;
i++;
continue;
}
else if(A[i]=='&')
{
Temp.invalue(run(A,i,L,N,&a[0]));
answer=answer&Temp;
i++;
continue;
}
else if(A[i]=='<')
{
Temp.invalue(run(A,i,L,N,&a[0]));
answer=answer<Temp;
i++;
continue;
}
else if(A[i]=='>')
{
Temp.invalue(run(A,i,L,N,&a[0]));
answer=answer>Temp;
i++;
continue;
}
else
{
for(int j=0;j<N;j++)
{if(A[i]==char(a[j].getname()))
{
Temp.invalue(a[j].getvalue());
if(i==0)
answer.invalue(Temp.getvalue());
i++;
break;
}
}
}
}
}
return answer.getvalue();
}
int run(string A,int &i,int L,int N,Thesis a[]) {
Thesis Temp;
if(A[i+1]=='(')
{
int k=1;
for(int j=i+2;j<L;j++)
{
if(k!=0)
{
if(A[j]=='(')
k++;
if(A[j]==')')
k--;
}
if(k==0)。

相关文档
最新文档