equal
deleted
inserted
replaced
42 by (Asm_simp_tac 2); |
42 by (Asm_simp_tac 2); |
43 by (Blast_tac 2); |
43 by (Blast_tac 2); |
44 by (asm_full_simp_tac (addsplit (simpset())) 2); |
44 by (asm_full_simp_tac (addsplit (simpset())) 2); |
45 by (simp_tac (simpset() addsimps [diff_Suc,subst_Var] |
45 by (simp_tac (simpset() addsimps [diff_Suc,subst_Var] |
46 addsplits [nat.split]) 1); |
46 addsplits [nat.split]) 1); |
47 by (safe_tac (HOL_cs addSEs [nat_neqE])); |
47 by (safe_tac (HOL_cs addSEs [linorder_neqE])); |
48 by (ALLGOALS trans_tac); |
48 by (ALLGOALS trans_tac); |
49 qed "free_subst"; |
49 qed "free_subst"; |
50 Addsimps [free_subst]; |
50 Addsimps [free_subst]; |
51 |
51 |
52 Goal "s -e> t ==> !i. free t i = free s i"; |
52 Goal "s -e> t ==> !i. free t i = free s i"; |
117 AddIs [beta_subst]; |
117 AddIs [beta_subst]; |
118 |
118 |
119 Goal "!i. t[Var i/i] = t[Var(i)/Suc i]"; |
119 Goal "!i. t[Var i/i] = t[Var(i)/Suc i]"; |
120 by (induct_tac "t" 1); |
120 by (induct_tac "t" 1); |
121 by (ALLGOALS (asm_simp_tac (addsplit (simpset())))); |
121 by (ALLGOALS (asm_simp_tac (addsplit (simpset())))); |
122 by (safe_tac (HOL_cs addSEs [nat_neqE])); |
122 by (safe_tac (HOL_cs addSEs [linorder_neqE])); |
123 by (ALLGOALS trans_tac); |
123 by (ALLGOALS trans_tac); |
124 qed_spec_mp "subst_Var_Suc"; |
124 qed_spec_mp "subst_Var_Suc"; |
125 Addsimps [subst_Var_Suc]; |
125 Addsimps [subst_Var_Suc]; |
126 |
126 |
127 Goal "s -e> t ==> (!i. lift s i -e> lift t i)"; |
127 Goal "s -e> t ==> (!i. lift s i -e> lift t i)"; |
161 |
161 |
162 Goal "!i. (~free s i) = (? t. s = lift t i)"; |
162 Goal "!i. (~free s i) = (? t. s = lift t i)"; |
163 by (induct_tac "s" 1); |
163 by (induct_tac "s" 1); |
164 by (Simp_tac 1); |
164 by (Simp_tac 1); |
165 by (SELECT_GOAL(safe_tac HOL_cs)1); |
165 by (SELECT_GOAL(safe_tac HOL_cs)1); |
166 by (etac nat_neqE 1); |
166 by (etac linorder_neqE 1); |
167 by (res_inst_tac [("x","Var nat")] exI 1); |
167 by (res_inst_tac [("x","Var nat")] exI 1); |
168 by (Asm_simp_tac 1); |
168 by (Asm_simp_tac 1); |
169 by (res_inst_tac [("x","Var(nat-1)")] exI 1); |
169 by (res_inst_tac [("x","Var(nat-1)")] exI 1); |
170 by (Asm_simp_tac 1); |
170 by (Asm_simp_tac 1); |
171 by (rtac notE 1); |
171 by (rtac notE 1); |