equal
deleted
inserted
replaced
288 let |
288 let |
289 val active :: actives' = actives; |
289 val active :: actives' = actives; |
290 val dtor_corec_transfer' = cterm_instantiate_pos |
290 val dtor_corec_transfer' = cterm_instantiate_pos |
291 (SOME active :: map SOME passives @ map SOME actives') dtor_corec_transfer; |
291 (SOME active :: map SOME passives @ map SOME actives') dtor_corec_transfer; |
292 in |
292 in |
293 HEADGOAL Goal.conjunction_tac THEN |
293 HEADGOAL Goal.conjunction_tac THEN REPEAT_DETERM (HEADGOAL (rtac rel_funI)) THEN |
294 REPEAT_DETERM (HEADGOAL (rtac rel_funI)) THEN |
|
295 unfold_thms_tac ctxt [corec_def] THEN |
294 unfold_thms_tac ctxt [corec_def] THEN |
296 HEADGOAL (etac (mk_rel_funDN_rotated (1 + length actives) dtor_corec_transfer')) THEN |
295 HEADGOAL (etac (mk_rel_funDN_rotated (1 + length actives) dtor_corec_transfer')) THEN |
297 unfold_thms_tac ctxt (rel_pre_T_defs @ rel_eqs) |
296 unfold_thms_tac ctxt (rel_pre_T_defs @ rel_eqs) |
298 end; |
297 end; |
299 |
298 |
490 (eresolve_tac ctxt @{thms FalseE emptyE singletonE UnE UN_E insertE} ORELSE' |
489 (eresolve_tac ctxt @{thms FalseE emptyE singletonE UnE UN_E insertE} ORELSE' |
491 hyp_subst_tac ctxt ORELSE' |
490 hyp_subst_tac ctxt ORELSE' |
492 SELECT_GOAL (SOLVE (HEADGOAL (eresolve_tac ctxt assms THEN' REPEAT_DETERM o atac))))); |
491 SELECT_GOAL (SOLVE (HEADGOAL (eresolve_tac ctxt assms THEN' REPEAT_DETERM o atac))))); |
493 |
492 |
494 fun mk_set_intros_tac ctxt sets = |
493 fun mk_set_intros_tac ctxt sets = |
495 TRYALL Goal.conjunction_tac THEN |
494 TRYALL Goal.conjunction_tac THEN unfold_thms_tac ctxt sets THEN |
496 unfold_thms_tac ctxt sets THEN |
|
497 TRYALL (REPEAT o |
495 TRYALL (REPEAT o |
498 (resolve_tac ctxt @{thms UnI1 UnI2} ORELSE' |
496 (resolve_tac ctxt @{thms UnI1 UnI2} ORELSE' |
499 eresolve_tac ctxt @{thms UN_I UN_I[rotated]}) THEN' (rtac @{thm singletonI} ORELSE' atac)); |
497 eresolve_tac ctxt @{thms UN_I UN_I[rotated]}) THEN' (rtac @{thm singletonI} ORELSE' atac)); |
500 |
498 |
501 fun mk_set_induct0_tac ctxt cts assms dtor_set_inducts exhausts set_pre_defs ctor_defs dtor_ctors |
499 fun mk_set_induct0_tac ctxt cts assms dtor_set_inducts exhausts set_pre_defs ctor_defs dtor_ctors |