# HG changeset patch # User Christian Urban # Date 1295368247 -3600 # Node ID 87ebc706df67478085bec0b74f6a9fd4927e9806 # Parent 7e76628904773360f2f28b3ab9c3e3cf728802a8 made alpha_abs_set_stronger1 stronger diff -r 7e7662890477 -r 87ebc706df67 Nominal/Nominal2_Abs.thy --- a/Nominal/Nominal2_Abs.thy Tue Jan 18 17:19:50 2011 +0100 +++ b/Nominal/Nominal2_Abs.thy Tue Jan 18 17:30:47 2011 +0100 @@ -350,9 +350,8 @@ from asm have 0: "(supp x - as) \* p'" by (auto simp only: alphas) then have #: "p' \ (supp x - as) = (supp x - as)" by (simp add: atom_set_perm_eq) - have "finite (supp x)" by (simp add: finite_supp) - then obtain p where *: "\b \ supp x. p \ b = p' \ b" and **: "supp p \ supp x \ p' \ supp x" - using set_renaming_perm by blast + obtain p where *: "\b \ supp x. p \ b = p' \ b" and **: "supp p \ supp x \ p' \ supp x" + 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) @@ -379,20 +378,23 @@ lemma alpha_abs_set_stronger1: fixes x::"'a::fs" - assumes fin: "finite as" - and asm: "(as, x) \set (op =) supp p' (as', x')" + assumes asm: "(as, x) \set (op =) supp p' (as', x')" shows "\p. (as, x) \set (op =) supp p (as', x') \ supp p \ as \ as'" proof - from asm have 0: "(supp x - as) \* p'" by (auto simp only: alphas) then have #: "p' \ (supp x - as) = (supp x - as)" by (simp add: atom_set_perm_eq) - have za: "finite ((supp x) \ as)" using fin by (simp add: finite_supp) - obtain p where *: "\b \ ((supp x) \ as). p \ b = p' \ b" and **: "supp p \ ((supp x) \ as) \ p' \ ((supp x) \ as)" - using set_renaming_perm[OF za] by blast + obtain p where *: "\b \ (supp x \ as). p \ b = p' \ b" + and **: "supp p \ (supp x \ as) \ p' \ (supp x \ as)" + using set_renaming_perm2 by blast from * have "\b \ supp x. p \ b = p' \ b" by blast 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" using supp_perm_perm_eq by (metis fin supp_finite_atom_set) + then have zb: "p \ as = p' \ as" + apply(auto simp add: permute_set_eq) + 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) @@ -402,16 +404,15 @@ 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" using b by simp - also have "\ = (supp x - as) \ (supp x \ as) \ as \ ((p' \ (supp x - as)) \ (p' \ (supp x \ as))) \ p' \ as" - by (simp add: union_eqvt) + also have "\ = (supp x - as) \ (supp x \ as) \ as \ + ((p' \ (supp x - as)) \ (p' \ (supp x \ as))) \ p' \ as" by (simp add: union_eqvt) also have "\ = (supp x - as) \ (supp x \ as) \ as \ (p' \ (supp x \ as)) \ p' \ as" using # by auto also have "\ = (supp x - as) \ (supp x \ as) \ as \ p' \ ((supp x \ as) \ as)" using union_eqvt by auto also have "\ = (supp x - as) \ (supp x \ as) \ as \ p' \ as" by (metis Int_commute Un_commute sup_inf_absorb) - also have "\ = (supp x - as) \ as \ p' \ as" - by blast + also have "\ = (supp x - as) \ as \ p' \ as" by blast finally have "supp p \ (supp x - as) \ as \ p' \ as" . then have "supp p \ as \ p' \ as" using 2 by blast moreover