逻辑式程序设计语言.ppt
《逻辑式程序设计语言.ppt》由会员分享,可在线阅读,更多相关《逻辑式程序设计语言.ppt(37页珍藏版)》请在优知文库上搜索。
1、第06章 逻辑式程序设计语言程序要对数据结构实施某个算法过程,算法实现计算逻辑 算法 = 逻辑 + 控制逻辑程序设计的基本观点是程序描述的是数据对象之间的关系。关系也是联系对象和对象、对象和属性的联系就是我们所说的事实。事实之间的关系以规则表述,根据规则找出合乎逻辑的事实就是推理逻辑程序设计范型是陈述事实、制定规则,程序设计就是构造证明。程序的执行就在推理谓词变元的个数称作目(arity),有单目、N目谓词之称 N-目谓词的例子。 谓词 目 含义 odd(X) 1 X是奇数 father(F,S) 2 F是S的父亲 divide(N,D,Q,R) 4 N除D得商Q和余数R 谓词例化 结果值 o
2、dd(2) False divide (23, 7, 3,2) Ture father (changshan, changping) True divide (23, 7, 3, N) N未例化, 不知真假谓词的量化量化谓词 结果值 Xodd(X) False Xodd(X) True X(X=2*Y+1odd (X) True XYdivide (X,3,Y,0) False XYdivide (X,3,Y,0) True, 如X =3,Y=1 XYdivide(X,3,Y,0) False, 但很难证明证明一个全称谓词是比较难的,因为最可靠的证明方法是枚举例证。 于是采取反证的方法,全称量
3、化的谓词取反量化谓词 取反Xodd(X) Xnot odd(X) 1Xodd(X) Xnot odd(X) 2X(X=2*Y+1odd(X) Xnot(X+2*Y+1odd(X) 3 Xnot(X=2*Y+1)or odd (X) 4 X(X=2*Y+1)and not add(X) 5XY divide (X,3,Y,0) XY not divide (X,3,Y,0) 6XY divide (X,3,Y,0) XY not divide (X,3,Y,0) 7XY divide (X,3,Y,0) XY not divide (X,3,Y,0) 8谓词演算的等价变换谓词演算的等价变换1以,
4、 消除、符号2化为前束范式,消除最外的符号,否定符号内移(XP(X) X( p(X)3用斯柯林变换消去存在量词 X(a ( X) b(X) Y c (X,Y) X(a (X) b(X) c (X, g(X)4 消除前束范式的全称量词 a(X) b(X) c (X,g(X) 一般谓词公式变换为子句的实例。一般谓词公式变换为子句的实例。号为号为“可推可推出出”5用分配率P(QR)=(PQ)(PR)化成合取范式 (a(X)c(X,g(X)(b(X)c(X,g(X) 经过以上变换,任何一复合公式均可成为如下形式: F = C1C2 Cn 且其中Ci称为子句 若以;代则有: Ci = L1 L2 Lv
5、= L1;L2;Lv 因此,任一公式均可化为连接的子句的集合6.2 自动定理证明自动定理证明 证明系统证明系统 事实即证明系统中的公理(axioms) 证明系统(proof system)是应用公理演绎出定理 (theorems)的合法演绎规则的集合 演绎也叫归约(deduction),是对证明系统中合法 推理规则的一次应用 演绎从公理导出结论(conclusion), 中间可利用以 这些规则演绎出的定理证明证明(proof)是个语句序列, 以每个语句得到证明而结束, 即每个句子要么演绎成公理, 要么演绎成前此导出的定理一个证明若有一个证明若有N个语句个语句(命题命题)则称则称N步证明步证明
6、反驳反驳(refutation)是一个语句的反向证明。是一个语句的反向证明。 它证明它证明 一个语句是矛盾的,一个语句是矛盾的, 即不合乎给定的公理即不合乎给定的公理 一个语句若能从公理出发推演出来,一个语句若能从公理出发推演出来, 则称则称合法合法语句语句, 任何合法语句也叫做任何合法语句也叫做定理定理(theorem) 从某一公理集合导出的所有定理集合称为从某一公理集合导出的所有定理集合称为理论理论(theory) 模型模型 从公理集合中导出定理集称之为从公理集合中导出定理集称之为理论理论, 有了理有了理论我们要解释它的语义必须借助某个论我们要解释它的语义必须借助某个模型模型(model)
7、。 因为形式系统只是符号抽象,借助模型我们可为每因为形式系统只是符号抽象,借助模型我们可为每个常量、函数、谓词符号找到真理性的解释。个常量、函数、谓词符号找到真理性的解释。 即定即定义每个论域,义每个论域, 并表明域上成员和常量公理之间的关并表明域上成员和常量公理之间的关系。系。 公理的谓词符号必须派定为域中对象的性质,公理的谓词符号必须派定为域中对象的性质, 函数派定为对域中对象的操作。函数派定为对域中对象的操作。 公理集合一般情况下只是定义的部分公理集合一般情况下只是定义的部分(偏偏)函数函数和谓词,和谓词, 是问题域的一个侧面。是问题域的一个侧面。 所以能满足该理论所以能满足该理论的模型
8、往往不止一个。的模型往往不止一个。例例 一个最简单的理论一个最简单的理论 公理集公理集: Xinterval(X)not interval (X+1) (a1) Xnot interval (X+1)interval(X) (a2)2=1+1 (a3) 从间隔数公理可导出定理从间隔数公理可导出定理: Xinterval (X)interval (X+2) (t1) Xinterval (X+2) interval(X) (t2)谓词谓词interval(间隔数间隔数)在整数域上有两个子域在整数域上有两个子域odd、even都能够满足都能够满足 间隔数理论不能证明间隔数理论不能证明interva
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 逻辑 程序设计语言
