自动定理证明算法设计(-)

原创 2005年05月14日 23:25:00

由于本问题的难度,目前先降低实现目标。

初步定为:

1.支持基本运算 取反,括号处理

2.支持 蕴涵,交换律,结合律,摩根定律

3.支持复杂组合,只要仅通过上面规则就可以化简最后的合取式或析取式

基本想法是对于公式L1,L2,先将其二者化简到最简的合取式或最简的析取式,再通过交互律验证二者是否相等。

算法:

bool processing(L1,L2)

{

1执行L1所有蕴涵

2执行L2所有蕴涵

3执行L1所有取反

4执行L2所有取反

5去除L1所有多余括号

6去除L2所有多余括号

return prove(L1,L2);//按照交换律为依据证明L1,L2是否可相互推导

}

bool prove(L1,L2){

if(L1为原子式&&L2为原子式){

if((L1==L2))
 {
  return true;
 }
else retrun false;
}

if(L1,L2均有连接词){

将L1,L2分别按照连接词划分为子公式

取L1第一个子公式L1a,和第一个连接词后面的公式序列加连接词构成的序列L1b

for-each(对L2中每个子公式L2a,及其他子公式构成的序列L2b){

if(prove(L1a,L2a)&&prove(L1b,L2b)) 
   {
    return true;
   }

}//endfor

}

//其他情况

return false;

}

蕴涵操作,取反,去括号,都按照递归的方法

先看是否为原子公式,直接操作。

如果有连接词,则划分子公式,分别操作,再组合结果。

目前前面算法都已实现,运行良好。

几个技术点:

1.证明过程的记录与表示,可以加到证明函数中,递归记录

2.去括号时操作符优先级的考虑

具体程序设计下次再写。

几何专家 几何定理证明

  • 2014年03月05日 09:20
  • 1.64MB
  • 下载

维纳辛钦定理证明

  • 2015年11月08日 11:14
  • 151KB
  • 下载

Bayes贝叶斯方法-均值和协方差参数估计及定理证明(一)

本文介绍了连续状态下的贝叶斯方法以及利用贝叶斯方法估计参数的方法:如协方差和X的均值,贝叶斯方法在机器学习中有很广泛的应用。...

四色定理证明0.1

  • 2011年11月11日 22:43
  • 127KB
  • 下载

主定理证明

转自GoogleSite算法导论习题解答,先fork一下 算法导论其实已经给出了具体的证明步骤,但是还是有些省略,此文章是对主定理进行了完全的证明; 主定理的证明大致分为两个阶段: ...

数论的欧拉定理证明&欧拉函数公式

欧拉函数 : 欧拉函数是数论中很重要的一个函数,欧拉函数是指:对于一个正整数 n ,小于 n 且和 n 互质的正整数(包括 1)的个数,记作 φ(n) 。 完全余数集合: 定义小于 n 且...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:自动定理证明算法设计(-)
举报原因:
原因补充:

(最多只允许输入30个字)