src/HOL/Nominal/nominal_datatype.ML
changeset 44685 f5bc7d9d0d74
parent 44241 7943b69f0188
child 44693 a9635943a3e9
equal deleted inserted replaced
44684:8dde3352d5c4 44685:f5bc7d9d0d74
   153   |> map (Drule.export_without_context #> Rule_Cases.save rule);
   153   |> map (Drule.export_without_context #> Rule_Cases.save rule);
   154 
   154 
   155 val supp_prod = @{thm supp_prod};
   155 val supp_prod = @{thm supp_prod};
   156 val fresh_prod = @{thm fresh_prod};
   156 val fresh_prod = @{thm fresh_prod};
   157 val supports_fresh = @{thm supports_fresh};
   157 val supports_fresh = @{thm supports_fresh};
   158 val supports_def = @{thm Nominal.supports_def};
   158 val supports_def = Simpdata.mk_eq @{thm Nominal.supports_def};
   159 val fresh_def = @{thm fresh_def};
   159 val fresh_def = Simpdata.mk_eq @{thm fresh_def};
   160 val supp_def = @{thm supp_def};
   160 val supp_def = Simpdata.mk_eq @{thm supp_def};
   161 val rev_simps = @{thms rev.simps};
   161 val rev_simps = @{thms rev.simps};
   162 val app_simps = @{thms append.simps};
   162 val app_simps = @{thms append.simps};
   163 val at_fin_set_supp = @{thm at_fin_set_supp};
   163 val at_fin_set_supp = @{thm at_fin_set_supp};
   164 val at_fin_set_fresh = @{thm at_fin_set_fresh};
   164 val at_fin_set_fresh = @{thm at_fin_set_fresh};
   165 val abs_fun_eq1 = @{thm abs_fun_eq1};
   165 val abs_fun_eq1 = @{thm abs_fun_eq1};
   304 
   304 
   305     val _ = warning ("length descr: " ^ string_of_int (length descr));
   305     val _ = warning ("length descr: " ^ string_of_int (length descr));
   306     val _ = warning ("length new_type_names: " ^ string_of_int (length new_type_names));
   306     val _ = warning ("length new_type_names: " ^ string_of_int (length new_type_names));
   307 
   307 
   308     val perm_indnames = Datatype_Prop.make_tnames (map body_type perm_types);
   308     val perm_indnames = Datatype_Prop.make_tnames (map body_type perm_types);
   309     val perm_fun_def = Global_Theory.get_thm thy2 "perm_fun_def";
   309     val perm_fun_def = Simpdata.mk_eq @{thm perm_fun_def};
   310 
   310 
   311     val unfolded_perm_eq_thms =
   311     val unfolded_perm_eq_thms =
   312       if length descr = length new_type_names then []
   312       if length descr = length new_type_names then []
   313       else map Drule.export_without_context (List.drop (split_conj_thm
   313       else map Drule.export_without_context (List.drop (split_conj_thm
   314         (Goal.prove_global thy2 [] []
   314         (Goal.prove_global thy2 [] []