diff -r c18308f60f0e -r 3764566c1151 FSet.thy --- 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 \ a \ 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]]} *}