如何从外部软件调用证明辅助Coq
如何从外部软件调用校对助手Coq?Coq有一些API吗?Coq命令行界面是否足够丰富,可以在文件中传递参数并在文件中接收响应?我对java或C++桥感兴趣。如何从外部软件调用证明辅助Coq,coq,Coq,如何从外部软件调用校对助手Coq?Coq有一些API吗?Coq命令行界面是否足够丰富,可以在文件中传递参数并在文件中接收响应?我对java或C++桥感兴趣。 这是一个合理的问题。Coq不是通常的商业软件,人们可以从中期待开发人员友好的API。我对Isabelle/HOL也提出了类似的问题,这是一个合理的问题,答案也不平凡。命令行似乎是一条出路 Coq包括几个命令行工具,包括coqc编译器。这个程序将一个Coq理论文件作为输入,并尝试编译它。如果理论出了问题,该命令将失败,退出代码为非零,并将一些
这是一个合理的问题。Coq不是通常的商业软件,人们可以从中期待开发人员友好的API。我对Isabelle/HOL也提出了类似的问题,这是一个合理的问题,答案也不平凡。命令行似乎是一条出路 Coq包括几个命令行工具,包括
coqc
编译器。这个程序将一个Coq理论文件作为输入,并尝试编译它。如果理论出了问题,该命令将失败,退出代码为非零,并将一些反馈写入其输出流。如果一切正常,则该命令(通常)是静默的,以零退出代码退出,并写入包含编译理论的.vo
文件
例如:
$ cat bad.v
Lemma zero_less_than_one: 0 < 1.
$ coqc bad.v ; echo $?
Error: There are pending proofs
1
$ cat good.v
Lemma zero_less_than_one: 0 < 1.
Proof.
auto.
Qed.
$ coqc good.v ; echo $?
0
$cat bad.v
引理0小于1:0<1。
$coqc-bad.v;回声$?
错误:有待定的证据
1.
好的
引理0小于1:0<1。
证明。
自动的。
Qed。
$coqc good.v;回声$?
0
以下是Coq命令行工具的文档,可以使用各种标志:
我知道有两种工具使用Coq作为辅助证明引擎:Frama-C和Why3。查看(方法
compile
和check
)和的源代码,这些工具似乎也将Coq理论转储到一个文件中,然后调用Coq的命令行工具。据我所知,Coq没有更直接的API。到今天为止,有三种与Coq交互的方式,从更多的努力到更少的力量: