为了理解一般的递归Function定义是如何工作的,以及它们如何符合Coq的结构递归约束,我尝试在Peano自然数上重新实现它。提取结果几乎和我预期的一样: let m = S n in match我们可以看到,此参数的唯一效果是在S n-nth步骤停止递归。提取还提到了这种assert false不应该发生。那么为什么
我正在尝试创建一个像Definition cardinality (A : Ensemble U) : nat.这样的函数,这样对于每个合奏,我都会得到它的基数。我发现这是一个具有挑战性的问题,我想得到一些帮助。 顺便说一句,有一个cardinal U A n,如果是|A| = n,那么它就变成了真。
我目前正在开发一个ocaml程序,它将使用coq api来提取关于证据及其目标的信息。为此,我想提取一个目标的名称,当使用"refine ? name“或其他一些策略来命名一个目标时。到目前为止,我正在获取当前的目标,使用我当前的证明状态来提取它们,如下所示 (*currstate is the current state of the proof*)
let pstate = match使用这种方法,我能够提取目标的ID,但不能提取
因此,当术语嵌套在记录中时,问题似乎是显示eta-等价性。但我不擅长处理唱片所以我可能漏掉了什么。原版:Lemma etaEquivalence : ∀ (A B : Type) (f : A → B), (在我目前的证明中,我有两条记录,我必须证明它们是相等的。但是,我怀疑有些地方是错误的,因为试图用λ x : U, perm0 x替换perm0会生成适当<e