equal
deleted
inserted
replaced
44 by (assume_tac 1); |
44 by (assume_tac 1); |
45 qed "new_tv_compatible_W"; |
45 qed "new_tv_compatible_W"; |
46 |
46 |
47 goal thy "!!sch. new_tv n sch --> new_tv (n + (min_new_bound_tv sch)) (bound_typ_inst (%b. TVar (b + n)) sch)"; |
47 goal thy "!!sch. new_tv n sch --> new_tv (n + (min_new_bound_tv sch)) (bound_typ_inst (%b. TVar (b + n)) sch)"; |
48 by (type_scheme.induct_tac "sch" 1); |
48 by (type_scheme.induct_tac "sch" 1); |
49 by (Asm_full_simp_tac 1); |
49 by (Asm_full_simp_tac 1); |
50 by (asm_full_simp_tac (simpset() addsimps [add_commute]) 1); |
50 by (asm_full_simp_tac (simpset() addsimps [add_commute]) 1); |
51 by (strip_tac 1); |
51 by (strip_tac 1); |
52 by (Asm_full_simp_tac 1); |
52 by (Asm_full_simp_tac 1); |
53 by (etac conjE 1); |
53 by (etac conjE 1); |
54 by (rtac conjI 1); |
54 by (rtac conjI 1); |
|
55 by (rtac new_tv_le 1); |
|
56 by (assume_tac 2); |
|
57 by (rtac add_le_mono 1); |
|
58 by (Simp_tac 1); |
|
59 by (simp_tac (simpset() addsimps [max_def]) 1); |
55 by (rtac new_tv_le 1); |
60 by (rtac new_tv_le 1); |
56 by (mp_tac 2); |
61 by (assume_tac 2); |
57 by (mp_tac 2); |
|
58 by (assume_tac 2); |
|
59 by (rtac add_le_mono 1); |
62 by (rtac add_le_mono 1); |
60 by (Simp_tac 1); |
63 by (Simp_tac 1); |
61 by (simp_tac (simpset() addsimps [max_def]) 1); |
|
62 by (strip_tac 1); |
|
63 by (rtac new_tv_le 1); |
|
64 by (mp_tac 2); |
|
65 by (mp_tac 2); |
|
66 by (assume_tac 2); |
|
67 by (rtac add_le_mono 1); |
|
68 by (Simp_tac 1); |
|
69 by (simp_tac (simpset() addsimps [max_def]) 1); |
64 by (simp_tac (simpset() addsimps [max_def]) 1); |
70 by (strip_tac 1); |
65 by (strip_tac 1); |
71 by (dtac not_leE 1); |
66 by (dtac not_leE 1); |
72 by (rtac less_or_eq_imp_le 1); |
67 by (rtac less_or_eq_imp_le 1); |
73 by (Fast_tac 1); |
68 by (Fast_tac 1); |
431 (** LEVEL 26 **) |
426 (** LEVEL 26 **) |
432 by (eres_inst_tac [("x","R")] allE 1); |
427 by (eres_inst_tac [("x","R")] allE 1); |
433 by (eres_inst_tac [("x","$ S A")] allE 1); |
428 by (eres_inst_tac [("x","$ S A")] allE 1); |
434 by (eres_inst_tac [("x","t2")] allE 1); |
429 by (eres_inst_tac [("x","t2")] allE 1); |
435 by (eres_inst_tac [("x","m")] allE 1); |
430 by (eres_inst_tac [("x","m")] allE 1); |
436 by (rotate_tac ~3 1); |
|
437 by (Asm_full_simp_tac 1); |
431 by (Asm_full_simp_tac 1); |
438 by (safe_tac HOL_cs); |
432 by (safe_tac HOL_cs); |
439 by (contr_tac 1); |
|
440 by (fast_tac (HOL_cs addIs [sym RS W_var_geD,new_tv_W RS |
433 by (fast_tac (HOL_cs addIs [sym RS W_var_geD,new_tv_W RS |
441 conjunct1,new_scheme_list_le,new_tv_subst_scheme_list]) 1); |
434 conjunct1,new_scheme_list_le,new_tv_subst_scheme_list]) 1); |
442 (** LEVEL 35 **) |
435 (** LEVEL 35 **) |
443 by (subgoal_tac |
436 by (subgoal_tac |
444 "$ (%x. if x=ma then t' else (if x:(free_tv t - free_tv Sa) then R x \ |
437 "$ (%x. if x=ma then t' else (if x:(free_tv t - free_tv Sa) then R x \ |
546 by (Asm_simp_tac 1); |
539 by (Asm_simp_tac 1); |
547 by (eres_inst_tac [("x","R")] allE 1); |
540 by (eres_inst_tac [("x","R")] allE 1); |
548 by (eres_inst_tac [("x","gen ($ S A) t # $ S A")] allE 1); |
541 by (eres_inst_tac [("x","gen ($ S A) t # $ S A")] allE 1); |
549 by (eres_inst_tac [("x","t'")] allE 1); |
542 by (eres_inst_tac [("x","t'")] allE 1); |
550 by (eres_inst_tac [("x","m")] allE 1); |
543 by (eres_inst_tac [("x","m")] allE 1); |
551 by (rotate_tac 4 1); |
|
552 by (Asm_full_simp_tac 1); |
544 by (Asm_full_simp_tac 1); |
553 by (dtac mp 1); |
545 by (dtac mp 1); |
554 by (rtac has_type_le_env 1); |
546 by (rtac has_type_le_env 1); |
555 by (assume_tac 1); |
547 by (assume_tac 1); |
556 by (Simp_tac 1); |
548 by (Simp_tac 1); |