Require Import Omega 后 bool 和 Datatypes.bool 的混淆
Mix-up of bool and Datatypes.bool after Require Import Omega
我正在学习软件基础知识,运行 出错了。
ERROR : The term "true" has type "bool" while it is expected to have type "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
returns 标准布尔值的标准库版本,而 SF returns 的版本是重新定义的布尔值。
我们不久前就注意到了这个问题,并且已经在 current version 中修复了它。如果您不想重新下载所有内容(或者如果您自己导入了 Omega
),您也可以只限定 beq_nat
以使用正确的版本。我的猜测是 Basics.beq_nat
应该有效。
我正在学习软件基础知识,运行 出错了。
ERROR : The term "true" has type "bool" while it is expected to have type "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
returns 标准布尔值的标准库版本,而 SF returns 的版本是重新定义的布尔值。
我们不久前就注意到了这个问题,并且已经在 current version 中修复了它。如果您不想重新下载所有内容(或者如果您自己导入了 Omega
),您也可以只限定 beq_nat
以使用正确的版本。我的猜测是 Basics.beq_nat
应该有效。