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