src/HOL/Nominal/Examples/Pattern.thy
changeset 33268 02de0317f66f
parent 33189 82a40677c1f8
child 34915 7894c7dab132
equal deleted inserted replaced
33267:8fb01a2f9406 33268:02de0317f66f
   667       by (simp add: btrm.inject alpha)
   667       by (simp add: btrm.inject alpha)
   668     then show ?thesis
   668     then show ?thesis
   669     proof
   669     proof
   670       assume "x = x' \<and> t = u"
   670       assume "x = x' \<and> t = u"
   671       with PVar PVar' have "PVar x T = ([]::name prm) \<bullet> q \<and>
   671       with PVar PVar' have "PVar x T = ([]::name prm) \<bullet> q \<and>
   672 	t = ([]::name prm) \<bullet> u \<and>
   672         t = ([]::name prm) \<bullet> u \<and>
   673 	set ([]::name prm) \<subseteq> (supp (PVar x T) \<union> supp q) \<times>
   673         set ([]::name prm) \<subseteq> (supp (PVar x T) \<union> supp q) \<times>
   674           (supp (PVar x T) \<union> supp q)" by simp
   674           (supp (PVar x T) \<union> supp q)" by simp
   675       then show ?thesis ..
   675       then show ?thesis ..
   676     next
   676     next
   677       assume "x \<noteq> x' \<and> t = [(x, x')] \<bullet> u \<and> x \<sharp> u"
   677       assume "x \<noteq> x' \<and> t = [(x, x')] \<bullet> u \<and> x \<sharp> u"
   678       with PVar PVar' have "PVar x T = [(x, x')] \<bullet> q \<and>
   678       with PVar PVar' have "PVar x T = [(x, x')] \<bullet> q \<and>
   679 	t = [(x, x')] \<bullet> u \<and>
   679         t = [(x, x')] \<bullet> u \<and>
   680 	set [(x, x')] \<subseteq> (supp (PVar x T) \<union> supp q) \<times>
   680         set [(x, x')] \<subseteq> (supp (PVar x T) \<union> supp q) \<times>
   681           (supp (PVar x T) \<union> supp q)"
   681           (supp (PVar x T) \<union> supp q)"
   682 	by (simp add: perm_swap swap_simps supp_atm perm_type)
   682         by (simp add: perm_swap swap_simps supp_atm perm_type)
   683       then show ?thesis ..
   683       then show ?thesis ..
   684     qed
   684     qed
   685   next
   685   next
   686     case (PTuple p\<^isub>1 p\<^isub>2)
   686     case (PTuple p\<^isub>1 p\<^isub>2)
   687     with PVar have "ty_size (pat_type p\<^isub>1) < ty_size T" by simp
   687     with PVar have "ty_size (pat_type p\<^isub>1) < ty_size T" by simp