# HG changeset patch # User Cezary Kaliszyk # Date 1296517694 -32400 # Node ID a84999edbcb31f294357d3b390f4e8f8b3ad68ee # Parent c66d288b9fa0bdc38cbab0cb4f8d47c0b205789c More properties that relate abs_res and abs_set. Also abs_res with less binders. diff -r c66d288b9fa0 -r a84999edbcb3 Nominal/Nominal2_Abs.thy --- a/Nominal/Nominal2_Abs.thy Sun Jan 30 12:09:23 2011 +0900 +++ b/Nominal/Nominal2_Abs.thy Tue Feb 01 08:48:14 2011 +0900 @@ -340,6 +340,11 @@ then show ?thesis using a b c unfolding alpha_set by simp qed +lemma alpha_abs_set_abs_res: + assumes asm: "(as \ supp x, x) \set (op =) supp p (as' \ supp x', x')" + shows "(as, x) \res (op =) supp p (as', x')" + using asm unfolding alphas by (auto simp add: Diff_Int) + lemma alpha_abs_res_stronger1: assumes asm: "(as, x) \res (op =) supp p' (as', x')" shows "\p. (as, x) \res (op =) supp p (as', x') \ supp p \ as \ as'" @@ -503,6 +508,25 @@ (\p. (bsl, x) \lst (op =) supp p (csl, y) \ supp p \ set bsl \ set csl)" by (lifting alphas_abs_stronger) +lemma Abs_eq_res_set: + "(([bs]res. x) = ([cs]res. y)) = (([(bs \ supp x)]set. x) = ([(cs \ supp y)]set. y))" + unfolding Abs_eq_iff + using alpha_abs_set_abs_res alpha_abs_res_abs_set + apply auto + apply (rule_tac x="p" in exI) + apply assumption + apply (rule_tac x="p" in exI) + apply assumption + done + +lemma Abs_eq_res_supp: + assumes asm: "supp x \ bs" + shows "([as]res. x) = ([as \ bs]res. x)" + unfolding Abs_eq_iff alphas + apply (rule_tac x="0::perm" in exI) + apply (simp add: fresh_star_zero) + using asm by blast + lemma Abs_exhausts: shows "(\as (x::'a::pt). y1 = Abs_set as x \ P1) \ P1" and "(\as (x::'a::pt). y2 = Abs_res as x \ P2) \ P2"