展开定义而不减少

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