equal
deleted
inserted
replaced
395 in map (fn r => r RS subst) (thm :: map mk_thm arities) end; |
395 in map (fn r => r RS subst) (thm :: map mk_thm arities) end; |
396 |
396 |
397 (* prove inj Rep_dt_i and Rep_dt_i x : rep_set_dt_i *) |
397 (* prove inj Rep_dt_i and Rep_dt_i x : rep_set_dt_i *) |
398 |
398 |
399 val fun_congs = |
399 val fun_congs = |
400 map (fn T => make_elim (Drule.instantiate' [SOME (Thm.global_ctyp_of thy5 T)] [] fun_cong)) branchTs; |
400 map (fn T => make_elim (Thm.instantiate' [SOME (Thm.global_ctyp_of thy5 T)] [] fun_cong)) branchTs; |
401 |
401 |
402 fun prove_iso_thms ds (inj_thms, elem_thms) = |
402 fun prove_iso_thms ds (inj_thms, elem_thms) = |
403 let |
403 let |
404 val (_, (tname, _, _)) = hd ds; |
404 val (_, (tname, _, _)) = hd ds; |
405 val induct = #induct (the (Symtab.lookup dt_info tname)); |
405 val induct = #induct (the (Symtab.lookup dt_info tname)); |