Paper/Paper.thy
changeset 86 6457e668dee5
parent 83 f438f4dbaada
child 88 1436fc451bb9
equal deleted inserted replaced
85:a3e0056c228b 86:6457e668dee5
   236   which solves equations of the form @{term "X = A ;; X \<union> B"} provided
   236   which solves equations of the form @{term "X = A ;; X \<union> B"} provided
   237   @{term "[] \<notin> A"}. However we will need the following ``reverse'' 
   237   @{term "[] \<notin> A"}. However we will need the following ``reverse'' 
   238   version of Arden's lemma.
   238   version of Arden's lemma.
   239 
   239 
   240   \begin{lemma}[Reverse Arden's Lemma]\label{arden}\mbox{}\\
   240   \begin{lemma}[Reverse Arden's Lemma]\label{arden}\mbox{}\\
   241   If @{thm (prem 1) ardens_revised} then
   241   If @{thm (prem 1) arden} then
   242   @{thm (lhs) ardens_revised} has the unique solution
   242   @{thm (lhs) arden} has the unique solution
   243   @{thm (rhs) ardens_revised}.
   243   @{thm (rhs) arden}.
   244   \end{lemma}
   244   \end{lemma}
   245 
   245 
   246   \begin{proof}
   246   \begin{proof}
   247   For the right-to-left direction we assume @{thm (rhs) ardens_revised} and show
   247   For the right-to-left direction we assume @{thm (rhs) arden} and show
   248   that @{thm (lhs) ardens_revised} holds. From Prop.~\ref{langprops}@{text "(i)"} 
   248   that @{thm (lhs) arden} holds. From Prop.~\ref{langprops}@{text "(i)"} 
   249   we have @{term "A\<star> = {[]} \<union> A ;; A\<star>"},
   249   we have @{term "A\<star> = {[]} \<union> A ;; A\<star>"},
   250   which is equal to @{term "A\<star> = {[]} \<union> A\<star> ;; A"}. Adding @{text B} to both 
   250   which is equal to @{term "A\<star> = {[]} \<union> A\<star> ;; A"}. Adding @{text B} to both 
   251   sides gives @{term "B ;; A\<star> = B ;; ({[]} \<union> A\<star> ;; A)"}, whose right-hand side
   251   sides gives @{term "B ;; A\<star> = B ;; ({[]} \<union> A\<star> ;; A)"}, whose right-hand side
   252   is equal to @{term "(B ;; A\<star>) ;; A \<union> B"}. This completes this direction. 
   252   is equal to @{term "(B ;; A\<star>) ;; A \<union> B"}. This completes this direction. 
   253 
   253 
   254   For the other direction we assume @{thm (lhs) ardens_revised}. By a simple induction
   254   For the other direction we assume @{thm (lhs) arden}. By a simple induction
   255   on @{text n}, we can establish the property
   255   on @{text n}, we can establish the property
   256 
   256 
   257   \begin{center}
   257   \begin{center}
   258   @{text "(*)"}\hspace{5mm} @{thm (concl) ardens_helper}
   258   @{text "(*)"}\hspace{5mm} @{thm (concl) arden_helper}
   259   \end{center}
   259   \end{center}
   260   
   260   
   261   \noindent
   261   \noindent
   262   Using this property we can show that @{term "B ;; (A \<up> n) \<subseteq> X"} holds for
   262   Using this property we can show that @{term "B ;; (A \<up> n) \<subseteq> X"} holds for
   263   all @{text n}. From this we can infer @{term "B ;; A\<star> \<subseteq> X"} using the definition
   263   all @{text n}. From this we can infer @{term "B ;; A\<star> \<subseteq> X"} using the definition
   264   of @{text "\<star>"}.
   264   of @{text "\<star>"}.
   265   For the inclusion in the other direction we assume a string @{text s}
   265   For the inclusion in the other direction we assume a string @{text s}
   266   with length @{text k} is element in @{text X}. Since @{thm (prem 1) ardens_revised}
   266   with length @{text k} is element in @{text X}. Since @{thm (prem 1) arden}
   267   we know by Prop.~\ref{langprops}@{text "(ii)"} that 
   267   we know by Prop.~\ref{langprops}@{text "(ii)"} that 
   268   @{term "s \<notin> X ;; (A \<up> Suc k)"} since its length is only @{text k}
   268   @{term "s \<notin> X ;; (A \<up> Suc k)"} since its length is only @{text k}
   269   (the strings in @{term "X ;; (A \<up> Suc k)"} are all longer). 
   269   (the strings in @{term "X ;; (A \<up> Suc k)"} are all longer). 
   270   From @{text "(*)"} it follows then that
   270   From @{text "(*)"} it follows then that
   271   @{term s} must be element in @{term "(\<Union>m\<in>{0..k}. B ;; (A \<up> m))"}. This in turn
   271   @{term s} must be element in @{term "(\<Union>m\<in>{0..k}. B ;; (A \<up> m))"}. This in turn
   390   the method by Brzozowski \cite{Brzozowski64}, since for his purposes he needs to mark 
   390   the method by Brzozowski \cite{Brzozowski64}, since for his purposes he needs to mark 
   391   the ``terminal'' states.) Overloading the function @{text L} for the two kinds of terms in the 
   391   the ``terminal'' states.) Overloading the function @{text L} for the two kinds of terms in the 
   392   equational system as follows
   392   equational system as follows
   393   
   393   
   394   \begin{center}
   394   \begin{center}
   395   @{thm L_rhs_e.simps(2)[where X="Y" and r="r", THEN eq_reflection]}\hspace{10mm}
   395   @{thm L_rhs_item.simps(2)[where X="Y" and r="r", THEN eq_reflection]}\hspace{10mm}
   396   @{thm L_rhs_e.simps(1)[where r="r", THEN eq_reflection]}
   396   @{thm L_rhs_item.simps(1)[where r="r", THEN eq_reflection]}
   397   \end{center}
   397   \end{center}
   398 
   398 
   399   \noindent
   399   \noindent
   400   we can prove for @{text "X\<^isub>2\<^isub>.\<^isub>.\<^isub>n"} that the following equations
   400   we can prove for @{text "X\<^isub>2\<^isub>.\<^isub>.\<^isub>n"} that the following equations
   401   %
   401   %