WP生成的Coq文件无法编译

时间:2019-03-08 15:32:05

标签: coq frama-c

我已经通过opam安装了frama-c(18.0)和coqide(8.9)(当然还有其他所需的依赖关系,但这在这里可能不是问题)。好吧,关键是我只是通过opam安装了它,没有做任何其他奇怪的事情(而且我没有看到应该做其他的特别说明)。

当我在WP中使用Alt-ergo时,Frama-c可以按预期工作,但是如果我尝试使用coq或coqide而不是Alt-ergo,那么对于Qed无法立即证明的每个目标,我都会收到以下错误:

[wp] 13 goals scheduled
[wp] [Coq] 'Qed.v' compilation failed.
------------------------------------------------------------
--- Coqc (stderr) :
------------------------------------------------------------
File "/tmp/wp7fe5dc.dir/coqwp/Qed.v", line 27, characters 8-17:
Error:
Cannot find a physical path bound to logical path matching suffix bool.

------------------------------------------------------------
[wp] [Coq] Goal typed_nondet_loop_inv_preserved : Failed
  Compilation of 'Qed.v' failed.

请注意,在显示错误之前,它设法编译了其他.v文件。我尝试手动打开coqide中的文件,但得到的结果相同。为了记录在案,coq抱怨以下几行:

Require bool.Bool.
Require int.Int.
Require int.Abs.
Require int.ComputerDivision.
Require real.Real.
Require real.RealInfix.
Require real.FromInt.

我还尝试将coq降级一些,但不低于8.7(否则opam抱怨基本安装包不兼容,我真的不想搞砸我的安装),并且得到了相同的结果。

如果有人知道是什么原因造成的,以及如何正确设置它,那会很好。即使就我目前正在使用的功能而言,Alt-ergo足够了,我还是想和coq一起玩一下,看看它如何使用。

此致

-

Vincent Penelle。

1 个答案:

答案 0 :(得分:1)

首先,如果要与Frama-C / WP一起使用,确实需要coq <8.8(例如8.7.2),因为当前不支持较新的版本。

第二,安装软件包的顺序是相关的。特别是,如果在coq之后安装了适当版本的frama-c,则WP不会编译和安装其coq库,这是此处缺少的库。因此,您可能想做opam reinstall frama-c来根据兼容的coq版本来编译软件包。