需要导入Omega后混合bool和Datatypes.bool

时间:2016-03-27 18:10:58

标签: coq

我正在浏览软件基础并遇到错误。

  

错误:术语“true”的类型为“bool”,而预期类型为“Datatypes.bool”

以下证明。

Theorem beq_nat_true : forall n m,
  beq_nat n m = true -> n = m.

当我使用Require Import Omega时,我发现这种情况正在发生 有关Omega引入环境的任何提示,建议或解释吗?

1 个答案:

答案 0 :(得分:2)

Omega模块间接导入操纵自然数的标准库的许多定义,其中一些定义最终影响软件基础的部分。 beq_nat函数就是其中之一。问题出现是因为beq_nat的标准库的版本返回标准布尔值,而SF的版本返回其重新定义的布尔值。

我们刚才注意到了这个问题,并且已经在current version修复了它。如果您不想重新下载所有内容(或者您自己导入了Omega),也可以使beq_nat符合使用正确版本的条件。我的猜测是Basics.beq_nat应该有用。