src/ZF/Constructible/Normal.thy
changeset 67443 3abf6a722518
parent 65449 c82e63b11b8b
child 69587 53982d5ec0bb
equal deleted inserted replaced
67442:f075640b8868 67443:3abf6a722518
    78       c.u.\<close>
    78       c.u.\<close>
    79 
    79 
    80 text\<open>The constructions below come from Kunen, \emph{Set Theory}, page 78.\<close>
    80 text\<open>The constructions below come from Kunen, \emph{Set Theory}, page 78.\<close>
    81 locale cub_family =
    81 locale cub_family =
    82   fixes P and A
    82   fixes P and A
    83   fixes next_greater \<comment> "the next ordinal satisfying class @{term A}"
    83   fixes next_greater \<comment> \<open>the next ordinal satisfying class @{term A}\<close>
    84   fixes sup_greater  \<comment> "sup of those ordinals over all @{term A}"
    84   fixes sup_greater  \<comment> \<open>sup of those ordinals over all @{term A}\<close>
    85   assumes closed:    "a\<in>A ==> Closed(P(a))"
    85   assumes closed:    "a\<in>A ==> Closed(P(a))"
    86       and unbounded: "a\<in>A ==> Unbounded(P(a))"
    86       and unbounded: "a\<in>A ==> Unbounded(P(a))"
    87       and A_non0: "A\<noteq>0"
    87       and A_non0: "A\<noteq>0"
    88   defines "next_greater(a,x) == \<mu> y. x<y \<and> P(a,y)"
    88   defines "next_greater(a,x) == \<mu> y. x<y \<and> P(a,y)"
    89       and "sup_greater(x) == \<Union>a\<in>A. next_greater(a,x)"
    89       and "sup_greater(x) == \<Union>a\<in>A. next_greater(a,x)"
   333 lemma iterates_omega_Limit:
   333 lemma iterates_omega_Limit:
   334      "[| Normal(F);  x < F(x) |] ==> Limit(F^\<omega> (x))"  
   334      "[| Normal(F);  x < F(x) |] ==> Limit(F^\<omega> (x))"  
   335 apply (frule lt_Ord) 
   335 apply (frule lt_Ord) 
   336 apply (simp add: iterates_omega_def)
   336 apply (simp add: iterates_omega_def)
   337 apply (rule increasing_LimitI) 
   337 apply (rule increasing_LimitI) 
   338    \<comment>"this lemma is @{thm increasing_LimitI [no_vars]}"
   338    \<comment> \<open>this lemma is @{thm increasing_LimitI [no_vars]}\<close>
   339  apply (blast intro: UN_upper_lt [of "1"]   Normal_imp_Ord
   339  apply (blast intro: UN_upper_lt [of "1"]   Normal_imp_Ord
   340                      Ord_UN Ord_iterates lt_imp_0_lt
   340                      Ord_UN Ord_iterates lt_imp_0_lt
   341                      iterates_Normal_increasing, clarify)
   341                      iterates_Normal_increasing, clarify)
   342 apply (rule bexI) 
   342 apply (rule bexI) 
   343  apply (blast intro: Ord_in_Ord [OF Ord_iterates_Normal]) 
   343  apply (blast intro: Ord_in_Ord [OF Ord_iterates_Normal])