added definition of string prefix and string subtraction
authorurbanc
Sun, 20 Feb 2011 07:33:54 +0000
changeset 124 8233510cab6c
parent 123 23c0e6f2929d
child 125 62925473bf6b
added definition of string prefix and string subtraction
Paper/Paper.thy
--- a/Paper/Paper.thy	Sun Feb 20 06:02:58 2011 +0000
+++ b/Paper/Paper.thy	Sun Feb 20 07:33:54 2011 +0000
@@ -1018,8 +1018,28 @@
 
   \noindent
   using the information given by the appropriate tagging function. The complication 
-  is to find out what the possible splits of @{text "x @ z"} are to be in @{term "A ;; B"}.
+  is to find out what the possible splits of @{text "x @ z"} are to be in @{term "A ;; B"}
+  (this was easy in case of @{term "A \<union> B"}). For this we define the
+  notions of \emph{string prefixes} 
+
+  \begin{center}
+  @{text "x \<le> y \<equiv> \<exists>z. y = x @ z"}\hspace{10mm}
+  @{text "x < y \<equiv> x \<le> y \<and> x \<noteq> y"}
+  \end{center}
 
+  \noindent
+  and \emph{string subtraction}:
+
+  \begin{center}
+  \begin{tabular}{r@ {\hspace{1mm}}c@ {\hspace{1mm}}l}
+  @{text "[] - y"} & @{text "\<equiv>"} & @{text "[]"}\\
+  @{text "x - []"} & @{text "\<equiv>"} & @{text x}\\
+  @{text "cx - dy"} & @{text "\<equiv>"} & @{text "if c = d then x - y else cx"}\\
+  \end{tabular}
+  \end{center}
+
+  \noindent
+  where @{text c} and @{text d} are characters, and @{text x} and @{text y} are strings.
 
   \begin{proof}[@{const SEQ}-Case]