src/HOL/Nominal/Nominal.thy
changeset 30092 9c3b1c136d1f
parent 30086 2023fb9fbf31
child 30108 bd78f08b0ba1
equal deleted inserted replaced
30091:2fb0b721e9c2 30092:9c3b1c136d1f
   394   fixes xs::"'a list"
   394   fixes xs::"'a list"
   395   shows "xs\<sharp>*(a,b) = (xs\<sharp>*a \<and> xs\<sharp>*b)"
   395   shows "xs\<sharp>*(a,b) = (xs\<sharp>*a \<and> xs\<sharp>*b)"
   396 by (auto simp add: fresh_star_def fresh_prod)
   396 by (auto simp add: fresh_star_def fresh_prod)
   397 
   397 
   398 lemmas fresh_star_prod = fresh_star_prod_list fresh_star_prod_set
   398 lemmas fresh_star_prod = fresh_star_prod_list fresh_star_prod_set
       
   399 
       
   400 text {* Normalization of freshness results; cf.\ @{text nominal_induct} *}
       
   401 
       
   402 lemma fresh_star_unit_elim: 
       
   403   shows "((a::'a set)\<sharp>*() \<Longrightarrow> PROP C) \<equiv> PROP C"
       
   404   and "((b::'a list)\<sharp>*() \<Longrightarrow> PROP C) \<equiv> PROP C"
       
   405   by (simp_all add: fresh_star_def fresh_def supp_unit)
       
   406 
       
   407 lemma fresh_star_prod_elim: 
       
   408   shows "((a::'a set)\<sharp>*(x,y) \<Longrightarrow> PROP C) \<equiv> (a\<sharp>*x \<Longrightarrow> a\<sharp>*y \<Longrightarrow> PROP C)"
       
   409   and "((b::'a list)\<sharp>*(x,y) \<Longrightarrow> PROP C) \<equiv> (b\<sharp>*x \<Longrightarrow> b\<sharp>*y \<Longrightarrow> PROP C)"
       
   410   by (rule, simp_all add: fresh_star_prod)+
   399 
   411 
   400 section {* Abstract Properties for Permutations and  Atoms *}
   412 section {* Abstract Properties for Permutations and  Atoms *}
   401 (*=========================================================*)
   413 (*=========================================================*)
   402 
   414 
   403 (* properties for being a permutation type *)
   415 (* properties for being a permutation type *)