src/ZF/Constructible/L_axioms.thy
author paulson
Wed, 19 Jun 2002 11:48:01 +0200
changeset 13223 45be08fbdcff
child 13268 240509babf00
permissions -rw-r--r--
new theory of inner models
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
13223
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
     1
header {* The class L satisfies the axioms of ZF*}
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
     2
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
     3
theory L_axioms = Formula + Relative:
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
     4
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
     5
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
     6
text {* The class L satisfies the premises of locale @{text M_axioms} *}
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
     7
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
     8
lemma transL: "[| y\<in>x; L(x) |] ==> L(y)"
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
     9
apply (insert Transset_Lset) 
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
    10
apply (simp add: Transset_def L_def, blast) 
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
    11
done
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
    12
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
    13
lemma nonempty: "L(0)"
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
    14
apply (simp add: L_def) 
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
    15
apply (blast intro: zero_in_Lset) 
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
    16
done
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
    17
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
    18
lemma upair_ax: "upair_ax(L)"
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
    19
apply (simp add: upair_ax_def upair_def, clarify)
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
    20
apply (rule_tac x="{x,y}" in exI)  
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
    21
apply (simp add: doubleton_in_L) 
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
    22
done
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
    23
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
    24
lemma Union_ax: "Union_ax(L)"
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
    25
apply (simp add: Union_ax_def big_union_def, clarify)
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
    26
apply (rule_tac x="Union(x)" in exI)  
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
    27
apply (simp add: Union_in_L, auto) 
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
    28
apply (blast intro: transL) 
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
    29
done
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
    30
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
    31
lemma power_ax: "power_ax(L)"
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
    32
apply (simp add: power_ax_def powerset_def Relative.subset_def, clarify)
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
    33
apply (rule_tac x="{y \<in> Pow(x). L(y)}" in exI)  
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
    34
apply (simp add: LPow_in_L, auto)
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
    35
apply (blast intro: transL) 
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
    36
done
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
    37
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
    38
subsubsection{*For L to satisfy Replacement *}
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
    39
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
    40
(*Can't move these to Formula unless the definition of univalent is moved
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
    41
there too!*)
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
    42
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
    43
lemma LReplace_in_Lset:
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
    44
     "[|X \<in> Lset(i); univalent(L,X,Q); Ord(i)|] 
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
    45
      ==> \<exists>j. Ord(j) & Replace(X, %x y. Q(x,y) & L(y)) \<subseteq> Lset(j)"
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
    46
apply (rule_tac x="\<Union>y \<in> Replace(X, %x y. Q(x,y) & L(y)). succ(lrank(y))" 
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
    47
       in exI)
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
    48
apply simp
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
    49
apply clarify 
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
    50
apply (rule_tac a="x" in UN_I)  
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
    51
 apply (simp_all add: Replace_iff univalent_def) 
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
    52
apply (blast dest: transL L_I) 
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
    53
done
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
    54
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
    55
lemma LReplace_in_L: 
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
    56
     "[|L(X); univalent(L,X,Q)|] 
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
    57
      ==> \<exists>Y. L(Y) & Replace(X, %x y. Q(x,y) & L(y)) \<subseteq> Y"
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
    58
apply (drule L_D, clarify) 
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
    59
apply (drule LReplace_in_Lset, assumption+)
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
    60
apply (blast intro: L_I Lset_in_Lset_succ)
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
    61
done
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
    62
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
    63
lemma replacement: "replacement(L,P)"
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
    64
apply (simp add: replacement_def, clarify)
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
    65
apply (frule LReplace_in_L, assumption+)
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
    66
apply clarify 
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
    67
apply (rule_tac x=Y in exI)   
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
    68
apply (simp add: Replace_iff univalent_def, blast) 
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
    69
done
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
    70
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
    71
end
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
    72
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
    73
(*
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
    74
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
    75
  and Inter_separation:
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
    76
     "L(A) ==> separation(M, \<lambda>x. \<forall>y\<in>A. L(y) --> x\<in>y)"
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
    77
  and cartprod_separation:
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
    78
     "[| L(A); L(B) |] 
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
    79
      ==> separation(M, \<lambda>z. \<exists>x\<in>A. \<exists>y\<in>B. L(x) & L(y) & pair(M,x,y,z))"
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
    80
  and image_separation:
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
    81
     "[| L(A); L(r) |] 
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
    82
      ==> separation(M, \<lambda>y. \<exists>p\<in>r. L(p) & (\<exists>x\<in>A. L(x) & pair(M,x,y,p)))"
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
    83
  and vimage_separation:
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
    84
     "[| L(A); L(r) |] 
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
    85
      ==> separation(M, \<lambda>x. \<exists>p\<in>r. L(p) & (\<exists>y\<in>A. L(x) & pair(M,x,y,p)))"
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
    86
  and converse_separation:
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
    87
     "L(r) ==> separation(M, \<lambda>z. \<exists>p\<in>r. L(p) & (\<exists>x y. L(x) & L(y) & 
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
    88
				     pair(M,x,y,p) & pair(M,y,x,z)))"
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
    89
  and restrict_separation:
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
    90
     "L(A) 
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
    91
      ==> separation(M, \<lambda>z. \<exists>x\<in>A. L(x) & (\<exists>y. L(y) & pair(M,x,y,z)))"
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
    92
  and comp_separation:
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
    93
     "[| L(r); L(s) |]
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
    94
      ==> separation(M, \<lambda>xz. \<exists>x y z. L(x) & L(y) & L(z) &
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
    95
			   (\<exists>xy\<in>s. \<exists>yz\<in>r. L(xy) & L(yz) & 
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
    96
		  pair(M,x,z,xz) & pair(M,x,y,xy) & pair(M,y,z,yz)))"
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
    97
  and pred_separation:
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
    98
     "[| L(r); L(x) |] ==> separation(M, \<lambda>y. \<exists>p\<in>r. L(p) & pair(M,y,x,p))"
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
    99
  and Memrel_separation:
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
   100
     "separation(M, \<lambda>z. \<exists>x y. L(x) & L(y) & pair(M,x,y,z) \<and> x \<in> y)"
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
   101
  and obase_separation:
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
   102
     --{*part of the order type formalization*}
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
   103
     "[| L(A); L(r) |] 
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
   104
      ==> separation(M, \<lambda>a. \<exists>x g mx par. L(x) & L(g) & L(mx) & L(par) & 
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
   105
	     ordinal(M,x) & membership(M,x,mx) & pred_set(M,A,a,r,par) &
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
   106
	     order_isomorphism(M,par,r,x,mx,g))"
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
   107
  and well_ord_iso_separation:
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
   108
     "[| L(A); L(f); L(r) |] 
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
   109
      ==> separation (M, \<lambda>x. x\<in>A --> (\<exists>y. L(y) \<and> (\<exists>p. L(p) \<and> 
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
   110
		     fun_apply(M,f,x,y) \<and> pair(M,y,x,p) \<and> p \<in> r)))"
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
   111
  and obase_equals_separation:
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
   112
     "[| L(A); L(r) |] 
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
   113
      ==> separation
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
   114
      (M, \<lambda>x. x\<in>A --> ~(\<exists>y. L(y) & (\<exists>g. L(g) &
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
   115
	      ordinal(M,y) & (\<exists>my pxr. L(my) & L(pxr) &
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
   116
	      membership(M,y,my) & pred_set(M,A,x,r,pxr) &
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
   117
	      order_isomorphism(M,pxr,r,y,my,g)))))"
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
   118
  and is_recfun_separation:
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
   119
     --{*for well-founded recursion.  NEEDS RELATIVIZATION*}
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
   120
     "[| L(A); L(f); L(g); L(a); L(b) |] 
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
   121
     ==> separation(M, \<lambda>x. x \<in> A --> \<langle>x,a\<rangle> \<in> r \<and> \<langle>x,b\<rangle> \<in> r \<and> f`x \<noteq> g`x)"
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
   122
  and omap_replacement:
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
   123
     "[| L(A); L(r) |] 
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
   124
      ==> strong_replacement(M,
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
   125
             \<lambda>a z. \<exists>x g mx par. L(x) & L(g) & L(mx) & L(par) &
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
   126
	     ordinal(M,x) & pair(M,a,x,z) & membership(M,x,mx) & 
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
   127
	     pred_set(M,A,a,r,par) & order_isomorphism(M,par,r,x,mx,g))"
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
   128
45be08fbdcff new theory of inner models
paulson
parents:
diff changeset
   129
*)