equal
deleted
inserted
replaced
16 val mk_map_wppull_tac: thm -> thm -> thm -> thm -> thm list -> tactic |
16 val mk_map_wppull_tac: thm -> thm -> thm -> thm -> thm list -> tactic |
17 val mk_set_map': thm -> thm |
17 val mk_set_map': thm -> thm |
18 |
18 |
19 val mk_rel_Grp_tac: thm list -> thm -> thm -> thm -> thm -> thm list -> |
19 val mk_rel_Grp_tac: thm list -> thm -> thm -> thm -> thm -> thm list -> |
20 {prems: thm list, context: Proof.context} -> tactic |
20 {prems: thm list, context: Proof.context} -> tactic |
21 val mk_rel_eq_tac: int -> thm -> thm -> thm -> {prems: 'a, context: Proof.context} -> tactic |
21 val mk_rel_eq_tac: int -> thm -> thm -> thm -> tactic |
22 val mk_rel_OO_tac: thm list -> thm -> thm -> thm -> thm -> thm list -> |
22 val mk_rel_OO_tac: thm list -> thm -> thm -> thm -> thm -> thm list -> |
23 {prems: thm list, context: Proof.context} -> tactic |
23 {prems: thm list, context: Proof.context} -> tactic |
24 val mk_in_rel_tac: thm list -> {prems: 'b, context: Proof.context} -> tactic |
24 val mk_in_rel_tac: thm list -> {prems: 'b, context: Proof.context} -> tactic |
25 val mk_rel_conversep_tac: thm -> thm -> tactic |
25 val mk_rel_conversep_tac: thm -> thm -> tactic |
26 val mk_rel_conversep_le_tac: thm list -> thm -> thm -> thm -> thm list -> |
26 val mk_rel_conversep_le_tac: thm list -> thm -> thm -> thm -> thm list -> |
102 rtac @{thm convol_mem_GrpI[OF refl]}, etac set_mp, atac]) |
102 rtac @{thm convol_mem_GrpI[OF refl]}, etac set_mp, atac]) |
103 set_maps]) |
103 set_maps]) |
104 @{thms fst_convol snd_convol} [map_id', refl])] 1 |
104 @{thms fst_convol snd_convol} [map_id', refl])] 1 |
105 end; |
105 end; |
106 |
106 |
107 fun mk_rel_eq_tac n rel_Grp rel_cong map_id {context = ctxt, prems = _} = |
107 fun mk_rel_eq_tac n rel_Grp rel_cong map_id = |
108 (EVERY' (rtac (rel_cong RS trans) :: replicate n (rtac @{thm eq_alt})) THEN' |
108 (EVERY' (rtac (rel_cong RS trans) :: replicate n (rtac @{thm eq_alt})) THEN' |
109 rtac (rel_Grp RSN (2, @{thm box_equals[OF _ sym sym[OF eq_alt]]})) THEN' |
109 rtac (rel_Grp RSN (2, @{thm box_equals[OF _ sym sym[OF eq_alt]]})) THEN' |
110 (if n = 0 then rtac refl |
110 (if n = 0 then rtac refl |
111 else EVERY' [rtac @{thm arg_cong2[of _ _ _ _ "Grp"]}, |
111 else EVERY' [rtac @{thm arg_cong2[of _ _ _ _ "Grp"]}, |
112 rtac @{thm equalityI}, rtac subset_UNIV, rtac subsetI, rtac CollectI, |
112 rtac @{thm equalityI}, rtac subset_UNIV, rtac subsetI, rtac CollectI, |