src/ZF/OrderType.thy
changeset 32960 69916a850301
parent 26056 6a0801279f4c
child 46820 c656222c4dc1
equal deleted inserted replaced
32959:23a8c5ac35f8 32960:69916a850301
     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