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

Logic 如何设置Coq作为一阶逻辑的定理证明器,logic,computer-science,coq,coq-tactic,coq-plugin,Logic,Computer Science,Coq,Coq Tactic,Coq Plugin,据我所知,Coq具有内置的一阶逻辑。但Coq不是定理证明者,Coq是证明助手,这意味着用户需要提供一些提示,说明Coq在每个步骤中应该选择哪些规则/策略。存在更多的混合启发式策略,但Coq仍然不是证明者。我听说在证明助手(他们被命名为*hammer?)中使用机器学习或其他启发式方法来自动化证明过程,其中一些趋势发表在 我的问题是,对于一阶逻辑,Coq是否可以配置为与E-prover或Z3 prover具有类似容量的FOL定理证明器?以及-如果是-我如何配置Coq用于此类用途?如果您想在Coq证明

据我所知,Coq具有内置的一阶逻辑。但Coq不是定理证明者,Coq是证明助手,这意味着用户需要提供一些提示,说明Coq在每个步骤中应该选择哪些规则/策略。存在更多的混合启发式策略,但Coq仍然不是证明者。我听说在证明助手(他们被命名为*hammer?)中使用机器学习或其他启发式方法来自动化证明过程,其中一些趋势发表在


我的问题是,对于一阶逻辑,Coq是否可以配置为与E-prover或Z3 prover具有类似容量的FOL定理证明器?以及-如果是-我如何配置Coq用于此类用途?

如果您想在Coq证明中自动找到一条一阶语句的证明,您可以使用标准策略firstorder,即Coq hammer的重建策略(见下文)

如果您想使用Coq解决tptp格式中出现的问题,有一个工具可以将tptp文件转换为Coq文件,然后您可以使用一些自动化策略来解决这些目标,但它不会与E-prover或Z3竞争

还有一个工具,Coq hammer,它将Coq目标转换为FOL,然后运行FOF验证程序,如E、吸血鬼、Z3。如果那些FOF证明者能够找到证明,Coq hammer将使用证明中使用的引理列表,尝试使用自动策略在Coq中再次找到证明(这称为证明重建)