src/ZF/Order.ML
changeset 3736 39ee3d31cfbc
parent 3207 fe79ad367d77
child 4091 771b1f6422a8
equal deleted inserted replaced
3735:bed0ba7bff2f 3736:39ee3d31cfbc
   186 by (etac CollectD1 1);
   186 by (etac CollectD1 1);
   187 qed "mono_map_is_fun";
   187 qed "mono_map_is_fun";
   188 
   188 
   189 goalw Order.thy [mono_map_def, inj_def] 
   189 goalw Order.thy [mono_map_def, inj_def] 
   190     "!!f. [| linear(A,r);  wf[B](s);  f: mono_map(A,r,B,s) |] ==> f: inj(A,B)";
   190     "!!f. [| linear(A,r);  wf[B](s);  f: mono_map(A,r,B,s) |] ==> f: inj(A,B)";
   191 by (step_tac (!claset) 1);
   191 by (Clarify_tac 1);
   192 by (linear_case_tac 1);
   192 by (linear_case_tac 1);
   193 by (REPEAT 
   193 by (REPEAT 
   194     (EVERY [eresolve_tac [wf_on_not_refl RS notE] 1,
   194     (EVERY [eresolve_tac [wf_on_not_refl RS notE] 1,
   195             etac ssubst 2,
   195             etac ssubst 2,
   196             Fast_tac 2,
   196             Fast_tac 2,
   540 \       domain(ord_iso_map(A,r,B,s)) = A |      \
   540 \       domain(ord_iso_map(A,r,B,s)) = A |      \
   541 \       (EX x:A. domain(ord_iso_map(A,r,B,s)) = pred(A,x,r))";
   541 \       (EX x:A. domain(ord_iso_map(A,r,B,s)) = pred(A,x,r))";
   542 by (forward_tac [well_ord_is_wf] 1);
   542 by (forward_tac [well_ord_is_wf] 1);
   543 by (rewrite_goals_tac [wf_on_def, wf_def]);
   543 by (rewrite_goals_tac [wf_on_def, wf_def]);
   544 by (dres_inst_tac [("x", "A-domain(ord_iso_map(A,r,B,s))")] spec 1);
   544 by (dres_inst_tac [("x", "A-domain(ord_iso_map(A,r,B,s))")] spec 1);
   545 by (step_tac (!claset) 1);
   545 by Safe_tac;
   546 (*The first case: the domain equals A*)
   546 (*The first case: the domain equals A*)
   547 by (rtac (domain_ord_iso_map RS equalityI) 1);
   547 by (rtac (domain_ord_iso_map RS equalityI) 1);
   548 by (etac (Diff_eq_0_iff RS iffD1) 1);
   548 by (etac (Diff_eq_0_iff RS iffD1) 1);
   549 (*The other case: the domain equals an initial segment*)
   549 (*The other case: the domain equals an initial segment*)
   550 by (swap_res_tac [bexI] 1);
   550 by (swap_res_tac [bexI] 1);