
diff -r f067e59b58d9 -r 98d0d77005f3 thys/ReStar.thy
--- a/thys/ReStar.thy	Mon Feb 01 13:46:28 2016 +0000
+++ b/thys/ReStar.thy	Mon Feb 01 13:59:55 2016 +0000
@@ -1,5 +1,5 @@
    
-theory Re
+theory ReStar
   imports "Main" 
 begin
 
@@ -58,7 +58,7 @@
 lemma star1: 
   shows "s \<in> A\<star> \<Longrightarrow> \<exists>n. s \<in> A \<up> n"
   apply(induct rule: Star.induct)
-  apply (metis Re.pow.simps(1) insertI1)
+  apply (metis pow.simps(1) insertI1)
   apply(auto)
   apply(rule_tac x="Suc n" in exI)
   apply(auto simp add: Sequ_def)
@@ -67,7 +67,7 @@
 lemma star2:
   shows "s \<in> A \<up> n \<Longrightarrow> s \<in> A\<star>"
   apply(induct n arbitrary: s)
-  apply (metis Re.pow.simps(1) Star.simps empty_iff insertE)
+  apply (metis pow.simps(1) Star.simps empty_iff insertE)
   apply(auto simp add: Sequ_def)
   done
 
@@ -613,6 +613,43 @@
 apply (metis Prf.intros(6) Prf.intros(7))
 by (metis Prf.intros(7))
 
+lemma v3_NP:
+  assumes "\<Turnstile> v : der c r" 
+  shows "\<Turnstile> (injval r c v) : r"
+using assms
+apply(induct arbitrary: v rule: der.induct)
+apply(simp)
+apply(erule NPrf.cases)
+apply(simp_all)[7]
+apply(simp)
+apply(erule NPrf.cases)
+apply(simp_all)[7]
+apply(case_tac "c = c'")
+apply(simp)
+apply(erule NPrf.cases)
+apply(simp_all)[7]
+apply (metis NPrf.intros(5))
+apply(simp)
+apply(erule NPrf.cases)
+apply(simp_all)[7]
+apply(simp)
+apply(erule NPrf.cases)
+apply(simp_all)[7]
+apply (metis NPrf.intros(2))
+apply (metis NPrf.intros(3))
+apply(simp)
+apply(case_tac "nullable r1")
+apply(simp)
+apply(erule NPrf.cases)
+apply(simp_all)[7]
+apply(auto)[1]
+apply(erule NPrf.cases)
+apply(simp_all)[7]
+apply(auto)[1]
+apply (metis NPrf.intros(1))
+apply(auto)[1]
+oops
+
 lemma v3_proj:
   assumes "\<Turnstile> v : r" and "\<exists>s. (flat v) = c # s"
   shows "\<Turnstile> (projval r c v) : der c r"




