
diff -r 84d666f9face -r ad2feded2a8c Quot/Nominal/Terms.thy
--- a/Quot/Nominal/Terms.thy	Tue Feb 09 17:05:07 2010 +0100
+++ b/Quot/Nominal/Terms.thy	Tue Feb 09 17:24:08 2010 +0100
@@ -1023,6 +1023,11 @@
 as
   "rbv6"
 
+lemma [quot_respect]:
+  "(op = ===> alpha1 ===> alpha1) permute permute"
+apply auto (* eqvt *)
+sorry
+
 lemma [quot_respect]:"(alpha6 ===> op =) rbv6 rbv6"
 apply simp apply clarify
 apply (erule alpha6.induct)
@@ -1030,10 +1035,16 @@
 apply simp
 apply (erule exE)
 apply (simp add: alpha_gen)
-sorry
+oops
 
 lemma [quot_respect]:"(alpha6 ===> op =) rfv_trm6 rfv_trm6"
-sorry
+apply simp apply clarify
+apply (induct_tac x y rule: alpha6.induct)
+apply simp_all
+apply (erule exE)
+apply (simp add: alpha_gen)
+apply (erule conjE)+
+oops
 
 lemma [quot_respect]:
  "(op = ===> alpha6) rVr6 rVr6"
@@ -1045,7 +1056,7 @@
 apply (rule_tac x="0::perm" in exI)
 apply (simp add: alpha_gen)
 (* needs rbv6_rsp *)
-sorry
+oops
 
 instantiation trm6 :: pt begin
 
@@ -1055,9 +1066,22 @@
   "permute :: perm \<Rightarrow> rtrm6 \<Rightarrow> rtrm6"
 
 instance
+apply default
 sorry
 end
 
+lemma 
+"\<lbrakk>x1 = x2; \<And>a b. a = b \<Longrightarrow> P (Vr6 a) (Vr6 b);
+  \<And>t1 t2 s1 s2. \<lbrakk>t1 = t2; P t1 t2; s1 = s2; P s1 s2\<rbrakk> \<Longrightarrow> P (Ap6 t1 s1) (Ap6 t2 s2);
+  \<And>l1 r1 l2 r2.
+     \<exists>pi. (bv6 l1, r1) \<approx>gen (\<lambda>x1 x2. x1 = x2 \<and> P x1 x2) fv_trm6 pi (bv6 l2, r2) \<Longrightarrow>
+     P (Fo6 l1 r1) (Fo6 l2 r2)\<rbrakk>
+ \<Longrightarrow> P x1 x2"
+unfolding alpha_gen
+apply (lifting alpha6.induct[unfolded alpha_gen])
+apply(injection)
+sorry
+
 lemma "\<lbrakk>\<exists>pi. ((bv6 l1, r1) \<approx>gen (op =) fv_trm6 pi (bv6 l2, r2))\<rbrakk>
         \<Longrightarrow> Fo6 l1 r1 = Fo6 l2 r2"
 apply (unfold alpha_gen)




