簡體   English   中英

如何將 Coq 設置為一階邏輯的定理證明器

[英]How to setup Coq as theorem prover for First Order Logic

據我了解,然后 Coq 有內置的一階邏輯https://coq.inria.fr/tutorial/1-basic-predicate-calculus 但是 Coq 不是定理證明者,Coq 是證明助手,這意味着用戶需要提供一些提示,Coq 在每個步驟中應該選擇哪些規則/策略。 存在更多的組合啟發式策略,但是,Coq 仍然不是證明者。 我聽說過使用機器學習或其他啟發式方法來自動化證明助手中的證明程序(它們被命名為 *hammer?)的努力,其中一些趨勢發表在http://ai4reason.org/activities.html 中

我的問題是 - Coq 是否可以配置為用作 FOL 定理證明器,其功能與 E-prover 或 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 中再次找到證明(這稱為證明重建)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM