Nominal/Ex/Weakening.thy
changeset 3190 1b7c034c9e9e
parent 2950 0911cb7bf696
child 3208 da575186d492
child 3245 017e33849f4d
--- a/Nominal/Ex/Weakening.thy	Tue Jun 12 14:22:58 2012 +0100
+++ b/Nominal/Ex/Weakening.thy	Mon Jun 18 14:50:02 2012 +0100
@@ -49,7 +49,7 @@
 
 nominal_inductive typing
   avoids t_Lam: "x"
-  by (simp_all add: fresh_star_def fresh_ty lam.fresh)
+  by (simp_all add: fresh_star_def fresh_ty)
 
 
 abbreviation
@@ -122,7 +122,7 @@
 
 nominal_inductive typing2
   avoids t2_Lam: "x"
-  by (simp_all add: fresh_star_def fresh_ty lam.fresh)
+  by (simp_all add: fresh_star_def fresh_ty)
 
 lemma weakening_version3: 
   fixes \<Gamma>::"(name \<times> ty) fset"
@@ -133,7 +133,7 @@
 apply(nominal_induct \<Gamma> t T avoiding: x rule: typing2.strong_induct)
 apply(auto)[2]
 apply(rule t2_Lam)
-apply(simp add: fresh_insert_fset fresh_Pair fresh_ty)
+apply(simp add: fresh_insert_fset fresh_ty)
 apply(simp)
 apply(drule_tac x="xa" in meta_spec)
 apply(drule meta_mp)
@@ -147,11 +147,19 @@
   and     b: "(x, T') |\<notin>| \<Gamma>"
   shows "{|(x, T')|} |\<union>| \<Gamma> 2\<turnstile> t : T"
 using a b
-apply(induct \<Gamma> t T arbitrary: x)
+apply(induct \<Gamma> t T arbitrary: x T')
 apply(auto)[2]
+apply(blast)
+apply(simp)
+apply(rule_tac ?'a="name" and x="(x, xa, t, T', \<Gamma>)" in obtain_fresh)
+apply(rule_tac t= "Lam [x]. t" and s="Lam [a]. ((a \<leftrightarrow> x) \<bullet> t)" in subst)
+defer
 apply(rule t2_Lam)
+apply(simp add: fresh_insert_fset)
 oops
 
+
+
 end