
diff -r 6e035162345a -r dfa9dbb8f8e6 thys/Re1.thy
--- a/thys/Re1.thy	Mon Mar 09 10:49:17 2015 +0000
+++ b/thys/Re1.thy	Fri Mar 13 21:27:03 2015 +0000
@@ -819,6 +819,11 @@
 apply (metis list.distinct(1) mkeps_flat v4)
 by (metis h)
 
+lemma Prf_inj_test:
+  assumes "v1 \<succ>(der c r) v2" "\<turnstile> v1 : der c r" "\<turnstile> v2 : der c r" "flat v1 = flat v2"
+  shows "(injval r c v1) \<succ>r (injval r c v2)"
+sorry
+
 lemma Prf_inj:
   assumes "v1 \<succ>(der c r) v2" "\<turnstile> v1 : der c r" "\<turnstile> v2 : der c r" (*"flat v1 = flat v2"*)
   shows "(injval r c v1) \<succ>r (injval r c v2)"
@@ -943,6 +948,7 @@
 apply(rule ValOrd.intros(2))
 apply (metis h)
 apply (metis list.distinct(1) mkeps_flat v4)
+(* last case *)
 apply(clarify)
 apply(erule Prf.cases)
 apply(simp_all)[5]
@@ -951,10 +957,6 @@
 apply(erule Prf.cases)
 apply(simp_all)[5]
 apply(clarify)
-apply(erule ValOrd.cases)
-apply(simp_all)[8]
-apply(clarify)
-apply(simp)
 prefer 2
 apply(clarify)
 apply(erule ValOrd.cases)
@@ -962,35 +964,56 @@
 apply(clarify)
 apply(rule ValOrd.intros(1))
 apply(metis)
+apply(rule ValOrd.intros(2))
+prefer 2
 thm mkeps_flat v4
 apply (metis list.distinct(1) mkeps_flat v4)
-defer
-apply(clarify)
-apply(erule ValOrd.cases)
-apply(simp_all)[8]
-apply(clarify)
-apply(rule ValOrd.intros(1))
-apply(metis)
-apply(drule_tac x="v1" in meta_spec)
-apply(rotate_tac 7)
-apply(drule_tac x="projval r1 c (mkeps r1)" in meta_spec)
-apply(drule meta_mp)
+oops
 
-defer
-apply(erule ValOrd.cases)
-apply(simp_all del: injval.simps)[8]
+lemma POSIX_der:
+  assumes "POSIX v (der c r)" "\<turnstile> v : der c r"
+  shows "POSIX (injval r c v) r"
+using assms
+unfolding POSIX_def
+apply(auto)
+thm v3
+apply (metis v3)
+thm v4
+apply(subst (asm) v4)
+apply(assumption)
+apply(drule_tac x="projval r c v'" in spec)
+apply(drule mp)
+apply(rule conjI)
+thm v3_proj
+apply(rule v3_proj)
 apply(simp)
-apply(clarify)
+apply(rule_tac x="flat v" in exI)
+apply(simp)
+thm t
+apply(rule_tac c="c" in  t)
 apply(simp)
-apply(erule Prf.cases)
-apply(simp_all)[5]
-apply(erule Prf.cases)
-apply(simp_all)[5]
-apply(clarify)
-apply(erule Prf.cases)
-apply(simp_all)[5]
-apply(clarify)
-apply(rule ValOrd.intros(2))
+thm v4_proj
+apply(subst v4_proj)
+apply(simp)
+apply(rule_tac x="flat v" in exI)
+apply(simp)
+apply(simp)
+thm Prf_inj_test
+apply(drule Prf_inj_test)
+apply(simp)
+apply (metis v3_proj)
+apply(rule_tac c="c" in  t)
+apply(simp)
+thm v4_proj
+apply(subst v4_proj)
+apply(simp)
+apply(rule_tac x="flat v" in exI)
+apply(simp)
+apply(simp)
+
+apply(simp add: Cons_eq_append_conv)
+apply(auto)[1]
+
 
 
 lemma POSIX_ex: "\<turnstile> v : r \<Longrightarrow> \<exists>v. POSIX v r"
@@ -1607,30 +1630,7 @@
 *}
 oops
 
-lemma POSIX_der:
-  assumes "POSIX v (der c r)" "\<turnstile> v : der c r"
-  shows "POSIX (injval r c v) r"
-using assms
-unfolding POSIX_def
-apply(auto)
-thm v4
-apply(subst (asm) v4)
-apply(assumption)
-apply(drule_tac x="projval r c v'" in spec)
-apply(auto)
-apply(rule v3_proj)
-apply(simp)
-apply(rule_tac x="flat v" in exI)
-apply(simp)
-apply(rule_tac c="c" in  t)
-apply(simp)
-apply(subst v4_proj)
-apply(simp)
-apply(rule_tac x="flat v" in exI)
-apply(simp)
-apply(simp)
-apply(simp add: Cons_eq_append_conv)
-apply(auto)[1]
+
 
 text {*
   Injection followed by projection is the identity.




