如何将 Coq 设置为一阶逻辑的定理证明器

How to setup Coq as theorem prover for First Order Logic

据我了解,Coq 具有内置的一阶逻辑 https://coq.inria.fr/tutorial/1-basic-predicate-calculus. But Coq is not theorem prover, Coq is proof assistant and that means that user is required to provide some hints what rules/strategies Coq should select in each step. There exists more ore lest combined heuristic strategies, but, still, Coq is not prover. I have heard about efforts to use machine learning or other heuristics to automate the proof procedure in the proof assistants (they have been named *hammer?), some of these trends are published in http://ai4reason.org/activities.html

我的问题是 - 可以将 Coq 配置为用作 FOL 定理证明器,其功能与一阶逻辑的 E-证明器或 Z3 证明器类似吗?并且 - 如果是 - 我如何配置 Coq 以用于此类用途?

如果您想在 Coq 证明中自动找到一阶语句的证明,您可以使用 Coq 锤子的重构策略的标准策略一阶(见下文)。

如果你想用Coq解决tptp格式的问题,有这个工具https://github.com/lukaszcz/tptp2coq可以将tptp文件翻译成Coq文件,然后你可以使用一些自动化的策略来解决目标,但它不会与 E-prover 或 Z3 竞争。

还有一个工具,Coq 锤子,它将 Coq 目标转化为 FOL,然后 运行 FOF 证明者,例如 E、Vampire、Z3。如果那些 FOF 证明者可以找到一个证明,Coq 锤子将使用证明中使用的引理列表尝试使用自动策略在 Coq 中再次找到证明(这称为证明重建)。