equal
deleted
inserted
replaced
131 goal thy "A Int A = A"; |
131 goal thy "A Int A = A"; |
132 by (Blast_tac 1); |
132 by (Blast_tac 1); |
133 qed "Int_absorb"; |
133 qed "Int_absorb"; |
134 Addsimps[Int_absorb]; |
134 Addsimps[Int_absorb]; |
135 |
135 |
|
136 goal thy " A Int (A Int B) = A Int B"; |
|
137 by (Blast_tac 1); |
|
138 qed "Int_left_absorb"; |
|
139 |
136 goal thy "A Int B = B Int A"; |
140 goal thy "A Int B = B Int A"; |
137 by (Blast_tac 1); |
141 by (Blast_tac 1); |
138 qed "Int_commute"; |
142 qed "Int_commute"; |
139 |
143 |
|
144 goal thy "A Int (B Int C) = B Int (A Int C)"; |
|
145 by (Blast_tac 1); |
|
146 qed "Int_left_commute"; |
|
147 |
140 goal thy "(A Int B) Int C = A Int (B Int C)"; |
148 goal thy "(A Int B) Int C = A Int (B Int C)"; |
141 by (Blast_tac 1); |
149 by (Blast_tac 1); |
142 qed "Int_assoc"; |
150 qed "Int_assoc"; |
|
151 |
|
152 (*Intersection is an AC-operator*) |
|
153 val Int_ac = [Int_assoc, Int_left_absorb, Int_commute, Int_left_commute]; |
143 |
154 |
144 goal thy "{} Int B = {}"; |
155 goal thy "{} Int B = {}"; |
145 by (Blast_tac 1); |
156 by (Blast_tac 1); |
146 qed "Int_empty_left"; |
157 qed "Int_empty_left"; |
147 Addsimps[Int_empty_left]; |
158 Addsimps[Int_empty_left]; |
195 |
206 |
196 goal thy "A Un B = B Un A"; |
207 goal thy "A Un B = B Un A"; |
197 by (Blast_tac 1); |
208 by (Blast_tac 1); |
198 qed "Un_commute"; |
209 qed "Un_commute"; |
199 |
210 |
200 goal thy " A Un (B Un C) = B Un (A Un C)"; |
211 goal thy "A Un (B Un C) = B Un (A Un C)"; |
201 by (Blast_tac 1); |
212 by (Blast_tac 1); |
202 qed "Un_left_commute"; |
213 qed "Un_left_commute"; |
203 |
214 |
204 goal thy "(A Un B) Un C = A Un (B Un C)"; |
215 goal thy "(A Un B) Un C = A Un (B Un C)"; |
205 by (Blast_tac 1); |
216 by (Blast_tac 1); |
206 qed "Un_assoc"; |
217 qed "Un_assoc"; |
|
218 |
|
219 (*Union is an AC-operator*) |
|
220 val Un_ac = [Un_assoc, Un_left_absorb, Un_commute, Un_left_commute]; |
207 |
221 |
208 goal thy "{} Un B = B"; |
222 goal thy "{} Un B = B"; |
209 by (Blast_tac 1); |
223 by (Blast_tac 1); |
210 qed "Un_empty_left"; |
224 qed "Un_empty_left"; |
211 Addsimps[Un_empty_left]; |
225 Addsimps[Un_empty_left]; |
245 \ else A Int B)"; |
259 \ else A Int B)"; |
246 by (simp_tac (simpset() addsplits [expand_if]) 1); |
260 by (simp_tac (simpset() addsplits [expand_if]) 1); |
247 by (Blast_tac 1); |
261 by (Blast_tac 1); |
248 qed "Int_insert_right"; |
262 qed "Int_insert_right"; |
249 |
263 |
250 goal thy "(A Int B) Un C = (A Un C) Int (B Un C)"; |
264 goal thy "A Un (B Int C) = (A Un B) Int (A Un C)"; |
251 by (Blast_tac 1); |
265 by (Blast_tac 1); |
252 qed "Un_Int_distrib"; |
266 qed "Un_Int_distrib"; |
|
267 |
|
268 goal thy "(B Int C) Un A = (B Un A) Int (C Un A)"; |
|
269 by (Blast_tac 1); |
|
270 qed "Un_Int_distrib2"; |
253 |
271 |
254 goal thy |
272 goal thy |
255 "(A Int B) Un (B Int C) Un (C Int A) = (A Un B) Int (B Un C) Int (C Un A)"; |
273 "(A Int B) Un (B Int C) Un (C Int A) = (A Un B) Int (B Un C) Int (C Un A)"; |
256 by (Blast_tac 1); |
274 by (Blast_tac 1); |
257 qed "Un_Int_crazy"; |
275 qed "Un_Int_crazy"; |
504 by (Blast_tac 1); |
522 by (Blast_tac 1); |
505 qed "bex_Un"; |
523 qed "bex_Un"; |
506 |
524 |
507 |
525 |
508 section "-"; |
526 section "-"; |
|
527 |
|
528 goal thy "A-B = A Int Compl B"; |
|
529 by (Blast_tac 1); |
|
530 qed "Diff_eq_Int_Compl"; |
509 |
531 |
510 goal thy "A-A = {}"; |
532 goal thy "A-A = {}"; |
511 by (Blast_tac 1); |
533 by (Blast_tac 1); |
512 qed "Diff_cancel"; |
534 qed "Diff_cancel"; |
513 Addsimps[Diff_cancel]; |
535 Addsimps[Diff_cancel]; |