FSet.thy
changeset 267 3764566c1151
parent 260 59578f428bbe
child 268 4d58c02289ca
child 269 fe6eb116b341
--- a/FSet.thy	Tue Nov 03 14:04:45 2009 +0100
+++ b/FSet.thy	Tue Nov 03 16:17:19 2009 +0100
@@ -309,9 +309,6 @@
 
 ML {* fun lift_thm_fset lthy t = lift_thm lthy qty "fset" rsp_thms defs t *}
 
-lemma eq_r: "a = b \<Longrightarrow> a \<approx> b"
-by (simp add: list_eq_refl)
-
 (* ML {* lift_thm_fset @{context} @{thm neq_Nil_conv} *} *)
 ML {* lift_thm_fset @{context} @{thm m1} *}
 ML {* lift_thm_fset @{context} @{thm m2} *}
@@ -320,6 +317,7 @@
 ML {* lift_thm_fset @{context} @{thm card1_suc} *}
 (*ML {* lift_thm_fset @{context} @{thm map_append} *}*)
 ML {* lift_thm_fset @{context} @{thm append_assoc} *}
+ML {* lift_thm_fset @{context} @{thm list.induct} *}
 
 thm fold1.simps(2)
 thm list.recs(2)
@@ -343,17 +341,13 @@
   apply (atomize(full))
   apply (tactic {* tac @{context} 1 *}) *)
 ML {* val ind_r_r = regularize ind_r_a rty rel rel_eqv rel_refl @{context} *}
-(* ML {*
+(*ML {*
   val rt = build_repabs_term @{context} ind_r_r consts rty qty
   val rg = Logic.mk_equals ((Thm.prop_of ind_r_r), rt);
 *}
 prove rg
 apply(atomize(full))
 ML_prf {* fun r_mk_comb_tac_fset lthy = r_mk_comb_tac lthy rty quot rel_refl trans2 rsp_thms *}
-apply (tactic {*  (r_mk_comb_tac_fset @{context}) 1 *})
-apply (tactic {*  (r_mk_comb_tac_fset @{context}) 1 *})
-apply (tactic {*  (r_mk_comb_tac_fset @{context}) 1 *})
-
 apply (tactic {* REPEAT_ALL_NEW (r_mk_comb_tac_fset @{context}) 1 *})
 done*)
 ML {* val ind_r_t =
@@ -365,6 +359,8 @@
 ML {* val abs = findabs rty (prop_of (atomize_thm @{thm list.induct})) *}
 ML {* val aps = findaps rty (prop_of (atomize_thm @{thm list.induct})) *}
 ML {* val simp_app_prs_thms = map (make_simp_prs_thm @{context} quot @{thm APP_PRS}) aps *}
+thm APP_PRS
+ML aps
 ML {* val simp_lam_prs_thms = map (make_simp_prs_thm @{context} quot @{thm LAMBDA_PRS}) abs *}
 ML {* val ind_r_l = repeat_eqsubst_thm @{context} (simp_app_prs_thms @ simp_lam_prs_thms) ind_r_t *}
 ML {* val thm = @{thm FORALL_PRS[OF FUN_QUOTIENT[OF QUOTIENT_fset IDENTITY_QUOTIENT]]} *}