merge
authorCezary Kaliszyk <kaliszyk@in.tum.de>
Mon, 29 Mar 2010 12:06:22 +0200
changeset 1692 15d2d46bf89e
parent 1691 b497ac81aead (diff)
parent 1690 44a5edac90ad (current diff)
child 1693 3668b389edf3
child 1695 e42ee5947b5c
merge
--- a/Nominal/Abs.thy	Mon Mar 29 11:23:29 2010 +0200
+++ b/Nominal/Abs.thy	Mon Mar 29 12:06:22 2010 +0200
@@ -771,5 +771,60 @@
   by (auto simp add: fresh_star_permute_iff)
 
 
+lemma alpha_gen_simpler:
+  assumes fv_rsp: "\<And>x y. R y x \<Longrightarrow> f x = f y"
+  and fin_fv: "finite (f x)"
+  and fv_eqvt: "pi \<bullet> f x = f (pi \<bullet> x)"
+  shows "alpha_gen (bs, x) R f pi (cs, y) \<longleftrightarrow>
+     (f x - bs) \<sharp>* pi \<and>
+     R (pi \<bullet> x) y \<and>
+     pi \<bullet> bs = cs"
+  apply rule
+  unfolding alpha_gen
+  apply clarify
+  apply (erule conjE)+
+  apply (simp)
+  apply (subgoal_tac "f y - cs = pi \<bullet> (f x - bs)")
+  apply (rule sym)
+  apply simp
+  apply (rule supp_perm_eq)
+  apply (subst supp_finite_atom_set)
+  apply (rule finite_Diff)
+  apply (rule fin_fv)
+  apply (assumption)
+  apply (simp add: eqvts fv_eqvt)
+  apply (subst fv_rsp)
+  apply assumption
+  apply (simp)
+  done
+
+lemma alpha_lst_simpler:
+  assumes fv_rsp: "\<And>x y. R y x \<Longrightarrow> f x = f y"
+  and fin_fv: "finite (f x)"
+  and fv_eqvt: "pi \<bullet> f x = f (pi \<bullet> x)"
+  shows "alpha_lst (bs, x) R f pi (cs, y) \<longleftrightarrow>
+     (f x - set bs) \<sharp>* pi \<and>
+     R (pi \<bullet> x) y \<and>
+     pi \<bullet> bs = cs"
+  apply rule
+  unfolding alpha_lst
+  apply clarify
+  apply (erule conjE)+
+  apply (simp)
+  apply (subgoal_tac "f y - set cs = pi \<bullet> (f x - set bs)")
+  apply (rule sym)
+  apply simp
+  apply (rule supp_perm_eq)
+  apply (subst supp_finite_atom_set)
+  apply (rule finite_Diff)
+  apply (rule fin_fv)
+  apply (assumption)
+  apply (simp add: eqvts fv_eqvt)
+  apply (subst fv_rsp)
+  apply assumption
+  apply (simp)
+  done
+
+
 end