equal
deleted
inserted
replaced
483 delsimps [bound_typ_inst_composed_subst]) 1); |
483 delsimps [bound_typ_inst_composed_subst]) 1); |
484 (** LEVEL 12 **) |
484 (** LEVEL 12 **) |
485 (* case Abs e *) |
485 (* case Abs e *) |
486 by (strip_tac 1); |
486 by (strip_tac 1); |
487 by (eresolve_tac has_type_casesE 1); |
487 by (eresolve_tac has_type_casesE 1); |
488 by (eres_inst_tac [("x","%x.if x=n then t1 else (S' x)")] allE 1); |
488 by (eres_inst_tac [("x","%x. if x=n then t1 else (S' x)")] allE 1); |
489 by (eres_inst_tac [("x","(FVar n)#A")] allE 1); |
489 by (eres_inst_tac [("x","(FVar n)#A")] allE 1); |
490 by (eres_inst_tac [("x","t2")] allE 1); |
490 by (eres_inst_tac [("x","t2")] allE 1); |
491 by (eres_inst_tac [("x","Suc n")] allE 1); |
491 by (eres_inst_tac [("x","Suc n")] allE 1); |
492 by (best_tac (HOL_cs addSDs [mk_scheme_injective] |
492 by (best_tac (HOL_cs addSDs [mk_scheme_injective] |
493 addss (!simpset addcongs [conj_cong] |
493 addss (!simpset addcongs [conj_cong] |
513 by (contr_tac 1); |
513 by (contr_tac 1); |
514 by (fast_tac (HOL_cs addIs [sym RS W_var_geD,new_tv_W RS |
514 by (fast_tac (HOL_cs addIs [sym RS W_var_geD,new_tv_W RS |
515 conjunct1,new_scheme_list_le,new_tv_subst_scheme_list]) 1); |
515 conjunct1,new_scheme_list_le,new_tv_subst_scheme_list]) 1); |
516 (** LEVEL 35 **) |
516 (** LEVEL 35 **) |
517 by (subgoal_tac |
517 by (subgoal_tac |
518 "$ (%x.if x=ma then t' else (if x:(free_tv t - free_tv Sa) then R x \ |
518 "$ (%x. if x=ma then t' else (if x:(free_tv t - free_tv Sa) then R x \ |
519 \ else Ra x)) ($ Sa t) = \ |
519 \ else Ra x)) ($ Sa t) = \ |
520 \ $ (%x.if x=ma then t' else (if x:(free_tv t - free_tv Sa) then R x \ |
520 \ $ (%x. if x=ma then t' else (if x:(free_tv t - free_tv Sa) then R x \ |
521 \ else Ra x)) (ta -> (TVar ma))" 1); |
521 \ else Ra x)) (ta -> (TVar ma))" 1); |
522 by (res_inst_tac [("t","$ (%x. if x = ma then t' else \ |
522 by (res_inst_tac [("t","$ (%x. if x = ma then t' else \ |
523 \ (if x:(free_tv t - free_tv Sa) then R x else Ra x)) ($ Sa t)"), |
523 \ (if x:(free_tv t - free_tv Sa) then R x else Ra x)) ($ Sa t)"), |
524 ("s","($ Ra ta) -> t'")] ssubst 2); |
524 ("s","($ Ra ta) -> t'")] ssubst 2); |
525 by (asm_simp_tac (!simpset addsimps [subst_comp_te]) 2); |
525 by (asm_simp_tac (!simpset addsimps [subst_comp_te]) 2); |