equal
deleted
inserted
replaced
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 |