使用“Arguments”命令时Coq“Error:No focused proof”

时间:2013-11-18 20:14:59

标签: compiler-errors arguments coq proof

我正在阅读Software Foundations一书。在the chapter on polymorphism中,有一节关于“隐式参数”。在本节中,有一行:

Arguments nil {X}.

当我尝试在Poly.v文件(本章的来源,this tarball中提供)上运行Coq时,它停在上面一行,给我一个错误:

Error: No focused proof (No proof-editing in progress).

我已将Poly.v文件缩减为这些内容,但仍然会出现同样的错误:

Inductive list (X:Type) : Type :=
  | nil : list X.

Arguments nil {X}.

我可以在Coq reference manual找到关于此错误的唯一内容是

  

当人们试图在校对编辑模式之外使用校对编辑命令时,Coq会引发错误消息:没有聚焦证据。

我认为“证明编辑模式”是指使用策略证明定理的上下文。我认为它不是那种模式,Coq也不认为,因为它说“没有正在进行的校对编辑”。这是有道理的。

该错误声称Arguments是“校对编辑命令”,但并未在its documentation中说明,the chapter on proof handling中未提及Arguments

这让我觉得Coq错误地将Arguments视为校对编辑命令,但我不知道为什么。

我认为这对我的设置而不是Poly.v文件本身有问题,因为它是Software Foundations一书的一部分。我正在使用CoqIDE,作为Coq 8.3pl4的一部分,随Ubuntu 12.04一起发布。

1 个答案:

答案 0 :(得分:5)

这是您正在使用的coq版本的问题。当前版本的Software Foundations仅与coq 8.4兼容。如果您想继续而不升级coq,相关命令的旧版本是:

Implicit Arguments nil [[X]].

您可以在此处找到与您的coq版本兼容的poly.v的完整副本:

http://www.seas.upenn.edu/~cis500/cis500-s13/sf/Poly.html

玩得开心!