src/HOL/MiniML/W.ML
changeset 3842 b55686a7b22c
parent 3240 cc1d52d47fae
child 3919 c036caebfc75
equal deleted inserted replaced
3841:22bbc1676768 3842:b55686a7b22c
   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);