prio/PrioG.thy
changeset 309 e44c4055d430
parent 298 f2e0d031a395
child 333 813e7257c7c3
--- a/prio/PrioG.thy	Mon Feb 13 04:22:52 2012 +0000
+++ b/prio/PrioG.thy	Mon Feb 13 05:41:53 2012 +0000
@@ -2,8 +2,15 @@
 imports PrioGDef 
 begin
 
-lemma runing_ready: "runing s \<subseteq> readys s"
-  by (auto simp only:runing_def readys_def)
+lemma runing_ready: 
+  shows "runing s \<subseteq> readys s"
+  unfolding runing_def readys_def
+  by auto 
+
+lemma readys_threads:
+  shows "readys s \<subseteq> threads s"
+  unfolding readys_def
+  by auto
 
 lemma wq_v_neq:
    "cs \<noteq> cs' \<Longrightarrow> wq (V thread cs#s) cs' = wq s cs'"
@@ -354,22 +361,20 @@
   and "waiting s th cs1"
   and "waiting s th cs2"
   shows "cs1 = cs2"
-proof -
-  from waiting_unique_pre and prems
-  show ?thesis
-    by (auto simp add: wq_def s_waiting_def)
-qed
+using waiting_unique_pre prems
+unfolding wq_def s_waiting_def
+by auto
 
+(* not used *)
 lemma held_unique:
-  assumes "vt s"
-  and "holding s th1 cs"
+  fixes s::"state"
+  assumes "holding s th1 cs"
   and "holding s th2 cs"
   shows "th1 = th2"
-proof -
-  from prems show ?thesis
-    unfolding s_holding_def
-    by auto
-qed
+using prems
+unfolding s_holding_def
+by auto
+
 
 lemma birthtime_lt: "th \<in> threads s \<Longrightarrow> birthtime th s < length s"
   apply (induct s, auto)
@@ -2468,42 +2473,8 @@
 lemma finite_threads:
   assumes vt: "vt s"
   shows "finite (threads s)"
-proof -
-  from vt show ?thesis
-  proof(induct)
-    case (vt_cons s e)
-    assume vt: "vt s"
-    and step: "step s e"
-    and ih: "finite (threads s)"
-    from step
-    show ?case
-    proof(cases)
-      case (thread_create thread prio)
-      assume eq_e: "e = Create thread prio"
-      with ih
-      show ?thesis by (unfold eq_e, auto)
-    next
-      case (thread_exit thread)
-      assume eq_e: "e = Exit thread"
-      with ih show ?thesis 
-        by (unfold eq_e, auto)
-    next
-      case (thread_P thread cs)
-      assume eq_e: "e = P thread cs"
-      with ih show ?thesis by (unfold eq_e, auto)
-    next
-      case (thread_V thread cs)
-      assume eq_e: "e = V thread cs"
-      with ih show ?thesis by (unfold eq_e, auto)
-    next 
-      case (thread_set thread prio)
-      from vt_cons thread_set show ?thesis by simp
-    qed
-  next
-    case vt_nil
-    show ?case by (auto)
-  qed
-qed
+using vt
+by (induct) (auto elim: step.cases)
 
 lemma Max_f_mono:
   assumes seq: "A \<subseteq> B"
@@ -2785,14 +2756,6 @@
   show ?thesis by (rule max_cp_readys_threads_pre[OF vt False])
 qed
 
-lemma readys_threads:
-  shows "readys s \<subseteq> threads s"
-proof
-  fix th
-  assume "th \<in> readys s"
-  thus "th \<in> threads s"
-    by (unfold readys_def, auto)
-qed
 
 lemma eq_holding: "holding (wq s) th cs = holding s th cs"
   apply (unfold s_holding_def cs_holding_def wq_def, simp)