我正在浏览软件基础并遇到错误。
错误:术语“true”的类型为“bool”,而预期类型为“Datatypes.bool”
以下证明。
Theorem beq_nat_true : forall n m,
beq_nat n m = true -> n = m.
当我使用Require Import Omega
时,我发现这种情况正在发生
有关Omega
引入环境的任何提示,建议或解释吗?
答案 0 :(得分:2)
Omega
模块间接导入操纵自然数的标准库的许多定义,其中一些定义最终影响软件基础的部分。 beq_nat
函数就是其中之一。问题出现是因为beq_nat
的标准库的版本返回标准布尔值,而SF的版本返回其重新定义的布尔值。
我们刚才注意到了这个问题,并且已经在current version修复了它。如果您不想重新下载所有内容(或者您自己导入了Omega
),也可以使beq_nat
符合使用正确版本的条件。我的猜测是Basics.beq_nat
应该有用。