1 (* Title: ZF/OrderType.thy |
1 (* Title: ZF/OrderType.thy |
2 ID: $Id$ |
|
3 Author: Lawrence C Paulson, Cambridge University Computer Laboratory |
2 Author: Lawrence C Paulson, Cambridge University Computer Laboratory |
4 Copyright 1994 University of Cambridge |
3 Copyright 1994 University of Cambridge |
5 |
|
6 *) |
4 *) |
7 |
5 |
8 header{*Order Types and Ordinal Arithmetic*} |
6 header{*Order Types and Ordinal Arithmetic*} |
9 |
7 |
10 theory OrderType imports OrderArith OrdQuant Nat_ZF begin |
8 theory OrderType imports OrderArith OrdQuant Nat_ZF begin |
159 apply (rule_tac a=x in wf_on_induct, assumption+) |
157 apply (rule_tac a=x in wf_on_induct, assumption+) |
160 apply (simp (no_asm_simp) add: ordermap_pred_unfold) |
158 apply (simp (no_asm_simp) add: ordermap_pred_unfold) |
161 apply (rule OrdI [OF _ Ord_is_Transset]) |
159 apply (rule OrdI [OF _ Ord_is_Transset]) |
162 apply (unfold pred_def Transset_def) |
160 apply (unfold pred_def Transset_def) |
163 apply (blast intro: trans_onD |
161 apply (blast intro: trans_onD |
164 dest!: ordermap_unfold [THEN equalityD1])+ |
162 dest!: ordermap_unfold [THEN equalityD1])+ |
165 done |
163 done |
166 |
164 |
167 lemma Ord_ordertype: |
165 lemma Ord_ordertype: |
168 "well_ord(A,r) ==> Ord(ordertype(A,r))" |
166 "well_ord(A,r) ==> Ord(ordertype(A,r))" |
169 apply (unfold ordertype_def) |
167 apply (unfold ordertype_def) |
170 apply (subst image_fun [OF ordermap_type subset_refl]) |
168 apply (subst image_fun [OF ordermap_type subset_refl]) |
171 apply (rule OrdI [OF _ Ord_is_Transset]) |
169 apply (rule OrdI [OF _ Ord_is_Transset]) |
172 prefer 2 apply (blast intro: Ord_ordermap) |
170 prefer 2 apply (blast intro: Ord_ordermap) |
173 apply (unfold Transset_def well_ord_def) |
171 apply (unfold Transset_def well_ord_def) |
174 apply (blast intro: trans_onD |
172 apply (blast intro: trans_onD |
175 dest!: ordermap_unfold [THEN equalityD1]) |
173 dest!: ordermap_unfold [THEN equalityD1]) |
176 done |
174 done |
177 |
175 |
178 |
176 |
179 subsubsection{*ordermap preserves the orderings in both directions *} |
177 subsubsection{*ordermap preserves the orderings in both directions *} |
180 |
178 |