我已经导入了定义强制的Coq模块,但是它不符合我的需要。有什么方法可以删除或(本地)覆盖它?
具体来说,假设我导入的模块定义了强制性
Coercion bool_to_nat (b:bool) := match b with true => 1 | false => 0 end.
但是我想在代码中使用相反的内容
Local Coercion bool_to_nat' (b:bool) := match b with true => 0 | false => 1 end.
Coq发出警告Ambiguous paths: [bool_to_nat'] : bool >-> nat
,只是忽略了我的定义(可以由Goal false + 1 = true. reflexivity. Qed.
进行检查吗?是否有可能说服Coq至少在此文件中遵守我的选择?
能够在声明强制之后显式操作强制,例如能够操作提示数据库的方式,这将是一个加号。有这样的命令吗?