src/HOL/Lex/AutoChopper.ML
changeset 12486 0ed8bdd883e0
parent 11232 558a4feebb04
equal deleted inserted replaced
12485:3df60299a6d0 12486:0ed8bdd883e0
   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";