src/ZF/Constructible/DPow_absolute.thy
changeset 71417 89d05db6dd1f
parent 69593 3dda49e08b9d
child 71568 1005c50b2750
equal deleted inserted replaced
71416:6a1c1d1ce6ae 71417:89d05db6dd1f
    90 
    90 
    91 lemma sats_satisfies_fm [simp]:
    91 lemma sats_satisfies_fm [simp]:
    92    "[| x \<in> nat; y \<in> nat; z \<in> nat; env \<in> list(A)|]
    92    "[| x \<in> nat; y \<in> nat; z \<in> nat; env \<in> list(A)|]
    93     ==> sats(A, satisfies_fm(x,y,z), env) \<longleftrightarrow>
    93     ==> sats(A, satisfies_fm(x,y,z), env) \<longleftrightarrow>
    94         is_satisfies(##A, nth(x,env), nth(y,env), nth(z,env))"
    94         is_satisfies(##A, nth(x,env), nth(y,env), nth(z,env))"
    95 by (simp add: satisfies_fm_def is_satisfies_def sats_satisfies_MH_fm
    95 by (simp add: satisfies_fm_def is_satisfies_def sats_formula_rec_fm)
    96               sats_formula_rec_fm)
       
    97 
    96 
    98 lemma satisfies_iff_sats:
    97 lemma satisfies_iff_sats:
    99       "[| nth(i,env) = x; nth(j,env) = y; nth(k,env) = z;
    98       "[| nth(i,env) = x; nth(j,env) = y; nth(k,env) = z;
   100           i \<in> nat; j \<in> nat; k \<in> nat; env \<in> list(A)|]
    99           i \<in> nat; j \<in> nat; k \<in> nat; env \<in> list(A)|]
   101        ==> is_satisfies(##A, x, y, z) \<longleftrightarrow> sats(A, satisfies_fm(i,j,k), env)"
   100        ==> is_satisfies(##A, x, y, z) \<longleftrightarrow> sats(A, satisfies_fm(i,j,k), env)"
   102 by (simp add: sats_satisfies_fm)
   101 by (simp)
   103 
   102 
   104 theorem satisfies_reflection:
   103 theorem satisfies_reflection:
   105      "REFLECTS[\<lambda>x. is_satisfies(L,f(x),g(x),h(x)),
   104      "REFLECTS[\<lambda>x. is_satisfies(L,f(x),g(x),h(x)),
   106                \<lambda>i x. is_satisfies(##Lset(i),f(x),g(x),h(x))]"
   105                \<lambda>i x. is_satisfies(##Lset(i),f(x),g(x),h(x))]"
   107 apply (simp only: is_satisfies_def)
   106 apply (simp only: is_satisfies_def)
   292 lemma M_DPow_axioms_L: "M_DPow_axioms(L)"
   291 lemma M_DPow_axioms_L: "M_DPow_axioms(L)"
   293   apply (rule M_DPow_axioms.intro)
   292   apply (rule M_DPow_axioms.intro)
   294    apply (assumption | rule DPow_separation DPow_replacement)+
   293    apply (assumption | rule DPow_separation DPow_replacement)+
   295   done
   294   done
   296 
   295 
   297 theorem M_DPow_L: "PROP M_DPow(L)"
   296 theorem M_DPow_L: "M_DPow(L)"
   298   apply (rule M_DPow.intro)
   297   apply (rule M_DPow.intro)
   299    apply (rule M_satisfies_L)
   298    apply (rule M_satisfies_L)
   300   apply (rule M_DPow_axioms_L)
   299   apply (rule M_DPow_axioms_L)
   301   done
   300   done
   302 
   301 
   441 
   440 
   442 lemma DPow'_iff_sats:
   441 lemma DPow'_iff_sats:
   443       "[| nth(i,env) = x; nth(j,env) = y; 
   442       "[| nth(i,env) = x; nth(j,env) = y; 
   444           i \<in> nat; j \<in> nat; env \<in> list(A)|]
   443           i \<in> nat; j \<in> nat; env \<in> list(A)|]
   445        ==> is_DPow'(##A, x, y) \<longleftrightarrow> sats(A, DPow'_fm(i,j), env)"
   444        ==> is_DPow'(##A, x, y) \<longleftrightarrow> sats(A, DPow'_fm(i,j), env)"
   446 by (simp add: sats_DPow'_fm)
   445 by (simp)
   447 
   446 
   448 theorem DPow'_reflection:
   447 theorem DPow'_reflection:
   449      "REFLECTS[\<lambda>x. is_DPow'(L,f(x),g(x)),
   448      "REFLECTS[\<lambda>x. is_DPow'(L,f(x),g(x)),
   450                \<lambda>i x. is_DPow'(##Lset(i),f(x),g(x))]"
   449                \<lambda>i x. is_DPow'(##Lset(i),f(x),g(x))]"
   451 apply (simp only: is_DPow'_def)
   450 apply (simp only: is_DPow'_def)
   598 lemma M_Lset_axioms_L: "M_Lset_axioms(L)"
   597 lemma M_Lset_axioms_L: "M_Lset_axioms(L)"
   599   apply (rule M_Lset_axioms.intro)
   598   apply (rule M_Lset_axioms.intro)
   600        apply (assumption | rule strong_rep transrec_rep)+
   599        apply (assumption | rule strong_rep transrec_rep)+
   601   done
   600   done
   602 
   601 
   603 theorem M_Lset_L: "PROP M_Lset(L)"
   602 theorem M_Lset_L: "M_Lset(L)"
   604   apply (rule M_Lset.intro) 
   603   apply (rule M_Lset.intro) 
   605    apply (rule M_DPow_L)
   604    apply (rule M_DPow_L)
   606   apply (rule M_Lset_axioms_L) 
   605   apply (rule M_Lset_axioms_L) 
   607   done
   606   done
   608 
   607