命题逻辑等值演算的计算机求解方法
等值演算法基本公式
![等值演算法基本公式](https://img.taocdn.com/s3/m/90275ef90408763231126edb6f1aff00bed57096.png)
等值演算法基本公式等值演算法是一种用于判定逻辑公式等式关系的算法。
它基于数学中的等价关系理论,将两个逻辑公式进行比较,判断它们是否相等。
在计算机科学中,等值演算法被广泛应用于程序的优化、程序验证和形式化验证等领域。
等值演算法的基本思想是将逻辑公式转化为等价的标准形式,再将两个标准形式进行比较,判断它们是否相等。
等值演算法的基本公式如下:1.双向等价推导法对于逻辑公式P和Q,若P可以推导出Q,且Q可以推导出P,则P等价于Q。
2.等价形式变换法对于逻辑公式P和Q,若P和Q可以通过等价变换得到相同的标准形式,则P等价于Q。
3.代入定理对于逻辑公式P和Q,若在P中将某个原子命题A替换成另一个原子命题B,同时在Q中将A替换成B,且P等价于Q,则P和Q在A和B上等价。
4.消解律对于逻辑公式P和Q,若P中包含一个析取式和Q中包含一个合取式,且该析取式和合取式的某个元素相等,则在P和Q中将该元素消去,得到的公式等价。
5.分配律对于逻辑公式P和Q,若P和Q都包含一个合取式和一个析取式,且这两个合取式和析取式都是相同的,则在P和Q中将这两个结构进行交换,得到的公式等价。
6.运算律对于逻辑公式P和Q,若P和Q中包含相同的运算符,并且这些运算符的操作数也相同,则在P和Q中将这些运算符及其操作数进行交换,得到的公式等价。
以上就是等值演算法的基本公式。
通过应用这些公式,可以快速、准确地判断逻辑公式之间的等价关系。
在实际应用中,需要根据不同的情况灵活运用这些公式,以达到最佳的效果。
同时,还需要注意等值演算法在计算机程序优化和验证等领域的实际应用,以充分利用等值演算法的优势和避免其劣势。
21命题逻辑的等值和推理演算
![21命题逻辑的等值和推理演算](https://img.taocdn.com/s3/m/39a45fcb7fd5360cba1adbc5.png)
A,B代表任意 的命题公式
摩根律 : (AB) = AB,
(AB) = AB
吸收律: A(AB) = A, A(AB) = A
零律:
AT = T, AF = F
同一律: AF = A, AT = A
TA = A, T A = A,
补余律: AA = T, AA = F,
等值公式
2. 常用等值公式
公式A的子公式置换后,A化为公式B,必有A = B
n 等值演算
n 由已知的等值公式推演出新的等值公式的过程 n 如已知: AA = A
则: BAA = BA
n 等值演算的基础: (1) 等值关系的性质:自反、对称、传递 (2) 基本的等值式 (3) 置换规则
三个重要的等值式
P Q = P Q P Q = (P Q) ( P Q )
C
P∧Q
FF
T
T
F
T
P∧Q
FT
T
T
F
F
TF
F
F
T
T
P∧Q
TT
T
F
F 任意
2.3 命题公式与真值表的关系
按真值表列出命题公式的方法
从F来列出
如下表中B为F有二种可能
所以,B的命题公式形式为:□ ∧ □
而取F相应的P、Q解释分别为: P∨Q 、 P∨ Q
所以,B=(P∨Q)∧(P∨Q ) 同理,A= P∨Q
按真值表列出命题公式的方法
从T来列出
如下表中A为T有三种可能
所以,A的命题公式形式为:□∨ □ ∨□ 而取T相应的P、Q解释分别为: P∧Q、P∧Q、 P∧Q
所以,A=(P∧Q) ∨(P∧Q) ∨(P∧Q)
《离散数学》02命题逻辑等值演算
![《离散数学》02命题逻辑等值演算](https://img.taocdn.com/s3/m/b0dbd732ad02de80d4d840f6.png)
2.2 析取范式和合取范式
定理2.1 (1)一个简单析取式是重言式当且仅当它同时含有某个命题
变项及它的否定式。 (2)一个简单合取式是矛盾式当且仅当它同时含有某个命题
变项及它的否定式。 定义2.3 (1)由有限个简单合取式构成的析取式称为析取范式
A∨1 1,A∧0 0 A∨0 A,A∧1 A A∨┐A 1 A∧┐A 0 A→B ┐A∨B AB (A→B)∧(B→A) A→B ┐B→┐A AB ┐A┐B (A→B)∧(A→┐B) ┐A
对偶原理
一个逻辑等值式,如果只含有┐、∨、∧、0、1 那么同时
把∨和∧互换 把0和1互换 得到的还是等值式。
(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
基本等值式
8.零律 9.同一律 10.排中律 11.矛盾律 12.蕴涵等值式 13.等价等值式 14.假言易位 15.等价否定等值式 16.归谬论
例2.5 解答
(1) (p→q)∧p→q
(┐p∨q)∧p→q
(蕴涵等值式)
┐((┐p∨q)∧p)∨q
(蕴涵等值式)
(┐(┐p∨q)∨┐p)∨q
(德摩根律)
((p∧┐q)∨┐p)∨q
(德摩根律)
((p∨┐p)∧(┐q∨┐p))∨q (分配律)
(1∧(┐q∨┐p))∨q
计算机自动求解命题公式的主范式
![计算机自动求解命题公式的主范式](https://img.taocdn.com/s3/m/1ea8c38471fe910ef12df8c2.png)
3 计算机自动求解命题公式的主范式一.需求分析(1)用户输入一任意命题公式,计算机程序自动输出其主析取范式和主合取范式。
(2)求任意一个命题公式的真值表,并根据真值表求主范式。
(3)关于命题公式的形式和运算符(即联结词)的运算首先根据离散数学的相关知识,命题公式由命题变元和运算符(即联结词)组成,命题变元用大写字母英文表示(本次试验没有定义命题常元T和F,即T、F都表示命题变元),每个命题变元都有两种真值指派0和1,对应于一种真值指派,命题公式有一个真值,由所有可能的指派和命题公式相应的真值按照一定的规范构成的表格称为真值表。
目前离散数学里用到的包括扩充联结词总共有九种,即析取(或)、合取(与)、非、蕴含、等值、与非、或非、异或、蕴含否定,常用的为前五种,其中除了非运算为一元运算以外,其它四种为二元运算。
所以本次实验设计时只定义了前五种运算符,同时用“/”表示非,用“*”表示合取,用“+”表示析取,用“>”表示蕴含,用“:”表示等值,且这五种运算符的优先级依次降低,如果需用括号改变运算优先级,则用小括号()改变。
以下为上述五种运算符运算时的一般真值表,用P和Q表示命题变元:1.非,用“/”表示2. 合取(与),用“*”表示3.析取(或),用“+”表示4.蕴含,用“>”表示5.等值,用“:”表示下面是求取后缀表达式的规则:1.从中缀表达式左边起逐个字符判断,如果是命题变元,则直接输出;如果是运算符,则将其与当前有效栈顶字符(即非空,可能为运算符或左半括号;如果栈为空,则直接入栈)的优先级比较,如果大于栈顶字符优先级,则直接入栈,如果小于或等于栈顶字符优先级,则弹出栈中字符并输出,直到大于栈顶字符优先级;2.如果遇到左半括号,则直接入栈,也就是栈外左半括号的优先级最高,入栈以后,其优先级变为最低,也就是不管下一个字符是什么,该左半括号都不出栈,当且仅当遇到与其对应的右半括号时(遇到右半括号前,所有的字符按1中的规则或左半括号的入栈规则入栈或出栈),将栈中该左半括号以上的字符按照出栈规则弹出并输出,最后该左半括号出栈并和右半括号一起被丢掉(右半括号永不入栈),余下的字符不出栈;3.按照上述规则判断命题公式中的所有字符后,如果栈中还有有效字符,则依次弹出并输出。
命题逻辑等值演算的计算机实现
![命题逻辑等值演算的计算机实现](https://img.taocdn.com/s3/m/edcd173feefdc8d376ee32f7.png)
! 命 题公 式的 定义
定义 " 以 & 真 ’# & 假 ’ 为其变域的 变元称为 命题变元 ! 命题 变 元也简称为命题 " 定义 $ 命题演算公式 $ 简称公式 %可按以下法则生成 !$ # (%" & 命 题是公式 )%’& 如果 ( 是公式 !则 ! ( 是公式 )%) & 如果 ( #* 是公式 ! 则 ( " * #( # * #( $ * 和 ( %$ * 都是公式 ) ! 只有有限次按照上 述法则所得的结果才是公式 "
命题逻辑等值演算的计算机实现
李刚!$"源自!杨杰#" %-郑州轻工业学院 信息与计算科学系 & 河南 郑州 .’ """ ! %!- 郑州轻工业学院 计算机与通信工程学院 & 河南 郑州 .’ """ !% &-郑州轻工业 学院网络中心 & 河南 郑州 .’ """ !$ 摘要 " 本文针对等值演算理论 &通过数据 结构和 / 00 程序设计语言 &分析了命题公式的逻辑结构 & 设计出用广义 表单链表的存储结 构 & 并在此基础上探讨了如何实现其基本操作 & 从而进一步阐明了复杂等值演算的计算机实现算法 ) 关键词 "命题逻辑 %等值演算 % 数据结构 % 广义表 %计算机实现 中图分类号 "%&#’! 文献标识码 "( 文章编号 "!))*+#),,-"’’./’"+!’,.0+’# 12 3 456%7!78 9)3 (:; & <%-= ;> ?- @A 25A @BC4?: @5 45D /@C>E?4?:@5 FG:;5G;7 HI;56 JI@E K5: L;BG: ?M @A 1:6I? 25DEN?BM7 HI;56HI@E .’ """ !7 / I: 54O !-F GI@@P @A / @C> E?;B 45D /@CCE5:G4?:@5 Q56:5;;B: 567 HI;56 JI@E K5: L;BG: ?M @A 1:6I? 25DEN?BM7 HI;56HI@E .’ """ !7 / I: 54O &-) ;?R@BS /;5?;B7 HI;56JI@E K5:L ;BG:?M @A 1:6I? 25DEN?BM7 HI;56HI@E .’" "" !7 / I:54T (G@89=C 8H U4NN:56 @5 ?I; ?I;@BM @A ;V E:L 4P;5? G4PGEP4?;N7 ?I:N >4>;B E?: P:J;N ?I; D 4?4 N?BEG?EB; 45D / 00 >B@6B4C D;N:65 P456E46;7 ?@ 454PM J; ?I; P@6 :G N?BEG?EB; @A >B@>@N: ?:@5 A@BCEP47 D;N:65N ?I; N4L :56 N?BEG?E$B; ?I4? EN; ?I; WB@4D N;5N; C;5E GI4:5;D P :N?7 45D ;X >P@B;D ?@ W;6 A @B :5 ?I:N A@E5D4?:@5 I@Y ?@ G4BBM @E? :?N W4N:G @>;B4?: @57 ?IEN 45D A EB?I;B GP4B: AM:56 ?I; G@C>E?;B : C>P;C;5?4?:@5 4P6@B: ?IC @A ?I; G@C>P: G4?;D ;V E: L! 4P ;5? G4PGEP4?: @5I2J K49L@H >B@>@N: ?:@5 P@6:GO ;V E:L 4P;5? G4PGEP4?:@5O D4?4 N?BEG?EB;O WB@4D N;5N; Y 4?GIO G@C>E?;B :C> P;C;5?4?:@5 数理逻辑属形式逻辑范畴 ! 形式逻辑学是对思维形式结 构和 思维规律进行研究的类似语法的一门工具性学科!"# " 命题逻辑是 数理逻辑的基础部分 ! 其中等值演算在命题逻辑中占有很重 要的 地位 " 所谓命题逻辑的等值演算 ! 是指由已知的等值式运用 等值 规则演 算出另外的一 些等值式 !它在 判断命题 公式的类型 #求 主 析 $ 合 %取范式中是一种很重要的方法 " %*6# 6,&&&& " %12 345 67829 :56;252<8=8>4< 4? 812 &9464@>8>4<=; A4B>C DE7>F =;2<8 3=;C7;=8>4<
计算命题演算公式的真值
![计算命题演算公式的真值](https://img.taocdn.com/s3/m/3e5770eb5acfa1c7aa00cca8.png)
四计算命题演算公式的真值一.实验题目所谓命题演算公式是指由逻辑变量(其值为TRUE或FALSE)和逻辑运算符∧(AND)、∨(OR)和┐(NOT)按一定规则所组成的公式(蕴含之类的运算可以用∧、∨和┐来表示)。
公式运算的先后顺序为┐、∧、∨,而括号()可以改变优先次序。
已知一个命题演算公式及各变量的值,要求设计一个程序来计算公式的真值。
要求:(1)利用二叉树来计算公式的真值。
首先利用堆栈将中缀形式的公式变为后缀形式;然后根据后缀形式,从叶结点开始构造相应的二叉树;最后按后序遍历该树,求各子树之值,即每到达一个结点,其子树之值已经计算出来,当到达根结点时,求得的值就是公式之真值。
(2)逻辑变元的标识符不限于单字母,而可以是任意长的字母数字串。
(3)根据用户的要求显示表达式的真值表。
二.实验设计1. 设计思想(1)数据结构设计a 建立一个链式堆栈,实现括号的匹配问题。
b建立一个顺序堆栈,来实现中缀转后缀并实现二叉树的打印。
(2)算法设计a.括号匹配b中缀转后缀c打印二叉树和真值表2. 设计表示自定义和调用的函数如下所示:#include""#include""#include<>#include<>#include<>#include<>#include<>函数说明如下SeqStack1; /*定义一个堆栈SeqStack1*/void StackInitiate1(SeqStack1 *S) /*初始化堆栈1,栈底为‘#’*/void StackPush1(SeqStack1 *S,DataType x) /*将元素压入堆栈1*/void StackPop1(SeqStack1 *S,DataType *x) /*弹出堆栈1的栈顶元素*/int StackTop1(SeqStack1 S,DataType *d) /*取堆栈1的栈顶元素*/SeqStack2; /*定义一个顺序堆栈SeqStack2*/void StackInitiate2(SeqStack2 *S) /*初始化堆栈2*/BiTreeNode * StackPop2(SeqStack2 *S) /*从堆栈2中弹出栈顶元素*/BiTreeNode; /*定义二叉树的结点*/void Initiate(BiTreeNode **root) /*初始化树的根结点*/void print(BiTreeNode *bt,int n) /*逆时针打印二叉树*/void StackPush2(SeqStack2 *S,BiTreeNode *x) /*将二叉树结点压入堆栈2*/int Convert(char a[500],char b[500][100],SeqStack1 *S,int n) /*将待求表达式转换为后缀形式*/BiTreeNode * BuildTree(char b[500][100],int n)/*根据表达式的后缀形式,构造相应的二叉树*/LSNode; /*定义了链式堆栈用于下面检测表达式的括号匹配*/void StackInitiate(LSNode** head) /*初始化堆栈*/int StackNotEmpty(LSNode* head) /*检测堆栈是否为空的函数*/int StackPush(LSNode* head,DataType x) /*将元素入栈*/int StackPop(LSNode* head,DataType* d) /*弹出栈顶元素*/int StackTop(LSNode* head,DataType *d) /*取栈顶元素*/void Destroy(LSNode* head) /*撤消*/void ExplsCorrect(char exp[]) /*检测输入表达式的括号匹配函数*/i3.详细设计void StackInitiate(LSNode** head){if((*head=(LSNode*)malloc(sizeof(LSNode)))==NULL)exit(1);(*head)->next=NULL;} /*初始化堆栈*/int StackNotEmpty(LSNode* head){if(head->next==NULL)return 0;else return 1;}/*检测堆栈是否为空的函数,若为空,返回0,否则返回1*/typedef struct snode{DataType data;struct snode* next;}LSNode;/*定义了链表的结点用于下面检测表达式的括号匹配*/int StackPop(LSNode* head,DataType* d){LSNode* p=head->next;if(p==NULL){cout<<"堆栈已空出错"<<endl;return 0;}head->next=p->next;*d=p->data;free(p);return 1;}/*弹出栈顶元素*/int StackPush(LSNode* head,DataType x){LSNode* p;if((p=(LSNode*)malloc(sizeof(LSNode)))==NULL) {cout<<"内存空间不足无法插入!"<<endl;return 0;}p->data=x;p->next=head->next;head->next=p;return 1;}/*将元素入栈*/int StackTop(LSNode* head,DataType *d){LSNode* p=head->next;if(p==NULL){cout<<"堆栈已空出错"<<endl;return 0;}*d=p->data;return 1;}/*取栈顶元素*/void Destroy(LSNode* head){LSNode* p,*p1;p=head;while(p!=NULL){p1=p;p=p->next;free(p1);}}/*撤消*/三.调试分析在运行程序的过程中,碰到了一些错误,其中有很多是括号和分号的问题,看来以后写程序要更加细心才行。
命题逻辑等值演算的计算机实现9
![命题逻辑等值演算的计算机实现9](https://img.taocdn.com/s3/m/8d469ee29b89680203d825e1.png)
数理逻辑属形式逻辑范畴, 形式逻辑学是对思维形式结构和 思 维 规 律 进 行 研 究 的 类 似 语 法 的 一 门 工 具 性 学 科 [1]。命 题 逻 辑 是 数理逻辑的基础部分, 其中等值演算在命题逻辑中占有很重要的 地位。所谓命题逻辑的等值演算, 是指由已知的等值式运用等值 规 则 演 算 出 另 外 的 一 些 等 值 式 , 它 在 判 断 命 题 公 式 的 类 型 、求 主 析( 合) 取范式中是一种很重要的方法。
2 命题公式的逻辑结构
可以看出, 命题公式的生成过程是一个递归形式, 一个命题 公式由若干个子公式组成, 而子公式又可以包含若干个子公式。 从数据结构的观点看, 适宜于用广义表来存储命题公式, 把每一 对括号所包含的部分看作一个子公式作为一部分, 每一个联结词 作为一部分, 即广义表的每一个元素可以是命题公式的子公式、 命题或者联结词。
图5 注: 上述图 2- 图 5 种结点 A、B 和 C5 等值演算的实现
(1)求析( 合) 取范式 求给定命题公式析取范式的过程, 实际上就是逐步对公式进 行 消 去 等 价 联 结 词 、消 去 蕴 含 联 结 词 、否 定 深 入 并 按 照 析 取 对 合 取 的 分 配 律 等 值 演 算 的 过 程 [5]。假 设 公 式 的 广 义 表 存 储 结 构 已 经 建好, 则通过如下步骤进行: ①DELET_EQU (HP); //消去等价联结词 ②DELET_IMP (HP); //消去蕴含联结词 ③IN_NOT(HP); //否定深入 ④ALLOT2(HP); //析取对合取进行分配 以 上 各 步 中 , 每 一 操 作 都 增 加 PRINTF(HP), 即 可 输 出 等 值 演 算过程中的每一步, 在运算过程中可能出现重复项或者多余的括 号 , 只 需 增 加 ABSORB(HP)和 DELETE_BRACKET(HP), 就 可 以 得 到相应的析取范式。 求合取范式只需将上述④的 ALLOT2(HP)改为 ALLOT1(HP)。
命题逻辑的等值和推理演算.ppt
![命题逻辑的等值和推理演算.ppt](https://img.taocdn.com/s3/m/e92e250376a20029bc642d85.png)
5. 等幂律(恒等律) P∨P = P P∧P = P PP = T PP = T
6. 吸收律 P∨(P∧Q) = P P∧(P∨Q) = P
7. 摩根律 (P∨Q) = P∧Q (P∧Q) = P∨Q
定理: 对公式A的子公式, 用与之等值的公式来代换 便称置换。 置换规则 公式A的子公式置换后A化为公式B, 必有A = B。 当A是重言式时, 置换后的公式B必也是重言式。
置换与代入是有区别的。置换只要求A的某一 子公式作代换, 不必对所有同一的子公式都作代 换。
2.2.4 等值演算举例
例1: 证明(P∧(Q∧R))∨(Q∧R)∨(P∧R) = R
16. PQ =Biblioteka (PQ)∧(QP)这表明PQ成立, 等价于正定理PQ和逆 定理QP都成立。
17. P(QR) = Q(PR)
前提条件P、Q可交换次序。
18. (PR) ∧(QR)=(P∨Q)R
左端说明的是由P而且由Q都有R成立。 从而可以说由P或Q就有R成立, 这就是等 式右端。
2.2.3 置换规则
严格的形式化的讨论见第三章所建立的公 理系统。
2.1 等值定理
若把初等数学里的+、-、×、÷等运算符看作 是数与数之间的联结词,那么由这些联结词所表 达的代数式之间,可建立许多等值式如下: x2-y2 = (x+y)(x-y) (x+y)2 = x2+2xy+y2 sin2x+cos2x = 1 ……
PP = P PP = P PP = F
所有这些公式,都可使用直值表加以验证。
Venn图
若使用Venn图也容易理解这些等值式, 这 种图是将P、Q理解为某总体论域上的子集 合, 而规定P∧Q为两集合的公共部分(交集 合), P∨Q为两集合的全部(并集合), P为 总体论域(如矩形域)中P的余集。
第2章命题逻辑等值演算离散数学介绍
![第2章命题逻辑等值演算离散数学介绍](https://img.taocdn.com/s3/m/d47877766edb6f1aff001fab.png)
解答 方法一、真值表法。
方法二、观察法。易知,010是(p→q)→r的成假赋值,而010是 p→(q→r)的成真赋值,所以原不等值式成立。
方法三、通过等值演算化成容易观察真值的情况,再进行判断。
A=(p→q)→r (┐p∨q)→r
(蕴涵等值式)
┐(┐p∨q)∨r
(蕴涵等值式)
(p∧┐q)∨r
(德摩根律)
(┐p∨q)∨q)∧p)∨q
(蕴涵等值式)
(┐(┐p∨q)∨┐p)∨q
(德摩根律)
((p∧┐q)∨┐p)∨q
(德摩根律)
((p∨┐p)∧(┐q∨┐p))∨q (分配律)
(1∧(┐q∨┐p))∨q
(排中律)
(┐q∨q)∨┐p
(同一律)
1∨┐p
(排中律)
1
B=p→(q→r) ┐p∨(┐q∨r)
(蕴涵等值式)
┐p∨┐q∨r
(结合律)
000,010是A的成假赋值,而它们是B的成真赋值。
例题2.5 用等值演算判断下列公式的类型: (1)(p→q)∧p→q (2)(p→(p∨q))∧r (3)p∧(((p∨q)∧┐p)→q)
(1) (p→q)∧p→q
离 散 数 学介绍
本章的主要内容
– 等值式与基本的等值式 – 等值演算与置换规则 – 析取范式与合取范式、主析取范式与主合取范式 – 联结词完备集(不讲) – 可满足性问题与消解法(不讲)
本章与后续各章的关系
– 是第一章的抽象与延伸 – 是后续各章的现行准备
两公式什么时候代表了同一个命题呢? 抽象地看,它们的真假取值完全相同时即
一个逻辑等值式,如果只含有┐、∨、∧、0、1
那么同时 把∨和∧互换 把0和1互换
命题逻辑等值演算
![命题逻辑等值演算](https://img.taocdn.com/s3/m/a5162dedaeaad1f346933fcd.png)
8
应用举例——证明两个公式等值 证明两个公式等值 应用举例
例2 证明 (p ∨ q)→r ⇔ (p → r) ∧ (q → r) → 可以从左边开始演算,也可以从右边开始演算. 可以从左边开始演算,也可以从右边开始演算. 证 (p → r) ∧ (q → r) 蕴涵等值式) ⇔(¬p ∨ r ) ∧ (¬ q ∨ r) ¬ ¬ (蕴涵等值式) 分配律) ⇔ (¬p ∧ ¬ q ) ∨ r ¬ (分配律) 德摩根律) ⇔ ¬ (p ∨ q) ∨ r (德摩根律) ⇔ (p ∨ q)→r → (蕴涵等值式) 蕴涵等值式)
11
ห้องสมุดไป่ตู้
例3 (续) 续
(2) (p→q)↔(¬q→¬ →¬p) → ↔ ¬ →¬ →¬p) 解 (p→q)↔(¬q→¬ → ↔ ¬ →¬ ∨¬p) (蕴涵等值式) 蕴涵等值式) ⇔ (¬p∨q)↔(q∨¬ ¬ ∨ ↔ ∨¬ 交换律) ⇔ (¬p∨q)↔(¬p∨q) (交换律) ¬ ∨ ↔¬ ∨ ⇔1 由最后一步可知,该式为重言式. 由最后一步可知,该式为重言式 最后一步为什么等值于1? 问:最后一步为什么等值于 ?
18
于是,由同一律可知: E ⇔ ( ¬p ∧ q ∧ ¬r ) ∧ (p ∧ ¬ q ∧ r ) 但因为王教授不能既是上海人,又是杭州人,因 而p, r必有一个假命题,即p ∧ ¬ q ∧ r ⇔ 0,于是 于是 E ⇔ ¬p ∧ q ∧ ¬r 为真命题. 因而必有p, r为假命题, q为真命题, 即王教授 为上海人.甲说得全对,丙说对了一半,而乙全说 错了.
17
由王教授所说,可推出 E= (B1 ∧ C2 ∧ D3) ∨ (B1 ∧ C3 ∧ D2) ∨(B2 ∧ C1 ∧ D3) ∨(B2 ∧ C3 ∧ D1) ∨(B3 ∧ C1 ∧ D2) ∨(B3 ∧ C2 ∧ D1) 为真命题.而 B1 ∧ C2 ∧ D3 ⇔ 0 B1 ∧ C3 ∧ D2 ⇔ ¬p ∧ q ∧ ¬r B2 ∧ C1 ∧ D3 ⇔ 0 B2 ∧ C3 ∧ D1 ⇔ 0 B3 ∧ C1 ∧ D2 ⇔ p ∧ ¬ q ∧ r B3 ∧ C2 ∧ D1 ⇔ 0
命题公式等值演算
![命题公式等值演算](https://img.taocdn.com/s3/m/bb138e524531b90d6c85ec3a87c24028915f851d.png)
命题公式等值演算命题公式等值演算(Propositional Formula Equivalence)是数理逻辑领域中的一个重要概念和技巧。
本文将介绍命题公式等值演算的基本思想和常用方法,并通过一些例子来详细说明。
一、命题公式等值关系的定义在逻辑学和计算机科学中,命题公式是由包含命题变量、逻辑运算符和括号构成的表达式。
而命题公式等值关系则是指两个命题公式具有相同的真值。
换句话说,当且仅当两个命题公式在每一个赋值下具有相同的真值时,它们才是等值的。
例如,对于命题变量p和q,表达式(p∧q)∨(¬p∧¬q)和(p∨¬q)∧(¬p∨q)是等值的,因为它们在每一个赋值下的真值相同。
二、命题公式等值演算的基本规则命题公式等值演算是通过一系列基本规则来推导等值式的过程。
下面是一些常用的基本规则:1. 交换律:p∧q ≡ q∧p,p∨q ≡ q∨p2. 结合律:(p∧q)∧r ≡ p∧(q∧r),(p∨q)∨r ≡ p∨(q∨r)3. 分配律:p∧(q∨r) ≡ (p∧q)∨(p∧r),p∨(q∧r) ≡ (p∨q)∧(p∨r)4. 吸收律:p∧(p∨q) ≡ p,p∨(p∧q) ≡ p5. 否定律:p∨¬p ≡ T,p∧¬p ≡ F6. 德摩根定律:¬(p∧q) ≡ ¬p∨¬q,¬(p∨q) ≡ ¬p∧¬q7. 双重否定律:¬(¬p) ≡ p三、命题公式等值演算的应用命题公式等值演算是数理逻辑中的一项基础技术,可以应用于证明命题的等价关系、简化复杂的命题公式以及构造等价的命题公式等领域。
1. 证明等价关系通过命题公式等值演算,可以证明两个命题公式之间的等价关系。
例如,要证明(p∨q)∧(¬p∨q) ≡ q,可以使用分配律、交换律和吸收律等基本规则进行推导。
2. 简化命题公式当给定一个复杂的命题公式时,可以利用命题公式等值演算的基本规则来简化它,使得它更加易于理解和计算。
命题逻辑等值演算
![命题逻辑等值演算](https://img.taocdn.com/s3/m/857f49cae43a580216fc700abb68a98271feacff.png)
Mi mi。
例 2 由p, q两个命题变项形成的极小项与极大项
例 3 p, q, r三个命题变项形成的极小项与极大项
三、主范式
1、主析取范式:由极小项构成的析取范式。
2、主合取范式:由极大项构成的合取范式。
3、主范式:主析取范式与主合取范式统称为主范式。
值。
方法三 用等值演算先化简两个公式,再观察.
例3用等值演算法判断下列公式的类型
(1) q(pq)
解: q(pq)
q(pq) (蕴涵等值式)
q(pq)
(德摩根律)
p(qq)
(交换律,结合律)
p0
(矛盾律)
0
(零律)
由最后一步可知,该式为矛盾式.
(pq)r
(否定号内移——德摩根律)
这一步已为析取范式(两个简单合取式构成)
继续: (pq)r
(pr)(qr) (对分配律)
得到合取范式(由两个简单析取式构成)。
二、极小项与极大项
1、定义 在含有n个命题变项的简单合取式(简单析取式)中,若每个命题变项(或它的
否定式)均以文字的形式出现且仅出现一次,称这样的简单合取式(简单析取式)为极
离散数学
第二章 命题逻辑等值演算
|
第二章 命题逻辑等值演算
一、等值式
1、等值式:设A,B是命题公式,且AB为重言式,则称A与B是等值的,记作AB。
说明 :1)符号不是联结符,只是一种记法。
2)若A与B的真值表相同(真值表法),则AB;否则A
B。
3)判断公式等值的方法——利用已知的等值式通过代换得到新的等值式。
五、主范式的应用
认识简单的逻辑运算逻辑运算题的解答方法与技巧
![认识简单的逻辑运算逻辑运算题的解答方法与技巧](https://img.taocdn.com/s3/m/12ccfc66443610661ed9ad51f01dc281e43a5667.png)
认识简单的逻辑运算逻辑运算题的解答方法与技巧逻辑运算是数学和哲学中的一个重要概念,它通过对命题的组合和推理来得出结论。
在现代计算机科学中,逻辑运算也被广泛应用于电子电路和编程语言中。
对于大部分人来说,逻辑运算可能会显得有些抽象和难以理解。
然而,只要我们掌握了一些基本的解答方法和技巧,就能够轻松应对逻辑运算题。
本文将介绍一些简单的逻辑运算题的解答方法与技巧,并帮助读者更好地认识和理解逻辑运算。
一、逻辑运算的基本概念在开始解答逻辑运算题之前,我们首先需要了解一些基本概念。
逻辑运算有三个基本运算符:与(AND)、或(OR)和非(NOT)。
与运算符表示只有当两个命题同时为真时,整个复合命题才为真;或运算符表示只要有一个命题为真,整个复合命题就为真;非运算符表示对原命题的否定。
二、逻辑运算题的解答方法1. 确定题目的逻辑运算符在解答逻辑运算题时,首先需要仔细阅读题目,确定题目所用的逻辑运算符。
根据题目的描述,我们可以判断题目是使用与运算、或运算还是非运算。
对于不熟悉的运算符,可以查阅相关的资料学习其运算规则。
2. 构建真值表接下来,我们需要根据题目中的条件和逻辑运算符构建真值表。
真值表是一种表示逻辑运算结果的表格,通过列举所有可能的情况,我们可以找到符合题目要求的解。
3. 列举所有可能的情况在构建真值表时,我们需要列举出所有可能的情况。
对于每个命题,可以将其可能的取值写在表格的列中。
然后,通过逻辑运算符的规则,计算整个复合命题的取值。
4. 根据题目要求寻找解答通过构建真值表,我们可以找到所有符合题目要求的解答。
根据题目的描述,我们可以确定在哪些情况下,整个复合命题的取值为真。
找出符合要求的解答之后,我们需要将其以符合题目要求的形式进行表述。
三、逻辑运算题的解答技巧1. 理清思路,化繁为简在解答逻辑运算题时,往往需要考虑多个命题的组合,如果一开始就陷入复杂的逻辑表达中,容易迷失方向。
因此,我们可以先从最简单的情况入手,逐渐扩展思路,将复杂的问题化繁为简。
微型计算机原理及应用中算术运算与逻辑运算标准解题过程
![微型计算机原理及应用中算术运算与逻辑运算标准解题过程](https://img.taocdn.com/s3/m/1479716d59fb770bf78a6529647d27284b7337d0.png)
微型计算机原理及应用中算术运算与逻辑运算标准解题过程在微型计算机原理及应用中,算术运算和逻辑运算是两个基本的运算方式,对于理解计算机的工作原理和进行问题解答都至关重要。
本文将介绍算术运算和逻辑运算的标准解题过程,帮助读者更好地理解和运用这两种运算方式。
一、算术运算的标准解题过程算术运算是进行数值计算的一种运算方式,包括加法、减法、乘法和除法等操作。
下面将对每种算术运算的标准解题过程进行详细介绍。
1. 加法运算:加法运算是将两个数值相加得到结果的过程。
解题时,首先将两个数值的个位数相加,若结果小于10,则直接写在个位数位上;若结果大于或等于10,则将个位数写在结果中,并将进位数记在十位数上。
然后将十位数相加,并将结果写在结果中,以此类推,直到所有位数相加完毕。
最后的结果即为加法运算的结果。
2. 减法运算:减法运算是两个数值相减得到结果的过程。
解题时,从被减数的个位数开始,逐位相减。
如果被减数的某一位小于减数的相应位,则需要向高位借位。
借位的过程是将被减数高位中的数减去1,并将借位标记记在该位上。
然后再次进行相减,以此类推,直到所有位数相减完毕。
最后的结果即为减法运算的结果。
3. 乘法运算:乘法运算是将两个数相乘得到结果的过程。
解题时,首先将乘数的个位数与被乘数相乘,得到第一个部分积的个位数和十位数。
然后将乘数的十位数与被乘数相乘,得到第二个部分积的十位数和百位数,同时将个位数写在结果中。
然后将两个部分积相加,并将结果写在结果中的十位数和百位数上,以此类推,直到所有位数相乘完毕。
最后的结果即为乘法运算的结果。
4. 除法运算:除法运算是将一个数值除以另一个数值得到商和余数的过程。
解题时,将被除数分别除以除数的个位数、十位数、百位数等,得到部分商。
然后将部分商相加,得到最终的商。
如果能整除,则余数为零;否则,余数为被除数减去各位相除后的积。
最后的商和余数即为除法运算的结果。
二、逻辑运算的标准解题过程逻辑运算是根据一定的逻辑关系判断和推理的一种运算方式,包括与、或、非和异或等操作。
离散数学第二章命题逻辑等值演算
![离散数学第二章命题逻辑等值演算](https://img.taocdn.com/s3/m/6fe7f66b77c66137ee06eff9aef8941ea76e4b29.png)
再如 ┑p ∨ q 既是p →q的析取范式又是它的的合取范式
如果公式的范式不唯一则对于将公式按等值进行分类的利用价值就不高
p q (p → q)∧(q→p) (p∧q)∨(┓p∧┓q)
00
1
1
01
0
0
10
0
0
11
1
1
(0,0)与(1,1)为公式的成真赋值。 (0,1)与(1,0)为公式的成假赋值
命题公式的分类(根据公式在赋值下的真值情况进行分类) 1)若命题公式在它的各种赋值下取值均为真,则称命题公式是重言
式或永真式。 2)若命题公式在它的各种赋值下取值均为假,则称命题公式是矛盾
2
如:┐Q∧(P→Q) → ┐P
4
分析1:若要得出:当设 A为真,B为
假的情况不会出现,
5
那么A →B 为永真式。
6
可证明:设前件为真
7
分析2: 还可以从设 B为假,推出A
为真的情况不会出现(A为假),
9
证明: 设后件为假
8
那么A →B 为永真式。
1 0
((P→Q)∧( Q→R)) →(P→R)
不同真值表的公式 1)当命题变元确定后,通过五个连接词及其命题变元可以构成 无数个不 同表现形式的命题公式。 问题:这些不同形式的命题公式的真值表是否都不相同? 先看变元仅有两个p,q 那么关于这两个变元的公式的赋值仅有4组
(┐p ∨ q)∧(┐q∨┐p∨r)∧┐q
是含三个简单析取式的合取范式.
2、性质:
1)一个析取范式是矛盾式当且仅当它的每个简单合取式都是矛盾式
2)一个合取范式是重言式当且仅当它的每个简单析取式都是重言式
┐p ∧ P ∨ ┐ q∧ q ⇔ 0 ∨ 0 ⇔ 0
用等值演算法求命题公式
![用等值演算法求命题公式](https://img.taocdn.com/s3/m/a48a7e12590216fc700abb68a98271fe910eaf65.png)
用等值演算法求命题公式
用等值演算法求命题公式
《用等值演算法求命题公式》
等值演算法(Equational Algorithm)是一种基于等式的演算法,用于求解命题公式(Propositional Formula)的一种有效的方法。
它的目的是通过一系列的等式变换,使原始的命题公式变得更加简单,甚至可以得到一个简洁易懂的最终结果。
等值演算法主要包括以下几个步骤:
1. 首先,将原始的命题公式表示为一系列的等式,其中每个等式都有其特定的含义。
2. 然后,根据该公式的逻辑结构,挑选出一些可以用来进行等值变换的等式。
3. 接下来,依次应用等值变换规则,对这些等式进行变换,直到得到最终的等式,这就是命题公式的最终结果。
等值演算法可以有效地求解命题公式,它的强大之处在于:不仅可以有效地求解命题公式,而且可以得到一个简洁易懂的最终结果。
这使得等值演算法在数学逻辑、算法分析和计算机科学等领域都得到了广泛的应用。
解决计算机题的思维逻辑掌握计算机题解题技巧
![解决计算机题的思维逻辑掌握计算机题解题技巧](https://img.taocdn.com/s3/m/12a95f8f88eb172ded630b1c59eef8c75fbf959d.png)
解决计算机题的思维逻辑掌握计算机题解题技巧计算机题是计算机科学学习中必不可少的一部分,它提供了对学生计算机科学知识和解决问题能力的考核。
解决计算机题不仅要掌握相关的知识点,还需要具备一定的思维逻辑和解题技巧。
本文将介绍如何合理运用思维逻辑和技巧来解决计算机题。
一、理清题意,确定问题类型在解决计算机题时,首先要仔细阅读题目,理清题意。
有时候,题目中会有一些关键信息,可以帮助我们确定问题的类型。
例如,在一道编程题中,会给出输入和输出的格式要求,这样我们就知道需要用什么语言来编写程序和实现什么功能。
所以,通过仔细阅读题目并确定问题类型,可以帮助我们更好地解决计算机题。
二、分析问题,确定解题思路在解决计算机题时,要养成分析问题的习惯。
通过仔细观察题目,找出其中的关键信息,然后根据这些信息来寻找解题的思路。
有时候,我们可以把问题抽象成数学模型,通过分析模型来解决问题。
有时候,我们可以使用递归的思想来解决问题。
总之,通过分析问题,确定解题思路,可以为我们解决计算机题提供一定的指导。
三、运用知识和技巧,解决计算机题在解决计算机题中,我们应该充分运用自己所学的知识和技巧。
在编程题中,我们可以运用程序设计的基本方法和技巧,如循环、条件判断、数组等来解决问题。
在数据结构和算法题中,我们可以运用常见的数据结构和算法知识,如栈、队列、排序等来解决问题。
通过合理运用知识和技巧,可以更好地解决计算机题。
四、进行测试和调试,确保答案正确在解决计算机题后,我们应该进行测试和调试,确保我们的答案是正确的。
这一步骤非常重要,因为有时候我们的解题思路是正确的,但是由于某种原因导致程序运行不正确,所以我们需要进行测试和调试。
通过测试和调试,我们可以发现并修复程序中的错误,确保我们的答案是正确的。
五、总结经验,不断提高解题能力在解决计算机题的过程中,我们应该总结经验,不断提高解题能力。
在解决一个问题后,我们可以回顾整个解题过程,找出其中的亮点和不足之处,然后在下一次解题中加以改进。
用等值演算等方法求解实际问题
![用等值演算等方法求解实际问题](https://img.taocdn.com/s3/m/e2c69560a4e9856a561252d380eb6294dc882210.png)
用等值演算等方法求解实际问题等值演算是一种数学方法,用于求解实际问题。
它的基本思想是将问题中的各种概念与对象用等式表示,并通过对这些等式的推理和变换,得到问题的解。
等值演算常用于形式化的证明过程,也被广泛应用于计算机科学、人工智能和算法设计等领域。
下面将介绍等值演算的基本原理和应用。
等值演算的基本原理是等式的推理和变换。
等式是等值演算的基本元素,它表示两个表达式的相等关系。
等式可以由逻辑、代数和几何等不同的领域中的公理和定律推导出来。
等式的推理和变换是通过一系列等式变换规则来实现的,这些规则描述了等式的推理和变换过程。
等式变换规则包括等式的传递性、对称性、反射性等规则,以及运算的结合律、交换律、分配律等规则。
等值演算的应用非常广泛。
在代数中,等值演算常用于求解方程和证明等式的等价性。
例如,对于方程x^2 + 2x + 1 = 0,我们可以通过等值演算将其变换为(x + 1)^2 = 0,从而可以得到x = -1为方程的解。
在证明等式的等价性时,等值演算可以帮助我们将一个复杂的等式变换为一个简单的等式,从而简化证明过程。
在计算机科学中,等值演算常用于证明程序的正确性。
程序的正确性证明是一个非常重要的问题,特别是在安全关键系统和高可靠性系统中。
等值演算可以帮助我们证明程序的正确性,即程序的输出与预期的输出一致。
例如,对于一个程序P,我们可以通过等值演算推导出一个等式P(x) = y,其中x是输入,y是输出。
然后我们可以通过等值演算将等式P(x) = y变换为一个简单的等式,从而证明程序的正确性。
在人工智能中,等值演算常用于推理和推断。
等值演算可以帮助我们从一组已知的等式中推导出新的等式,从而推理出未知的信息。
例如,对于一个知识库KB和一个查询Q,我们可以通过等值演算从KB 中推导出一个等式KB |= Q,从而得出查询Q为真。
等值演算在人工智能中的应用非常广泛,特别是在专家系统、自动证明、自动规划和自动推理等领域。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
NOD EPTR = ^ NOD E;
NOD E= R ECO RD TA G: IN T EGER; R IGH T: NOD EPTR; CA SE TA G O F ±1: (L EFT: NOD EPTR ) ; ±2, 3: (S IT: IN T EGER ) ;
151
4 等值演算的实现
有了上面的基本操作, 就很容易实现其它( 1) 求合取范式的过程, 实际就是逐步对表达式
(10) PRO C IN - NO T (H EAD ) 否定深入操作, 进行消去等价连接词、消去蕴涵连接词、否定深入、按
将表达式的所有否定连接词′= ′从下往上逐步深入到 分配律 1 演算的过程。因此实现步骤可化为下列几步
( a^ b) ∨c 可转化为 ( a^ b, ∨, c) , = a^ b 可转化为 ( a, ^ , b) , 即原表达式可转化为 ( ( a, - > , b) , < - > , ( ( a, ^ , b) , ∨, c)
另外, 考虑联接词长度不一致, 定义一字符串数 组来存放它, 而同一变量在一表达式中可多次重复出 现, 为了便于识别不同变量, 也定义一数组用来存放 变量名, 并规定变量名只用一个字母表示。
信阳师范学院学报 (自然科学版) 第 12 卷 第 2 期 1999 年 4 月
Jou rna l of X inyang T eachers Co llege (N a tu ra l Science Edition)V o l. 12 N o. 2 A p r. 1999
命题逻辑等值演算的计算机求解方法Ξ
互换即可。 说明: 以上图示中 A 、B 、C 表示一个子表达式
结构, 可以是一个或多个结组成。
对 N 个变量分配不同的真值, 求出表达式真值的过 程, 因为共有 2N 种不同的分配方法, 所以对每种分配 方法执行 ZH I(H EAD ) 操作即可, 共需执行 2N 次 ZH I (H EAD ) 操作, 并输出每次的分配方法和表达式的结 果。
END , END 1 说明:
(1) TA G 为标志域, 其值为±1 时表示该结点为 表结点, 为±2 时表示该结点为变量结点, 为 3 时表 示该结点为联接词结点, 为负时表示该结点前有否定 联接词。
c) ) 其中 ( a- > b) 可转化为 ( a, - > , b) ,
( 2) S IT 存放变量或联接词在相应数组中的位 置。
图2 (7) PRO C X ISHOU (H EAD ) 吸收操作, 对应 公式 A ∨A < = > A , A ^ A < = > A A - > 3 3 - > A ] A
图3 ( 8) PRO C D EL - DJ (H EAD ) 消去等价联接 词 ′< - > ′操作, 按深度优先顺序从下往上逐步消去表 达式中的所有等价连接词′< - > ′, 对应公式 A < - > B < = > (A - > B ) ^ (B - > A )
变量的前面, 方法是将否定作用域下的所有表结点, (设存储结构已建好) :
变量结点的 TA G 求反, 连接词结点的 S IT 值 2、3 互
① D EL - DJ (H EAD ) {消去等价连接词},
换, 对应公式= (A ∨B ) < = > (= A ^ = B ) , = (A ^
② D EL - W H (H EAD ) {消去蕴涵连接词},
^ (B ^ C) < = > A ^ B ^ C, (A ) < = > A 如图 2。
(2) 表达式必须符合命题逻辑表达式所规定的语 法规则。
3 在此结构上基本操作的设计和实现
(1) FU N C CR EA T (H EAD , CH ) 创建函数, 由 输入的表达式串建立一个表达式, 根据存储结构的特 点, 按深度优先顺序递归地实现, 建立的过程中进行 表达式的分解并进行语法查错, 如有错误, 返回错误 位置, 如无错误, 返回 0。
( ( a, - > , b ) , < - > , ( ( a, ^ , b ) , ∨, c) ) , 其存储结构如图 1。
图1
此时 COU N T 值为 3,O PTR 存放{′a′, ′b′, ′c′}1 说明:
( 1) 在联接词优先级方面, 规定所有联接词为同 优先级, 按先后顺序运算, 但规定括号内的优先级比 括号外的优先级高, 因此可用括号来调整运算次序。
在以上各步中, 每一次操作都输出表达式即可输
应公式 A ∨ (B ^ C) < = > (A ∨B ) ^ (B ∨C)
出演算过程中的每一步, 考虑运算过程中会出现同一
层的多余的相同项和多余的括号, 在后两步过程中每
次操作执行吸收操作和去括号操作, 就可得到最终简
洁的合取范式。
( 2) 求析取范式的过程, 实际就是逐步对表达式
进行消去等价连接词、消去蕴涵接词、否定深入、按分
配律 2 演算的过程。因此实现步骤类似求合取范式可
图6
得, 只需将分配律 1 操作改为分配律 2 操作。
(12) PRO C FPL 2 (H EAD ) 分配律 2 操作, 对
(3) 求 N 个变量表达式真值表的过程, 实际就是
应公式 A ^ (B ∨C) < = > (A ^ B ) ∨ (B ^ C) 图示类似图 6, 只需将连接词结点的 S IT 域 2, 3
(2) PRO C D EL (H EAD ) 删除过程, 删除表达 式 H EAD 的整个存储结构, 可按深度优先顺序递归 地实现。
(3) PRO C OU T PU T (H EAD ) 输出过程, 输 出表达式 H EAD , 可按深度优先顺序递归地实现。
(4) PRO C CO PY (H EAD 1, H EAD 2) 复制过 程, 由 表 达 式 H EAD 1 的 结 构 复 制 一 个 表 达 式 H EAD 2 的结构, 类似输出过程, 在遍历 H EAD 1 结构 的过程中复制 H EAD 2 的结构。
(5) FU N C ZH I(H EAD ) 求值操作, 在给出一 组表达式中所有变量的值的情况下, 求整个表达式的 值, 可按深度先顺序递归地实现。
(6) PRO C D EL - KH (H EAD ) 去括号操作, 将 表达式中多余的括号去掉。
对应的公式为 A ∨ ( (B ∨C ) < = > A ∨B ∨C, A
初始化部分, 将 O PT 中存放{′< - > , ′- > ′, ′ ^ ′, ′∨′, ′ ′}, 其中规定′< - > ′为等价联接词, ′> ′为蕴涵联接词, ′^ ′为合取联接词, ′∨′为析取联接 词, ′= ′为否定联接词。 例如: 表达式
= ( a- > b) < - > ( ( a^ b) ∨c) 可转化为
and sto rage st ructu re of p ropo sit iona l log ic exp ression on the com p u ter and u sed to rea lise it s ba sic m an ip u la t ion and com p lex fo rm a l deduct ion on th is st ructu re.
Zhan L ing
(D ep t of M a th, X inyang T eachers Co llege. X inyang, H enan; Ch ina 464000)
Abstract A t t ribu te of genera lized list in da ta st ructu re is u sed to the design fo r log ica l
万继光 詹 玲
(信阳师范学院计算机系 1 河南, 信阳 464000) (信阳师范学院数学系 1 河南, 信阳 464000)
摘 要 探讨了利用数据结构中广义表的特性来设计命题逻辑表达式在计算机上的逻辑结
构和存储结构, 以及在这种结构上如何实现它的基本操作, 进而实现其它复杂的等值演算。
关键词 广义表; 命题逻辑; 等值演算; 联接词
参 考 文 献
1 严蔚敏, 吴伟民 1 数据结构 1 清华大学出版社, 19921
2 郑启华 1PA SCAL 程序设计 1 清华大学出版社, 19911 3 陈进元, 屈婉玲 1 离散数学 1 北京大学出版社, 19871
4 左孝凌, 李为钅监, 刘永才 1 离散数学 1 上海科学技术文献出版社, 19821
合适的存储结构, 进而在这种结构上设计它的基本操 一种是表结点, 第二种是变量结点, 第三种是联接词
作, 而其它复杂的等值演算就可利用这些基本操作来 结点, 其类 PA SCAL 语言形式说明如下:
实现。
T YPE
1 命题逻辑表达式的逻辑结构
命题逻辑表达式可以看作一个递归的表达式, 即 一个表达式可包含不同的子表达式, 而子表达式又可 包含其子表达式, 考虑其类似于数据结构中的广义 表, 可把其表达式分解成几部分作为广义表的元素, 而表达式本身即看作广义表。分解方法是把每一对括 号所包含的部分看作一个子表达式作为一部分, 每一 个联接词变量作为一部分, 即广义表的每一个元素可 作为表达式的子表达式、变量或联接词, 其中否定联 接词包含于其作用域的子表达式或变量中。 例如:
B ) < = > (= A ∨= B ) , 要求表达式中无′< - > ′, ′