src/HOL/W0/I.ML
changeset 5184 9b8547a9496a
parent 5069 3ea049f7979d
child 5349 eab069aa1ad0
equal deleted inserted replaced
5183:89f162de39cf 5184:9b8547a9496a
    10 
    10 
    11 Goal
    11 Goal
    12   "! a m s s' t n.  \
    12   "! a m s s' t n.  \
    13 \    (new_tv m a & new_tv m s) --> I e a m s = Ok(s',t,n) -->   \
    13 \    (new_tv m a & new_tv m s) --> I e a m s = Ok(s',t,n) -->   \
    14 \    ( ? r. W e ($ s a) m = Ok(r, $ s' t, n) & s' = ($ r o s) )";
    14 \    ( ? r. W e ($ s a) m = Ok(r, $ s' t, n) & s' = ($ r o s) )";
    15 by (expr.induct_tac "e" 1);
    15 by (induct_tac "e" 1);
    16 
    16 
    17   (* case Var n *)
    17   (* case Var n *)
    18   by (simp_tac (simpset() addsimps [app_subst_list]
    18   by (simp_tac (simpset() addsimps [app_subst_list]
    19       setloop (split_inside_tac [split_if])) 1);
    19       setloop (split_inside_tac [split_if])) 1);
    20 
    20 
   141 
   141 
   142 Addsimps [split_paired_Ex];
   142 Addsimps [split_paired_Ex];
   143 
   143 
   144 Goal "!a m s. \
   144 Goal "!a m s. \
   145 \  new_tv m a & new_tv m s --> I e a m s = Fail --> W e ($s a) m = Fail";
   145 \  new_tv m a & new_tv m s --> I e a m s = Fail --> W e ($s a) m = Fail";
   146 by (expr.induct_tac "e" 1);
   146 by (induct_tac "e" 1);
   147   by (simp_tac (simpset() addsimps [app_subst_list]) 1);
   147   by (simp_tac (simpset() addsimps [app_subst_list]) 1);
   148  by (Simp_tac 1);
   148  by (Simp_tac 1);
   149  by (strip_tac 1);
   149  by (strip_tac 1);
   150  by (subgoal_tac "TVar m # $ s a = $s(TVar m # a)" 1);
   150  by (subgoal_tac "TVar m # $ s a = $s(TVar m # a)" 1);
   151   by (asm_simp_tac (HOL_ss addsimps
   151   by (asm_simp_tac (HOL_ss addsimps