7
はProgram Fixpoint
のための戦術simpl
ようなものはありますか?コックSIMPL
特に、次のような些細な声明をどのように証明できますか?明らかに
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
の終了を証明する必要がより複雑な設定で同じ問題に直面しています。
、あなたは 'bla'のための方程式補題を述べることができる:' nは、BLAのn =試合FORALL nの| 0 => 0 | S n '=> S(bla n')end.' – eponier
これは本当に最善の答えですか?あなたが手動で縮小補題を書かなければならないとき、それは大きな関数に対して 'Program Fixpoint'を比較的退屈にしませんか? –
最近の方程式のような最近のプラグインは、あなたのための縮小補題を生成します。 – gallais