equal
deleted
inserted
replaced
7 |
7 |
8 signature BNF_WRAP_TACTICS = |
8 signature BNF_WRAP_TACTICS = |
9 sig |
9 sig |
10 val mk_case_cong_tac: thm -> thm list -> tactic |
10 val mk_case_cong_tac: thm -> thm list -> tactic |
11 val mk_case_eq_tac: Proof.context -> thm -> thm list -> thm list list -> thm list list -> tactic |
11 val mk_case_eq_tac: Proof.context -> thm -> thm list -> thm list list -> thm list list -> tactic |
12 val mk_ctr_sel_tac: Proof.context -> int -> thm -> thm list -> tactic |
12 val mk_collapse_tac: Proof.context -> int -> thm -> thm list -> tactic |
13 val mk_disc_exhaust_tac: int -> thm -> thm list -> tactic |
13 val mk_disc_exhaust_tac: int -> thm -> thm list -> tactic |
14 val mk_half_disc_exclus_tac: int -> thm -> thm -> tactic |
14 val mk_half_disc_exclus_tac: int -> thm -> thm -> tactic |
15 val mk_nchotomy_tac: int -> thm -> tactic |
15 val mk_nchotomy_tac: int -> thm -> tactic |
16 val mk_not_other_disc_def_tac: Proof.context -> thm -> thm -> thm -> tactic |
16 val mk_not_other_disc_def_tac: Proof.context -> thm -> thm -> thm -> tactic |
17 val mk_other_half_disc_exclus_tac: thm -> tactic |
17 val mk_other_half_disc_exclus_tac: thm -> tactic |
54 fun mk_disc_exhaust_tac n exhaust discIs = |
54 fun mk_disc_exhaust_tac n exhaust discIs = |
55 (rtac exhaust THEN' |
55 (rtac exhaust THEN' |
56 EVERY' (map2 (fn k => fn discI => |
56 EVERY' (map2 (fn k => fn discI => |
57 dtac discI THEN' select_prem_tac n (etac @{thm meta_mp}) k THEN' atac) (1 upto n) discIs)) 1; |
57 dtac discI THEN' select_prem_tac n (etac @{thm meta_mp}) k THEN' atac) (1 upto n) discIs)) 1; |
58 |
58 |
59 fun mk_ctr_sel_tac ctxt m discD sel_thms = |
59 fun mk_collapse_tac ctxt m discD sel_thms = |
60 (dtac discD THEN' |
60 (dtac discD THEN' |
61 (if m = 0 then |
61 (if m = 0 then |
62 atac |
62 atac |
63 else |
63 else |
64 REPEAT_DETERM_N m o etac exE THEN' |
64 REPEAT_DETERM_N m o etac exE THEN' |