src/ZF/Constructible/Formula.thy
changeset 61798 27f3c10b0b50
parent 60770 240563fbf41d
child 65449 c82e63b11b8b
equal deleted inserted replaced
61797:458b4e3720ab 61798:27f3c10b0b50
   503 done
   503 done
   504 
   504 
   505 
   505 
   506 subsection\<open>Internalized Formulas for the Ordinals\<close>
   506 subsection\<open>Internalized Formulas for the Ordinals\<close>
   507 
   507 
   508 text\<open>The @{text sats} theorems below differ from the usual form in that they
   508 text\<open>The \<open>sats\<close> theorems below differ from the usual form in that they
   509 include an element of absoluteness.  That is, they relate internalized
   509 include an element of absoluteness.  That is, they relate internalized
   510 formulas to real concepts such as the subset relation, rather than to the
   510 formulas to real concepts such as the subset relation, rather than to the
   511 relativized concepts defined in theory @{text Relative}.  This lets us prove
   511 relativized concepts defined in theory \<open>Relative\<close>.  This lets us prove
   512 the theorem as @{text Ords_in_DPow} without first having to instantiate the
   512 the theorem as \<open>Ords_in_DPow\<close> without first having to instantiate the
   513 locale @{text M_trivial}.  Note that the present theory does not even take
   513 locale \<open>M_trivial\<close>.  Note that the present theory does not even take
   514 @{text Relative} as a parent.\<close>
   514 \<open>Relative\<close> as a parent.\<close>
   515 
   515 
   516 subsubsection\<open>The subset relation\<close>
   516 subsubsection\<open>The subset relation\<close>
   517 
   517 
   518 definition
   518 definition
   519   subset_fm :: "[i,i]=>i" where
   519   subset_fm :: "[i,i]=>i" where
   576 apply (simp add: ordinal_fm_def Ord_def Transset_def)
   576 apply (simp add: ordinal_fm_def Ord_def Transset_def)
   577 apply (blast intro: nth_type)
   577 apply (blast intro: nth_type)
   578 done
   578 done
   579 
   579 
   580 text\<open>The subset consisting of the ordinals is definable.  Essential lemma for
   580 text\<open>The subset consisting of the ordinals is definable.  Essential lemma for
   581 @{text Ord_in_Lset}.  This result is the objective of the present subsection.\<close>
   581 \<open>Ord_in_Lset\<close>.  This result is the objective of the present subsection.\<close>
   582 theorem Ords_in_DPow: "Transset(A) ==> {x \<in> A. Ord(x)} \<in> DPow(A)"
   582 theorem Ords_in_DPow: "Transset(A) ==> {x \<in> A. Ord(x)} \<in> DPow(A)"
   583 apply (simp add: DPow_def Collect_subset)
   583 apply (simp add: DPow_def Collect_subset)
   584 apply (rule_tac x=Nil in bexI)
   584 apply (rule_tac x=Nil in bexI)
   585  apply (rule_tac x="ordinal_fm(0)" in bexI)
   585  apply (rule_tac x="ordinal_fm(0)" in bexI)
   586 apply (simp_all add: sats_ordinal_fm)
   586 apply (simp_all add: sats_ordinal_fm)
   592 definition
   592 definition
   593   Lset :: "i=>i" where
   593   Lset :: "i=>i" where
   594   "Lset(i) == transrec(i, %x f. \<Union>y\<in>x. DPow(f`y))"
   594   "Lset(i) == transrec(i, %x f. \<Union>y\<in>x. DPow(f`y))"
   595 
   595 
   596 definition
   596 definition
   597   L :: "i=>o" where --\<open>Kunen's definition VI 1.5, page 167\<close>
   597   L :: "i=>o" where \<comment>\<open>Kunen's definition VI 1.5, page 167\<close>
   598   "L(x) == \<exists>i. Ord(i) & x \<in> Lset(i)"
   598   "L(x) == \<exists>i. Ord(i) & x \<in> Lset(i)"
   599 
   599 
   600 text\<open>NOT SUITABLE FOR REWRITING -- RECURSIVE!\<close>
   600 text\<open>NOT SUITABLE FOR REWRITING -- RECURSIVE!\<close>
   601 lemma Lset: "Lset(i) = (\<Union>j\<in>i. DPow(Lset(j)))"
   601 lemma Lset: "Lset(i) = (\<Union>j\<in>i. DPow(Lset(j)))"
   602 by (subst Lset_def [THEN def_transrec], simp)
   602 by (subst Lset_def [THEN def_transrec], simp)
   835 
   835 
   836 
   836 
   837 
   837 
   838 text\<open>The rank function for the constructible universe\<close>
   838 text\<open>The rank function for the constructible universe\<close>
   839 definition
   839 definition
   840   lrank :: "i=>i" where --\<open>Kunen's definition VI 1.7\<close>
   840   lrank :: "i=>i" where \<comment>\<open>Kunen's definition VI 1.7\<close>
   841   "lrank(x) == \<mu> i. x \<in> Lset(succ(i))"
   841   "lrank(x) == \<mu> i. x \<in> Lset(succ(i))"
   842 
   842 
   843 lemma L_I: "[|x \<in> Lset(i); Ord(i)|] ==> L(x)"
   843 lemma L_I: "[|x \<in> Lset(i); Ord(i)|] ==> L(x)"
   844 by (simp add: L_def, blast)
   844 by (simp add: L_def, blast)
   845 
   845