19 |
19 |
20 lemma well_ord_iso_Reflects: |
20 lemma well_ord_iso_Reflects: |
21 "REFLECTS[\<lambda>x. x\<in>A --> |
21 "REFLECTS[\<lambda>x. x\<in>A --> |
22 (\<exists>y[L]. \<exists>p[L]. fun_apply(L,f,x,y) & pair(L,y,x,p) & p \<in> r), |
22 (\<exists>y[L]. \<exists>p[L]. fun_apply(L,f,x,y) & pair(L,y,x,p) & p \<in> r), |
23 \<lambda>i x. x\<in>A --> (\<exists>y \<in> Lset(i). \<exists>p \<in> Lset(i). |
23 \<lambda>i x. x\<in>A --> (\<exists>y \<in> Lset(i). \<exists>p \<in> Lset(i). |
24 fun_apply(**Lset(i),f,x,y) & pair(**Lset(i),y,x,p) & p \<in> r)]" |
24 fun_apply(##Lset(i),f,x,y) & pair(##Lset(i),y,x,p) & p \<in> r)]" |
25 by (intro FOL_reflections function_reflections) |
25 by (intro FOL_reflections function_reflections) |
26 |
26 |
27 lemma well_ord_iso_separation: |
27 lemma well_ord_iso_separation: |
28 "[| L(A); L(f); L(r) |] |
28 "[| L(A); L(f); L(r) |] |
29 ==> separation (L, \<lambda>x. x\<in>A --> (\<exists>y[L]. (\<exists>p[L]. |
29 ==> separation (L, \<lambda>x. x\<in>A --> (\<exists>y[L]. (\<exists>p[L]. |
40 lemma obase_reflects: |
40 lemma obase_reflects: |
41 "REFLECTS[\<lambda>a. \<exists>x[L]. \<exists>g[L]. \<exists>mx[L]. \<exists>par[L]. |
41 "REFLECTS[\<lambda>a. \<exists>x[L]. \<exists>g[L]. \<exists>mx[L]. \<exists>par[L]. |
42 ordinal(L,x) & membership(L,x,mx) & pred_set(L,A,a,r,par) & |
42 ordinal(L,x) & membership(L,x,mx) & pred_set(L,A,a,r,par) & |
43 order_isomorphism(L,par,r,x,mx,g), |
43 order_isomorphism(L,par,r,x,mx,g), |
44 \<lambda>i a. \<exists>x \<in> Lset(i). \<exists>g \<in> Lset(i). \<exists>mx \<in> Lset(i). \<exists>par \<in> Lset(i). |
44 \<lambda>i a. \<exists>x \<in> Lset(i). \<exists>g \<in> Lset(i). \<exists>mx \<in> Lset(i). \<exists>par \<in> Lset(i). |
45 ordinal(**Lset(i),x) & membership(**Lset(i),x,mx) & pred_set(**Lset(i),A,a,r,par) & |
45 ordinal(##Lset(i),x) & membership(##Lset(i),x,mx) & pred_set(##Lset(i),A,a,r,par) & |
46 order_isomorphism(**Lset(i),par,r,x,mx,g)]" |
46 order_isomorphism(##Lset(i),par,r,x,mx,g)]" |
47 by (intro FOL_reflections function_reflections fun_plus_reflections) |
47 by (intro FOL_reflections function_reflections fun_plus_reflections) |
48 |
48 |
49 lemma obase_separation: |
49 lemma obase_separation: |
50 --{*part of the order type formalization*} |
50 --{*part of the order type formalization*} |
51 "[| L(A); L(r) |] |
51 "[| L(A); L(r) |] |
64 "REFLECTS[\<lambda>x. x\<in>A --> ~(\<exists>y[L]. \<exists>g[L]. |
64 "REFLECTS[\<lambda>x. x\<in>A --> ~(\<exists>y[L]. \<exists>g[L]. |
65 ordinal(L,y) & (\<exists>my[L]. \<exists>pxr[L]. |
65 ordinal(L,y) & (\<exists>my[L]. \<exists>pxr[L]. |
66 membership(L,y,my) & pred_set(L,A,x,r,pxr) & |
66 membership(L,y,my) & pred_set(L,A,x,r,pxr) & |
67 order_isomorphism(L,pxr,r,y,my,g))), |
67 order_isomorphism(L,pxr,r,y,my,g))), |
68 \<lambda>i x. x\<in>A --> ~(\<exists>y \<in> Lset(i). \<exists>g \<in> Lset(i). |
68 \<lambda>i x. x\<in>A --> ~(\<exists>y \<in> Lset(i). \<exists>g \<in> Lset(i). |
69 ordinal(**Lset(i),y) & (\<exists>my \<in> Lset(i). \<exists>pxr \<in> Lset(i). |
69 ordinal(##Lset(i),y) & (\<exists>my \<in> Lset(i). \<exists>pxr \<in> Lset(i). |
70 membership(**Lset(i),y,my) & pred_set(**Lset(i),A,x,r,pxr) & |
70 membership(##Lset(i),y,my) & pred_set(##Lset(i),A,x,r,pxr) & |
71 order_isomorphism(**Lset(i),pxr,r,y,my,g)))]" |
71 order_isomorphism(##Lset(i),pxr,r,y,my,g)))]" |
72 by (intro FOL_reflections function_reflections fun_plus_reflections) |
72 by (intro FOL_reflections function_reflections fun_plus_reflections) |
73 |
73 |
74 lemma obase_equals_separation: |
74 lemma obase_equals_separation: |
75 "[| L(A); L(r) |] |
75 "[| L(A); L(r) |] |
76 ==> separation (L, \<lambda>x. x\<in>A --> ~(\<exists>y[L]. \<exists>g[L]. |
76 ==> separation (L, \<lambda>x. x\<in>A --> ~(\<exists>y[L]. \<exists>g[L]. |
89 "REFLECTS[\<lambda>z. \<exists>a[L]. a\<in>B & (\<exists>x[L]. \<exists>g[L]. \<exists>mx[L]. \<exists>par[L]. |
89 "REFLECTS[\<lambda>z. \<exists>a[L]. a\<in>B & (\<exists>x[L]. \<exists>g[L]. \<exists>mx[L]. \<exists>par[L]. |
90 ordinal(L,x) & pair(L,a,x,z) & membership(L,x,mx) & |
90 ordinal(L,x) & pair(L,a,x,z) & membership(L,x,mx) & |
91 pred_set(L,A,a,r,par) & order_isomorphism(L,par,r,x,mx,g)), |
91 pred_set(L,A,a,r,par) & order_isomorphism(L,par,r,x,mx,g)), |
92 \<lambda>i z. \<exists>a \<in> Lset(i). a\<in>B & (\<exists>x \<in> Lset(i). \<exists>g \<in> Lset(i). \<exists>mx \<in> Lset(i). |
92 \<lambda>i z. \<exists>a \<in> Lset(i). a\<in>B & (\<exists>x \<in> Lset(i). \<exists>g \<in> Lset(i). \<exists>mx \<in> Lset(i). |
93 \<exists>par \<in> Lset(i). |
93 \<exists>par \<in> Lset(i). |
94 ordinal(**Lset(i),x) & pair(**Lset(i),a,x,z) & |
94 ordinal(##Lset(i),x) & pair(##Lset(i),a,x,z) & |
95 membership(**Lset(i),x,mx) & pred_set(**Lset(i),A,a,r,par) & |
95 membership(##Lset(i),x,mx) & pred_set(##Lset(i),A,a,r,par) & |
96 order_isomorphism(**Lset(i),par,r,x,mx,g))]" |
96 order_isomorphism(##Lset(i),par,r,x,mx,g))]" |
97 by (intro FOL_reflections function_reflections fun_plus_reflections) |
97 by (intro FOL_reflections function_reflections fun_plus_reflections) |
98 |
98 |
99 lemma omap_replacement: |
99 lemma omap_replacement: |
100 "[| L(A); L(r) |] |
100 "[| L(A); L(r) |] |
101 ==> strong_replacement(L, |
101 ==> strong_replacement(L, |
133 subsubsection{*Separation for @{term "wfrank"}*} |
133 subsubsection{*Separation for @{term "wfrank"}*} |
134 |
134 |
135 lemma wfrank_Reflects: |
135 lemma wfrank_Reflects: |
136 "REFLECTS[\<lambda>x. \<forall>rplus[L]. tran_closure(L,r,rplus) --> |
136 "REFLECTS[\<lambda>x. \<forall>rplus[L]. tran_closure(L,r,rplus) --> |
137 ~ (\<exists>f[L]. M_is_recfun(L, %x f y. is_range(L,f,y), rplus, x, f)), |
137 ~ (\<exists>f[L]. M_is_recfun(L, %x f y. is_range(L,f,y), rplus, x, f)), |
138 \<lambda>i x. \<forall>rplus \<in> Lset(i). tran_closure(**Lset(i),r,rplus) --> |
138 \<lambda>i x. \<forall>rplus \<in> Lset(i). tran_closure(##Lset(i),r,rplus) --> |
139 ~ (\<exists>f \<in> Lset(i). |
139 ~ (\<exists>f \<in> Lset(i). |
140 M_is_recfun(**Lset(i), %x f y. is_range(**Lset(i),f,y), |
140 M_is_recfun(##Lset(i), %x f y. is_range(##Lset(i),f,y), |
141 rplus, x, f))]" |
141 rplus, x, f))]" |
142 by (intro FOL_reflections function_reflections is_recfun_reflection tran_closure_reflection) |
142 by (intro FOL_reflections function_reflections is_recfun_reflection tran_closure_reflection) |
143 |
143 |
144 lemma wfrank_separation: |
144 lemma wfrank_separation: |
145 "L(r) ==> |
145 "L(r) ==> |
158 (\<forall>rplus[L]. tran_closure(L,r,rplus) --> |
158 (\<forall>rplus[L]. tran_closure(L,r,rplus) --> |
159 (\<exists>y[L]. \<exists>f[L]. pair(L,x,y,z) & |
159 (\<exists>y[L]. \<exists>f[L]. pair(L,x,y,z) & |
160 M_is_recfun(L, %x f y. is_range(L,f,y), rplus, x, f) & |
160 M_is_recfun(L, %x f y. is_range(L,f,y), rplus, x, f) & |
161 is_range(L,f,y))), |
161 is_range(L,f,y))), |
162 \<lambda>i z. \<exists>x \<in> Lset(i). x \<in> A & |
162 \<lambda>i z. \<exists>x \<in> Lset(i). x \<in> A & |
163 (\<forall>rplus \<in> Lset(i). tran_closure(**Lset(i),r,rplus) --> |
163 (\<forall>rplus \<in> Lset(i). tran_closure(##Lset(i),r,rplus) --> |
164 (\<exists>y \<in> Lset(i). \<exists>f \<in> Lset(i). pair(**Lset(i),x,y,z) & |
164 (\<exists>y \<in> Lset(i). \<exists>f \<in> Lset(i). pair(##Lset(i),x,y,z) & |
165 M_is_recfun(**Lset(i), %x f y. is_range(**Lset(i),f,y), rplus, x, f) & |
165 M_is_recfun(##Lset(i), %x f y. is_range(##Lset(i),f,y), rplus, x, f) & |
166 is_range(**Lset(i),f,y)))]" |
166 is_range(##Lset(i),f,y)))]" |
167 by (intro FOL_reflections function_reflections fun_plus_reflections |
167 by (intro FOL_reflections function_reflections fun_plus_reflections |
168 is_recfun_reflection tran_closure_reflection) |
168 is_recfun_reflection tran_closure_reflection) |
169 |
169 |
170 lemma wfrank_strong_replacement: |
170 lemma wfrank_strong_replacement: |
171 "L(r) ==> |
171 "L(r) ==> |
189 "REFLECTS[\<lambda>x. \<forall>rplus[L]. tran_closure(L,r,rplus) --> |
189 "REFLECTS[\<lambda>x. \<forall>rplus[L]. tran_closure(L,r,rplus) --> |
190 ~ (\<forall>f[L]. \<forall>rangef[L]. |
190 ~ (\<forall>f[L]. \<forall>rangef[L]. |
191 is_range(L,f,rangef) --> |
191 is_range(L,f,rangef) --> |
192 M_is_recfun(L, \<lambda>x f y. is_range(L,f,y), rplus, x, f) --> |
192 M_is_recfun(L, \<lambda>x f y. is_range(L,f,y), rplus, x, f) --> |
193 ordinal(L,rangef)), |
193 ordinal(L,rangef)), |
194 \<lambda>i x. \<forall>rplus \<in> Lset(i). tran_closure(**Lset(i),r,rplus) --> |
194 \<lambda>i x. \<forall>rplus \<in> Lset(i). tran_closure(##Lset(i),r,rplus) --> |
195 ~ (\<forall>f \<in> Lset(i). \<forall>rangef \<in> Lset(i). |
195 ~ (\<forall>f \<in> Lset(i). \<forall>rangef \<in> Lset(i). |
196 is_range(**Lset(i),f,rangef) --> |
196 is_range(##Lset(i),f,rangef) --> |
197 M_is_recfun(**Lset(i), \<lambda>x f y. is_range(**Lset(i),f,y), |
197 M_is_recfun(##Lset(i), \<lambda>x f y. is_range(##Lset(i),f,y), |
198 rplus, x, f) --> |
198 rplus, x, f) --> |
199 ordinal(**Lset(i),rangef))]" |
199 ordinal(##Lset(i),rangef))]" |
200 by (intro FOL_reflections function_reflections is_recfun_reflection |
200 by (intro FOL_reflections function_reflections is_recfun_reflection |
201 tran_closure_reflection ordinal_reflection) |
201 tran_closure_reflection ordinal_reflection) |
202 |
202 |
203 lemma Ord_wfrank_separation: |
203 lemma Ord_wfrank_separation: |
204 "L(r) ==> |
204 "L(r) ==> |