机上の計算ではできたものの
http://d.hatena.ne.jp/m-hiyama/20081022/1224640248
http://d.hatena.ne.jp/ku-ma-me/20081023
最近はやりの Seven Trees を解いてみた。
机上の計算ではできたっぽいのだが、やはり自信がない。
まめっちはいい加減にテストをしていたみたいだが、やはり総当りでないと心配なので書いてみた。
Section SevenTree. Inductive Tree : Set := | Leaf | Node : Tree -> Tree -> Tree. Inductive Tree7 : Set := | T7 : Tree -> Tree -> Tree -> Tree -> Tree -> Tree -> Tree -> Tree7. Definition f (ts : Tree7) : Tree := match ts with (* ひみつ *) end. Definition g (t : Tree) : Tree7 := match t with (* ひみつ *) end. Theorem fg_id : forall t, f (g t) = t. Proof. intros. destruct t; auto. destruct t2; auto. destruct t2_2; auto. destruct t2_2_2; auto. destruct t2_2_2_2; auto. destruct t2_2_2_1; auto. destruct t2_2_2_1_2; auto. destruct t2_2_2_1_2_2; auto. destruct t2_2_2_1_2_2_2; auto. destruct t2_2_2_2_2; auto. Qed. Theorem gf_id : forall t, g (f t) = t. Proof. intros. destruct t; auto. destruct t; auto. destruct t0; auto. destruct t1; auto. destruct t2; auto. destruct t3; auto. destruct t4; auto. destruct t5; auto. destruct t5_2; auto. destruct t5_2_2; auto. destruct t5_2_2_2; auto. Qed. End SevenTree.
場合わけ多すぎだろ。なんか聞くところによると5種類でいいらしいのだが…。