CollectE;
authorwenzelm
Wed, 29 Sep 1999 16:45:04 +0200
changeset 7658 2d3445be4e91
parent 7657 dbbf7721126e
child 7659 c89ba43d9df0
CollectE; AddXIs [subsetD, rev_subsetD, psubsetI];
src/HOL/Set.ML
--- a/src/HOL/Set.ML	Wed Sep 29 16:44:18 1999 +0200
+++ b/src/HOL/Set.ML	Wed Sep 29 16:45:04 1999 +0200
@@ -19,6 +19,8 @@
 by (Asm_full_simp_tac 1);
 qed "CollectD";
 
+bind_thm ("CollectE", make_elim CollectD);
+
 val [prem] = Goal "[| !!x. (x:A) = (x:B) |] ==> A = B";
 by (rtac (prem RS ext RS arg_cong RS box_equals) 1);
 by (rtac Collect_mem_eq 1);
@@ -139,11 +141,13 @@
 Goalw [subset_def] "[| A <= B;  c:A |] ==> c:B";
 by (Blast_tac 1);
 qed "subsetD";
+AddXIs [subsetD];
 
 (*The same, with reversed premises for use with etac -- cf rev_mp*)
 Goal "[| c:A;  A <= B |] ==> c:B";
 by (REPEAT (ares_tac [subsetD] 1)) ;
 qed "rev_subsetD";
+AddXIs [rev_subsetD];
 
 (*Converts A<=B to x:A ==> x:B*)
 fun impOfSubs th = th RSN (2, rev_subsetD);
@@ -724,6 +728,7 @@
 Goalw [psubset_def] "!!A::'a set. [| A <= B; A ~= B |] ==> A<B";
 by (Blast_tac 1);
 qed "psubsetI";
+AddXIs [psubsetI];
 
 Goalw [psubset_def] "A < insert x B ==> (x ~: A) & A<=B | x:A & A-{x}<B";
 by Auto_tac;