equal
deleted
inserted
replaced
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 |