src/ZF/Constructible/Wellorderings.thy
changeset 13428 99e52e78eb65
parent 13352 3cd767f8d78b
child 13505 52a16cb7fefb
equal deleted inserted replaced
13427:b429fd98549c 13428:99e52e78eb65
   601 apply (simp add: otype_def, safe)
   601 apply (simp add: otype_def, safe)
   602 apply (rule_tac x="range(x)" in rexI) 
   602 apply (rule_tac x="range(x)" in rexI) 
   603 apply blast+
   603 apply blast+
   604 done
   604 done
   605 
   605 
   606 theorem (in M_axioms) omap_ord_iso_otype:
   606 theorem (in M_axioms) omap_ord_iso_otype':
   607      "[| wellordered(M,A,r); M(A); M(r) |]
   607      "[| wellordered(M,A,r); M(A); M(r) |]
   608       ==> \<exists>f[M]. (\<exists>i[M]. Ord(i) & f \<in> ord_iso(A, r, i, Memrel(i)))"
   608       ==> \<exists>f[M]. (\<exists>i[M]. Ord(i) & f \<in> ord_iso(A, r, i, Memrel(i)))"
   609 apply (insert obase_exists [of A r] omap_exists [of A r] otype_exists [of A r], simp, clarify)
   609 apply (insert obase_exists [of A r] omap_exists [of A r] otype_exists [of A r], simp, clarify)
   610 apply (rename_tac i) 
   610 apply (rename_tac i) 
   611 apply (subgoal_tac "Ord(i)", blast intro: omap_ord_iso_otype) 
   611 apply (subgoal_tac "Ord(i)", blast intro: omap_ord_iso_otype) 
   617 lemma (in M_axioms) ordertype_exists:
   617 lemma (in M_axioms) ordertype_exists:
   618      "[| wellordered(M,A,r); M(A); M(r) |]
   618      "[| wellordered(M,A,r); M(A); M(r) |]
   619       ==> \<exists>f[M]. (\<exists>i[M]. Ord(i) & f \<in> ord_iso(A, r, i, Memrel(i)))"
   619       ==> \<exists>f[M]. (\<exists>i[M]. Ord(i) & f \<in> ord_iso(A, r, i, Memrel(i)))"
   620 apply (insert obase_exists [of A r] omap_exists [of A r] otype_exists [of A r], simp, clarify)
   620 apply (insert obase_exists [of A r] omap_exists [of A r] otype_exists [of A r], simp, clarify)
   621 apply (rename_tac i) 
   621 apply (rename_tac i) 
   622 apply (subgoal_tac "Ord(i)", blast intro: omap_ord_iso_otype) 
   622 apply (subgoal_tac "Ord(i)", blast intro: omap_ord_iso_otype')
   623 apply (rule Ord_otype) 
   623 apply (rule Ord_otype) 
   624     apply (force simp add: otype_def range_closed) 
   624     apply (force simp add: otype_def range_closed) 
   625    apply (simp_all add: wellordered_is_trans_on) 
   625    apply (simp_all add: wellordered_is_trans_on) 
   626 done
   626 done
   627 
   627