是否可以删除/替代Coq中的现有强制?

时间:2018-12-22 05:31:59

标签: coq coercion

我已经导入了定义强制的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至少在此文件中遵守我的选择?

能够在声明强制之后显式操作强制,例如能够操作提示数据库的方式,这将是一个加号。有这样的命令吗?

0 个答案:

没有答案