CSDN博客

img PercyLee

机器证明介绍(2)

发表于2003/7/7 8:26:00  1219人阅读

      

       (续文章《机器证明介绍(1)》)   

       机器证明,一个出发点,就是“寓理于算”,但这条路并不平坦。数理逻辑大家在探讨思维的符号化工作,计算机科学家也在探索计算机本身的能力极限。一代一代的人,在思索,人类的智慧的奥秘何在;机器如何完成这项工作,如何做的更好,乃至和人类一样好?

    上次说到这个公式的证明:
                            ┣ (α→β)→(α→α)
    它的证明序列很简单,如下:
    (1)  α→(β→α)                          (A1)
    (2)  (α→(β→α))→((α→β)→(α→α))  (A2)
    (3)  (α→β)→(α→α)                    (M)(1)(2)

    我在介绍证明思路形成的过程时,曾用到词语“眼前一亮”,但之于科学,这个描述是不好的。在这个问题上,张景中先生曾论述过关于几何定理证明中的人类证明与机器证明过程的异同,我加以扩充,描述如下:
    (1)检验:对所有已知条件进行观察和计算,以确定命题;
    (2)搜索:依据已有的(常用的)引理和结论,寻找更多的可知信息,如果这些结果不能达到目的,就把它 们作为进一步工作的基础;
    (3)规约:从结论出发,利用已知信息消去所依赖的某些已知量和条件,使结论的真假趋于明显或易于检验;
    (4)转化:改变命题的形式;如考虑传递律和反证法。


       手段(1)的机器模拟已经实现。手段(3)的研究取得了最大的成功,吴文俊先生的几何定理证明方法,就属于此类。(2)则是比较传统的常规手段,是规约的补充和转化基础。而手段(4),充分体现了人类思维的灵活性和丰富性,目前还难于机械化。

      上例子的思路形成,可以体现这些结论。然而毫无疑问,即使手段(4)的完美机械化,也需要我们的进一步努力;更何况,我想机器证明,待开拓的地方还远不止这些。

       那么,让我们开始沿着历史的脚步,来细致的看一下,机器证明中的试探法,计算机辅助证明,判定法和证明算法等研究方向的思路;希望我们都能于此感到美妙的兴趣,并有所乐。乐之乃我的目的,不过您若准备自己动手查资料,想深入下去,我则手舞足蹈了。  

       1,试探法
    使用试探法证明定理,可以从前提出发,或者从结论出发。
    从前提出发,就是由前提(包括公理、定义、已证明的定理以及所要证明的定理的假设)中的某些命题推出若干命题作为中间结论;再把中间结论加到前提之中,又推出若干中间结论。如此下去,若推出了所要的结论,则定理得到证明,否则就要考虑其它的途径,从前提的另一些命题推出另外的中间结论,试探推出待证明定理。
   从结论出发,则是考虑有了怎样的命题就能推出所要的结论,从而归约为证明这些命题;类似于上面的过程,若定理的前提包括了所需要的命题,则定理得到证明,否则仍需考虑另外的途径。
   试探法是一种手段,使用它只是有可能得到问题的解,但并不保证一定能得到解。而且,在定理得到证明之前,我们不能肯定它是不是不可证明的。
   
    在历史上,Newell-Shaw-Simon曾用试探法证明命题逻辑中的重言式。他们使用的形式系统,不是自然推理系统,而是重言式系统,即我们上次介绍的命题推理形式系统p。下面是他们的试探法:
   
    设要证明的A是形式定理,把A看作所要解决的问题。
    第一步,试验代入规则。比如:由α→(β→α) 可以推出:
                          α→((α→β)→α),
                          (α→β)→(β→(α→β)),
         如果能用代入规则由存储在“形式定理表”中的某个形式定理(包括形式公理)推出A,证明结束;否则代入规则无效,转入下一步。
    第二步,试验分离规则。在形式定理表中寻找(B→A)形式的公式,若有,则问题就由证明A归约为证明B,B称为子问题。于是使用B试验代入规则给以证明:如果B能够得到证明,则A的证明结束,否则把B送入“子问题表”。于是继续试验分离规则,若找不到(B→A)形式的公式,转入下一步。
    第三步,试验蕴涵词传递规则。蕴涵词传递规则不是定义中的一部分,它可由定义证明,但它非常有用,具体如下:

    α→β,β→r┣α→r     (Tr)
    具体方法为,先检查A是不是蕴涵式,如果不是,则不能进行第三步,于是在子问题表中取出下一个公式,转第二步;如果A是蕴涵式,例如有B→D形式的公式,则在形式定理表中找B→C或C→D形式的公式,若找到B→C形式的公式,则问题由证明A(即B→D)归约为证明C→D,而若找到C→D形式的公式,则问题归约为证明B→C。B→C或C→D是子问题,于是对之进行代入规则证明。若这个证明成功,则证明结束,否则把子问题存入子问题表,继续在形式定理表中寻找B→C或C→D形式的公式,并且重复方才的过程,如果找不到,则在子问题表中取出下一个公式,并转入第二步。

    以上证明A的过程中,停机条件是下面四种情形之一:A得到证明;机器时间用完;机器存储器用完;子问题表中的公式用完。因此,当证明过程结束时,A并不一定能得到证明。

    著名数理逻辑学家王浩曾给出一个算法,比这个试探法要简捷的多,证明了罗素的巨著《数学原理》中的几百条关于命题逻辑的定理,仅用了9分钟。这是一项意义深远的工作。有兴趣深入的读者可查阅注释2提供的参考资料。

     今天我们的旅程暂且到此,下次我们接着今天的足迹。热切的感谢您对理论科学的关注。

      注2:[王浩]. Toward Mechanical Mathematics , IBM Journal for Research and Development ,4,224-268,1960

      本文参考资料:

      1,[陆钟万]. 数理逻辑与机器证明. 科学出版社,1983

      2,[张景中]. 几何定理机器证明研究展望. 中国科学院院刊第二期,1997

0 0

相关博文

我的热门文章

img
取 消
img