equal
deleted
inserted
replaced
18 val mk_pointfree: Proof.context -> thm -> thm |
18 val mk_pointfree: Proof.context -> thm -> thm |
19 |
19 |
20 val mk_Abs_bij_thm: Proof.context -> thm -> thm -> thm |
20 val mk_Abs_bij_thm: Proof.context -> thm -> thm -> thm |
21 val mk_Abs_inj_thm: thm -> thm |
21 val mk_Abs_inj_thm: thm -> thm |
22 |
22 |
23 val mk_map_comp_id_tac: thm -> tactic |
23 val mk_map_comp_id_tac: Proof.context -> thm -> tactic |
24 val mk_map_cong0_tac: Proof.context -> int -> thm -> tactic |
24 val mk_map_cong0_tac: Proof.context -> int -> thm -> tactic |
25 val mk_map_cong0L_tac: int -> thm -> thm -> tactic |
25 val mk_map_cong0L_tac: int -> thm -> thm -> tactic |
26 end; |
26 end; |
27 |
27 |
28 structure BNF_Tactics : BNF_TACTICS = |
28 structure BNF_Tactics : BNF_TACTICS = |
80 | gen_tac _ _ = error "mk_rotate_eq_tac: different lists"; |
80 | gen_tac _ _ = error "mk_rotate_eq_tac: different lists"; |
81 in |
81 in |
82 gen_tac |
82 gen_tac |
83 end; |
83 end; |
84 |
84 |
85 fun mk_map_comp_id_tac map_comp0 = |
85 fun mk_map_comp_id_tac ctxt map_comp0 = |
86 (rtac trans THEN' rtac map_comp0 THEN' REPEAT_DETERM o stac @{thm comp_id} THEN' rtac refl) 1; |
86 (rtac trans THEN' rtac map_comp0 THEN' K (unfold_thms_tac ctxt @{thms comp_id}) THEN' rtac refl) 1; |
87 |
87 |
88 fun mk_map_cong0_tac ctxt m map_cong0 = |
88 fun mk_map_cong0_tac ctxt m map_cong0 = |
89 EVERY' [rtac mp, rtac map_cong0, |
89 EVERY' [rtac mp, rtac map_cong0, |
90 CONJ_WRAP' (K (rtac ballI THEN' Goal.assume_rule_tac ctxt)) (1 upto m)] 1; |
90 CONJ_WRAP' (K (rtac ballI THEN' Goal.assume_rule_tac ctxt)) (1 upto m)] 1; |
91 |
91 |