代数等式理论的自动定理证明 计算机科学导论第一讲

Slides:



Advertisements
Similar presentations
简单迭代法的概念与结论 简单迭代法又称逐次迭代法,基本思想是构造不动点 方程,以求得近似根。即由方程 f(x)=0 变换为 x=  (x), 然后建立迭代格式, 返回下一页 则称迭代格式 收敛, 否则称为发散 上一页.
Advertisements

我们首先引入的计算概率的数学模型, 是在概率论的发展过程中最早出现的研究 对象,通常称为 古典概型.
概率论 第四节 等可能概型 ( 古典概型 ) 古典概型的定义 古典概率的求法举例 小结 布置作业.
2.5 微分及其应用. 三、可微的条件 一、问题的提出 二、微分的定义 六、微分的形式不变性 四、微分的几何意义 五、微分的求法 八、小结 七、微分在近似计算中的应用.
专题复习 --- 走进名著 亲近经典 读完《鲁滨孙漂流记》这本精彩的小说 后,一个高大的形象时时浮现在我的眼 前,他就是勇敢的探险家、航海家鲁滨 孙。他凭着顽强的毅力,永不放弃的精 神,实现了自己航海的梦想。 我仿佛看到轮船甲板上站着这样的一 个人:他放弃了富裕而又舒适的生活, 厌恶那庸庸碌碌的人生,从而开始了一.
四、后期物理复习备考建议 不同阶段复习课教学设计(知识建构)的目的 复习课教学 设计的目的 理 解 · 对某知识的全面、抽 象理解 · 抽象知识和具体情景 的转化 综 合 · 多知识点联合解决问 题 基本素质 · 审题、表达、审视答 案等基本能力 复习 ( 一 ) 复习(二) ☆ ☆☆☆ ☆☆  进行科学规划.
2016/9/41 12 年國教 入學方案宣導資料. 2016/9/42 安全快樂 健康發展 活力多元 創意發展 適性揚才 特色發展 務實致用 卓越發展 學前教育 國中小教育 高級中等教育 大專以上教育 教育促進個人向上發展教育促進個人向上發展 教育是國家最有利的投資教育是國家最有利的投資.
人的性别遗传 合肥市第四十九中学 丁 艳. 男女成对染色体排序图 1 、男性和女性各 23 对染色体有何异同 ? 哪 一对被称为性染色体 ? 2 、这两幅图中,哪幅 图显示的是男性的染色 体?哪幅图显示的是女 性染色体? 3 、图中哪条染色体是 Y 染色体?它与 X 染色体 在形态上的主要区别是.
专题培训 企业所得税汇算清缴 (2015年度).
概率.
第四章:长期股权投资 长期股权投资效果 1、控制:50%以上 有权决定对方财务和经营.
控制方长投下的子公司,需要编制合并报表的演示思路
专利技术交底书的撰写方法 ——公司知识产权讲座
600年前,鄭和率領世界上最強大的艦隊,浩浩蕩蕩的駛入印度洋,展開一場「文化帝國」的海上大秀。
苏教版小学语文 二年级下册(五~八)单元教材分析
1、一般地说,在生物的体细胞中, 和 都是成对存在的。
辨性别 A B. 辨性别 A B 第三节人类染色体与性别决定 昌邑市龙池初中 杨伟红 学习目标 1.理解人的染色体组成和传递规律。 2.解释人类性别决定的原理。 3.通过探究活动,解读数据了解生男生女的比例。
程序设计语言理论 计算机科学与技术学院 陈意云,
试验的全部结果所构成的区域长度(面积或体积)
新课程背景下高考数学试题的研究 ---高考的变化趋势
微積分 精華版 Essential Calculus
应用题的解法.
3.1 随机事件及其概率 3.2 随机变量及其概率分布 3.3 大数定律与中心极限定理
第二章 不等式與線性規劃 ‧2-1 一元二次不等式 ‧2-2 絕對不等式 ‧2-3 二元一次不等式的圖形 ‧2-4 線性規劃 總目錄.
图表题专项训练.
缤纷灿烂针织物.
™ 全球,唯一支持第三方自动部署的交易系统 中国产权交易所有限公司 二〇一四年十月 超级交易系统V1.0
从2010年江苏高考数学试题说开去 江苏省西亭高级中学 瞿国华.
长城国际酒店式公寓营销策划报告
全球最大电涡流缓速器供应商.
第一章 体育统计的基本知识 主讲教师:王丽艳 徐栋.
四种命题 班级:C274 指导教师:钟志勤 任课教师:颜小娟.
1.1.2 四 种 命 题.
中融资产-阳光城2号专项资产管理计划之推介材料
色 弱 與 色 盲.
遺傳 龍生龍,鳳生鳳 老鼠的兒子會打洞.
第五章 定积分及其应用.
宠物之家 我的宠物性别? 雌(♀) or 雄(♂) 第一阶段:我的宠物我做主 第二阶段:宠物“相亲记” 第三阶段:家族诞生
人感染H7N9禽流感影像检查解读.
情 景 导 入 社会风景 小孩的心    有一位单身女子刚搬了家,她发现隔壁住了一户穷人家,
XX信托 ·天鑫 9号集合资金信托计划 扬州广陵
第十八章 技术.
矿产资源储量管理
光度与辐射度基础 武汉约克仪器公司 郑兆平
概率论与数理统计模拟题(3) 一.填空题 3且 1.对于任意二事件A 和 B,有P(A-B)=( )。 2.设 已知
§3.7 曲率 一、弧微分 二、曲率及其计算公式 三、曲率圆与曲率半径 曲线的弯曲线程度与哪些因素有关. 怎样度量曲线的弯曲程度?
如何寫工程計畫書 臺北市童軍會考驗委員會 高級考驗營 版.
守恒定律 守恒定律 习 题 习题总目录.
2019年1月16日9时17分 概率论 Probability 江西财经大学 2017年 2019年1月16日9时17分.
第6章 计算机的运算方法 6.1 无符号数和有符号数 6.2 数的定点表示和浮点表示 6.3 定点运算 6.4 浮点四则运算
第一模块 向量代数与空间解析几何 第四节 平面及其方程 一、平面的点法式方程 二、平面的一般方程 三、两平面的夹角.
等差数列的前n项和.
导数的应用 ——函数的单调性与极值.
§1.5 分块矩阵.
第一章 测量误差与实验不确定度.
概率论 ( Probability) 2016年 2019年4月15日5时31分.
3.1.3 二倍角的 正弦、余弦、正切公式.
苏 教 版 五 年 级 数 学(上) 用字母表示数 青阳体仁小学 胡春雅.
《概率论》总复习.
第五节 力的分解.
107上五年級〈社會科〉學校日簡報 教師個人檔案 ★民國77年8月開始任職本校 ★在本校擔任自然科任1年、導師8年、
6. 續三角學 (a) 如何記住三角恆等式? 三角恆等式巧記Tips: 轉化角度為180o± 及360o± 的三角比。
不等式與線性規劃 ‧一元二次不等式 ‧絕對不等式 ‧二元一次不等式的圖形 ‧線性規劃.
第三模块 函数的微分学 第一节 导数的概念 一、瞬时速度 曲线的切线斜率 二、导数的定义 三、导数的几何意义 四、导数的物理意义 五、导函数
數學遊戲二 大象轉彎.
欢迎乘座远航号! 让我们一起去知识的海洋寻宝吧!
三角比的恆等式 .
統計網路學習館 線性迴歸.
地基附加应力之二——布辛奈斯克解 布辛奈斯克解:竖向集中力P作用下的地基附加应力 竖向集中力作用下的地基应力 P O r y b M´ x
三角 三角 三角 函数 已知三角函数值求角.
Presentation transcript:

代数等式理论的自动定理证明 计算机科学导论第一讲 计算机科学技术学院 陈意云 0551-63607043, yiyun@ustc.edu.cn http://staff.ustc.edu.cn/~yiyun/

课 程 内 容 课程内容 围绕学科理论体系中的模型理论, 程序理论和计算理论 1. 模型理论关心的问题 给定模型M,哪些问题可以由模型M解决;如何比较模型的表达能力 2. 程序理论关心的问题 给定模型M,如何用模型M解决问题 包括程序设计范型、程序设计语言、程序设计、形式语义、类型论、程序验证、程序分析等 3. 计算理论关心的问题 给定模型M和一类问题, 解决该类问题需多少资源 本次讲座基于中学的等式推理,与这些内容关系不大 2

课 程 内 容 本讲座内容 以代数等式理论中的定理证明为例,介绍怎样从中学生熟知的等式演算方法,构造等式定理的自动证明系统,即将问题变为可用计算机求解 有助于理解计算思维的含义 计算思维(译文) 运用计算机科学的基础概念进行问题求解、系统设计、以及人类行为理解等涵盖计算机科学之广度的一系列思维活动 3

讲 座 提 纲 基本知识 项重写系统 良基归纳法 Knuth-Bendix完备化过程 代数项、代数等式、演绎推理规则、代数等式理论、等式定理证明方法 项重写系统 终止性、良基关系、合流性、局部合流性、关键对 良基归纳法 仅举例说明 Knuth-Bendix完备化过程 也仅举例说明 4

基 本 知 识 代数项和代数等式(仅涉及一个类型) 代数项 例:自然数类型nat 0, 1, 2, … : nat 常量 x, y : nat 变量 +, f : nat  nat  nat 二元函数 S : nat  nat 一元的后继函数 0, x, x + 1, x + S(y)和f(100, y) 都是代数项 代数等式 例: x + 0 = x,x + S(y) = S(x + y) x + y = z + 5 5

基 本 知 识 代数项和代数等式(涉及多个类型) 例:定义有限表:同类数据的有限序列的集合  6, 17, 50, 28, 188, 92, 30, 67, 15  18.8, 9.2, 50, 77, 8.6, 5.5, 40.0  a, b, c, d, e, f, …, z (非数值数据) 上述数据涉及两个类型  序列中元素的类型 — 数值或非数值类型  这些序列所属的类型,称为表(list)类型 —非数值类型 中学所学的代数概念在此已经扩展 6

基 本 知 识 代数项和代数等式(涉及多个类型) 代数项(表类型list ,表元类型atom)  x : atom, l : list 变量  nil : list 零元构造函数 (常量)  cons : atom  list  list 构造函数  first : list  atom,rest : list  list 观察函数  nil, cons(x, l), rest(cons(x, nil)), rest(cons(x, l)), cons(first(l), rest(l)) 都是代数项。用T 表示项集 代数等式(方括号列出等式中出现的变量及类型) first(cons(x, l)) = x [x : atom, l : list] rest(cons(x, l)) = l [x : atom, l : list] 7

基 本 知 识 等式证明 例:基于一组等式(公式、公理): x + 0 = x 和 x + S(y) = S(x + y) 怎么证明等式: x + S(S(y)) = S(S(x + y)) ? 需要有推理规则 8

基 本 知 识 等式证明的演绎推理规则 自反公理:M  M  对称规则: M = N  传递规则: N = M  加变量规则: 等价代换规则: M = N  N = M  M = N  N = P  M = P  M = N  M = N , x : s x不在中 M = N , x : s P = Q  P/xM = Q/xN  P , Q 是类型s的项 9

基 本 知 识 等式推理的例子 等价代换规则: M = N , x : s P = Q  P/xM = Q/xN  等式公理:x + 0 = x和x + S(y) = S(x + y) 证明等式: x + S(S(y)) = S(S(x + y)) 证明: x + S(S(y)) 根据x + S(z) = S(x + z),S(y) = S(y) = S(x + S(y)) 使用等价代换规则得到第一个等式 S(x + S(y)) 根据S(z) = S(z),x + S(y) = S(x + y) = S(S(x + y)) 使用等价代换规则得到第二个等式 x + S(S(y)) = S(S(x + y)) 根据传递规则和上面两等式 M = N , x : s P = Q  P/xM = Q/xN  10

基 本 知 识 等式推理的例子 等价代换规则: M = N , x : s P = Q  P/xM = Q/xN  等式公理:x + 0 = x和x + S(y) = S(x + y) 证明等式: x + S(S(y)) = S(S(x + y)) 证明: x + S(S(y)) = S(x + S(y)) 我们的证明演算习惯见左边 = S(S(x + y)) 它是基于刚才所介绍的演绎推理的 若希望计算机来自动推理,严格的推理规则是必 须提供的 M = N , x : s P = Q  P/xM = Q/xN  11

基 本 知 识 代数等式理论(algebraic equation theory) 代数等式理论的定理证明 常用证明方法 在项集T 上从一组等式E(公理)能推出的 所有等式的集合称为一个等式理论(通俗的解释) 代数等式理论的定理证明 判断等式 M = N []是否在某个代数等式理论中 常用证明方法 把M和N分别化简, 若它们的最简形式一样则相等 分别证明M和N都等于L 证明MN等于0 还有其他方法 12

基 本 知 识 哪种证明方法最适合于计算机自动证明? 把M和N分别化简, 若它们的最简形式一样则相等 若基于等式E,通过等式证明,把M和N化简到最简形式,则这种方式相对简单,便于自动证明 并且采用适合于计算机使用的单向重写规则 分别证明M和N都等于L 自动选择L是非常困难的 证明MN等于0 不适用于非数值类型的项,例如先前给出的atom类型的表 13

项 重 写 系 统 自动证明要解决的问题 项集T 上等式集E中的等式要定向为单向项重写规则, 构成重写规则集R, 以方便计算机对项化简 若E是:x + 0 = x,x + S(y) = S(x + y) x  0 = 0,x  S(y) = x  y + x 定向成如下的项重写系统R x + 0  x,x + S(y)  S(x + y) x  0  0,x  S(y)  x  y + x 记号M  N:用一条规则可将项M归约成N 若规则LRR,含z一次出现的项T,以及使得 [SL/z]TT的代换S,则[SL/z]T  [SR/z]T “”既用于规则,也用于项的归约 14

项 重 写 系 统 自动证明要解决的问题 项集T 上等式集E中的等式要定向为单向项重写规则, 构成重写规则集R, 以方便计算机对项化简 若E是:x + 0 = x,x + S(y) = S(x + y) x  0 = 0,x  S(y) = x  y + x 定向成如下的项重写系统R x + 0  x,x + S(y)  S(x + y) x  0  0,x  S(y)  x  y + x 记号M  N:用一条规则可将项M归约成N 例:x + S(S(y)) “”既用于规则,也用于项的归约 15

项 重 写 系 统 自动证明要解决的问题 项集T 上等式集E中的等式要定向为单向项重写规则, 构成重写规则集R, 以方便计算机对项化简 若E是:x + 0 = x,x + S(y) = S(x + y) x  0 = 0,x  S(y) = x  y + x 定向成如下的项重写系统R x + 0  x,x + S(y)  S(x + y) x  0  0,x  S(y)  x  y + x 记号M  N:用一条规则可将项M归约成N 例:x + S(S(y))  S(x + S(y)) [S(x + S(y))/z]z  [S(S(x + y))/z]z 代换S:xx yS(y) 16

项 重 写 系 统 自动证明要解决的问题 项集T 上等式集E中的等式要定向为单向项重写规则, 构成重写规则集R, 以方便计算机对项化简 若E是:x + 0 = x,x + S(y) = S(x + y) x  0 = 0,x  S(y) = x  y + x 定向成如下的项重写系统R x + 0  x,x + S(y)  S(x + y) x  0  0,x  S(y)  x  y + x 记号M  N:用一条规则可将项M归约成N 例:x + S(S(y))  S(x + S(y))  S(S(x + y)) 子项能与第2条规则的左部匹配 17

项 重 写 系 统 自动证明要解决的问题 问题1:如何从E得到R,保证项的化简能终止 例:若有规则 x + y = y + x,不管怎么定向都有 a + b  b + a  a + b  … 问题2:如何从E得到R,保证对项采用不同化简 策略所得最简项是唯一的(合流性) E: = S(), Eq(x, x) = true, Eq(x, S(x)) = false R:  S(), Eq(x, x)  true, Eq(x, S(x))  false 18

项 重 写 系 统 自动证明要解决的问题 问题1:如何从E得到R,保证项的化简能终止 例:若有规则 x + y = y + x,不管怎么定向都有 a + b  b + a  a + b  … 问题2:如何从E得到R,保证对项采用不同化简 策略所得最简项是唯一的(合流性) R:  S(), Eq(x, x)  true, Eq(x, S(x))  false 则有: Eq(, )  true Eq(, )  Eq(, S())  false 问题3:如何从E得到R,使得E和R确定同样的代 数理论,即在E中能证则在R中也能证(完备性) 19

项 重 写 系 统 问题一:终止性 1. 终止性 项集T 上的R不存在无穷归约序列M0M1M2  …, 即: 任何项都能归约到范式(不能再归约的项) 2. 有时很难对等式定向,以得到终止的重写系统 例如:对由三角函数公式构成的等式系统 和角公式: sin(+) = sin cos + cos sin, … 差角公式: sin(  ) = sin cos  cos sin, … 积化和差: sin cos = (sin(+)+sin())/2, … 和差化积: sin+sin = 2sin((+)/2)cos(()/2), … … … 20

项 重 写 系 统 问题一:终止性 3. 定义:良基关系(良基:well-founded) 集合A上的二元关系是良基的,若不存在A上元 素的无穷递减序列a0  a1  a2 …(a  b iff b  a) 例:自然数上的‘<’关系是良基的,但‘’关系不是 4. 若项集T 和良基集A有映射f :T A, 满足 T 上任意归约序列 M0 M1 M2 …  Mn f f f f A上存在递减序列 a0  a1  a2  …  an 则T 上不存在无穷的归约序列 21

项 重 写 系 统 问题一:终止性 5. 定理 令R是项集T 上的一个重写系统,若能找到有良 基关系的集合A和映射f :T A,使得对R中每条 规则L R都有f (L)  f (R) ,那么R是终止的 注:由此定理,判断R的终止性成为可能 6. f 的选择 基于项的语法特点,或者给项指派一种语义 例1(基于语法特点:根据两边项语法上的繁简) first(cons(x, l))  x rest(cons(x, l))  l 22

项 重 写 系 统 问题一:终止性 例2(逻辑运算系统)  x  x :就是C中的&&  (x  y)  (x  y) :就是C中的 ||  (x  y)  (x  y) :就是C中的! x  (y  z)  (x  y)  (x  z) (y  z)  x  (y  x)  (z  x) 23

项 重 写 系 统 问题一:终止性 22 例2(逻辑运算系统,给项指派一种语义)  x  x A  N  0, 1  (x  y)  (x  y) A(x, y) = x + y + 1  (x  y)  (x  y) A(x, y) = x  y x  (y  z)  (x  y)  (x  z) A(x) = 2x (y  z)  x  (y  x)  (z  x) 语义指派f 应用到T 、、 和的结果分别是A、 A、A和A,后三者都是A上的二元或一元函数 对每条规则L  R,都有f (L)  f (R) 规则1:x >1, 有 > x 规则2:x, y >1, 有2(x+y+1) = 2x2y2 > 2x2y 22 x 24

项 重 写 系 统 问题二:合流性 1. 记号 MN:M经若干步(含0步)重写后得到N NM:若有MN M  N:若存在P,使得MP且NP 2. 定义 令R是项集T 上的重写系统,若N  M  P 蕴 涵N    P,则R是合流的 3. 定义 令R是项集T 上的重写系统,若N  M  P 蕴涵N    P,则R是局部合流的 局部合流关系严格弱于合流关系 先考虑局部合流的判定方法,然后再考虑合流的判定方法 25

项 重 写 系 统 插曲 在介绍局部合流性之前,先介绍代数项的树形表示 代数项cons(first(cons(x, l)), rest(cons(y, l)))的树形 表示 倒长的树:根在上,叶在下 每棵子树代表一个子项,整个树 代表完整的代数项 cons rest first y l x 26

项 重 写 系 统 局部合流性的判定(问题二的子问题) 1. 讨论所选用的例子 函数:nil : list cons : atom  list  list first : list  atom,rest : list  list cond : bool  list  list  list 等式: first(cons(x, l)) = x, rest(cons(x, l)) = l, cons(first(l), rest(l)) = l, … … 下面的讨论针对如下两条重写规则: rest(cons(x, l))  l cons(first(l), rest(l))  l 27

项 重 写 系 统 局部合流性的判定(问题二的子问题) (1) 无重叠的归约 归约规则: rest(cons(x, l))  l (规则LR) cons(first(l), rest(l))  l (规则LR) 待归约项: cond (B, rest(cons s l), cons(first(l), rest(l)) )  方式1: 原式  cond(B, l, cons(first(l), rest(l)) )  cond(B, l, l)  方式2: 原式  cond (B, rest(cons s l), l) 特点:M中无重叠子项的归约相互不受影响 28

项 重 写 系 统 局部合流性的判定 cond (B, rest(cons s l), (1) 无重叠的归约 图示: LR 和LR是规则 图中SL和SR分别表示 代换S作用于L的 结果 S : T T 代换S的最主要部分 是把变量映射到项 cond (B, rest(cons s l), cons(first(l), rest(l))) M SL SL SR SR 29

项 重 写 系 统 局部合流性的判定(问题二的子问题) (2) 平凡的重叠 归约规则: rest(cons(x, l))  l (规则LR) cons(first(l), rest(l))  l (规则LR) 待归约项: rest(cons(x, cons(first(l), rest(l)))  方式1: 原式  cons(first(l), rest(l))  l  方式2: 原式  rest(cons(x, l))  l 30

项 重 写 系 统 局部合流性的判定(问题二的子问题) (2) 平凡的重叠 归约规则: rest(cons(x, l))  l (规则LR) cons(first(l), rest(l))  l (规则LR) 待归约项: rest(cons(x, cons(first(l), rest(l))) 特点: SL是SL的子项,且S把L中的某变量(这里是l)用 由SL构成的项代换 不同的第1步归约不会影响局部合流,但合流所 需归约步数可能不一样(取决于R中有几个l) 31

项 重 写 系 统 局部合流性的判定 rest(cons(x, (2) 平凡的重叠 cons(first(l), rest(l))) 图示: SL是SL的子项,且S把 L中的某变量x用有SL 构成的项代换 不同的第1步归约 不会影响局部合流, 但合流所需归约 步数可能不一样 rest(cons(x, cons(first(l), rest(l))) SL SL SR SR 32

项 重 写 系 统 局部合流性的判定(问题二的子问题) (3) 非平凡的重叠 归约规则: rest(cons(x, l))  l (规则LR) cons(first(l), rest(l)) l (规则LR) 待归约项: rest(cons(first(l), rest(l)))  方式1: 原式  rest(l) (用规则LR)  方式2: 原式  rest(l) (用规则LR) 该例比较特殊,都一步归约就到范式 33

项 重 写 系 统 局部合流性的判定(问题二的子问题) (3) 非平凡的重叠 归约规则: rest(cons(x, l))  l (规则LR) cons(first(l), rest(l)) l (规则LR) 待归约项: rest(cons(first(l), rest(l))) 特点: SL在SL的非变量位置 LR 或LR的使用都可能使对方在原定位置 不能使用,故不能保证局部合流 34

项 重 写 系 统 局部合流性的判定 (3) 非平凡的重叠 rest(cons(first(l), rest(l))) 图示: SL在SL的非变量位置 LR或LR的使用 都可能使对方在原定 位置不能使用,故不 能保证局部合流 rest(cons(first(l), rest(l))) SL SL SR SR ???  35

项 重 写 系 统 局部合流性的判定 若所有含非平凡重叠的项都能局部合流, 则R也能 把对所有含非平凡重叠的项的检查缩小为对有限的重写规则集的检查 若由R的重写规则确定的所有关键对(critical pair)都能归约到同一个项,则所有项的非平凡重叠都能局部合流(课堂上不介绍) 例:重写规则 rest(cons(x, l))  l,和 cons(first(l), rest(l))  l 会形成两个关键对 36

项 重 写 系 统 第1个关键对:(课堂上不介绍) 选适当的代换,使得两规则代换后绿色部分一样 cons(first(l), rest(l))  l rest(cons(x, l))  l 第1条规则中的l用cons(x, l)代换后, 其左部是项: cons(first(cons(x, l)), (rest(cons(x, l))) 用这两条规则化简上述项可得第1个关键对:  cons(x, l), cons(first(cons(x, l)), l)  归约关键对:cons(x, l)已经是范式 cons(first(cons(x, l)), l)  cons(x, l) 第1个关键对能归约到同一个项 37

项 重 写 系 统 第2个关键对:(课堂上不介绍) 选适当的代换,使得两规则代换后绿色部分一样 cons(first(l), rest(l))  l rest(cons(x, l))  l 第2条规则中的x和l分别代换成first(l)和rest(l)后,其左部是项: rest(cons(first(l), rest(l))) 用这两条规则化简上述项可得第2个关键对:  rest(l), rest(l)  显然,第2个关键对也能归约到同一个项 38

项 重 写 系 统 局部合流性的判定 定理 一个重写系统R是局部合流的,当且仅当对每个关键对M, N有M    N 如果一个有限的重写系统R是终止的,那么该定理就给出一个算法,可用于判定R是否局部合流 39

项 重 写 系 统 局部合流、终止和合流之间的联系 定理 令R是终止的重写系统,那么R是合流的当且仅当它是局部合流的 合流蕴含局部合流(这是显然的) 反方向蕴含的证明需要使用良基归纳法 40

良 基 归 纳 法 良基归纳法 用一个简单例子说明它比自然数归纳法更一般 证明:对任何自然数的有限集合,每次删除一个元 素,最终会到达空集 证明:对任何自然数的有限集合,每次删除一个元 素,最终会到达空集 1. 若忽略集合中元素的个性,只关心集合中元素 的个数,则可以用自然数归纳法 2. 若关注元素个性(虽无必要)  :集合之间的归约 规则: {x1, …, xn}{x2, …, xn} 其中x1是左边集合的任意元素 3.良基关系:A  B则A  B {0, 1, 2} {1, 2} {0, 2} {0, 1} {0} {1} {2}  41

良 基 归 纳 法 良基归纳法 需要证明:任何自然数的有限集合可归约到空集 1. 对所有的归约路径进行归纳 2. 良基归纳证明 归纳基础:经0步归约到 归纳假设:对所有的s  s1, s  s2, …, s  sn, s1, s2, …, sn都能归约 到 归纳证明:证明s能归约到 {0, 1, 2} {1, 2} {0, 2} {0, 1} {0} {1} {2}  42

良 基 归 纳 法 良基归纳法(课堂上不介绍) 令是集合A上的一个良基关系,令P是A上的某 个性质。若每当所有的P(b) (b  a)为真则P(a)为真 (即a.(b.(b  a  P(b))  P(a)) ), 那么,对所有的aA,P(a)为真 证明步骤: 归纳基础: 对任意不存在b使得b  a的a,证明P(a) 在不存在b使得b  a的情况下, b.(b  a  P(b))  P(a) 等价于 true  P(a) 等价于 P(a) 43

良 基 归 纳 法 良基归纳法(课堂上不介绍) 令是集合A上的一个良基关系,令P是A上的某 个性质。若每当所有的P(b) (b  a)为真则P(a)为真 (即a.(b.(b  a  P(b))  P(a)) ), 那么,对所有的aA,P(a)为真 证明步骤: 归纳基础: 对任意不存在b使得b  a的a,证明P(a) 归纳步骤:对任意存在b使得b  a的a, b.(b  a  P(b))  P(a)在此得出归纳假设: 假定对所有b  a的b,P(b)为真,然后证明: 归纳证明:证明P(a)为真 44

良 基 归 纳 法 用良基归纳法证明合流性 证明:若有M N和 M P,则N  P 若MN, 则规定NM。因系统终止, 故是良基的 归纳基础: 若不存在N使得N  M, 即M是范式,显然M具有 要证明的性质 因为M只能0步归约到 M本身,图上的N和P都只 能是M M N P (M) M 45

良 基 归 纳 法 用良基归纳法证明合流性 证明:若有M N和 M P,则N  P 若MN, 则规定NM。因系统终止, 故是良基的 归纳步骤: 假定M N1 N并且 M P1 P (1) 根据局部合流性, 存在Q,使得N1 Q P1 M N1 P1 N P 46

良 基 归 纳 法 用良基归纳法证明合流性 证明:若有M N和 M P,则N  P 若MN, 则规定NM。因系统终止, 故是良基的 归纳步骤: 假定M N1 N并且 M P1 P (1) 根据局部合流性, 存在Q,使得N1 Q P1 M N1 P1 Q N P 47

良 基 归 纳 法 用良基归纳法证明合流性 证明:若有M N和 M P,则N  P 若MN, 则规定NM。因系统终止, 故是良基的 归纳步骤: 假定M N1 N并且 M P1 P (2) 由归纳假设, 存在R, 使得N R Q M N1 P1 Q N P 48

良 基 归 纳 法 用良基归纳法证明合流性 证明:若有M N和 M P,则N  P 若MN, 则规定NM。因系统终止, 故是良基的 归纳步骤: 假定M N1 N并且 M P1 P (2) 由归纳假设, 存在R, 使得N R Q M N1 P1 Q N R P 49

良 基 归 纳 法 用良基归纳法证明合流性 证明:若有M N和 M P,则N  P 若MN, 则规定NM。因系统终止, 故是良基的 归纳步骤: 假定M N1 N并且 M P1 P (3) 再由归纳假设, 存在S, 使得R  S P M N1 P1 Q N R P 50

良 基 归 纳 法 用良基归纳法证明合流性 证明:若有M N和 M P,则N  P 若MN, 则规定NM。因系统终止, 故是良基的 归纳步骤: 假定M N1 N并且 M P1 P (3) 再由归纳假设, 存在S, 使得R  S P (4) N  P得证 M N1 P1 Q N R S P 51

Knuth-Bendix完备化过程 问题三:完备性 回顾 最适合于计算机自动证明代数等式M=N的方式: 由定向代数等式系统E来得到等价的重写系统R,需解决三个问题:终止性、合流性和完备性 完备性:从E可得到R,E和R确定同样的代数理论 概要介绍Knuth-Bendix完备化过程 给出一个完备化过程不终止的例子。由此可知,并非对任何E都可以得到与之有同样代数理论的R 52

Knuth-Bendix完备化过程 Knuth-Bendix完备化过程的目的 完备化过程的目的 为一个代数等式系统E,构造一个确定同样代数理论的终止且合流的重写系统R 53

Knuth-Bendix完备化过程 Knuth-Bendix完备化过程简介 1. 把E定向成一个终止的重写系统R (若定向失败,则完备化过程失败) 2. 检查R的局部合流性并进行完备化 for(R的每个关键对M, N) { if (不具备M  N){ 把MN或NM加入R(原因稍后解释) } } (过程可能因R不断地被加入规则而不终止) 3. 最终的R为所求 54

Knuth-Bendix完备化过程 例:完备化过程不终止 作为输入的等式系统E如下 f(x)  f(y) = f(x + y) (x + y) + z = x + (y + z) 1. 先定向成一个终止的重写系统R f(x)  f(y)  f(x + y) (x + y) + z  x + (y + z) 2. 检查局部合流性并进行完备化 55

Knuth-Bendix完备化过程 例:完备化过程不终止 作为输入的等式系统E如下 f(x)  f(y) = f(x + y) (x + y) + z = x + (y + z) 1. 先定向成一个终止的重写系统R f(x)  f(y)  f(x + y) (x + y) + z  x + (y + z) 2. 检查局部合流性并进行完备化 (1) 把两条规则左部的绿色部分进行合一,产生一 个临界对 f(x + y) + z, f(x) + (f(y) + z)  临界对的两个项都已最简,这个临界对不能合流 因第2条规则左部的合一结果: (f(x)  f(y)) + z 56

Knuth-Bendix完备化过程 例:完备化过程不终止 作为输入的等式系统E如下 f(x)  f(y) = f(x + y) (x + y) + z = x + (y + z) 1. 先定向成一个终止的重写系统R f(x)  f(y)  f(x + y) (x + y) + z  x + (y + z) 2. 检查局部合流性并进行完备化 (1) 把两条规则左部的绿色部分进行合一,产生一 个临界对 f(x + y) + z, f(x) + (f(y) + z)  (2) 增加重写规则f(x + y) + z  f(x) + (f(y) + z) 因第2条规则左部的合一结果: (f(x)  f(y)) + z 57

Knuth-Bendix完备化过程 例:完备化过程不终止 解释:增加规则f(x + y) + z  f(x) + (f(y) + z)的原因 在E中可证f(x + y) + z和f(x) + (f(y) + z)相等 等式:f(x)  f(y) = f(x + y)和(x + y) + z = x + (y + z) 证明:f(x + y) + z = f(x)  f(y) + z = f(x) + (f(y) + z) 在未加上述重写规则R中证明不了, 即R不完备: 在R中能证的等式在E中能证,但存在E中能证而在R中不能证的等式 向R中加规则是为了完备性 58

Knuth-Bendix完备化过程 例(续) 1. 先定向成一个终止的重写系统R f(x)  f(y)  f(x + y) (x + y) + z  x + (y + z) 2. 检查局部合流性并进行完备化 (1) 产生一个临界对 f(x + y) + z, f(x) + (f(y) + z)  (2) 增加重写规则f(x + y) + z  f(x) + (f(y) + z) (3) R扩大为: f(x)  f(y)  f (x + y) f(x + y) + z  f(x) + (f(y) + z) 59

Knuth-Bendix完备化过程 例(续) 1. 先定向成一个终止的重写系统R f(x)  f(y)  f(x + y) (x + y) + z  x + (y + z) 2. 检查局部合流性并进行完备化 (1) 产生一个临界对 f(x + y) + z, f(x) + (f(y) + z)  (2) 增加重写规则f(x + y) + z  f(x) + (f(y) + z) (3) R扩大为: f(x)  f(y)  f (x + y) f(x + y) + z  f(x) + (f(y) + z) 两条规则中的绿色部分也可以合一 60

Knuth-Bendix完备化过程 例(续) 1. 先定向成一个终止的重写系统R f(x)  f(y)  f(x + y) (x + y) + z  x + (y + z) 2. 检查局部合流性并进行完备化 (1) 产生一个临界对 f(x + y) + z, f(x) + (f(y) + z)  (2) 增加重写规则f(x + y) + z  f(x) + (f(y) + z) (3) R扩大为: f(x)  f(y)  f (x + y) f(x + y) + z  f(x) + (f(y) + z) 将产生无数规则: f n(x + y) + z  f n(x) + (f n(y) + z) 完备化过程因不断产生新的规则而不终止 61

自 动 定 理 证 明 不同逻辑的自动定理证明方法可能不一样 本讲座介绍代数等式理论的自动定理证明,并未 彻底解决 其他还有: 命题逻辑的自动定理证明 几何定理的自动证明 … … 多种理论组合的自动定理证明 其中有些已彻底解决,有些在一定约束下可以解决 62

构造性证明与传统证明对比 传统证明的一个例子 证明 根据 是有理数或无理数来讨论 若 是有理数,则取x = 3 若 是无理数,则取x = 根据 是有理数或无理数来讨论 若 是有理数,则取x = 3 若 是无理数,则取x = 这种非构造性证明不太可能由计算机自动得到 63

小 结 本讲座小结 自动定理证明的应用 相关课程 以代数等式理论中的定理证明为例,介绍怎样从熟知的等式演算方法,构造自动定理证明系统 小 结 本讲座小结 以代数等式理论中的定理证明为例,介绍怎样从熟知的等式演算方法,构造自动定理证明系统 不同逻辑的自动定理证明方法不同 自动定理证明的应用 集成电路设计 程序验证 程序分析 相关课程 数理逻辑、人工智能 64

小 结 工具 交互式定理证明辅助工具Coq http://coq.inria.fr/,获ACM 2013年度软件系统奖 自动定理证明器Z3 小 结 工具 交互式定理证明辅助工具Coq http://coq.inria.fr/,获ACM 2013年度软件系统奖 自动定理证明器Z3 1. http://research.microsoft.com/en-us/um/ redmond/projects/z3/old/index.html 2. http://z3.codeplex.com/,获ACM 2015年度编程语言软件奖 65

小 结 参考文献 Daniel Kroening and Ofer Strichman,Decision 小 结 参考文献 Daniel Kroening and Ofer Strichman,Decision Procedures: An Algorithmic Point of View (Texts in Theoretical Computer Science. An EATCS Series) 陈意云、张昱,程序设计语言理论(第二版),高等教育出版者,2010年2月 备注:本次课的内容取自该书前两章中有关代数数据类型的部分 66