src/HOL/Nominal/Nominal.thy
changeset 22610 c8b5133045f3
parent 22609 40ade470e319
child 22650 0c5b22076fb3
equal deleted inserted replaced
22609:40ade470e319 22610:c8b5133045f3
   440   shows "swap (a,b) c = (if a=c then b else (if b=c then a else c))"
   440   shows "swap (a,b) c = (if a=c then b else (if b=c then a else c))"
   441   using a by (simp only: at_def)
   441   using a by (simp only: at_def)
   442 
   442 
   443 (* rules to calculate simple premutations *)
   443 (* rules to calculate simple premutations *)
   444 lemmas at_calc = at2 at1 at3
   444 lemmas at_calc = at2 at1 at3
       
   445 
       
   446 lemma at_swap_simps:
       
   447   fixes a ::"'x"
       
   448   and   b ::"'x"
       
   449   assumes a: "at TYPE('x)"
       
   450   shows "[(a,b)]\<bullet>a = b"
       
   451   and   "[(a,b)]\<bullet>b = a"
       
   452   using a by (simp_all add: at_calc)
   445 
   453 
   446 lemma at4: 
   454 lemma at4: 
   447   assumes a: "at TYPE('x)"
   455   assumes a: "at TYPE('x)"
   448   shows "infinite (UNIV::'x set)"
   456   shows "infinite (UNIV::'x set)"
   449   using a by (simp add: at_def)
   457   using a by (simp add: at_def)
  1087 apply(simp_all add: pt3[OF pta])
  1095 apply(simp_all add: pt3[OF pta])
  1088 done
  1096 done
  1089 
  1097 
  1090 section {* further lemmas for permutation types *}
  1098 section {* further lemmas for permutation types *}
  1091 (*==============================================*)
  1099 (*==============================================*)
  1092 
       
  1093 lemma swap_simp_a:
       
  1094   fixes a ::"'x"
       
  1095   and   b ::"'x"
       
  1096   assumes a: "at TYPE('x)"
       
  1097   shows "[(a,b)]\<bullet> a = b" 
       
  1098   using a by (auto simp add:at_calc)
       
  1099 
       
  1100 lemma swap_simp_b:
       
  1101   fixes a ::"'x"
       
  1102   and   b ::"'x"
       
  1103   assumes a: "at TYPE('x)"
       
  1104   shows "[(a,b)]\<bullet> b = a" 
       
  1105   using a by (auto simp add:at_calc)
       
  1106 
  1100 
  1107 lemma pt_rev_pi:
  1101 lemma pt_rev_pi:
  1108   fixes pi :: "'x prm"
  1102   fixes pi :: "'x prm"
  1109   and   x  :: "'a"
  1103   and   x  :: "'a"
  1110   assumes pt: "pt TYPE('a) TYPE('x)"
  1104   assumes pt: "pt TYPE('a) TYPE('x)"