4 |
4 |
5 section \<open>The ZF Axioms (Except Separation) in L\<close> |
5 section \<open>The ZF Axioms (Except Separation) in L\<close> |
6 |
6 |
7 theory L_axioms imports Formula Relative Reflection MetaExists begin |
7 theory L_axioms imports Formula Relative Reflection MetaExists begin |
8 |
8 |
9 text \<open>The class L satisfies the premises of locale @{text M_trivial}\<close> |
9 text \<open>The class L satisfies the premises of locale \<open>M_trivial\<close>\<close> |
10 |
10 |
11 lemma transL: "[| y\<in>x; L(x) |] ==> L(y)" |
11 lemma transL: "[| y\<in>x; L(x) |] ==> L(y)" |
12 apply (insert Transset_Lset) |
12 apply (insert Transset_Lset) |
13 apply (simp add: Transset_def L_def, blast) |
13 apply (simp add: Transset_def L_def, blast) |
14 done |
14 done |
76 apply (frule LReplace_in_L, assumption+, clarify) |
76 apply (frule LReplace_in_L, assumption+, clarify) |
77 apply (rule_tac x=Y in rexI) |
77 apply (rule_tac x=Y in rexI) |
78 apply (simp_all add: Replace_iff univalent_def, blast) |
78 apply (simp_all add: Replace_iff univalent_def, blast) |
79 done |
79 done |
80 |
80 |
81 subsection\<open>Instantiating the locale @{text M_trivial}\<close> |
81 subsection\<open>Instantiating the locale \<open>M_trivial\<close>\<close> |
82 text\<open>No instances of Separation yet.\<close> |
82 text\<open>No instances of Separation yet.\<close> |
83 |
83 |
84 lemma Lset_mono_le: "mono_le_subset(Lset)" |
84 lemma Lset_mono_le: "mono_le_subset(Lset)" |
85 by (simp add: mono_le_subset_def le_imp_subset Lset_mono) |
85 by (simp add: mono_le_subset_def le_imp_subset Lset_mono) |
86 |
86 |
108 declare rall_abs [simp] |
108 declare rall_abs [simp] |
109 declare rex_abs [simp] |
109 declare rex_abs [simp] |
110 ...and dozens of similar ones. |
110 ...and dozens of similar ones. |
111 *) |
111 *) |
112 |
112 |
113 subsection\<open>Instantiation of the locale @{text reflection}\<close> |
113 subsection\<open>Instantiation of the locale \<open>reflection\<close>\<close> |
114 |
114 |
115 text\<open>instances of locale constants\<close> |
115 text\<open>instances of locale constants\<close> |
116 |
116 |
117 definition |
117 definition |
118 L_F0 :: "[i=>o,i] => i" where |
118 L_F0 :: "[i=>o,i] => i" where |
222 apply (unfold rall_def) |
222 apply (unfold rall_def) |
223 apply (intro Imp_reflection All_reflection, assumption) |
223 apply (intro Imp_reflection All_reflection, assumption) |
224 done |
224 done |
225 |
225 |
226 text\<open>This version handles an alternative form of the bounded quantifier |
226 text\<open>This version handles an alternative form of the bounded quantifier |
227 in the second argument of @{text REFLECTS}.\<close> |
227 in the second argument of \<open>REFLECTS\<close>.\<close> |
228 theorem Rex_reflection': |
228 theorem Rex_reflection': |
229 "REFLECTS[\<lambda>x. P(fst(x),snd(x)), \<lambda>a x. Q(a,fst(x),snd(x))] |
229 "REFLECTS[\<lambda>x. P(fst(x),snd(x)), \<lambda>a x. Q(a,fst(x),snd(x))] |
230 ==> REFLECTS[\<lambda>x. \<exists>z[L]. P(x,z), \<lambda>a x. \<exists>z[##Lset(a)]. Q(a,x,z)]" |
230 ==> REFLECTS[\<lambda>x. \<exists>z[L]. P(x,z), \<lambda>a x. \<exists>z[##Lset(a)]. Q(a,x,z)]" |
231 apply (unfold setclass_def rex_def) |
231 apply (unfold setclass_def rex_def) |
232 apply (erule Rex_reflection [unfolded rex_def Bex_def]) |
232 apply (erule Rex_reflection [unfolded rex_def Bex_def]) |
562 done |
562 done |
563 |
563 |
564 |
564 |
565 subsubsection\<open>Variants of Satisfaction Definitions for Ordinals, etc.\<close> |
565 subsubsection\<open>Variants of Satisfaction Definitions for Ordinals, etc.\<close> |
566 |
566 |
567 text\<open>The @{text sats} theorems below are standard versions of the ones proved |
567 text\<open>The \<open>sats\<close> theorems below are standard versions of the ones proved |
568 in theory @{text Formula}. They relate elements of type @{term formula} to |
568 in theory \<open>Formula\<close>. They relate elements of type @{term formula} to |
569 relativized concepts such as @{term subset} or @{term ordinal} rather than to |
569 relativized concepts such as @{term subset} or @{term ordinal} rather than to |
570 real concepts such as @{term Ord}. Now that we have instantiated the locale |
570 real concepts such as @{term Ord}. Now that we have instantiated the locale |
571 @{text M_trivial}, we no longer require the earlier versions.\<close> |
571 \<open>M_trivial\<close>, we no longer require the earlier versions.\<close> |
572 |
572 |
573 lemma sats_subset_fm': |
573 lemma sats_subset_fm': |
574 "[|x \<in> nat; y \<in> nat; env \<in> list(A)|] |
574 "[|x \<in> nat; y \<in> nat; env \<in> list(A)|] |
575 ==> sats(A, subset_fm(x,y), env) \<longleftrightarrow> subset(##A, nth(x,env), nth(y,env))" |
575 ==> sats(A, subset_fm(x,y), env) \<longleftrightarrow> subset(##A, nth(x,env), nth(y,env))" |
576 by (simp add: subset_fm_def Relative.subset_def) |
576 by (simp add: subset_fm_def Relative.subset_def) |