200 by (Simp_tac 1); |
200 by (Simp_tac 1); |
201 by (res_inst_tac [("P","%k. ys = (r@[a])@k & (!as. as<=list & k<=as & k ~= as --> ~ fin A (delta A as (next A a st)))")] exE 1); |
201 by (res_inst_tac [("P","%k. ys = (r@[a])@k & (!as. as<=list & k<=as & k ~= as --> ~ fin A (delta A as (next A a st)))")] exE 1); |
202 by (asm_simp_tac HOL_ss 1); |
202 by (asm_simp_tac HOL_ss 1); |
203 by (res_inst_tac [("x","x")] exI 1); |
203 by (res_inst_tac [("x","x")] exI 1); |
204 by (Asm_simp_tac 1); |
204 by (Asm_simp_tac 1); |
205 by(rtac allI 1); |
205 by (rtac allI 1); |
206 by(case_tac "as" 1); |
206 by (case_tac "as" 1); |
207 by (Asm_simp_tac 1); |
207 by (Asm_simp_tac 1); |
208 by (asm_simp_tac (simpset() addcongs[conj_cong]) 1); |
208 by (asm_simp_tac (simpset() addcongs[conj_cong]) 1); |
209 by (strip_tac 1); |
209 by (strip_tac 1); |
210 by (res_inst_tac [("f","%k. a#k")] ex_special 1); |
210 by (res_inst_tac [("f","%k. a#k")] ex_special 1); |
211 by (res_inst_tac [("t","%k. ys=r@a#k"),("s","%k. ys=(r@[a])@k")] subst 1); |
211 by (res_inst_tac [("t","%k. ys=r@a#k"),("s","%k. ys=(r@[a])@k")] subst 1); |
212 by (Simp_tac 1); |
212 by (Simp_tac 1); |
213 by (res_inst_tac [("P","%k. ys=(r@[a])@k & (!as. as<=list & k<=as & k~=as --> ~ fin A (delta A as (next A a st)))")] exE 1); |
213 by (res_inst_tac [("P","%k. ys=(r@[a])@k & (!as. as<=list & k<=as & k~=as --> ~ fin A (delta A as (next A a st)))")] exE 1); |
214 by (asm_simp_tac HOL_ss 1); |
214 by (asm_simp_tac HOL_ss 1); |
215 by (res_inst_tac [("x","x")] exI 1); |
215 by (res_inst_tac [("x","x")] exI 1); |
216 by (Asm_simp_tac 1); |
216 by (Asm_simp_tac 1); |
217 by(rtac allI 1); |
217 by (rtac allI 1); |
218 by(case_tac "as" 1); |
218 by (case_tac "as" 1); |
219 by (Asm_simp_tac 1); |
219 by (Asm_simp_tac 1); |
220 by (asm_simp_tac (simpset() addcongs[conj_cong]) 1); |
220 by (asm_simp_tac (simpset() addcongs[conj_cong]) 1); |
221 by (Asm_simp_tac 1); |
221 by (Asm_simp_tac 1); |
222 by (strip_tac 1); |
222 by (strip_tac 1); |
223 by (res_inst_tac [("x","[a]")] exI 1); |
223 by (res_inst_tac [("x","[a]")] exI 1); |
224 by (rtac conjI 1); |
224 by (rtac conjI 1); |
225 by (subgoal_tac "r @ [a] ~= []" 1); |
225 by (subgoal_tac "r @ [a] ~= []" 1); |
226 by (Fast_tac 1); |
226 by (Fast_tac 1); |
227 by (Simp_tac 1); |
227 by (Simp_tac 1); |
228 by(rtac allI 1); |
228 by (rtac allI 1); |
229 by(case_tac "as" 1); |
229 by (case_tac "as" 1); |
230 by (Asm_simp_tac 1); |
230 by (Asm_simp_tac 1); |
231 by (asm_full_simp_tac (simpset() addsimps [acc_prefix_def] addcongs[conj_cong]) 1); |
231 by (asm_full_simp_tac (simpset() addsimps [acc_prefix_def] addcongs[conj_cong]) 1); |
232 by (etac thin_rl 1); (* speed up *) |
232 by (etac thin_rl 1); (* speed up *) |
233 by (Fast_tac 1); |
233 by (Fast_tac 1); |
234 qed_spec_mp "step2_e"; |
234 qed_spec_mp "step2_e"; |