equal
deleted
inserted
replaced
237 qed "Un_insert_right"; |
237 qed "Un_insert_right"; |
238 Addsimps[Un_insert_right]; |
238 Addsimps[Un_insert_right]; |
239 |
239 |
240 goal Set.thy "(insert a B) Int C = (if a:C then insert a (B Int C) \ |
240 goal Set.thy "(insert a B) Int C = (if a:C then insert a (B Int C) \ |
241 \ else B Int C)"; |
241 \ else B Int C)"; |
242 by (simp_tac (!simpset setloop split_tac [expand_if]) 1); |
242 by (simp_tac (!simpset addsplits [expand_if]) 1); |
243 by (Blast_tac 1); |
243 by (Blast_tac 1); |
244 qed "Int_insert_left"; |
244 qed "Int_insert_left"; |
245 |
245 |
246 goal Set.thy "A Int (insert a B) = (if a:A then insert a (A Int B) \ |
246 goal Set.thy "A Int (insert a B) = (if a:A then insert a (A Int B) \ |
247 \ else A Int B)"; |
247 \ else A Int B)"; |
248 by (simp_tac (!simpset setloop split_tac [expand_if]) 1); |
248 by (simp_tac (!simpset addsplits [expand_if]) 1); |
249 by (Blast_tac 1); |
249 by (Blast_tac 1); |
250 qed "Int_insert_right"; |
250 qed "Int_insert_right"; |
251 |
251 |
252 goal Set.thy "(A Int B) Un C = (A Un C) Int (B Un C)"; |
252 goal Set.thy "(A Int B) Un C = (A Un C) Int (B Un C)"; |
253 by (Blast_tac 1); |
253 by (Blast_tac 1); |
566 goal Set.thy "A - insert a B = A - {a} - B"; |
566 goal Set.thy "A - insert a B = A - {a} - B"; |
567 by (Blast_tac 1); |
567 by (Blast_tac 1); |
568 qed "Diff_insert2"; |
568 qed "Diff_insert2"; |
569 |
569 |
570 goal Set.thy "insert x A - B = (if x:B then A-B else insert x (A-B))"; |
570 goal Set.thy "insert x A - B = (if x:B then A-B else insert x (A-B))"; |
571 by (simp_tac (!simpset setloop split_tac[expand_if]) 1); |
571 by (simp_tac (!simpset addsplits [expand_if]) 1); |
572 by (Blast_tac 1); |
572 by (Blast_tac 1); |
573 qed "insert_Diff_if"; |
573 qed "insert_Diff_if"; |
574 |
574 |
575 goal Set.thy "!!x. x:B ==> insert x A - B = A-B"; |
575 goal Set.thy "!!x. x:B ==> insert x A - B = A-B"; |
576 by (Blast_tac 1); |
576 by (Blast_tac 1); |