Nominal/Abs.thy
changeset 1431 bc9ed52bcef5
parent 1423 d59f851926c5
child 1432 b41de1879dae
equal deleted inserted replaced
1430:ccbcebef56f3 1431:bc9ed52bcef5
   721   distinct_perms 
   721   distinct_perms 
   722 where
   722 where
   723   "distinct_perms [] = True"
   723   "distinct_perms [] = True"
   724 | "distinct_perms (p # ps) = (supp p \<inter> supp ps = {} \<and> distinct_perms ps)"
   724 | "distinct_perms (p # ps) = (supp p \<inter> supp ps = {} \<and> distinct_perms ps)"
   725 
   725 
       
   726 (* support of concrete atom sets *)
       
   727 
       
   728 atom_decl name
       
   729 
       
   730 lemma atom_eqvt_raw:
       
   731   fixes p::"perm"
       
   732   shows "(p \<bullet> atom) = atom"
       
   733 by (simp add: expand_fun_eq permute_fun_def atom_eqvt)
       
   734 
       
   735 lemma atom_image_cong:
       
   736   shows "(atom ` X = atom ` Y) = (X = Y)"
       
   737 apply(rule inj_image_eq_iff)
       
   738 apply(simp add: inj_on_def)
       
   739 done
       
   740 
       
   741 lemma
       
   742   fixes as::"name set"
       
   743   shows "supp (atom ` as) = supp as"
       
   744 apply(simp add: supp_def)
       
   745 apply(simp add: image_eqvt)
       
   746 apply(simp add: atom_eqvt_raw)
       
   747 apply(simp add: atom_image_cong)
       
   748 done
       
   749 
   726 
   750 
   727 
   751 
   728 end
   752 end
   729 
   753