Journal/Paper.thy
changeset 64 b4bcd1edbb6d
parent 46 331137d43625
child 70 92ca2410b3d9
--- a/Journal/Paper.thy	Wed Jan 06 20:46:14 2016 +0800
+++ b/Journal/Paper.thy	Wed Jan 06 16:34:26 2016 +0000
@@ -1,6 +1,8 @@
 (*<*)
 theory Paper
-imports "../CpsG" "../ExtGG" "~~/src/HOL/Library/LaTeXsugar"
+imports "../Implementation" 
+        "../Correctness" 
+        "~~/src/HOL/Library/LaTeXsugar"
 begin
 
 
@@ -19,7 +21,7 @@
   Cs ("C") and
   readys ("ready") and
   preced ("prec") and
-  preceds ("precs") and
+(*  preceds ("precs") and*)
   cpreced ("cprec") and
   cp ("cprec") and
   holdents ("resources") and
@@ -361,7 +363,7 @@
   We also use the abbreviation 
 
   \begin{isabelle}\ \ \ \ \ %%%
-  @{abbrev "preceds s ths"}
+  ???preceds s ths
   \end{isabelle}
 
   \noindent
@@ -898,6 +900,53 @@
   However, we are able to combine their two separate bounds into a
   single theorem improving their bound.
 
+  \subsection*{\bf OUTLINE}
+
+  Since @{term "th"} is the most urgent thread, if it is somehow
+  blocked, people want to know why and wether this blocking is
+  reasonable.
+
+  @{thm [source] th_blockedE} @{thm th_blockedE}
+
+  if @{term "th"} is blocked, then there is a path leading from 
+  @{term "th"} to @{term "th'"}, which means:
+  there is a chain of demand leading from @{term th} to @{term th'}.
+
+  %%% in other words
+  %%% th -> cs1 -> th1 -> cs2 -> th2 -> ... -> csn -> thn -> cs -> th'. 
+  %%% 
+  %%% We says that th is blocked by "th'".
+
+  THEN
+
+  @{thm [source] vat_t.th_chain_to_ready} @{thm vat_t.th_chain_to_ready}
+
+  It is basic propery with non-trival proof. 
+
+  THEN
+
+  @{thm [source] max_preced} @{thm max_preced}
+
+  which says @{term "th"} holds the max precedence.
+
+  THEN
+ 
+  @{thm [source] th_cp_max th_cp_preced th_kept}
+  @{thm th_cp_max th_cp_preced th_kept}
+
+  THENTHEN
+
+  @{thm [source] runing_inversion_4} @{thm runing_inversion_4}
+
+  which explains what the @{term "th'"} looks like. Now, we have found the 
+  @{term "th'"} which blocks @{term th}, we need to know more about it.
+  To see what kind of thread can block @{term th}.
+
+  From these two lemmas we can see the correctness of PIP, which is
+  that: the blockage of th is reasonable and under control.
+
+  \subsection*{END OUTLINE}
+
   In what follows we will describe properties of PIP that allow us to prove 
   Theorem~\ref{mainthm} and, when instructive, briefly describe our argument. 
   It is relatively easy to see that:
@@ -915,9 +964,10 @@
 
   \begin{isabelle}\ \ \ \ \ %%%
   \begin{tabular}{@ {}l}
-  @{thm[mode=IfThen] waiting_unique[of _ _ "cs\<^sub>1" "cs\<^sub>2"]}\\
-  @{thm[mode=IfThen] held_unique[of _ "th\<^sub>1" _ "th\<^sub>2"]}\\
-  @{thm[mode=IfThen] runing_unique[of _ "th\<^sub>1" "th\<^sub>2"]}
+  HERE??
+  %@ {thm[mode=IfThen] waiting_unique[of _ _ "cs\<^sub>1" "cs\<^sub>2"]}\\
+  %@ {thm[mode=IfThen] held_unique[of _ "th\<^sub>1" _ "th\<^sub>2"]}\\
+  %@ {thm[mode=IfThen] runing_unique[of _ "th\<^sub>1" "th\<^sub>2"]}
   \end{tabular}
   \end{isabelle}
 
@@ -931,13 +981,13 @@
 
   \begin{isabelle}\ \ \ \ \ %%%
   \begin{tabular}{@ {}l}
-  @{text If}~@{thm (prem 1) acyclic_RAG}~@{text "then"}:\\
+  HERE?? %@{text If}~@ {thm (prem 1) acyclic_RAG}~@{text "then"}:\\
   \hspace{5mm}@{thm (concl) acyclic_RAG},
   @{thm (concl) finite_RAG} and
   @{thm (concl) wf_dep_converse},\\
-  \hspace{5mm}@{text "if"}~@{thm (prem 2) dm_RAG_threads}~@{text "then"}~@{thm (concl) dm_RAG_threads}
+  %\hspace{5mm}@{text "if"}~@ {thm (prem 2) dm_RAG_threads}~@{text "then"}~@{thm (concl) dm_RAG_threads}
   and\\
-  \hspace{5mm}@{text "if"}~@{thm (prem 2) range_in}~@{text "then"}~@{thm (concl) range_in}.
+  %\hspace{5mm}@{text "if"}~@ {thm (prem 2) range_in}~@{text "then"}~@{thm (concl) range_in}.
   \end{tabular}
   \end{isabelle}
 
@@ -1136,7 +1186,7 @@
 
   \begin{isabelle}\ \ \ \ \ %%%
   \begin{tabular}{@ {}l}
-  @{thm children_def2}
+  HERE?? %%@ {thm children_def2}
   \end{tabular}
   \end{isabelle}
 
@@ -1146,9 +1196,9 @@
   a resource). We can prove the following lemma.
 
   \begin{lemma}\label{childrenlem}
-  @{text "If"} @{thm (prem 1) cp_rec} @{text "then"}
+  HERE %@{text "If"} @ {thm (prem 1) cp_rec} @{text "then"}
   \begin{center}
-  @{thm (concl) cp_rec}.
+  %@ {thm (concl) cp_rec}.
   \end{center}
   \end{lemma}
   
@@ -1184,7 +1234,7 @@
 
   \begin{isabelle}\ \ \ \ \ %%%
   \begin{tabular}{@ {}l}
-  @{thm eq_dep},\\
+  HERE ?? %@ {thm eq_dep},\\
   @{thm eq_cp_th}, and\\
   @{thm[mode=IfThen] eq_cp}
   \end{tabular}
@@ -1208,7 +1258,7 @@
 
   \begin{isabelle}\ \ \ \ \ %%%
   \begin{tabular}{@ {}l}
-  @{thm eq_dep}, and\\
+  HERE %@ {thm eq_dep}, and\\
   @{thm[mode=IfThen] eq_cp}
   \end{tabular}
   \end{isabelle}
@@ -1257,9 +1307,9 @@
   %
   %\begin{isabelle}\ \ \ \ \ %%%
   %\begin{tabular}{@ {}l}
-  %@{thm[mode=IfThen] eq_up_self}\\
-  %@{text "If"} @{thm (prem 1) eq_up}, @{thm (prem 2) eq_up} and @{thm (prem 3) eq_up}\\
-  %@{text "then"} @{thm (concl) eq_up}.
+  %@ {thm[mode=IfThen] eq_up_self}\\
+  %@{text "If"} @ {thm (prem 1) eq_up}, @ {thm (prem 2) eq_up} and @ {thm (prem 3) eq_up}\\
+  %@{text "then"} @ {thm (concl) eq_up}.
   %\end{tabular}
   %\end{isabelle}
   %
@@ -1330,7 +1380,7 @@
   \begin{isabelle}\ \ \ \ \ %%%
   \begin{tabular}{@ {}l}
   @{thm RAG_s}\\
-  @{thm eq_cp}
+  HERE %@ {thm eq_cp}
   \end{tabular}
   \end{isabelle}
 
@@ -1343,7 +1393,7 @@
   \begin{isabelle}\ \ \ \ \ %%%
   \begin{tabular}{@ {}l}
   @{thm RAG_s}\\
-  @{thm[mode=IfThen] eq_cp}
+  HERE %@ {thm[mode=IfThen] eq_cp}
   \end{tabular}
   \end{isabelle}
 
@@ -1362,8 +1412,9 @@
   \begin{isabelle}\ \ \ \ \ %%%
   \begin{tabular}{@ {}l}
   %%@ {t hm[mode=IfThen] eq_up_self}\\
-  @{text "If"} @{thm (prem 1) eq_up}, @{thm (prem 2) eq_up} and @{thm (prem 3) eq_up}\\
-  @{text "then"} @{thm (concl) eq_up}.
+  HERE
+  %@{text "If"} @ {thm (prem 1) eq_up}, @ {thm (prem 2) eq_up} and @ {thm (prem 3) eq_up}\\
+  %@{text "then"} @ {thm (concl) eq_up}.
   \end{tabular}
   \end{isabelle}