src/HOL/Set.ML
changeset 9088 453996655ac2
parent 9075 e8521ed7f35b
child 9108 9fff97d29837
--- a/src/HOL/Set.ML	Tue Jun 20 11:41:25 2000 +0200
+++ b/src/HOL/Set.ML	Tue Jun 20 11:42:24 2000 +0200
@@ -473,13 +473,9 @@
 AddSIs [insertCI]; 
 AddSEs [insertE];
 
-Goal "A <= insert x B ==> A <= B & x ~: A | (EX B'. A = insert x B' & B' <= B)";
-by (case_tac "x:A" 1);
-by  (Fast_tac 2);
-by (rtac disjI2 1);
-by (res_inst_tac [("x","A-{x}")] exI 1);
-by (Fast_tac 1);
-qed "subset_insertD";
+Goal "(A <= insert x B) = (if x:A then A-{x} <= B else A<=B)";
+by Auto_tac; 
+qed "subset_insert_iff";
 
 section "Singletons, using insert";
 
@@ -755,9 +751,11 @@
 qed "psubsetI";
 AddSIs [psubsetI];
 
-Goalw [psubset_def] "A < insert x B ==> (x ~: A) & A<=B | x:A & A-{x}<B";
-by Auto_tac;
-qed "psubset_insertD";
+Goalw [psubset_def]
+  "(A < insert x B) = (if x:B then A<B else if x:A then A-{x} < B else A<=B)";
+by (asm_simp_tac (simpset() addsimps [subset_insert_iff]) 1);
+by (Blast_tac 1); 
+qed "psubset_insert_iff";
 
 bind_thm ("psubset_eq", psubset_def RS meta_eq_to_obj_eq);