# HG changeset patch # User Christian Urban # Date 1475413662 -3600 # Node ID c08290ee4f1f24197afa10556ecc49fa6b6cb331 # Parent 55be90b2a642d708f286f0edfc9a51864aee9e7e updated diff -r 55be90b2a642 -r c08290ee4f1f data.sty --- a/data.sty Sat Oct 01 23:34:37 2016 +0100 +++ b/data.sty Sun Oct 02 14:07:42 2016 +0100 @@ -96,6 +96,7 @@ 21 21.46013 \end{filecontents} + %% Scala V1, example (a*)* b \begin{filecontents}{re1a.data} 1 0.00013 diff -r 55be90b2a642 -r c08290ee4f1f handouts/ho02.pdf Binary file handouts/ho02.pdf has changed diff -r 55be90b2a642 -r c08290ee4f1f handouts/ho02.tex --- a/handouts/ho02.tex Sat Oct 01 23:34:37 2016 +0100 +++ b/handouts/ho02.tex Sun Oct 02 14:07:42 2016 +0100 @@ -64,7 +64,7 @@ axis lines=left, width=6.5cm, height=5cm] -\addplot[green,mark=square*,mark options={fill=white}] table {re2.data}; +\addplot[green,mark=square*,mark options={fill=white}] table {re2b.data}; \addplot[black,mark=square*,mark options={fill=white}] table {re3.data}; \end{axis} \end{tikzpicture} @@ -387,9 +387,9 @@ Input: $r_1$, $abc$\medskip\\ Step 1: & build derivative of $a$ and $r_1$ & $(r_2 = \textit{der}\,a\,r_1)$\smallskip\\ Step 2: & build derivative of $b$ and $r_2$ & $(r_3 = \textit{der}\,b\,r_2)$\smallskip\\ -Step 3: & build derivative of $c$ and $r_3$ & $(r_4 = \textit{der}\,b\,r_3)$\smallskip\\ -Step 4: & the string is exhausted; test & ($\textit{nullable}(r_4)$)\\ - & whether $r_4$ can recognise the\\ +Step 3: & build derivative of $c$ and $r_3$ & $(r_4 = \textit{der}\,c\,r_3)$\smallskip\\ +Step 4: & the string is exhausted: & $(\textit{nullable}(r_4))$\\ + & test whether $r_4$ can recognise the\\ & empty string\smallskip\\ Output: & result of this test $\Rightarrow \textit{true} \,\text{or}\, \textit{false}$\\ \end{tabular} diff -r 55be90b2a642 -r c08290ee4f1f progs/re1.scala --- a/progs/re1.scala Sat Oct 01 23:34:37 2016 +0100 +++ b/progs/re1.scala Sun Oct 02 14:07:42 2016 +0100 @@ -68,6 +68,10 @@ (end - start)/(i * 1.0e9) } +for (i <- 1 to 20) { + println(i + ": " + "%.5f".format(time_needed(2, matches(EVIL1(i), "a" * i)))) +} + for (i <- 1 to 20) { println(i + ": " + "%.5f".format(time_needed(2, matches(EVIL1(i), "a" * i)))) diff -r 55be90b2a642 -r c08290ee4f1f slides.sty --- a/slides.sty Sat Oct 01 23:34:37 2016 +0100 +++ b/slides.sty Sun Oct 02 14:07:42 2016 +0100 @@ -18,6 +18,10 @@ \newcommand{\ZERO}{\mbox{\bf 0}} \newcommand{\ONE}{\mbox{\bf 1}} +\newcommand{\Der}{\textit{Der}} +\newcommand{\der}{\textit{der}} +\newcommand{\Ders}{\textit{Ders}} +\newcommand{\ders}{\textit{ders}} \newcommand{\dn}{\stackrel{\mbox{\scriptsize def}}{=}}% \newcommand{\slidecaption}{} diff -r 55be90b2a642 -r c08290ee4f1f slides/compiled.data --- a/slides/compiled.data Sat Oct 01 23:34:37 2016 +0100 +++ b/slides/compiled.data Sun Oct 02 14:07:42 2016 +0100 @@ -1,6 +1,6 @@ %% LaTeX2e file `compiled.data' %% generated by the `filecontents' environment -%% from source `annonce' on 2016/02/23. +%% from source `slides02' on 2016/10/02. %% %1 0.234146 %5000 0.227539 diff -r 55be90b2a642 -r c08290ee4f1f slides/compiled2.data --- a/slides/compiled2.data Sat Oct 01 23:34:37 2016 +0100 +++ b/slides/compiled2.data Sun Oct 02 14:07:42 2016 +0100 @@ -1,6 +1,6 @@ %% LaTeX2e file `compiled2.data' %% generated by the `filecontents' environment -%% from source `annonce' on 2016/02/23. +%% from source `slides02' on 2016/10/02. %% 0 0 200 0.222058 diff -r 55be90b2a642 -r c08290ee4f1f slides/interpreted.data --- a/slides/interpreted.data Sat Oct 01 23:34:37 2016 +0100 +++ b/slides/interpreted.data Sun Oct 02 14:07:42 2016 +0100 @@ -1,6 +1,6 @@ %% LaTeX2e file `interpreted.data' %% generated by the `filecontents' environment -%% from source `annonce' on 2016/02/23. +%% from source `slides02' on 2016/10/02. %% 200 1.005863 400 7.8296765 diff -r 55be90b2a642 -r c08290ee4f1f slides/interpreted2.data --- a/slides/interpreted2.data Sat Oct 01 23:34:37 2016 +0100 +++ b/slides/interpreted2.data Sun Oct 02 14:07:42 2016 +0100 @@ -1,6 +1,6 @@ %% LaTeX2e file `interpreted2.data' %% generated by the `filecontents' environment -%% from source `annonce' on 2016/02/23. +%% from source `slides02' on 2016/10/02. %% 0 0 200 1.005863 diff -r 55be90b2a642 -r c08290ee4f1f slides/slides02.pdf Binary file slides/slides02.pdf has changed diff -r 55be90b2a642 -r c08290ee4f1f slides/slides02.tex --- a/slides/slides02.tex Sat Oct 01 23:34:37 2016 +0100 +++ b/slides/slides02.tex Sun Oct 02 14:07:42 2016 +0100 @@ -51,55 +51,58 @@ \footnotesize \begin{center} + {\normalsize Graphs: \bl{$a^{?\{n\}} \cdot a^{\{n\}}$} and strings \bl{$\underbrace{\,a\ldots a\,}_{n}$}}\\ \begin{tabular}{@{}cc@{}} \begin{tikzpicture} \begin{axis}[ - xlabel={\pcode{a}s}, + xlabel={$n$}, + x label style={at={(1.05,0.0)}}, ylabel={time in secs}, enlargelimits=false, xtick={0,5,...,30}, - xmax=30, + xmax=33, ymax=35, ytick={0,5,...,30}, scaled ticks=false, axis lines=left, - width=4.5cm, + width=5cm, height=4.5cm, legend entries={Python,Ruby}, legend pos=north west, legend cell align=left ] -\addplot[blue,mark=*, mark options={fill=white}] - table {re-python.data}; -\addplot[brown,mark=pentagon*, mark options={fill=white}] - table {re-ruby.data}; +\addplot[blue,mark=*, mark options={fill=white}] table {re-python.data}; +\addplot[brown,mark=pentagon*, mark options={fill=white}] table {re-ruby.data}; \end{axis} \end{tikzpicture} & \begin{tikzpicture} -\begin{axis}[ - xlabel={\pcode{a}s}, + \begin{axis}[ + xlabel={$n$}, + x label style={at={(1.1,0.05)}}, ylabel={time in secs}, enlargelimits=false, - xtick={0,3000,...,12000}, - xmax=12000, + xtick={0,4000,...,12000}, + xmax=13500, ymax=35, ytick={0,5,...,30}, scaled ticks=false, axis lines=left, - width=5.5cm, + width=5cm, height=4.5cm ] -\addplot[green,mark=square*,mark options={fill=white}] table {re2b.data}; +\addplot[green,mark=square*,mark options={fill=white}] table {re2.data}; \addplot[black,mark=square*,mark options={fill=white}] table {re3.data}; \end{axis} \end{tikzpicture} \end{tabular} \end{center} +\small +In the handouts is a similar graph with \bl{$(a^*)^* \cdot b$} for Java. \end{frame} -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -108,7 +111,7 @@ \begin{itemize} -\item A \alert{\bf language} is a set of strings, for example\medskip +\item A \alert{\bf Language} is a set of strings, for example\medskip \begin{center} \bl{$\{[], hello, \textit{foobar}, a, abc\}$} \end{center}\bigskip @@ -228,23 +231,23 @@ \bigskip \begin{center} -\bl{$Der\,c\,A \dn \{ s \;|\; c\!::\!s \in A\}$ } +\bl{$\Der\,c\,A \dn \{ s \;|\; c\!::\!s \in A\}$ } \end{center}\bigskip\bigskip\bigskip For \bl{$A = \{\textit{foo}, \textit{bar}, \textit{frak}\}$} then \begin{center} \bl{\begin{tabular}{l@{\hspace{2mm}}c@{\hspace{2mm}}l} -$Der\,f\,A$ & $=$ & $\{\textit{oo}, \textit{rak}\}$\\ -$Der\,b\,A$ & $=$ & $\{\textit{ar}\}$\\ -$Der\,a\,A$ & $=$ & $\{\}$\\\pause +$\Der\,f\,A$ & $=$ & $\{\textit{oo}, \textit{rak}\}$\\ +$\Der\,b\,A$ & $=$ & $\{\textit{ar}\}$\\ +$\Der\,a\,A$ & $=$ & $\{\}$\\\pause \end{tabular}} \end{center} \small We can extend this definition to strings \[ -\bl{Ders\,s\,A = \{s'\;|\;s\,@\,s' \in A\}} +\bl{\Ders\,s\,A = \{s'\;|\;s\,@\,s' \in A\}} \] \end{itemize} @@ -404,22 +407,24 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{frame}[c] -\frametitle{\bl{$(a^{?\{n\}}) \cdot a^{\{n\}}$}} +\frametitle{\bl{$(a^{?\{n\}}) \cdot a^{\{n\}}$} and \bl{$(a^*)^* \cdot b$}} -\begin{center} +\begin{center}\footnotesize +\begin{tabular}{@{}c@{\hspace{-2mm}}c@{}} \begin{tikzpicture} \begin{axis}[ - xlabel={\pcode{a}s}, + xlabel={$n$}, + x label style={at={(1.05,0.0)}}, ylabel={time in secs}, enlargelimits=false, xtick={0,5,...,30}, - xmax=30, + xmax=33, ymax=35, ytick={0,5,...,30}, scaled ticks=false, axis lines=left, - width=9cm, - height=7cm, + width=5.5cm, + height=4.5cm, legend entries={Python,Ruby}, legend pos=north west, legend cell align=left @@ -430,6 +435,28 @@ table {re-ruby.data}; \end{axis} \end{tikzpicture} +& +\begin{tikzpicture} +\begin{axis}[ + xlabel={$n$}, + x label style={at={(1.05,0.0)}}, + ylabel={time in secs}, + enlargelimits=false, + xtick={0,5,...,30}, + xmax=33, + ymax=35, + ytick={0,5,...,30}, + scaled ticks=false, + axis lines=left, + width=5.5cm, + height=4.5cm, + legend entries={Java}, + legend pos=north west, + legend cell align=left] +\addplot[cyan,mark=*, mark options={fill=white}] table {re-java.data}; +\end{axis} +\end{tikzpicture} +\end{tabular} \end{center} \end{frame} @@ -444,10 +471,10 @@ \item Evil regular expressions\medskip \begin{itemize} \item \bl{$(a^{?\{n\}}) \cdot a^{\{n\}}$} -\item \bl{$(a^+)^+$} +\item \bl{$(a^*)^*$} \item \bl{$([a$\,-\,$z]^+)^*$} -\item \bl{$(a + a \cdot a)^+$} -\item \bl{$(a + a?)^+$} +\item \bl{$(a + a \cdot a)^*$} +\item \bl{$(a + a?)^*$} \end{itemize} \end{itemize} @@ -484,7 +511,7 @@ expression that matches just \bl{$s$}?\bigskip\bigskip\bigskip\bigskip \small -\bl{$der\,c\,r$} gives the answer, Brzozowski 1964 +\bl{$\der\,c\,r$} gives the answer, Brzozowski 1964 \end{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -494,17 +521,17 @@ \begin{center} \begin{tabular}{@ {}l@ {\hspace{2mm}}c@ {\hspace{2mm}}l@ {\hspace{-10mm}}l@ {}} - \bl{$der\, c\, (\ZERO)$} & \bl{$\dn$} & \bl{$\ZERO$} & \\ - \bl{$der\, c\, (\ONE)$} & \bl{$\dn$} & \bl{$\ZERO$} & \\ - \bl{$der\, c\, (d)$} & \bl{$\dn$} & \bl{if $c = d$ then $\ONE$ else $\ZERO$} & \\ - \bl{$der\, c\, (r_1 + r_2)$} & \bl{$\dn$} & \bl{$der\, c\, r_1 + der\, c\, r_2$} & \\ - \bl{$der\, c\, (r_1 \cdot r_2)$} & \bl{$\dn$} & \bl{if $nullable (r_1)$}\\ - & & \bl{then $(der\,c\,r_1) \cdot r_2 + der\, c\, r_2$}\\ - & & \bl{else $(der\, c\, r_1) \cdot r_2$}\\ - \bl{$der\, c\, (r^*)$} & \bl{$\dn$} & \bl{$(der\,c\,r) \cdot (r^*)$} &\bigskip\\\pause + \bl{$\der\, c\, (\ZERO)$} & \bl{$\dn$} & \bl{$\ZERO$} & \\ + \bl{$\der\, c\, (\ONE)$} & \bl{$\dn$} & \bl{$\ZERO$} & \\ + \bl{$\der\, c\, (d)$} & \bl{$\dn$} & \bl{if $c = d$ then $\ONE$ else $\ZERO$} & \\ + \bl{$\der\, c\, (r_1 + r_2)$} & \bl{$\dn$} & \bl{$\der\, c\, r_1 + \der\, c\, r_2$} & \\ + \bl{$\der\, c\, (r_1 \cdot r_2)$} & \bl{$\dn$} & \bl{if $nullable (r_1)$}\\ + & & \bl{then $(\der\,c\,r_1) \cdot r_2 + \der\, c\, r_2$}\\ + & & \bl{else $(\der\, c\, r_1) \cdot r_2$}\\ + \bl{$\der\, c\, (r^*)$} & \bl{$\dn$} & \bl{$(\der\,c\,r) \cdot (r^*)$} &\bigskip\\\pause - \bl{$\textit{ders}\, []\, r$} & \bl{$\dn$} & \bl{$r$} & \\ - \bl{$\textit{ders}\, (c\!::\!s)\, r$} & \bl{$\dn$} & \bl{$\textit{ders}\,s\,(der\,c\,r)$} & \\ + \bl{$\ders\, []\, r$} & \bl{$\dn$} & \bl{$r$} & \\ + \bl{$\ders\, (c\!::\!s)\, r$} & \bl{$\dn$} & \bl{$\ders\,s\,(\der\,c\,r)$} & \\ \end{tabular} \end{center} @@ -519,9 +546,9 @@ \begin{center} \begin{tabular}{l} -\bl{$der\,a\,r =\;?$}\\ -\bl{$der\,b\,r =\;?$}\\ -\bl{$der\,c\,r =\;?$} +\bl{$\der\,a\,r =\;?$}\\ +\bl{$\der\,b\,r =\;?$}\\ +\bl{$\der\,c\,r =\;?$} \end{tabular} \end{center} @@ -533,8 +560,8 @@ \frametitle{The Algorithm} \begin{center} -\begin{tabular}{l} -\bl{$\textit{matches}\,r\,s \dn \textit{nullable}(\textit{ders}\,r\,s)$} +\begin{tabular}{l} +\bl{$\textit{matches}\,r\,s \dn \textit{nullable}(\ders\,r\,s)$} \end{tabular} \end{center} @@ -544,16 +571,16 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{frame}[t] -\frametitle{The Algorithm} +\frametitle{An Example} +Does \bl{$r_1$} match \bl{$abc$}? \begin{center} -\begin{tabular}{@{}rll@{}} -Input: & \bl{$r_1$}, \bl{$abc$}\medskip\\ -Step 1: & build derivative of \bl{$a$} and \bl{$r_1$} & \bl{$(r_2 = der\,a\,r_1)$}\smallskip\\ -Step 2: & build derivative of \bl{$b$} and \bl{$r_2$} & \bl{$(r_3 = der\,b\,r_2)$}\smallskip\\ -Step 3: & build derivative of \bl{$c$} and \bl{$r_3$} & \bl{$(r_4 = der\,b\,r_3)$}\smallskip\\ -Step 4: & the string is exhausted; test & (\bl{$nullable(r_4)$})\\ - & whether \bl{$r_4$} can recognise\\ +\begin{tabular}{@{}rl@{}l@{}} +Step 1: & build derivative of \bl{$a$} and \bl{$r_1$} & \bl{$(r_2 = \der\,a\,r_1)$}\smallskip\\ +Step 2: & build derivative of \bl{$b$} and \bl{$r_2$} & \bl{$(r_3 = \der\,b\,r_2)$}\smallskip\\ +Step 3: & build derivative of \bl{$c$} and \bl{$r_3$} & \bl{$(r_4 = \der\,c\,r_3)$}\smallskip\\ +Step 4: & the string is exhausted: & \bl{($nullable(r_4))$}\\ + & test whether \bl{$r_4$} can recognise\\ & the empty string\smallskip\\ Output: & result of the test\\ & $\Rightarrow \bl{\textit{true}} \,\text{or}\, @@ -573,11 +600,11 @@ expression \bl{$r_1$} then\medskip \begin{enumerate} -\item \bl{$Der\,a\,(L(r_1))$}\pause -\item \bl{$Der\,b\,(Der\,a\,(L(r_1)))$}\pause -\item \bl{$Der\,c\,(Der\,b\,(Der\,a\,(L(r_1))))$}\bigskip +\item \bl{$\Der\,a\,(L(r_1))$}\pause +\item \bl{$\Der\,b\,(\Der\,a\,(L(r_1)))$}\pause +\item \bl{$\Der\,c\,(\Der\,b\,(\Der\,a\,(L(r_1))))$}\bigskip \item finally we test whether the empty string is in this -set; same for \bl{$Ders\,abc\,(L(r_1))$}.\medskip +set; same for \bl{$\Ders\,abc\,(L(r_1))$}.\medskip \end{enumerate} The matching algorithm works similarly, just over regular expressions instead of sets. @@ -587,16 +614,17 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{frame}[c] -\frametitle{\bl{$(a^{?\{n\}}) \cdot a^{\{n\}}$}} +\frametitle{Oops\ldots\bl{$(a^{?\{n\}}) \cdot a^{\{n\}}$}} \begin{center} \begin{tikzpicture} \begin{axis}[ - xlabel={\pcode{a}s}, + xlabel={$n$}, + x label style={at={(1.05,0.0)}}, ylabel={time in secs}, enlargelimits=false, xtick={0,5,...,30}, - xmax=30, + xmax=31, ytick={0,5,...,30}, scaled ticks=false, axis lines=left, @@ -639,7 +667,7 @@ \end{center} This problem is aggravated with \bl{$a^?$} being represented -as \bl{$\ONE + a$}. +as \bl{$a + \ONE$}. \end{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -657,7 +685,8 @@ \end{tabular} \end{center} -What is their meaning? What are the cases for \bl{$nullable$} and \bl{$der$}? +What is their meaning?\\ +What are the cases for \bl{$nullable$} and \bl{$\der$}? \end{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -669,11 +698,12 @@ \begin{center} \begin{tikzpicture} \begin{axis}[ - xlabel={\pcode{a}s}, + xlabel={$n$}, + x label style={at={(1.05,0.0)}}, ylabel={time in secs}, enlargelimits=false, xtick={0,200,...,1000}, - xmax=1000, + xmax=1100, ytick={0,5,...,30}, scaled ticks=false, axis lines=left, @@ -707,9 +737,9 @@ \begin{center} \begin{tabular}{l} -\bl{$der\,a\,r = ((\ONE \cdot b) + \ZERO) \cdot r$}\\ -\bl{$der\,b\,r = ((\ZERO \cdot b) + \ONE)\cdot r$}\\ -\bl{$der\,c\,r = ((\ZERO \cdot b) + \ZERO)\cdot r$} +\bl{$\der\,a\,r = ((\ONE \cdot b) + \ZERO) \cdot r$}\\ +\bl{$\der\,b\,r = ((\ZERO \cdot b) + \ONE)\cdot r$}\\ +\bl{$\der\,c\,r = ((\ZERO \cdot b) + \ZERO)\cdot r$} \end{tabular} \end{center} @@ -719,7 +749,6 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{frame}[t] \frametitle{\bl{$(a^{?\{n\}}) \cdot a^{\{n\}}$}} @@ -727,17 +756,20 @@ \begin{center} \begin{tikzpicture} \begin{axis}[ - xlabel={\pcode{a}s}, + xlabel={$n$}, + x label style={at={(1.05,0.0)}}, ylabel={time in secs}, enlargelimits=false, xtick={0,3000,...,12000}, - xmax=12000, + xmax=14000, ymax=35, ytick={0,5,...,30}, scaled ticks=false, axis lines=left, width=9cm, - height=7cm + height=7cm, + legend entries={Scala V2,Scala V3}, + legend pos=north east ] \addplot[green,mark=square*,mark options={fill=white}] table {re2b.data}; \addplot[black,mark=square*,mark options={fill=white}] table {re3.data}; @@ -749,6 +781,40 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\begin{frame}[c] +\frametitle{\bl{$(a^*)^* \cdot b$}} + +\begin{center} +\begin{tikzpicture} + \begin{axis}[ + xlabel={$n$}, + x label style={at={(1.09,0.0)}}, + ylabel={time in secs}, + enlargelimits=false, + xmax=5000, + xtick={0,2000,...,6000}, + ytick={0,5,...,10}, + ymax=15, + scaled ticks=false, + axis lines=left, + width=9cm, + height=5cm, + legend entries={Scala V3}, + legend pos=north west, + legend cell align=left] +\addplot[green,mark=square*,mark options={fill=white}] table {re2a.data}; +%%where is 2nd graph +%%\addplot[black,mark=square*,mark options={fill=white}] table {re3.data}; +\end{axis} +\end{tikzpicture} +\end{center} + +\end{frame} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{frame}[t] \frametitle{What is good about this Alg.} @@ -857,17 +923,17 @@ \begin{center} \begin{tabular}{rp{4cm}} & \bl{$s \in L(r)$}\medskip\\ -\bl{$\Leftrightarrow$} & \bl{$[] \in Ders\,s\,(L(r))$}\pause +\bl{$\Leftrightarrow$} & \bl{$[] \in \Ders\,s\,(L(r))$}\pause \end{tabular} \end{center} -\item if we can show \bl{$Ders\, s\,(L(r)) = L(ders\,s\,r)$} we +\item if we can show \bl{$\Ders\, s\,(L(r)) = L(\ders\,s\,r)$} we have \begin{center} \begin{tabular}{rp{4cm}} -\bl{$\Leftrightarrow$} & \bl{$[] \in L(ders\,s\,r)$}\medskip\\ -\bl{$\Leftrightarrow$} & \bl{$nullable(ders\,s\,r)$}\medskip\\ +\bl{$\Leftrightarrow$} & \bl{$[] \in L(\ders\,s\,r)$}\medskip\\ +\bl{$\Leftrightarrow$} & \bl{$nullable(\ders\,s\,r)$}\medskip\\ \bl{$\dn$} & \bl{$matches\,s\,r$} \end{tabular} \end{center} @@ -884,13 +950,13 @@ Let \bl{$Der\,c\,A$} be the set defined as \begin{center} -\bl{$Der\,c\,A \dn \{ s \;|\; c\!::\!s \in A\}$ } +\bl{$\Der\,c\,A \dn \{ s \;|\; c\!::\!s \in A\}$ } \end{center} We can prove \begin{center} -\bl{$L(der\,c\,r) = Der\,c\,(L(r))$} +\bl{$L(\der\,c\,r) = \Der\,c\,(L(r))$} \end{center} by induction on \bl{$r$}. @@ -919,7 +985,7 @@ We can then prove \begin{center} -\bl{$Ders\,s\,(L(r)) = L(ders\,s\,r)$} +\bl{$\Ders\,s\,(L(r)) = L(\ders\,s\,r)$} \end{center} diff -r 55be90b2a642 -r c08290ee4f1f style.sty --- a/style.sty Sat Oct 01 23:34:37 2016 +0100 +++ b/style.sty Sun Oct 02 14:07:42 2016 +0100 @@ -13,7 +13,10 @@ \newcommand{\ZERO}{\mbox{\bf 0}} \newcommand{\ONE}{\mbox{\bf 1}} \newcommand{\Left}{\textit{Left}} - +\newcommand{\Der}{\textit{Der}} +\newcommand{\der}{\textit{der}} +\newcommand{\Ders}{\textit{Ders}} +\newcommand{\ders}{\textit{ders}} %%% for trees %% http://anorien.csc.warwick.ac.uk/mirrors/CTAN/graphics/pgf/contrib/forest/forest.pdf