展开定义而不减少
Unfolding a definition without reduction
Coq manual 指出 unfold qualid
策略展开目标中每个出现的 qualid
,并用其 beta-iota-normal 形式替换它。
有没有一种简单的方法可以在不触发 beta/iota 缩减的情况下展开定义?
您可能想试试,例如cbv
tactic 像这样:
Definition foo := (fun (x : nat) => x) 42.
Definition bar := (fun (x : nat) => x) 42.
Goal foo = bar.
cbv delta [foo].
这导致以下证明状态:
(fun x : nat => x) 42 = bar
Coq manual 指出 unfold qualid
策略展开目标中每个出现的 qualid
,并用其 beta-iota-normal 形式替换它。
有没有一种简单的方法可以在不触发 beta/iota 缩减的情况下展开定义?
您可能想试试,例如cbv
tactic 像这样:
Definition foo := (fun (x : nat) => x) 42.
Definition bar := (fun (x : nat) => x) 42.
Goal foo = bar.
cbv delta [foo].
这导致以下证明状态:
(fun x : nat => x) 42 = bar