equal
deleted
inserted
replaced
20 (K [rtac ext 1, Asm_simp_tac 1]); |
20 (K [rtac ext 1, Asm_simp_tac 1]); |
21 (*Addsimps [map_upd_triv];*) |
21 (*Addsimps [map_upd_triv];*) |
22 |
22 |
23 Goalw [image_def] "finite (range f) ==> finite (range (f(a|->b)))"; |
23 Goalw [image_def] "finite (range f) ==> finite (range (f(a|->b)))"; |
24 by (full_simp_tac (simpset() addsimps [full_SetCompr_eq]) 1); |
24 by (full_simp_tac (simpset() addsimps [full_SetCompr_eq]) 1); |
25 br finite_subset 1; |
25 by (rtac finite_subset 1); |
26 ba 2; |
26 by (assume_tac 2); |
27 by Auto_tac; |
27 by Auto_tac; |
28 qed "finite_range_updI"; |
28 qed "finite_range_updI"; |
29 |
29 |
30 |
30 |
31 section "map_upds"; |
31 section "map_upds"; |
69 qed "map_of_filter_in"; |
69 qed "map_of_filter_in"; |
70 |
70 |
71 Goal "finite (range (map_of l))"; |
71 Goal "finite (range (map_of l))"; |
72 by (induct_tac "l" 1); |
72 by (induct_tac "l" 1); |
73 by (ALLGOALS (simp_tac (simpset() addsimps [image_constant]))); |
73 by (ALLGOALS (simp_tac (simpset() addsimps [image_constant]))); |
74 br finite_subset 1; |
74 by (rtac finite_subset 1); |
75 ba 2; |
75 by (assume_tac 2); |
76 by Auto_tac; |
76 by Auto_tac; |
77 qed "finite_range_map_of"; |
77 qed "finite_range_map_of"; |
78 |
78 |
79 section "option_map related"; |
79 section "option_map related"; |
80 |
80 |
119 by (simp_tac (simpset() addsplits [option.split]) 1); |
119 by (simp_tac (simpset() addsplits [option.split]) 1); |
120 qed "override_None"; |
120 qed "override_None"; |
121 AddIffs [override_None]; |
121 AddIffs [override_None]; |
122 |
122 |
123 Goalw [override_def] "f ++ g(x|->y) = (f ++ g)(x|->y)"; |
123 Goalw [override_def] "f ++ g(x|->y) = (f ++ g)(x|->y)"; |
124 br ext 1; |
124 by (rtac ext 1); |
125 by (auto_tac (claset_of Map.thy, simpset_of Map.thy)); |
125 by (auto_tac (claset_of Map.thy, simpset_of Map.thy)); |
126 qed "override_upd"; |
126 qed "override_upd"; |
127 Addsimps[override_upd]; |
127 Addsimps[override_upd]; |
128 |
128 |
129 Goalw [override_def] "map_of ys ++ map_of xs = map_of (xs@ys)"; |
129 Goalw [override_def] "map_of ys ++ map_of xs = map_of (xs@ys)"; |