考虑到像STOC这样的会议所涵盖的主题,是否有任何算法或复杂性研究人员积极使用COQ或Isabelle?如果是这样,他们如何在研究中使用它?我认为大多数人不会使用此类工具,因为证明水平太低。是否有人以对他们的研究至关重要的方式使用这些证明助手,而不是一个很好的补充?
我很感兴趣,因为我可能会开始学习其中一种工具,并且在减少,正确或运行时间证明的背景下学习它们会很有趣。
考虑到像STOC这样的会议所涵盖的主题,是否有任何算法或复杂性研究人员积极使用COQ或Isabelle?如果是这样,他们如何在研究中使用它?我认为大多数人不会使用此类工具,因为证明水平太低。是否有人以对他们的研究至关重要的方式使用这些证明助手,而不是一个很好的补充?
我很感兴趣,因为我可能会开始学习其中一种工具,并且在减少,正确或运行时间证明的背景下学习它们会很有趣。
Answers:
一般的经验法则是,您想要机械化的数学越抽象/奇特,它就越容易获得。相反,数学越具体/越熟悉,难度就越大。因此,(例如)无谓谓语谓词这样的稀有动物比普通度量拓扑更容易机械化。
最初看起来似乎有些令人惊讶,但这主要是因为诸如实数之类的具体对象参与了各种代数结构,并且涉及它们的证明可以从它们的任何角度利用任何特性。因此,要想使数学家习惯于普通的推理,就必须使所有这些事情机械化。相比之下,高度抽象的构造具有(故意)小的且受限制的属性集,因此在获得精湛的技巧之前,您必须进行更少的机械化。
复杂性理论和算法/数据结构的证明(通常)倾向于使用简单小工具的复杂属性,例如数字,树或列表。例如,组合论,概率论和数论论证经常在复杂性理论的定理中同时出现。要获得证明助手库的支持,这是一件好事,这是很多工作!
人们愿意投入工作的一种环境是密码算法。由于复杂的数学原因,存在非常微妙的算法约束,并且由于密码在对抗性环境中运行,因此即使是最轻微的错误也可能是灾难性的。因此,例如,Certicrypt项目 已建立了许多验证基础结构,目的是构建机器检查的密码算法正确性的证明。
一个非常突出的例子当然是Gonthiers Coq在Coq中对4色定理的形式化,它使用了很多组合运算。
我的同事UliSchöpp为此目的使用了Gonthier开发的ssreflect库,以验证(并稍微扩展)Coq和Cook和Rackoff在图自动机上的结果。https://scholar.google.at/scholar?oi=bibs&cluster=4944920843669159892&btnI=1&hl=de(Schöpp,U.(2008)。无向图可及性的形式化下限。在编程逻辑,人工智能和推理中, 621-635页),柏林施普林格/海德堡)。