我正在使用coq来研究编程语言的元理论。
在IDE中以交互方式编写和验证定理一切都很好,但我需要自动化(重新)验证。我看到了手册页,但我没有看到这个用例在任何地方拼写出来。
如何将coq验证合并到构建脚本中?
答案 0 :(得分:1)
如果我们有metatheory/hello_world.v
:
$ cat metatheory/hello_world.v
Theorem hello_world : forall a b:Prop, a /\ b -> b /\ a.
intros a b H.
split.
destruct H as [H1 H2].
exact H1. (* A bug: We actually need H2 here. *)
intuition.
然后我们可以看到错误(退出代码失败):
$ coqtop -batch -silent -l metatheory/hello_world.v
Error while reading metatheory/hello_world.v:
File "/vagrant/metatheory/hello_world.v", line 5, characters 6-8:
Error: In environment
a : Prop
b : Prop
H1 : a
H2 : b
The term "H1" has type "a" while it is expected to have type
"b".
如果我们解决问题:
$ coqtop -batch -silent -l metatheory/hello_world.v
..成功退出代码。