equal
deleted
inserted
replaced
37 "x:A ==> pred(A, x, Memrel(A)) = A Int x"; |
37 "x:A ==> pred(A, x, Memrel(A)) = A Int x"; |
38 by (Blast_tac 1); |
38 by (Blast_tac 1); |
39 qed "pred_Memrel"; |
39 qed "pred_Memrel"; |
40 |
40 |
41 Goal "[| j<i; f: ord_iso(i,Memrel(i),j,Memrel(j)) |] ==> R"; |
41 Goal "[| j<i; f: ord_iso(i,Memrel(i),j,Memrel(j)) |] ==> R"; |
42 by (forward_tac [lt_pred_Memrel] 1); |
42 by (ftac lt_pred_Memrel 1); |
43 by (etac ltE 1); |
43 by (etac ltE 1); |
44 by (rtac (well_ord_Memrel RS well_ord_iso_predE) 1 THEN |
44 by (rtac (well_ord_Memrel RS well_ord_iso_predE) 1 THEN |
45 assume_tac 3 THEN assume_tac 1); |
45 assume_tac 3 THEN assume_tac 1); |
46 by (asm_full_simp_tac (simpset() addsimps [ord_iso_def]) 1); |
46 by (asm_full_simp_tac (simpset() addsimps [ord_iso_def]) 1); |
47 (*Combining the two simplifications causes looping*) |
47 (*Combining the two simplifications causes looping*) |
165 by (blast_tac (claset() addSDs [converse_ordermap_mono]) 1); |
165 by (blast_tac (claset() addSDs [converse_ordermap_mono]) 1); |
166 qed "ordertype_ord_iso"; |
166 qed "ordertype_ord_iso"; |
167 |
167 |
168 Goal "[| f: ord_iso(A,r,B,s); well_ord(B,s) |] ==> \ |
168 Goal "[| f: ord_iso(A,r,B,s); well_ord(B,s) |] ==> \ |
169 \ ordertype(A,r) = ordertype(B,s)"; |
169 \ ordertype(A,r) = ordertype(B,s)"; |
170 by (forward_tac [well_ord_ord_iso] 1 THEN assume_tac 1); |
170 by (ftac well_ord_ord_iso 1 THEN assume_tac 1); |
171 by (rtac Ord_iso_implies_eq 1 |
171 by (rtac Ord_iso_implies_eq 1 |
172 THEN REPEAT (etac Ord_ordertype 1)); |
172 THEN REPEAT (etac Ord_ordertype 1)); |
173 by (deepen_tac (claset() addIs [ord_iso_trans, ord_iso_sym] |
173 by (deepen_tac (claset() addIs [ord_iso_trans, ord_iso_sym] |
174 addSEs [ordertype_ord_iso]) 0 1); |
174 addSEs [ordertype_ord_iso]) 0 1); |
175 qed "ordertype_eq"; |
175 qed "ordertype_eq"; |
533 by (asm_simp_tac (simpset() addsimps [Union_eq_UN RS sym, Limit_Union_eq, |
533 by (asm_simp_tac (simpset() addsimps [Union_eq_UN RS sym, Limit_Union_eq, |
534 le_refl, Limit_is_Ord]) 1); |
534 le_refl, Limit_is_Ord]) 1); |
535 qed "oadd_le_self2"; |
535 qed "oadd_le_self2"; |
536 |
536 |
537 Goal "[| k le j; Ord(i) |] ==> k++i le j++i"; |
537 Goal "[| k le j; Ord(i) |] ==> k++i le j++i"; |
538 by (forward_tac [lt_Ord] 1); |
538 by (ftac lt_Ord 1); |
539 by (forward_tac [le_Ord2] 1); |
539 by (ftac le_Ord2 1); |
540 by (etac trans_induct3 1); |
540 by (etac trans_induct3 1); |
541 by (Asm_simp_tac 1); |
541 by (Asm_simp_tac 1); |
542 by (asm_simp_tac (simpset() addsimps [oadd_succ, succ_le_iff]) 1); |
542 by (asm_simp_tac (simpset() addsimps [oadd_succ, succ_le_iff]) 1); |
543 by (asm_simp_tac (simpset() addsimps [oadd_Limit]) 1); |
543 by (asm_simp_tac (simpset() addsimps [oadd_Limit]) 1); |
544 by (rtac le_implies_UN_le_UN 1); |
544 by (rtac le_implies_UN_le_UN 1); |
816 by (rtac all_lt_imp_le 1); |
816 by (rtac all_lt_imp_le 1); |
817 by (REPEAT (ares_tac [Ord_omult, lt_omult1, lt_Ord2] 1)); |
817 by (REPEAT (ares_tac [Ord_omult, lt_omult1, lt_Ord2] 1)); |
818 qed "omult_le_self"; |
818 qed "omult_le_self"; |
819 |
819 |
820 Goal "[| k le j; Ord(i) |] ==> k**i le j**i"; |
820 Goal "[| k le j; Ord(i) |] ==> k**i le j**i"; |
821 by (forward_tac [lt_Ord] 1); |
821 by (ftac lt_Ord 1); |
822 by (forward_tac [le_Ord2] 1); |
822 by (ftac le_Ord2 1); |
823 by (etac trans_induct3 1); |
823 by (etac trans_induct3 1); |
824 by (asm_simp_tac (simpset() addsimps [le_refl, Ord_0]) 1); |
824 by (asm_simp_tac (simpset() addsimps [le_refl, Ord_0]) 1); |
825 by (asm_simp_tac (simpset() addsimps [omult_succ, oadd_le_mono]) 1); |
825 by (asm_simp_tac (simpset() addsimps [omult_succ, oadd_le_mono]) 1); |
826 by (asm_simp_tac (simpset() addsimps [omult_Limit]) 1); |
826 by (asm_simp_tac (simpset() addsimps [omult_Limit]) 1); |
827 by (rtac le_implies_UN_le_UN 1); |
827 by (rtac le_implies_UN_le_UN 1); |
854 by (REPEAT (eresolve_tac [asm_rl, omult_le_mono1, omult_lt_mono2, ltE, |
854 by (REPEAT (eresolve_tac [asm_rl, omult_le_mono1, omult_lt_mono2, ltE, |
855 Ord_succD] 1)); |
855 Ord_succD] 1)); |
856 qed "omult_lt_mono"; |
856 qed "omult_lt_mono"; |
857 |
857 |
858 Goal "[| Ord(i); 0<j |] ==> i le j**i"; |
858 Goal "[| Ord(i); 0<j |] ==> i le j**i"; |
859 by (forward_tac [lt_Ord2] 1); |
859 by (ftac lt_Ord2 1); |
860 by (eres_inst_tac [("i","i")] trans_induct3 1); |
860 by (eres_inst_tac [("i","i")] trans_induct3 1); |
861 by (asm_simp_tac (simpset() addsimps [omult_0, Ord_0 RS le_refl]) 1); |
861 by (asm_simp_tac (simpset() addsimps [omult_0, Ord_0 RS le_refl]) 1); |
862 by (asm_simp_tac (simpset() addsimps [omult_succ, succ_le_iff]) 1); |
862 by (asm_simp_tac (simpset() addsimps [omult_succ, succ_le_iff]) 1); |
863 by (etac lt_trans1 1); |
863 by (etac lt_trans1 1); |
864 by (res_inst_tac [("b", "j**x")] (oadd_0 RS subst) 1 THEN |
864 by (res_inst_tac [("b", "j**x")] (oadd_0 RS subst) 1 THEN |