FSet.thy
changeset 461 40c9fb60de3c
parent 459 020e27417b59
child 462 0911d3aabf47
equal deleted inserted replaced
460:3f8c7183ddac 461:40c9fb60de3c
   293 
   293 
   294 print_quotients
   294 print_quotients
   295 
   295 
   296 ML {* val qty = @{typ "'a fset"} *}
   296 ML {* val qty = @{typ "'a fset"} *}
   297 ML {* val rsp_thms =
   297 ML {* val rsp_thms =
   298   @{thms ho_memb_rsp ho_cons_rsp ho_card1_rsp ho_map_rsp ho_append_rsp ho_fold_rsp}
   298   @{thms ho_memb_rsp ho_cons_rsp ho_card1_rsp ho_map_rsp ho_append_rsp ho_fold_rsp} *}
   299   @ @{thms ho_all_prs ho_ex_prs} *}
       
   300 
   299 
   301 ML {* val (rty, rel, rel_refl, rel_eqv) = lookup_quot_data @{context} qty *}
   300 ML {* val (rty, rel, rel_refl, rel_eqv) = lookup_quot_data @{context} qty *}
   302 ML {* val (trans2, reps_same, absrep, quot) = lookup_quot_thms @{context} "fset"; *}
   301 ML {* val (trans2, reps_same, absrep, quot) = lookup_quot_thms @{context} "fset"; *}
   303 ML {* val consts = lookup_quot_consts defs *}
   302 ML {* val consts = lookup_quot_consts defs *}
   304 ML {* fun lift_tac_fset lthy t = lift_tac lthy t [rel_eqv] rty [quot] defs *}
   303 ML {* fun lift_tac_fset lthy t = lift_tac lthy t [rel_eqv] rty [quot] defs *}
   504 apply (tactic {* (inj_repabs_tac_fset @{context}) 1 *})
   503 apply (tactic {* (inj_repabs_tac_fset @{context}) 1 *})
   505 apply (tactic {* (inj_repabs_tac_fset @{context}) 1 *})
   504 apply (tactic {* (inj_repabs_tac_fset @{context}) 1 *})
   506 apply (tactic {* (inj_repabs_tac_fset @{context}) 1 *})
   505 apply (tactic {* (inj_repabs_tac_fset @{context}) 1 *})
   507 apply (tactic {* (inj_repabs_tac_fset @{context}) 1 *})
   506 apply (tactic {* (inj_repabs_tac_fset @{context}) 1 *})
   508 apply (tactic {* instantiate_tac @{thm APPLY_RSP2} @{context} 1 *})
   507 apply (tactic {* instantiate_tac @{thm APPLY_RSP2} @{context} 1 *})
   509 apply (tactic {* (instantiate_tac @{thm REP_ABS_RSP(1)} @{context} THEN' (RANGE [quotient_tac [quot]])) 1 *})
   508 apply (tactic {* (instantiate_tac @{thm REP_ABS_RSP} @{context} THEN' (RANGE [quotient_tac [quot]])) 1 *})
   510 apply assumption
   509 apply assumption
   511 apply (rule refl)
   510 apply (rule refl)
   512 apply (tactic {* (inj_repabs_tac_fset @{context}) 1 *})
   511 apply (tactic {* (inj_repabs_tac_fset @{context}) 1 *})
   513 apply (tactic {* (inj_repabs_tac_fset @{context}) 1 *})
   512 apply (tactic {* (inj_repabs_tac_fset @{context}) 1 *})
   514 apply (tactic {* instantiate_tac @{thm APPLY_RSP2} @{context} 1 *})
   513 apply (tactic {* instantiate_tac @{thm APPLY_RSP2} @{context} 1 *})
   515 apply (tactic {* instantiate_tac @{thm APPLY_RSP2} @{context} 1 *})
   514 apply (tactic {* instantiate_tac @{thm APPLY_RSP2} @{context} 1 *})
   516 apply (tactic {* (instantiate_tac @{thm REP_ABS_RSP(1)} @{context} THEN' (RANGE [quotient_tac [quot]])) 1 *})
   515 apply (tactic {* (instantiate_tac @{thm REP_ABS_RSP} @{context} THEN' (RANGE [quotient_tac [quot]])) 1 *})
   517 apply (tactic {* (inj_repabs_tac_fset @{context}) 1 *})
   516 apply (tactic {* (inj_repabs_tac_fset @{context}) 1 *})
   518 apply (tactic {* (inj_repabs_tac_fset @{context}) 1 *})
   517 apply (tactic {* (inj_repabs_tac_fset @{context}) 1 *})
   519 apply (tactic {* REPEAT_ALL_NEW (inj_repabs_tac_fset @{context}) 1 *})
   518 apply (tactic {* REPEAT_ALL_NEW (inj_repabs_tac_fset @{context}) 1 *})
   520 apply (tactic {* (inj_repabs_tac_fset @{context}) 1 *})
   519 apply (tactic {* (inj_repabs_tac_fset @{context}) 1 *})
   521 apply (tactic {* instantiate_tac @{thm APPLY_RSP2} @{context} 1 *})
   520 apply (tactic {* instantiate_tac @{thm APPLY_RSP2} @{context} 1 *})
   522 apply (tactic {* (instantiate_tac @{thm REP_ABS_RSP(1)} @{context} THEN' (RANGE [quotient_tac [quot]])) 1 *})
   521 apply (tactic {* (instantiate_tac @{thm REP_ABS_RSP} @{context} THEN' (RANGE [quotient_tac [quot]])) 1 *})
   523 apply (tactic {* (inj_repabs_tac_fset @{context}) 1 *})
   522 apply (tactic {* (inj_repabs_tac_fset @{context}) 1 *})
   524 apply (tactic {* (inj_repabs_tac_fset @{context}) 1 *})
   523 apply (tactic {* (inj_repabs_tac_fset @{context}) 1 *})
   525 apply (tactic {* (inj_repabs_tac_fset @{context}) 1 *})
   524 apply (tactic {* (inj_repabs_tac_fset @{context}) 1 *})
   526 apply (tactic {* (inj_repabs_tac_fset @{context}) 1 *})
   525 apply (tactic {* (inj_repabs_tac_fset @{context}) 1 *})
   527 apply (tactic {* clean_tac @{context} [quot] defs [(@{typ "('a list \<Rightarrow> 'c list \<Rightarrow> bool)"},@{typ "('a list \<Rightarrow> 'c fset \<Rightarrow> bool)"})] 1 *})
   526 apply (tactic {* clean_tac @{context} [quot] defs [(@{typ "('a list \<Rightarrow> 'c list \<Rightarrow> bool)"},@{typ "('a list \<Rightarrow> 'c fset \<Rightarrow> bool)"})] 1 *})