我已经定义并证明了以下引理:
NM.In k m -> {NM.In k m0}+{NM.In k m1}.
我还可以证明以下条件的对称引理
{NM.In k m0}+{NM.In k m1} -> NM.In k m
但是,当我尝试将它们合并为一个时:
NM.In k m <-> {NM.In k m0}+{NM.In k m1}.
我遇到以下错误:
The term "sumbool (@NM.In CarrierA k m0) (@NM.In CarrierA k m1)" has type
"Set" while it is expected to have type "Prop" (universe inconsistency: Cannot enforce
Set = Prop).
如何解决?
答案 0 :(得分:1)
正如丹尼尔(Daniel)所指出的那样,问题在于<->
连接词仅以命题作为参数,而sumbool
则生活在Set
中。可以通过以下几种方法来避免这种情况:您可以将sumbool
替换为or
,也可以将iff
替换为与计算相关的连接词:
Variables A B C : Prop.
Check (({A} + {B} -> C) * (C -> {A} + {B}))%type.