src/HOL/equalities.ML
changeset 3919 c036caebfc75
parent 3907 51c00e87bd6e
child 4003 2bbeed529077
equal deleted inserted replaced
3918:94e0fdcb7b91 3919:c036caebfc75
   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);