Journal/Paper.thy
changeset 139 289e362f7a76
parent 138 20c1d3a14143
child 140 389ef8b1959c
--- a/Journal/Paper.thy	Sun Oct 02 14:32:05 2016 +0100
+++ b/Journal/Paper.thy	Fri Oct 07 14:05:08 2016 +0100
@@ -1070,13 +1070,61 @@
   However, we are able to combine their two separate bounds into a
   single theorem improving their bound.
 
+%% HERE
+
+  Given our assumptions (on @{text th}), the first property we can
+  show is that any running thread, say @{text "th'"}, has the same
+  precedence of @{text th}:
+
+  \begin{lemma}\label{runningpreced}
+  @{thm [mode=IfThen] running_preced_inversion}
+  \end{lemma}
+
+  \begin{proof}
+  By definition the running thread has as precedence the maximum of
+  all ready threads, that is
+
+  \begin{center}
+  @{term "cp (t @ s) th' = Max (cp (t @ s) ` readys (t @ s))"}
+  \end{center}
+  \end{proof}
+
+  @{thm "th_blockedE_pretty"} -- thm-blockedE??
+  
+
   @{text "th_kept"} shows that th is a thread in s'-s
 
+
+
+
   \begin{proof}[of Theorem 1]
   If @{term "th \<in> running (s' @ s)"}, then there is nothing to show. So let us
-  assume otherwise. 
+  assume otherwise. By Lem.~\ref{thblockedE} we know there exists a thread
+  @{text "th'"} that is an acestor of @{text th} in the @{text "RAG"}
+  and @{text "th'"} is running, that is we know
+
+  \begin{center}
+  @{term "th' \<in> nancestors (tG (s' @ s)) th"} \quad and \quad
+  @{term "th' \<in> running (s' @ s)"}
+  \end{center}
+
+  \noindent We have that @{term "th \<noteq> th'"} since we assumed
+  @{text th} is not running.  By Lem.~\ref{thkept}, we know that
+  @{text "th'"} is also running in state @{text s} and by
+  Lem.~\ref{detached} that @{term "\<not>detached s th'"}.
+  By Lem.~\ref{runningpreced} we have
+
+  \begin{center}
+  @{term "cp (t @ s) th' = preced th s"}
+  \end{center}
+
+  \noindent
+  This concludes the proof of Theorem 1.
   \end{proof}
 
+
+
+
   In what follows we will describe properties of PIP that allow us to
   prove Theorem~\ref{mainthm} and, when instructive, briefly describe
   our argument. Recall we want to prove that in state @{term "s' @ s"}
@@ -1161,7 +1209,7 @@
   explain tRAG
   \bigskip
 
-
+  
   Suppose the thread @{term th} is \emph{not} running in state @{term
   "t @ s"}, meaning that it should be blocked by some other thread.
   It is first shown that there is a path in the RAG leading from node
@@ -1173,7 +1221,7 @@
   thread is exactly @{term "th'"}.
 
   \begin{lemma}
-  If @{thm (prem 1) th_blockedE_pretty} then there exists a thread @{text "th'"}
+  There exists a thread @{text "th'"}
   such that @{thm (no_quants) th_blockedE_pretty}.
   \end{lemma}