是否有人在将既有的数学理论,都以严格的命题推理形式搬到电脑上来?

论坛 期权论坛 留学     
匿名的用户   2019-5-25 20:39   6018   5
好处一:因为每一步都需要严格的推理,所以不会出错。
目前期刊的审稿人制使发表的周期过长,而随后的arxiv等互联网论坛更加便捷,但无法保证论文的正确性。如果有形式逻辑文本范式,可能会提高正确率吧。并将这个责任便捷地交给论文作者。这方面技术要求并不太高吧,还不需要人工智能多么有创造力。
好处二:人类既有成果的电子化,为未来AI启发式证明提供基本的框架与库。
其实这个再说吧。
分享到 :
0 人收藏

5 个回复

倒序浏览
2#
热心的回应  16级独孤 | 2019-5-25 20:39:57
形式化数学方面的工作还是比较多的,著名一些的例子有Kepler Conjecture (i.e. The Flyspeck Project) [1], Four Color Theorem [2], Odd Order Theorem [3], Jordan Curve Theorem [4], Godel’s Incompleteness Theorems [5], Prime Number Theorem [6,7] 以及 Central Limit Theorem [8]。 另外Freek Wiedilk 维护的网页Formalizing 100 Theorems ( http://www.cs.ru.nl/~freek/100/ )可以看到一些比较著名的定理在各个定理证明器中被形式化的现状。
好处一:因为每一步都需要严格的推理,所以不会出错。
这个好处的确是有的,目前绝大部份(交互式)定理证明器都是基于核(kernel)的形式:所有的推理步骤都会被核检查。这意味着我们只要相信少量的代码(HOL Light证明器的核有~1500行OCaml组成, Coq证明器的核有~22000行OCaml ),就能够相信由该定理证明器检查过的证明。同时,这些定理证明器还常常能够把推理的过程以某种形式输出(proof object),这样我们甚至可以再编写一个第三方的推理检查程序来进一步验证推理的正确性。
在关注证明正确性的同时,其实还有一个可读性/可解释性的问题。一个关于证明在数学里角色的观点是:
  • 一个证明应当说服读者某个命题的正确性(A proof convinces the reader that the statement is correct)。
  • 一个证明应当能解释为什么某个命题是正确的 (A proof explains why the statement is correct)。
对于第一点,把证明分解到公理级别的推理步骤,再由程序来检查即可。但是对于第二点,我们往往需要结构化且人类可读的形式化证明,甚至需要超越形式化语言的自然语言来描述证明背后的思想(intuition)。进一步关于这方面的讨论可以看看Herman Geuvers [9] 和 Leslie Lamport [10]的文章。
好处二:人类既有成果的电子化,为未来AI启发式证明提供基本的框架与库。
这个好处也是确定的,也是我们所希望的,但有一个小问题:形式化的证明究竟需要一个什么的逻辑?不同的系统有着不同的基础逻辑:一阶逻辑(ACL2), simple type theory +  set theory (HOL4, HOL Light, Isabelle/HOL) , dependent type theory (Coq, PVS), 以及比较玄乎的且正在发展中homotopy type theory。当然我们可以期望以后有足够成熟的技术能把一个系统里的形式化证明自动翻译到另一个里面(目前有一些这方面的工作,但效果还是不尽如人意)。
同时我们也要意识到在一个有相当表达力的逻辑下做自动推理是相当困难的。就被AlphaGo/AlphaZero解决的围棋而言,整个游戏是在一阶逻辑下的(如果我没理解错的话),而且游戏本身还还是可判定的(decidable,存在一个算法在有限步骤内判定真值), 当然计算代价是极其巨大的。广义一阶逻辑下的命题已是是不可判定的,表达力在一阶逻辑之上的高阶逻辑(quantify over predicates and functions)就更难了, 在上面还有能把图灵机嵌在类型系统里的CIC(Coq所用的逻辑)。目前有一些把深度学习应用到自动推理方向到尝试,不过目前效果还比较有限,主流的方法还是传统的resolution/superposition-based prover + SMT solver以及一大堆人工设置的启发策略(heuristics)。
目前在Isabelle证明器下有  Archive of Formal Proofs,这是一个有着超过180万行证明的代码库。在Mizar证明器下有 Mizar Mathematical Library, 其中有着超过52000条被证明的定理。我们相信这些已有的证明能为未来的自动定理证明提供训练数据。


另外,关于 @Yuhang Liu 答主提到的证明中概念抽象的问题,正如 @Qinxiang Cao答主所说,我们在定理证明器中定义概念是有层次(封装)的,高层次的推理一般是不用考虑底层的定义。比如在Isabelle/HOL中的微分是基于Frechet derivative:

当然这里的bounded_linear, Lim, norm等函数还有各自的形式化定义。但是进行微分相关的推理时,我们几乎已经不用考虑微分的定义,而是直接使用在这个定义基础上证明出的微分的相关性质,例如:

微分中的链式法则
可导一定连续[1] Hales, Thomas C. "Introduction to the Flyspeck project." Dagstuhl Seminar Proceedings. Schloss Dagstuhl-Leibniz-Zentrum für Informatik, 2006.
[2] Gonthier, Georges. "Formal proof–the four-color theorem." Notices of the AMS 55.11 (2008): 1382-1393.
[3] Gonthier, Georges, et al. "A machine-checked proof of the odd order theorem." International Conference on Interactive Theorem Proving. Springer, Berlin, Heidelberg, 2013.
[4] Hales, Thomas C. "The Jordan curve theorem, formally and informally." American Mathematical Monthly 114.10 (2007): 882-894.
[5] Paulson, Lawrence C. "A mechanised proof of Gdel’s incompleteness theorems using Nominal Isabelle." Journal of Automated Reasoning 55.1 (2015): 1-37.
[6] Harrison, John. "Formalizing an analytic proof of the prime number theorem." Journal of Automated Reasoning 43.3 (2009): 243-261.
[7] Avigad, Jeremy, et al. "A formally verified proof of the prime number theorem." ACM Transactions on Computational Logic (TOCL) 9.1 (2007): 2.
[8] Avigad, Jeremy, Johannes Hlzl, and Luke Serafin. "A formally verified proof of the Central Limit Theorem." Journal of Automated Reasoning 59.4 (2017): 389-423.
[9] Geuvers, Herman. "Proof assistants: History, ideas and future." Sadhana 34.1 (2009): 3-25.
[10] Lamport, Leslie. "How to write a 21 st century proof." Journal of fixed point theory and applications 11.1 (2012): 43-63.
3#
热心的回应  16级独孤 | 2019-5-25 20:39:58
说得好, 然而...你准备翻译成什么?
Well, 你是不是觉得数学基础就是集合论? 一切推理可以归为谓词演算?
诚然很多人用集合论作为基础, 但你不能说没有别的啊...
拿比较著名的软件来讲
  • Isabelle: 元逻辑引擎(FOL\HOL\ZFC\ML)
  • Coq: 类型论(TT)
  • Mathematica: 一阶逻辑(FOL)
还有什么Mizar用无类型集合论(UST), PVS用高阶逻辑(HOL)...
所谓形式化是在某个体系内形式化, 体系之间, 据我所知, 不能自动转化...
最近某会议上似乎建议数学家将自己证明的命题形式化表达一下, 不管怎么说还是有点促进意义的.

其次形式化之后干嘛呢? 让机器学习怎么证吗?
形式化证明其实不是你想的那种一条条的证明...
怎么说呢, 是个程序或者说是个函数...
程序即函数之组合, 函数即组合之演算, 组合即是计算, 计算即是证明.


这个难度和自动编程差不多
而且我觉得机器学习在定理证明上不太可能比传统方法要好...
你用机器学习研究出来的排序算法还能比快排快吗?
定理证明这个东西就是高可读性与强自动化难以并存.
适合搜索的人没法看, 人能看的机器搜起来慢...
高自动化低可读性的例子: Mathematica 中公理或性质全部用一阶逻辑写一遍, 然后其他不要管了...
我啥也不用懂, 就看这个函数的值是 True or False 就行了...

证明阿贝尔群的某个性质...没格式化就这个鬼样,格式化后好点...高可读性低自动化的例子: Isabelle, 你甚至能读出来这个过程...
但是他有个庞大的规则库和策略集, 这玩意儿学起来可一点也不容易...

证明素数平方根不可能是有理数
4#
热心的回应  16级独孤 | 2019-5-25 20:39:59
问:是否有人在将既有的数学理论,都以严格的命题推理形式搬到电脑上来?
答:没有。『既有的数学理论』是很庞大的体系,而且还在不断地发展。
问:有没有方法能够将既有的数学理论,都以严格的命题推理形式搬到电脑上来?
答:有。已经有很多用于形式化证明的工具:例如Coq,Agda,Isabella/HOL等等。限于篇幅无法具体介绍他们到底是什么。
问:基于这些工具,已经形式化了哪些重要的数学结论?
答:很多很多。我个人比较熟悉Coq上的工作。目前初等数论已经有了比较完善的形式化。据说平面几何也是。实数理论也有一些好用的形式化成果。不过由于数学届对此兴趣并不大,经过形式化的成果占整个数学理论的比例还是非常小。


另外,Yuhang Liu:是否有人在将既有的数学理论,都以严格的命题推理形式搬到电脑上来?中的一些说法是不对的。固然,更高层更抽象的数学概念都应当从集合论的底层定义起来,但是这并不表示『每一步的证明的描述都要转化为底层的集合论的语言』才能称为形式化。


例如在Coq中,我们可以从一些初始概念来定义一些导出概念。然后再由已经证明的初始概念的性质来证明导出概念的性质。在形式化证明中,『更高层更抽象的数学概念及其性质』完全可以用『更高层更抽象的数学语言』简洁的表示出来。
5#
热心的回应  16级独孤 | 2019-5-25 20:40:00
數學以證明為工具, 但數學不是證明.
證明有誤不代表一定沒有價值, 證明正確也可能只是套套邏輯廢話, 甚至沒有證明都能當作有價值的猜想提出.
對數學概念作出價值判斷, 才是難上之難. 這跟其他學科, 甚至整個社會的進程都有動態連結. 不少有價值的數學概念, 是非數學領域的專家藉直觀或經驗觀察為基礎建立起來的. 像是辛流形等, 後來才被嚴格數學化. 數學有更多是純粹美之為美, 不是形式化壓倒一切.
會有只留意推論過程正確與否的想法, 無非是考試教育遺毒, 忽略了數學不只是正確推論跟硬套的應用. 數學也是種社會語言, 有很大程度也關乎人文素養, 甚至類似文學的美學素養
雖說如此, 也不是說涉及價值判斷跟聯繫這點, 就完全沒辦法形式化, 也是有人使用本體論ontology的方法, 去架構這種數學的概念網路, 而不涉及具體證明 http://ontomathpro.org/ontology/ , 且此方法可進一步經由其他ontology跟其他學科作連結的. 這產生的過程是半自動化及自然語言處理, 不是全靠人力
說到證明器, 我自己常關注 Lean prover, 但不是用來作數學研究, 只是用來證明程序正確性及跟數學概念作一定程度上的連接, 搞 Free Monad 跟 EDSL 那類東西. 暫且不管能不把整個數學變成你說的那種東西, 至少在把程序設計自動化大有可為.
6#
热心的回应  16级独孤 | 2019-5-25 20:40:01
@Felis sapiens 的答案,HoTT主要用来形式化数学里边最抽象的领域,比如代数拓扑,homotopy theory,范畴论等。实数是形式化的一大难点,而这个理论给出了比较优美的解决方案。目前该理论的研究热点是如何让HoTT中的univalence公理真正能够计算(cubical type theory)。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:32080
帖子:6440
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP