src/HOL/Nominal/Nominal.thy
changeset 22831 18f4014e1259
parent 22829 f1db55c7534d
child 22846 fb79144af9a3
equal deleted inserted replaced
22830:72a7b6ad153b 22831:18f4014e1259
   321   by (simp add: fresh_def supp_list_rev)
   321   by (simp add: fresh_def supp_list_rev)
   322 
   322 
   323 lemma fresh_none:
   323 lemma fresh_none:
   324   fixes a :: "'x"
   324   fixes a :: "'x"
   325   shows "a\<sharp>None"
   325   shows "a\<sharp>None"
   326   apply(simp add: fresh_def supp_none)
   326   by (simp add: fresh_def supp_none)
   327   done
       
   328 
   327 
   329 lemma fresh_some:
   328 lemma fresh_some:
   330   fixes a :: "'x"
   329   fixes a :: "'x"
   331   and   x :: "'a"
   330   and   x :: "'a"
   332   shows "a\<sharp>(Some x) = a\<sharp>x"
   331   shows "a\<sharp>(Some x) = a\<sharp>x"
   333   apply(simp add: fresh_def supp_some)
   332   by (simp add: fresh_def supp_some)
   334   done
       
   335 
   333 
   336 lemma fresh_int:
   334 lemma fresh_int:
   337   fixes a :: "'x"
   335   fixes a :: "'x"
   338   and   i :: "int"
   336   and   i :: "int"
   339   shows "a\<sharp>i"
   337   shows "a\<sharp>i"
   340   apply(simp add: fresh_def supp_int)
   338   by (simp add: fresh_def supp_int)
   341   done
       
   342 
   339 
   343 lemma fresh_nat:
   340 lemma fresh_nat:
   344   fixes a :: "'x"
   341   fixes a :: "'x"
   345   and   n :: "nat"
   342   and   n :: "nat"
   346   shows "a\<sharp>n"
   343   shows "a\<sharp>n"
   347   apply(simp add: fresh_def supp_nat)
   344   by (simp add: fresh_def supp_nat)
   348   done
       
   349 
   345 
   350 lemma fresh_char:
   346 lemma fresh_char:
   351   fixes a :: "'x"
   347   fixes a :: "'x"
   352   and   c :: "char"
   348   and   c :: "char"
   353   shows "a\<sharp>c"
   349   shows "a\<sharp>c"
   354   apply(simp add: fresh_def supp_char)
   350   by (simp add: fresh_def supp_char)
   355   done
       
   356 
   351 
   357 lemma fresh_string:
   352 lemma fresh_string:
   358   fixes a :: "'x"
   353   fixes a :: "'x"
   359   and   s :: "string"
   354   and   s :: "string"
   360   shows "a\<sharp>s"
   355   shows "a\<sharp>s"
   361   apply(simp add: fresh_def supp_string)
   356   by (simp add: fresh_def supp_string)
   362   done
   357 
       
   358 lemma fresh_bool:
       
   359   fixes a :: "'x"
       
   360   and   b :: "bool"
       
   361   shows "a\<sharp>b"
       
   362   by (simp add: fresh_def supp_bool)
   363 
   363 
   364 text {* Normalization of freshness results; cf.\ @{text nominal_induct} *}
   364 text {* Normalization of freshness results; cf.\ @{text nominal_induct} *}
   365 
   365 
   366 lemma fresh_unit_elim: 
   366 lemma fresh_unit_elim: 
   367   shows "(a\<sharp>() \<Longrightarrow> PROP C) \<equiv> PROP C"
   367   shows "(a\<sharp>() \<Longrightarrow> PROP C) \<equiv> PROP C"