src/HOL/Nominal/Nominal.thy
changeset 23050 722f58379538
parent 22846 fb79144af9a3
child 23158 749b6870b1a1
equal deleted inserted replaced
23049:11607c283074 23050:722f58379538
   148 primrec (unchecked perm_nprod)
   148 primrec (unchecked perm_nprod)
   149   perm_nProd_def: "pi\<bullet>(nPair x1 x2)  = nPair (pi\<bullet>x1) (pi\<bullet>x2)"
   149   perm_nProd_def: "pi\<bullet>(nPair x1 x2)  = nPair (pi\<bullet>x1) (pi\<bullet>x2)"
   150 
   150 
   151 (* permutation on characters (used in strings) *)
   151 (* permutation on characters (used in strings) *)
   152 defs (unchecked overloaded)
   152 defs (unchecked overloaded)
   153   perm_char_def: "pi\<bullet>(s::char) \<equiv> s"
   153   perm_char_def: "pi\<bullet>(c::char) \<equiv> c"
       
   154 
       
   155 lemma perm_string:
       
   156   fixes s::"string"
       
   157   shows "pi\<bullet>s = s"
       
   158 by (induct s)(auto simp add: perm_char_def)
   154 
   159 
   155 (* permutation on ints *)
   160 (* permutation on ints *)
   156 defs (unchecked overloaded)
   161 defs (unchecked overloaded)
   157   perm_int_def:    "pi\<bullet>(i::int) \<equiv> i"
   162   perm_int_def:    "pi\<bullet>(i::int) \<equiv> i"
   158 
   163 
   270   done
   275   done
   271   
   276   
   272 lemma supp_string:
   277 lemma supp_string:
   273   fixes s::"string"
   278   fixes s::"string"
   274   shows "supp (s) = {}"
   279   shows "supp (s) = {}"
   275 apply(induct s)
   280 apply(simp add: supp_def perm_string)
   276 apply(auto simp add: supp_char supp_list_nil supp_list_cons)
       
   277 done
   281 done
   278 
   282 
   279 lemma fresh_set_empty:
   283 lemma fresh_set_empty:
   280   shows "a\<sharp>{}"
   284   shows "a\<sharp>{}"
   281   by (simp add: fresh_def supp_set_empty)
   285   by (simp add: fresh_def supp_set_empty)