Nominal/Abs.thy
changeset 1691 b497ac81aead
parent 1688 0b2535a72fd0
child 1744 00680cea0dde
equal deleted inserted replaced
1689:8c0eef2b84e7 1691:b497ac81aead
   769   unfolding permute_eqvt[symmetric]
   769   unfolding permute_eqvt[symmetric]
   770   using a
   770   using a
   771   by (auto simp add: fresh_star_permute_iff)
   771   by (auto simp add: fresh_star_permute_iff)
   772 
   772 
   773 
   773 
       
   774 lemma alpha_gen_simpler:
       
   775   assumes fv_rsp: "\<And>x y. R y x \<Longrightarrow> f x = f y"
       
   776   and fin_fv: "finite (f x)"
       
   777   and fv_eqvt: "pi \<bullet> f x = f (pi \<bullet> x)"
       
   778   shows "alpha_gen (bs, x) R f pi (cs, y) \<longleftrightarrow>
       
   779      (f x - bs) \<sharp>* pi \<and>
       
   780      R (pi \<bullet> x) y \<and>
       
   781      pi \<bullet> bs = cs"
       
   782   apply rule
       
   783   unfolding alpha_gen
       
   784   apply clarify
       
   785   apply (erule conjE)+
       
   786   apply (simp)
       
   787   apply (subgoal_tac "f y - cs = pi \<bullet> (f x - bs)")
       
   788   apply (rule sym)
       
   789   apply simp
       
   790   apply (rule supp_perm_eq)
       
   791   apply (subst supp_finite_atom_set)
       
   792   apply (rule finite_Diff)
       
   793   apply (rule fin_fv)
       
   794   apply (assumption)
       
   795   apply (simp add: eqvts fv_eqvt)
       
   796   apply (subst fv_rsp)
       
   797   apply assumption
       
   798   apply (simp)
       
   799   done
       
   800 
       
   801 lemma alpha_lst_simpler:
       
   802   assumes fv_rsp: "\<And>x y. R y x \<Longrightarrow> f x = f y"
       
   803   and fin_fv: "finite (f x)"
       
   804   and fv_eqvt: "pi \<bullet> f x = f (pi \<bullet> x)"
       
   805   shows "alpha_lst (bs, x) R f pi (cs, y) \<longleftrightarrow>
       
   806      (f x - set bs) \<sharp>* pi \<and>
       
   807      R (pi \<bullet> x) y \<and>
       
   808      pi \<bullet> bs = cs"
       
   809   apply rule
       
   810   unfolding alpha_lst
       
   811   apply clarify
       
   812   apply (erule conjE)+
       
   813   apply (simp)
       
   814   apply (subgoal_tac "f y - set cs = pi \<bullet> (f x - set bs)")
       
   815   apply (rule sym)
       
   816   apply simp
       
   817   apply (rule supp_perm_eq)
       
   818   apply (subst supp_finite_atom_set)
       
   819   apply (rule finite_Diff)
       
   820   apply (rule fin_fv)
       
   821   apply (assumption)
       
   822   apply (simp add: eqvts fv_eqvt)
       
   823   apply (subst fv_rsp)
       
   824   apply assumption
       
   825   apply (simp)
       
   826   done
       
   827 
       
   828 
   774 end
   829 end
   775 
   830