diff -r f89773ab0685 -r e83493622e6f Nominal/Rsp.thy --- a/Nominal/Rsp.thy Mon May 17 16:29:33 2010 +0200 +++ b/Nominal/Rsp.thy Mon May 17 17:31:18 2010 +0200 @@ -145,10 +145,10 @@ fun alpha_bn_rsp_tac simps res exhausts a ctxt = rtac allI THEN_ALL_NEW case_rules_tac ctxt a exhausts THEN_ALL_NEW - asm_full_simp_tac (HOL_ss addsimps simps) THEN_ALL_NEW + asm_full_simp_tac (HOL_ss addsimps simps addsimps @{thms alphas}) THEN_ALL_NEW TRY o REPEAT_ALL_NEW (rtac @{thm arg_cong2[of _ _ _ _ "op \"]}) THEN_ALL_NEW TRY o eresolve_tac res THEN_ALL_NEW - asm_full_simp_tac (HOL_ss addsimps simps); + asm_full_simp_tac (HOL_ss addsimps simps) *} @@ -186,10 +186,15 @@ end *} +lemma exi_same: "\(pi :: perm). P pi \ (\(p :: perm). P p \ Q p) \ \pi. Q pi" + by auto + ML {* fun prove_alpha_alphabn alphas ind simps alpha_bns ctxt = prove_by_rel_induct alphas build_alpha_alpha_bn_gl ind - (fn _ => asm_full_simp_tac (HOL_ss addsimps simps)) alpha_bns ctxt + (fn _ => asm_full_simp_tac (HOL_ss addsimps simps addsimps @{thms alphas}) + THEN_ALL_NEW split_conj_tac THEN_ALL_NEW (TRY o etac @{thm exi_same}) + THEN_ALL_NEW asm_full_simp_tac HOL_ss) alpha_bns ctxt *} ML {*