,它看起来像Coq中使用的归纳构造的演算,对于归纳类型有不相交的内射构造函数。
在普通的构造演算(例如,没有原始归纳类型)中,对类型(例如,∏(Nat: *).∏(Succ: Nat → Nat).∏(Zero: Nat).Nat)使用模拟编码,这仍然是正确的吗?我能始终找出使用了哪个“构造函数”吗?此外,内射性(如在∀a b.I a = I b → a = b<
这个引理能在Coq中被证明吗?简单的destruct不能编译,因为我们不能消除sort Prop中的对象exists p:nat, P n p,从而在sort Set中生成函数f。如果Coq不能证明这个引理,那么forall n:nat, exists p:nat, P n p的含义是什么?在构造性数学中,它意味着函数f的存在,但我的印象是,我们永远不会在Coq中
Require Import Coq.Structures.OrderedTypeEx.
Module NatMap := FMapAVL.Make(Nat_as_OT).在CoQ8.6中,我得到了Error: Non strictly positive occurrence of "test" in "NatMap.t test -> test".为什么在我的NatMap.t归纳类型中应用FMapAVL (FMapAVL with nat keys)<em