我们有一个函数f。
f : nat -> nat
如果我们将f应用于这样的模式匹配,
f match n with
| O => O
| S n' => n'
end
我们如何重写如下?
match n with
| O => f O
| S n' => f n'
end
答案 0 :(得分:3)
我认为最简单的方法是使用case
策略。
Lemma lift_match : forall (f : nat -> nat) (n : nat),
(f match n with
| O => O
| S n' => n'
end) =
(match n with
| O => f O
| S n' => f n'
end).
Proof.
intros f n.
case n; auto.
Qed.
另外,如果您定义上述引理,则可以在{1}}的证明中使用它。