在Proof General(使用Coq 8.5)中,我执行了以下操作:
Require Import Arith.
Eval cbv delta in Nat.add_comm 3 7.
输出
Nat.add_comm 3 7 : 3 + 7 = 7 + 3
然而,Print Nat.add_comm.
给出了一个长而复杂的函数,它将两个nat作为输入。我希望我的代码扩展Nat.add_comm
的定义,这是Eval cbv delta in _.
在类似情况下的作用。作为初学者,我知道潜伏着一种天真的误解。我错过了什么?
答案 0 :(得分:1)
对Daniel的评论进行了扩展,如果
,cbv delta
将展开一个标识符
Defined
而不是Qed
关闭的,或者身体是通过:=
或自动义务策略给出的(对于{{ 1}})或类型类分辨率(对于没有正文的Program Definition
)和Instance
或Opaque id
和Strategy opaque [id]
而不是:
(例外:if模块类型本身为常量提供了主体请注意,目前,<:
可以获得3左右(统一引擎也可以,但vm_compute
,compute
,lazy
,cbv
,hnf
(通常),cbn
(通常),simpl
不能),但其他任何事都无法解决。