equal
deleted
inserted
replaced
38 val mk_rel_induct0_tac: Proof.context -> thm -> thm list -> cterm list -> thm list -> |
38 val mk_rel_induct0_tac: Proof.context -> thm -> thm list -> cterm list -> thm list -> |
39 thm list list -> thm list -> thm list -> thm list -> thm list -> tactic |
39 thm list list -> thm list -> thm list -> thm list -> thm list -> tactic |
40 val mk_rel_sel_tac: Proof.context -> cterm -> cterm -> thm -> thm list -> thm list -> thm list -> |
40 val mk_rel_sel_tac: Proof.context -> cterm -> cterm -> thm -> thm list -> thm list -> thm list -> |
41 thm list -> thm list -> tactic |
41 thm list -> thm list -> tactic |
42 val mk_set_cases_tac: Proof.context -> cterm -> thm list -> thm -> thm list -> tactic |
42 val mk_set_cases_tac: Proof.context -> cterm -> thm list -> thm -> thm list -> tactic |
43 val mk_set_empty_tac: Proof.context -> cterm -> thm -> thm list -> thm list -> tactic |
|
44 val mk_set_induct0_tac: Proof.context -> cterm list -> thm list -> thm list -> thm list -> |
43 val mk_set_induct0_tac: Proof.context -> cterm list -> thm list -> thm list -> thm list -> |
45 thm list -> thm list -> thm list -> thm list -> tactic |
44 thm list -> thm list -> thm list -> thm list -> tactic |
46 val mk_set_intros_tac: Proof.context -> thm list -> tactic |
45 val mk_set_intros_tac: Proof.context -> thm list -> tactic |
47 val mk_set_sel_tac: Proof.context -> cterm -> thm -> thm list -> thm list -> thm list -> tactic |
46 val mk_set_sel_tac: Proof.context -> cterm -> thm -> thm list -> thm list -> thm list -> tactic |
48 end; |
47 end; |
314 unfold_thms_tac ctxt sets THEN |
313 unfold_thms_tac ctxt sets THEN |
315 REPEAT_DETERM (HEADGOAL |
314 REPEAT_DETERM (HEADGOAL |
316 (eresolve_tac @{thms FalseE emptyE singletonE UnE UN_E insertE} ORELSE' |
315 (eresolve_tac @{thms FalseE emptyE singletonE UnE UN_E insertE} ORELSE' |
317 hyp_subst_tac ctxt ORELSE' |
316 hyp_subst_tac ctxt ORELSE' |
318 SELECT_GOAL (SOLVE (HEADGOAL (eresolve_tac assms THEN' REPEAT_DETERM o atac))))); |
317 SELECT_GOAL (SOLVE (HEADGOAL (eresolve_tac assms THEN' REPEAT_DETERM o atac))))); |
319 |
|
320 fun mk_set_empty_tac ctxt ct exhaust sets discs = |
|
321 TRYALL Goal.conjunction_tac THEN |
|
322 ALLGOALS (rtac (cterm_instantiate_pos [SOME ct] exhaust) THEN_ALL_NEW |
|
323 REPEAT_DETERM o hyp_subst_tac ctxt) THEN |
|
324 unfold_thms_tac ctxt (sets @ map_filter (fn thm => |
|
325 SOME (thm RS eqFalseI) handle THM _ => NONE) discs) THEN |
|
326 ALLGOALS (rtac refl ORELSE' etac FalseE); |
|
327 |
318 |
328 fun mk_set_intros_tac ctxt sets = |
319 fun mk_set_intros_tac ctxt sets = |
329 TRYALL Goal.conjunction_tac THEN |
320 TRYALL Goal.conjunction_tac THEN |
330 unfold_thms_tac ctxt sets THEN |
321 unfold_thms_tac ctxt sets THEN |
331 TRYALL (REPEAT o |
322 TRYALL (REPEAT o |