有什么类似s的策略simpl
吗Program Fixpoint
?
特别是,如何证明以下琐碎的陈述?
Program Fixpoint bla (n:nat) {measure n} :=
match n with
| 0 => 0
| S n' => S (bla n')
end.
Lemma obvious: forall n, bla n = n.
induction n. reflexivity.
(* I'm stuck here. For a normal fixpoint, I could for instance use
simpl. rewrite IHn. reflexivity. But here, I couldn't find a tactic
transforming bla (S n) to S (bla n).*)
显然,这个玩具示例没有Program Fixpoint
必要,但我在更复杂的设置中面临同样的问题,我需要证明Program Fixpoint
手动终止。