# HG changeset patch # User Cezary Kaliszyk # Date 1268236748 -3600 # Node ID 406ee11355b88b066272b0fc2522cc8b80f15334 # Parent 3e128904baba45686e167b80db60dd127c762255# Parent 56ce001cdb87627ed9b3f9653e6ec715dcfa32c6 merge diff -r 56ce001cdb87 -r 406ee11355b8 Nominal/Term5.thy --- a/Nominal/Term5.thy Wed Mar 10 16:51:15 2010 +0100 +++ b/Nominal/Term5.thy Wed Mar 10 16:59:08 2010 +0100 @@ -90,15 +90,15 @@ print_theorems lemma alpha5_rfv: - "(t \5 s \ fv_rtrm5 t = fv_rtrm5 s) \ (l \l m \ fv_rlts l = fv_rlts m) \ (alpha_rbv5 a b c \ True)" - apply(induct rule: alpha_rtrm5_alpha_rlts_alpha_rbv5.induct) + "(t \5 s \ fv_rtrm5 t = fv_rtrm5 s)" + "(l \l m \ (fv_rlts l = fv_rlts m))" + "(alpha_rbv5 a b c \ True)" + apply(induct rule: alpha_rtrm5_alpha_rlts_alpha_rbv5.inducts) apply(simp_all) apply(simp add: alpha_gen) - apply(erule conjE)+ - apply(erule exE) - apply(erule conjE)+ + apply(clarify) apply(simp_all) - sorry + sorry (* works for non-rec *) lemma bv_list_rsp: shows "x \l y \ rbv5 x = rbv5 y" @@ -122,18 +122,20 @@ apply (simp_all add: alpha5_inj alpha5_rfv alpha5_eqvt bv_list_rsp) apply (clarify) apply (rule_tac x="0" in exI) apply (simp add: fresh_star_def fresh_zero_perm alpha_gen alpha5_rfv) - defer + apply (erule alpha_rtrm5_alpha_rlts_alpha_rbv5.inducts(2)) + apply (simp_all add: alpha5_inj) + apply clarify apply clarify - apply (erule alpha_rlts.cases) - apply (erule alpha_rlts.cases) - apply (simp_all) - defer - apply (erule alpha_rlts.cases) - apply (simp_all) - defer + apply (erule alpha_rtrm5_alpha_rlts_alpha_rbv5.inducts(2)) + apply simp_all + apply (erule_tac[!] alpha_rtrm5_alpha_rlts_alpha_rbv5.inducts(2)) + apply simp_all + defer defer (* Both sides false, so equal when we have distinct *) + apply (erule conjE)+ apply clarify apply (simp add: alpha5_inj) sorry (* may be true? *) + lemma shows "(alpha_rlts ===> op =) rbv5 rbv5" by (simp add: bv_list_rsp)