diff -r c9a1c6f50ff5 -r cf451e182bf0 Nominal/Nominal2_Abs.thy --- a/Nominal/Nominal2_Abs.thy Fri Sep 06 10:06:41 2013 +0100 +++ b/Nominal/Nominal2_Abs.thy Sun Oct 13 23:09:21 2013 +0200 @@ -51,7 +51,7 @@ and "R1 \ R2 \ alpha_res bs R1 \ alpha_res bs R2" and "R1 \ R2 \ alpha_lst cs R1 \ alpha_lst cs R2" by (case_tac [!] bs, case_tac [!] cs) - (auto simp add: le_fun_def le_bool_def alphas) + (auto simp: le_fun_def le_bool_def alphas) section {* Equivariance *} @@ -87,7 +87,7 @@ and "(ds, x) \lst R f p (es, y) \ (es, y) \lst R f (- p) (ds, x)" unfolding alphas fresh_star_def using a - by (auto simp add: fresh_minus_perm) + by (auto simp: fresh_minus_perm) lemma alpha_trans: assumes a: "\R (p \ x) y; R (q \ y) z\ \ R ((q + p) \ x) z" @@ -204,7 +204,7 @@ unfolding alphas unfolding fresh_star_def by (erule_tac [!] exE, rule_tac [!] x="-p" in exI) - (auto simp add: fresh_minus_perm) + (auto simp: fresh_minus_perm) lemma alphas_abs_trans: shows "\(bs, x) \abs_set (cs, y); (cs, y) \abs_set (ds, z)\ \ (bs, x) \abs_set (ds, z)" @@ -278,9 +278,9 @@ using set_renaming_perm2 by blast from * have a: "p \ x = p' \ x" using supp_perm_perm_eq by auto from 0 have 1: "(supp x - as) \* p" using * - by (auto simp add: fresh_star_def fresh_perm) + by (auto simp: fresh_star_def fresh_perm) then have 2: "(supp x - as) \ supp p = {}" - by (auto simp add: fresh_star_def fresh_def) + by (auto simp: fresh_star_def fresh_def) have b: "supp x = (supp x - as) \ (supp x \ as)" by auto have "supp p \ supp x \ p' \ supp x" using ** by simp also have "\ = (supp x - as) \ (supp x \ as) \ (p' \ ((supp x - as) \ (supp x \ as)))" @@ -303,7 +303,7 @@ lemma alpha_abs_res_minimal: assumes asm: "(as, x) \res (op =) supp p (as', x')" shows "(as \ supp x, x) \res (op =) supp p (as' \ supp x', x')" - using asm unfolding alpha_res by (auto simp add: Diff_Int) + using asm unfolding alpha_res by (auto simp: Diff_Int) lemma alpha_abs_res_abs_set: assumes asm: "(as, x) \res (op =) supp p (as', x')" @@ -323,7 +323,7 @@ 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) + using asm unfolding alphas by (auto simp: Diff_Int) lemma alpha_abs_res_stronger1: assumes asm: "(as, x) \res (op =) supp p' (as', x')" @@ -344,15 +344,15 @@ then have a: "p \ x = p' \ x" using supp_perm_perm_eq by auto from * have "\b \ as. p \ b = p' \ b" by blast then have zb: "p \ as = p' \ as" - apply(auto simp add: permute_set_def) + apply(auto simp: permute_set_def) apply(rule_tac x="xa" in exI) apply(simp) done have zc: "p' \ as = as'" using asm by (simp add: alphas) from 0 have 1: "(supp x - as) \* p" using * - by (auto simp add: fresh_star_def fresh_perm) + by (auto simp: fresh_star_def fresh_perm) then have 2: "(supp x - as) \ supp p = {}" - by (auto simp add: fresh_star_def fresh_def) + by (auto simp: fresh_star_def fresh_def) have b: "supp x = (supp x - as) \ (supp x \ as)" by auto have "supp p \ supp x \ as \ p' \ supp x \ p' \ as" using ** using union_eqvt by blast also have "\ = (supp x - as) \ (supp x \ as) \ as \ (p' \ ((supp x - as) \ (supp x \ as))) \ p' \ as" @@ -390,9 +390,9 @@ then have zb: "p \ as = p' \ as" by (induct as) (auto) have zc: "p' \ set as = set as'" using asm by (simp add: alphas set_eqvt) from 0 have 1: "(supp x - set as) \* p" using * - by (auto simp add: fresh_star_def fresh_perm) + by (auto simp: fresh_star_def fresh_perm) then have 2: "(supp x - set as) \ supp p = {}" - by (auto simp add: fresh_star_def fresh_def) + by (auto simp: fresh_star_def fresh_def) have b: "supp x = (supp x - set as) \ (supp x \ set as)" by auto have "supp p \ supp x \ set as \ p' \ supp x \ p' \ set as" using ** using union_eqvt by blast also have "\ = (supp x - set as) \ (supp x \ set as) \ set as \ @@ -420,14 +420,14 @@ and "(bs, x) \abs_lst (bs', x') \ (\p. (bs, x) \lst (op =) supp p (bs', x') \ supp p \ set bs \ set bs')" apply(rule iffI) -apply(auto simp add: alphas_abs alpha_abs_set_stronger1)[1] -apply(auto simp add: alphas_abs)[1] +apply(auto simp: alphas_abs alpha_abs_set_stronger1)[1] +apply(auto simp: alphas_abs)[1] apply(rule iffI) -apply(auto simp add: alphas_abs alpha_abs_res_stronger1)[1] -apply(auto simp add: alphas_abs)[1] +apply(auto simp: alphas_abs alpha_abs_res_stronger1)[1] +apply(auto simp: alphas_abs)[1] apply(rule iffI) -apply(auto simp add: alphas_abs alpha_abs_lst_stronger1)[1] -apply(auto simp add: alphas_abs)[1] +apply(auto simp: alphas_abs alpha_abs_lst_stronger1)[1] +apply(auto simp: alphas_abs)[1] done lemma alpha_res_alpha_set: @@ -603,7 +603,7 @@ unfolding swap_set_not_in[OF a1 a2] using a1 a2 by (rule_tac [!] x="(a \ b)" in exI) - (auto simp add: supp_perm swap_atom) + (auto simp: supp_perm swap_atom) lemma Abs_swap2: assumes a1: "a \ (supp x) - (set bs)" @@ -616,7 +616,7 @@ unfolding swap_set_not_in[OF a1 a2] using a1 a2 by (rule_tac [!] x="(a \ b)" in exI) - (auto simp add: supp_perm swap_atom) + (auto simp: supp_perm swap_atom) lemma Abs_supports: shows "((supp x) - as) supports ([as]set. x)" @@ -732,7 +732,7 @@ and "as \* ([bs]res. x) \ (as - bs) \* x" and "as \* ([cs]lst. x) \ (as - set cs) \* x" unfolding fresh_star_def - by (auto simp add: Abs_fresh_iff) + by (auto simp: Abs_fresh_iff) lemma Abs_fresh_star: fixes x::"'a::fs" @@ -740,7 +740,7 @@ and "as \ as' \ as \* ([as']res. x)" and "bs \ set bs' \ bs \* ([bs']lst. x)" unfolding fresh_star_def - by(auto simp add: Abs_fresh_iff) + by(auto simp: Abs_fresh_iff) lemma Abs_fresh_star2: fixes x::"'a::fs" @@ -760,7 +760,7 @@ and "[{atom a}]res. x = [{atom a}]res. y \ x = y" and "[[atom a]]lst. x = [[atom a]]lst. y \ x = y" unfolding Abs_eq_iff2 alphas -by (auto simp add: supp_perm_singleton fresh_star_def fresh_zero_perm) +by (auto simp: supp_perm_singleton fresh_star_def fresh_zero_perm) lemma Abs1_eq_iff_fresh: fixes x y::"'a::fs" @@ -808,28 +808,28 @@ fixes x y::"'a::fs" and z::"'c::fs" and a b::"'b::at" - shows "[{atom a}]set. x = [{atom b}]set. y \ (\c. atom c \ (a, b, x, y, z) \ (a \ c) \ x = (b \ c) \ y)" - and "[{atom a}]res. x = [{atom b}]res. y \ (\c. atom c \ (a, b, x, y, z) \ (a \ c) \ x = (b \ c) \ y)" - and "[[atom a]]lst. x = [[atom b]]lst. y \ (\c. atom c \ (a, b, x, y, z) \ (a \ c) \ x = (b \ c) \ y)" + shows "[{atom a}]set. x = [{atom b}]set. y \ (\c. atom c \ z \ atom c \ (a, b, x, y) \ (a \ c) \ x = (b \ c) \ y)" + and "[{atom a}]res. x = [{atom b}]res. y \ (\c. atom c \ z \ atom c \ (a, b, x, y) \ (a \ c) \ x = (b \ c) \ y)" + and "[[atom a]]lst. x = [[atom b]]lst. y \ (\c. atom c \ z \ atom c \ (a, b, x, y) \ (a \ c) \ x = (b \ c) \ y)" apply(auto) apply(simp add: Abs1_eq_iff_fresh(1)[symmetric]) apply(rule_tac ?'a="'b::at" and x="(a, b, x, y, z)" in obtain_fresh) apply(drule_tac x="aa" in spec) apply(simp) apply(subst Abs1_eq_iff_fresh(1)) -apply(auto simp add: fresh_Pair)[2] +apply(auto simp: fresh_Pair)[2] apply(simp add: Abs1_eq_iff_fresh(2)[symmetric]) apply(rule_tac ?'a="'b::at" and x="(a, b, x, y, z)" in obtain_fresh) apply(drule_tac x="aa" in spec) apply(simp) apply(subst Abs1_eq_iff_fresh(2)) -apply(auto simp add: fresh_Pair)[2] +apply(auto simp: fresh_Pair)[2] apply(simp add: Abs1_eq_iff_fresh(3)[symmetric]) apply(rule_tac ?'a="'b::at" and x="(a, b, x, y, z)" in obtain_fresh) apply(drule_tac x="aa" in spec) apply(simp) apply(subst Abs1_eq_iff_fresh(3)) -apply(auto simp add: fresh_Pair)[2] +apply(auto simp: fresh_Pair)[2] done lemma Abs1_eq_iff: @@ -918,7 +918,7 @@ shows "[{atom a}]set. x = [{atom b}]set. y \ (a = b \ x = y) \ (a \ b \ (b \ a) \ x = y \ atom b \ x)" and "[{atom a}]res. x = [{atom b}]res. y \ (a = b \ x = y) \ (a \ b \ (b \ a) \ x = y \ atom b \ x)" and "[[atom a]]lst. x = [[atom b]]lst. y \ (a = b \ x = y) \ (a \ b \ (b \ a) \ x = y \ atom b \ x)" -using assms by (auto simp add: Abs1_eq_iff fresh_permute_left) +using assms by (auto simp: Abs1_eq_iff fresh_permute_left) ML {* @@ -1078,7 +1078,7 @@ lemma prod_fv_supp: shows "prod_fv supp supp = supp" by (rule ext) - (auto simp add: supp_Pair) + (auto simp: supp_Pair) lemma prod_alpha_eq: shows "prod_alpha (op=) (op=) = (op=)"