FSet.thy
changeset 300 c6a9b4e4d548
parent 296 eab108c8d4b7
child 304 e741c735b867
equal deleted inserted replaced
299:893a8e789d7f 300:c6a9b4e4d548
   342 
   342 
   343 ML {* val rsp_thms = @{thms list_rec_rsp list_case_rsp} @ rsp_thms *}
   343 ML {* val rsp_thms = @{thms list_rec_rsp list_case_rsp} @ rsp_thms *}
   344 ML {* val defs = @{thms fset_rec_def fset_case_def} @ defs *}
   344 ML {* val defs = @{thms fset_rec_def fset_case_def} @ defs *}
   345 
   345 
   346 ML {* fun lift_thm_fset lthy t = lift_thm lthy qty "fset" rsp_thms defs t *}
   346 ML {* fun lift_thm_fset lthy t = lift_thm lthy qty "fset" rsp_thms defs t *}
       
   347 
   347 
   348 
   348 ML {* map (lift_thm_fset @{context}) @{thms list.recs} *}
   349 ML {* map (lift_thm_fset @{context}) @{thms list.recs} *}
   349 ML {* map (lift_thm_fset @{context}) @{thms list.cases} *}
   350 ML {* map (lift_thm_fset @{context}) @{thms list.cases} *}
   350 
   351 
   351 
   352 
   384 ML {* val t_r = Toplevel.program (fn () => regularize t_a rty rel rel_eqv rel_refl @{context}) *}
   385 ML {* val t_r = Toplevel.program (fn () => regularize t_a rty rel rel_eqv rel_refl @{context}) *}
   385 ML {*
   386 ML {*
   386   val rt = build_repabs_term @{context} t_r consts rty qty
   387   val rt = build_repabs_term @{context} t_r consts rty qty
   387   val rg = Logic.mk_equals ((Thm.prop_of t_r), rt);
   388   val rg = Logic.mk_equals ((Thm.prop_of t_r), rt);
   388 *}
   389 *}
   389 
   390 prove {* Syntax.check_term @{context} rg *}
   390 ML {* val ttt = snd (dest_Free (term_of @{cpat "f :: ?'a list \<Rightarrow> ?'a list"})) *}
       
   391 ML {* old_get_fun repF @{typ "'a list"} @{typ "'a fset"} @{context} @{typ "'a list \<Rightarrow> 'a list"} *}
       
   392 
       
   393 prove rg
       
   394 apply(atomize(full))
   391 apply(atomize(full))
   395 ML_prf {* fun r_mk_comb_tac_fset lthy = r_mk_comb_tac lthy rty quot rel_refl trans2 rsp_thms *}
   392 ML_prf {* fun r_mk_comb_tac_fset lthy = r_mk_comb_tac lthy rty quot rel_refl trans2 rsp_thms *}
   396 apply (tactic {* REPEAT_ALL_NEW (r_mk_comb_tac_fset @{context}) 1 *})
   393 apply (tactic {* REPEAT_ALL_NEW (r_mk_comb_tac_fset @{context}) 1 *})
   397 
   394 
   398 done
   395 done