diff -r 107c06267f33 -r c6d30d5f5ba1 Nominal/Ex/CoreHaskell.thy --- a/Nominal/Ex/CoreHaskell.thy Sun Aug 15 11:03:13 2010 +0800 +++ b/Nominal/Ex/CoreHaskell.thy Sun Aug 15 14:00:28 2010 +0800 @@ -8,7 +8,7 @@ atom_decl cvar atom_decl tvar -declare [[STEPS = 18]] +declare [[STEPS = 20]] nominal_datatype tkind = KStar @@ -85,10 +85,50 @@ | "bv_cvs CvsNil = []" | "bv_cvs (CvsCons v k t) = (atom v) # bv_cvs t" - +(* can lift *) thm distinct +thm fv_defs -term TvsNil +thm tkind_raw_ckind_raw_ty_raw_ty_lst_raw_co_raw_co_lst_raw_trm_raw_assoc_lst_raw_pat_raw_vars_raw_tvars_raw_cvars_raw.inducts +thm perm_simps +thm perm_laws +thm tkind_raw_ckind_raw_ty_raw_ty_lst_raw_co_raw_co_lst_raw_trm_raw_assoc_lst_raw_pat_raw_vars_raw_tvars_raw_cvars_raw.size(50 - 98) + +(* cannot lift yet *) +thm eq_iff +thm eq_iff_simps + +ML {* + val qtys = [@{typ tkind}, @{typ ckind}, @{typ ty}, @{typ ty_lst}, @{typ co}, + @{typ co_lst}, @{typ trm}, @{typ assoc_lst}, @{typ pat}, @{typ vars}, + @{typ tvars}, @{typ cvars}] +*} + +ML {* + val thms_d = map (lift_thm qtys @{context}) @{thms distinct} +*} + +ML {* + val thms_i = map (lift_thm qtys @{context}) @{thms tkind_raw_ckind_raw_ty_raw_ty_lst_raw_co_raw_co_lst_raw_trm_raw_assoc_lst_raw_pat_raw_vars_raw_tvars_raw_cvars_raw.inducts} +*} + +ML {* + val thms_f = map (lift_thm qtys @{context}) @{thms fv_defs} +*} + +ML {* + val thms_i = map (lift_thm qtys @{context}) @{thms tkind_raw_ckind_raw_ty_raw_ty_lst_raw_co_raw_co_lst_raw_trm_raw_assoc_lst_raw_pat_raw_vars_raw_tvars_raw_cvars_raw.size(50 - 98)} +*} + +ML {* + val thms_p = map (lift_thm qtys @{context}) @{thms perm_simps} +*} + +ML {* + val thms_f = map (lift_thm qtys @{context}) @{thms perm_laws} +*} + + lemmas fv_supp=tkind_ckind_ty_ty_lst_co_co_lst_trm_assoc_lst_pat_vars_tvars_cvars.supp(1-9,11,13,15)