Nominal/Nominal2_Supp.thy
changeset 1633 9e31248a1b8c
parent 1567 8f28e749d92b
child 1670 ed89a26b7074
--- a/Nominal/Nominal2_Supp.thy	Wed Mar 24 13:54:20 2010 +0100
+++ b/Nominal/Nominal2_Supp.thy	Wed Mar 24 14:49:51 2010 +0100
@@ -483,4 +483,19 @@
 apply(auto simp add: fresh_star_def fresh_def)
 done
 
+lemma at_set_avoiding2_atom:
+  assumes "finite (supp c)" "finite (supp x)"
+  and     b: "xa \<sharp> x"
+  shows "\<exists>p. (p \<bullet> xa) \<sharp> c \<and> supp x \<sharp>* p"
+proof -
+  have a: "{xa} \<sharp>* x" unfolding fresh_star_def by (simp add: b)
+  obtain p where p1: "(p \<bullet> {xa}) \<sharp>* c" and p2: "supp x \<sharp>* p"
+    using at_set_avoiding2[of "{xa}" "c" "x"] assms a by blast
+  have c: "(p \<bullet> xa) \<sharp> c" using p1
+    unfolding fresh_star_def Ball_def 
+    by (erule_tac x="p \<bullet> xa" in allE) (simp add: eqvts)
+  hence "p \<bullet> xa \<sharp> c \<and> supp x \<sharp>* p" using p2 by blast
+  then show ?thesis by blast
+qed
+
 end