diff -r 91c374abde06 -r f7569f994195 FSet.thy --- a/FSet.thy Thu Dec 03 15:03:31 2009 +0100 +++ b/FSet.thy Thu Dec 03 19:06:14 2009 +0100 @@ -408,7 +408,86 @@ thm quotient_thm lemma "P (x :: 'a list) (EMPTY :: 'c fset) \ (\e t. P x t \ P x (INSERT e t)) \ P x l" -apply (tactic {* lift_tac_fset @{context} @{thm list_induct_part} 1 *}) +apply (tactic {* (ObjectLogic.full_atomize_tac THEN' gen_frees_tac @{context}) 1 *}) +apply(tactic {* procedure_tac @{context} @{thm list_induct_part} 1 *}) +apply(tactic {* regularize_tac @{context} [rel_eqv] 1 *}) +prefer 2 +apply(tactic {* clean_tac @{context} 1 *}) +apply(tactic {* inj_repabs_tac_fset @{context} 1 *}) +apply(tactic {* inj_repabs_tac_fset @{context} 1 *}) +apply(tactic {* inj_repabs_tac_fset @{context} 1 *}) +apply(tactic {* inj_repabs_tac_fset @{context} 1 *}) +apply(tactic {* inj_repabs_tac_fset @{context} 1 *}) +apply(tactic {* inj_repabs_tac_fset @{context} 1 *}) +apply(tactic {* inj_repabs_tac_fset @{context} 1 *}) +apply(tactic {* inj_repabs_tac_fset @{context} 1 *}) +apply(tactic {* inj_repabs_tac_fset @{context} 1 *}) +apply(tactic {* inj_repabs_tac_fset @{context} 1 *}) +apply(tactic {* inj_repabs_tac_fset @{context} 1 *}) +apply(tactic {* inj_repabs_tac_fset @{context} 1 *}) +apply(tactic {* inj_repabs_tac_fset @{context} 1 *}) +apply(tactic {* APPLY_RSP_TAC @{context} 1*}) +thm quotient_thm +apply(rule quotient_thm(3)) +apply(rule quotient_thm) +apply(rule quotient_thm) +apply(rule quotient_thm) +apply(tactic {* inj_repabs_tac_fset @{context} 1 *}) +apply(tactic {* inj_repabs_tac_fset @{context} 1 *}) +apply(tactic {* inj_repabs_tac_fset @{context} 1 *}) +apply(tactic {* inj_repabs_tac_fset @{context} 1 *}) +apply(tactic {* inj_repabs_tac_fset @{context} 1 *}) +apply(tactic {* inj_repabs_tac_fset @{context} 1 *}) +apply(tactic {* inj_repabs_tac_fset @{context} 1 *}) +apply(tactic {* inj_repabs_tac_fset @{context} 1 *}) +apply(tactic {* inj_repabs_tac_fset @{context} 1 *}) +apply(tactic {* inj_repabs_tac_fset @{context} 1 *}) +apply(tactic {* inj_repabs_tac_fset @{context} 1 *}) +apply(tactic {* inj_repabs_tac_fset @{context} 1 *}) +apply(tactic {* inj_repabs_tac_fset @{context} 1 *}) +apply(tactic {* inj_repabs_tac_fset @{context} 1 *}) +apply(tactic {* inj_repabs_tac_fset @{context} 1 *}) +apply(tactic {* inj_repabs_tac_fset @{context} 1 *}) +apply(tactic {* inj_repabs_tac_fset @{context} 1 *}) +apply(tactic {* inj_repabs_tac_fset @{context} 1 *}) +apply(tactic {* APPLY_RSP_TAC @{context} 1*}) +thm quotient_thm +apply(rule quotient_thm(3)) +apply(rule quotient_thm) +apply(rule quotient_thm) +apply(rule quotient_thm) +apply(tactic {* inj_repabs_tac_fset @{context} 1 *}) +apply(tactic {* inj_repabs_tac_fset @{context} 1 *}) +apply(tactic {* inj_repabs_tac_fset @{context} 1 *}) +apply(tactic {* inj_repabs_tac_fset @{context} 1 *}) +apply(tactic {* inj_repabs_tac_fset @{context} 1 *}) +apply(tactic {* inj_repabs_tac_fset @{context} 1 *}) +apply(tactic {* APPLY_RSP_TAC @{context} 1*}) +thm quotient_thm +apply(rule quotient_thm(3)) +apply(rule quotient_thm) +apply(rule quotient_thm) +apply(rule quotient_thm) +apply(tactic {* inj_repabs_tac_fset @{context} 1 *}) +apply(tactic {* inj_repabs_tac_fset @{context} 1 *}) +apply(tactic {* inj_repabs_tac_fset @{context} 1 *}) +apply(tactic {* inj_repabs_tac_fset @{context} 1 *}) +apply(tactic {* inj_repabs_tac_fset @{context} 1 *}) +apply(tactic {* inj_repabs_tac_fset @{context} 1 *}) +apply(tactic {* inj_repabs_tac_fset @{context} 1 *}) +apply(tactic {* inj_repabs_tac_fset @{context} 1 *}) +apply(tactic {* APPLY_RSP_TAC @{context} 1*}) +thm quotient_thm +apply(rule quotient_thm(3)) +apply(rule quotient_thm) +apply(rule quotient_thm) +apply(rule quotient_thm) +apply(tactic {* inj_repabs_tac_fset @{context} 1 *}) +apply(tactic {* inj_repabs_tac_fset @{context} 1 *}) +apply(tactic {* inj_repabs_tac_fset @{context} 1 *}) +apply(tactic {* inj_repabs_tac_fset @{context} 1 *}) +apply(tactic {* inj_repabs_tac_fset @{context} 1 *}) +(* apply (tactic {* lift_tac_fset @{context} @{thm list_induct_part} 1 *}) *) done lemma "P (x :: 'a fset) (EMPTY :: 'c fset) \ (\e t. P x t \ P x (INSERT e t)) \ P x l" @@ -434,8 +513,8 @@ "INSERT2 \ op #" ML {* val quot = @{thms QUOTIENT_fset QUOTIENT_fset2} *} -ML {* fun inj_repabs_tac_fset lthy = inj_repabs_tac lthy quot [rel_refl] [trans2] *} -ML {* fun lift_tac_fset lthy t = lift_tac lthy t [rel_eqv] quot *} +ML {* fun inj_repabs_tac_fset lthy = inj_repabs_tac lthy [rel_refl] [trans2] *} +ML {* fun lift_tac_fset lthy t = lift_tac lthy t [rel_eqv] *} lemma "P (x :: 'a fset2) (EMPTY :: 'c fset) \ (\e t. P x t \ P x (INSERT e t)) \ P x l" apply (tactic {* lift_tac_fset @{context} @{thm list_induct_part} 1 *}) @@ -469,7 +548,7 @@ sorry ML {* val rsp_thms = @{thms list_rec_rsp list_case_rsp} @ rsp_thms *} -ML {* fun lift_tac_fset lthy t = lift_tac lthy t [rel_eqv] quot *} +ML {* fun lift_tac_fset lthy t = lift_tac lthy t [rel_eqv] *} lemma "fset_rec (f1::'t) x (INSERT a xa) = x a xa (fset_rec f1 x xa)" apply (tactic {* lift_tac_fset @{context} @{thm list.recs(2)} 1 *})