src/ZF/Constructible/Formula.thy
changeset 13245 714f7a423a15
parent 13223 45be08fbdcff
child 13269 3ba9be497c33
--- a/src/ZF/Constructible/Formula.thy	Mon Jun 24 11:59:14 2002 +0200
+++ b/src/ZF/Constructible/Formula.thy	Mon Jun 24 11:59:21 2002 +0200
@@ -22,54 +22,7 @@
 lemma [simp]: "(bool_of_o(P) = 0) <-> ~P"
 by (simp add: bool_of_o_def) 
 
-(*????????????????Cardinal.ML*)
-lemma Finite_cons_iff [iff]:  "Finite(cons(y,x)) <-> Finite(x)"
-by (blast intro: Finite_cons subset_Finite)
-
-lemma Finite_succ_iff [iff]:  "Finite(succ(x)) <-> Finite(x)"
-by (simp add: succ_def)
-
-declare Finite_0 [simp]
-
-lemma Finite_RepFun: "Finite(A) ==> Finite(RepFun(A,f))"
-by (erule Finite_induct, simp_all)
-
-lemma Finite_RepFun_lemma [rule_format]:
-     "[|Finite(x); !!x y. f(x)=f(y) ==> x=y|] 
-      ==> \<forall>A. x = RepFun(A,f) --> Finite(A)" 
-apply (erule Finite_induct)
- apply clarify 
- apply (case_tac "A=0", simp)
- apply (blast del: allE, clarify) 
-apply (subgoal_tac "\<exists>z\<in>A. x = f(z)") 
- prefer 2 apply (blast del: allE elim: equalityE, clarify) 
-apply (subgoal_tac "B = {f(u) . u \<in> A - {z}}")
- apply (blast intro: Diff_sing_Finite) 
-apply (thin_tac "\<forall>A. ?P(A) --> Finite(A)") 
-apply (rule equalityI) 
- apply (blast intro: elim: equalityE) 
-apply (blast intro: elim: equalityCE) 
-done
-
-text{*I don't know why, but if the premise is expressed using meta-connectives
-then  the simplifier cannot prove it automatically in conditional rewriting.*}
-lemma Finite_RepFun_iff:
-     "(\<forall>x y. f(x)=f(y) --> x=y) ==> Finite(RepFun(A,f)) <-> Finite(A)"
-by (blast intro: Finite_RepFun Finite_RepFun_lemma [of _ f]) 
-
-lemma Finite_Pow: "Finite(A) ==> Finite(Pow(A))"
-apply (erule Finite_induct) 
-apply (simp_all add: Pow_insert Finite_Un Finite_RepFun) 
-done
-
-lemma Finite_Pow_imp_Finite: "Finite(Pow(A)) ==> Finite(A)"
-apply (subgoal_tac "Finite({{x} . x \<in> A})")
- apply (simp add: Finite_RepFun_iff ) 
-apply (blast intro: subset_Finite) 
-done
-
-lemma Finite_Pow_iff [iff]: "Finite(Pow(A)) <-> Finite(A)"
-by (blast intro: Finite_Pow Finite_Pow_imp_Finite)
+(*????????????????CardinalArith *)
 
 lemma Finite_Vset: "i \<in> nat ==> Finite(Vset(i))";
 apply (erule nat_induct)
@@ -922,6 +875,10 @@
 apply (blast intro!: le_imp_subset Lset_mono [THEN subsetD]) 
 done
 
+
+lemma Ord_in_L: "Ord(i) ==> L(i)"
+by (blast intro: Ord_in_Lset L_I)
+
 text{*This is lrank(lrank(a)) = lrank(a) *}
 declare Ord_lrank [THEN lrank_of_Ord, simp]
 
@@ -963,13 +920,13 @@
 
 subsection{*For L to satisfy the ZF axioms*}
 
-lemma Union_in_L: "L(X) ==> L(Union(X))"
+theorem Union_in_L: "L(X) ==> L(Union(X))"
 apply (simp add: L_def, clarify) 
 apply (drule Ord_imp_greater_Limit) 
 apply (blast intro: lt_LsetI Union_in_LLimit Limit_is_Ord) 
 done
 
-lemma doubleton_in_L: "[| L(a); L(b) |] ==> L({a, b})"
+theorem doubleton_in_L: "[| L(a); L(b) |] ==> L({a, b})"
 apply (simp add: L_def, clarify) 
 apply (drule Ord2_imp_greater_Limit, assumption) 
 apply (blast intro: lt_LsetI doubleton_in_LLimit Limit_is_Ord) 
@@ -1000,7 +957,7 @@
 apply (auto intro: L_I iff: Lset_succ_lrank_iff) 
 done
 
-lemma LPow_in_L: "L(X) ==> L({y \<in> Pow(X). L(y)})"
+theorem LPow_in_L: "L(X) ==> L({y \<in> Pow(X). L(y)})"
 by (blast intro: L_I dest: L_D LPow_in_Lset)
 
 end