slides/slides02.tex
changeset 764 6718ef6143b8
parent 763 4e628958c01a
child 765 b294cfbb5c01
equal deleted inserted replaced
763:4e628958c01a 764:6718ef6143b8
     2 \documentclass[dvipsnames,14pt,t,xelatex,aspectratio=169,xcolor={table}]{beamer}
     2 \documentclass[dvipsnames,14pt,t,xelatex,aspectratio=169,xcolor={table}]{beamer}
     3 \usepackage{../slides}
     3 \usepackage{../slides}
     4 \usepackage{../graphics}
     4 \usepackage{../graphics}
     5 \usepackage{../langs}
     5 \usepackage{../langs}
     6 \usepackage{../data}
     6 \usepackage{../data}
       
     7 
       
     8 \usepackage{tcolorbox}
       
     9 \newtcolorbox{mybox}{colback=red!5!white,colframe=red!75!black}
       
    10 \newtcolorbox{mybox2}[1]{colback=red!5!white,colframe=red!75!black,fonttitle=\bfseries,title=#1}
       
    11 \newtcolorbox{mybox3}[1]{colback=Cyan!5!white,colframe=Cyan!75!black,fonttitle=\bfseries,title=#1}
       
    12 
       
    13 
     7 
    14 
     8 \hfuzz=220pt 
    15 \hfuzz=220pt 
     9 
    16 
    10 \lstset{language=Scala,
    17 \lstset{language=Scala,
    11         style=mystyle,
    18         style=mystyle,
   242 \end{center}
   249 \end{center}
   243  
   250  
   244 \end{frame}
   251 \end{frame}
   245 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
   252 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
   246   
   253   
       
   254 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
   255 \begin{frame}[c]
       
   256 \frametitle{Simplification Example}
       
   257 
       
   258 %%Given \bl{$r \dn ((a \cdot b) + b)^*$}, you can simplify as follows
       
   259 
       
   260 \begin{center}
       
   261 \def\arraystretch{2}  
       
   262 \begin{tabular}{@{}lcl}
       
   263   \bl{$((\ONE \cdot b) + \ZERO) \cdot r$}
       
   264     & \bl{$\Rightarrow$} & \bl{$((\underline{\ONE \cdot b}) + \ZERO) \cdot r$}\\
       
   265     & \bl{$=$} & \bl{$(\underline{b + \ZERO}) \cdot r$}\\
       
   266     & \bl{$=$} & \bl{$b \cdot r$}\\
       
   267 \end{tabular}
       
   268 \end{center}
       
   269 
       
   270 \end{frame}
       
   271 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
   272 
       
   273 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
   274 \begin{frame}[c]
       
   275 \frametitle{Simplification Example}
       
   276 
       
   277 %%Given \bl{$r \dn ((a \cdot b) + b)^*$}, you can simplify as follows
       
   278 
       
   279 \begin{center}
       
   280 \def\arraystretch{2}  
       
   281 \begin{tabular}{@{}lcl}
       
   282   \bl{$((\ZERO \cdot b) + \ZERO) \cdot r$}
       
   283     & \bl{$\Rightarrow$} & \bl{$((\underline{\ZERO \cdot b}) + \ZERO) \cdot r$}\\
       
   284     & \bl{$=$} & \bl{$(\underline{\ZERO + \ZERO}) \cdot r$}\\
       
   285     & \bl{$=$} & \bl{$\ZERO \cdot r$}\\
       
   286     & \bl{$=$} & \bl{$\ZERO$}\\
       
   287 \end{tabular}
       
   288 \end{center}
       
   289 
       
   290 \end{frame}
       
   291 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   247 
   292 
   248 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   293 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   249 \begin{frame}[t]
   294 \begin{frame}[t]
   250 \frametitle{Semantic Derivative\\[5mm]}
   295 \frametitle{Semantic Derivative\\[5mm]}
   251 
   296 
   375 \end{frame}
   420 \end{frame}
   376 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
   421 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
   377 
   422 
   378 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   423 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   379 \begin{frame}[c]
   424 \begin{frame}[c]
       
   425 \frametitle{Derivative Example}
       
   426 
       
   427 Given \bl{$r \dn ((a \cdot b) + b)^*$} what is
       
   428 
       
   429 \begin{center}
       
   430 \def\arraystretch{1.5}  
       
   431 \begin{tabular}{@{}lcl}
       
   432   \bl{$\der\,a\,((a \cdot b) + b)^*$}
       
   433     & \bl{$\Rightarrow$}& \bl{$\der\,a\, \underline{((a \cdot b) + b)^*}$}\\
       
   434     & \bl{$=$} & \bl{$(der\,a\,(\underline{(a \cdot b) + b})) \cdot r$}\\
       
   435     & \bl{$=$} & \bl{$((der\,a\,(\underline{a \cdot b})) + (der\,a\,b)) \cdot r$}\\
       
   436     & \bl{$=$} & \bl{$(((der\,a\,\underline{a}) \cdot b) + (der\,a\,b)) \cdot r$}\\
       
   437     & \bl{$=$} & \bl{$((\ONE \cdot b) + (der\,a\,\underline{b})) \cdot r$}\\
       
   438     & \bl{$=$} & \bl{$((\ONE \cdot b) + \ZERO) \cdot r$}
       
   439 \end{tabular}
       
   440 \end{center}
       
   441 
       
   442 \end{frame}
       
   443 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
       
   444 
       
   445 
       
   446 
       
   447 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
   448 \begin{frame}[c]
   380 \frametitle{\mbox{The Brzozowski Algorithm}}
   449 \frametitle{\mbox{The Brzozowski Algorithm}}
   381 
   450 
   382 \begin{center}
   451 %\begin{center}
   383 \begin{tabular}{l} 
   452 %\begin{tabular}{l} 
   384 \bl{$\textit{matches}\,r\,s \dn \textit{nullable}(\ders\;s\;r)$}  
   453 %\bl{$\textit{matcher}\,r\,s \dn \textit{nullable}(\ders\;s\;r)$}  
   385 \end{tabular}
   454 %\end{tabular}
   386 \end{center}
   455 %\end{center}
   387 
   456 
       
   457 \begin{center}
       
   458 \begin{mybox3}{}
       
   459 \bl{$\textit{matcher}\,r\,s \dn \textit{nullable}(\ders\;s\;r)$}
       
   460 \end{mybox3}
       
   461 \end{center}
   388 
   462 
   389 \end{frame}
   463 \end{frame}
   390 %%%%%%%%%%%%%%%%%
   464 %%%%%%%%%%%%%%%%%
   391 
   465 
   392 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   466 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   428 \end{enumerate}
   502 \end{enumerate}
   429 
   503 
   430 The matching algorithm works similarly, just over regular expressions instead of sets.
   504 The matching algorithm works similarly, just over regular expressions instead of sets.
   431 \end{frame}
   505 \end{frame}
   432 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
   506 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
       
   507 
       
   508 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
   509 \begin{frame}[c]
       
   510 \frametitle{The Idea with Derivatives}
       
   511   
       
   512 Input: string \bl{$abc$} and regular expression \bl{$r$}\medskip 
       
   513 
       
   514 \begin{enumerate}
       
   515 \item \bl{$der\,a\,r$}
       
   516 \item \bl{$der\,b\,(der\,a\,r)$}
       
   517 \item \bl{$der\,c\,(der\,b\,(der\,a\,r))$}\bigskip\pause
       
   518 \item finally check whether the last regular expression can match the empty string
       
   519 \end{enumerate}
       
   520 
       
   521 \end{frame}
       
   522 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   433 
   523 
   434 
   524 
   435 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   525 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   436 \begin{frame}[c]
   526 \begin{frame}[c]
   437 \frametitle{Oops\ldots \boldmath\;$a^{?\{n\}} \cdot a^{\{n\}}$}
   527 \frametitle{Oops\ldots \boldmath\;$a^{?\{n\}} \cdot a^{\{n\}}$}
   774 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
   864 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
   775 
   865 
   776 
   866 
   777 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   867 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   778 \begin{frame}[c]
   868 \begin{frame}[c]
   779 \frametitle{Coursework}
   869 \frametitle{Coursework 1}
   780 
   870 
   781 \underline{Strand 1:}
   871 %%\underline{Strand 1:}
   782 
   872 
   783 \begin{itemize}
   873 \begin{itemize}
   784 \item Submission on Friday 11 October\\accepted until Monday 14 @ 18:00\medskip
   874 \item Submission on Friday 16 October @ 18:00\medskip
   785 \item source code needs to be submitted as well\medskip
   875 \item source code needs to be submitted as well\medskip
   786 \item you can re-use my Scala code from KEATS \\
   876 \item you can re-use my Scala code from KEATS \\
   787   or use any programming language you like\medskip
   877   and use any programming language you like\medskip
   788 \item \small https://nms.kcl.ac.uk/christian.urban/ProgInScala2ed.pdf\normalsize
   878 \item \small https://nms.kcl.ac.uk/christian.urban/ProgInScala2ed.pdf\normalsize
   789 \end{itemize}  
   879 \end{itemize}  
   790 
   880 
   791 \end{frame}
   881 \end{frame}
   792 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
   882 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
   793   
   883   
   794 
   884 
   795 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   885 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
   796 \begin{frame}[t]
   886 \begin{frame}[t]
   797 \frametitle{Proofs about Rexps}
   887 \frametitle{Proofs about Rexps}
   798 
   888 
   799 Remember their inductive definition:\\[5cm]
   889 Remember their inductive definition:\\[5cm]
   800 
   890 
   891 
   981 
   892 \begin{center}
   982 \begin{center}
   893 \begin{tabular}{rp{4cm}}
   983 \begin{tabular}{rp{4cm}}
   894 \bl{$\Leftrightarrow$} & \bl{$[] \in L(\ders\,s\,r)$}\medskip\\
   984 \bl{$\Leftrightarrow$} & \bl{$[] \in L(\ders\,s\,r)$}\medskip\\
   895 \bl{$\Leftrightarrow$} & \bl{$nullable(\ders\,s\,r)$}\medskip\\
   985 \bl{$\Leftrightarrow$} & \bl{$nullable(\ders\,s\,r)$}\medskip\\
   896 \bl{$\dn$} & \bl{$matches\,s\,r$}
   986 \bl{$\dn$} & \bl{$matcher\,s\,r$}
   897 \end{tabular}
   987 \end{tabular}
   898 \end{center}
   988 \end{center}
   899 
   989 
   900 \end{itemize}
   990 \end{itemize}
   901 
   991 
   949 
  1039 
   950 
  1040 
   951 We can finally prove
  1041 We can finally prove
   952 
  1042 
   953 \begin{center}
  1043 \begin{center}
   954 \bl{$matches\,s\,r$}  if and only if  \bl{$s \in L(r)$} 
  1044 \bl{$matcher\,s\,r$}  if and only if  \bl{$s \in L(r)$} 
   955 \end{center}
  1045 \end{center}
   956 
  1046 
   957 
  1047 
   958 \end{frame}
  1048 \end{frame}
   959 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
  1049 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
  1040 
  1130 
  1041 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  1131 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  1042 \begin{frame}[c]
  1132 \begin{frame}[c]
  1043 \frametitle{\begin{tabular}{c}\\[3cm]\huge\alert{Questions?}\end{tabular}}
  1133 \frametitle{\begin{tabular}{c}\\[3cm]\huge\alert{Questions?}\end{tabular}}
  1044 
  1134 
  1045 \bigskip
  1135 %\bigskip
  1046 homework (written exam 80\%)\\
  1136 %homework (written exam 80\%)\\
  1047 coursework (20\%; first one today)\\
  1137 %coursework (20\%; first one today)\\
  1048 submission Fridays @ 18:00 -- accepted until Mondays
  1138 %submission Fridays @ 18:00 -- accepted until Mondays
  1049 \mbox{}
  1139 \mbox{}
  1050 \end{frame}
  1140 \end{frame}
  1051 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  
  1141 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  
  1052   
  1142   
  1053 
  1143 
  1060 Last week I showed you a regular expression matcher 
  1150 Last week I showed you a regular expression matcher 
  1061 that works provably correct in all cases (we only
  1151 that works provably correct in all cases (we only
  1062 started with the proving part though)
  1152 started with the proving part though)
  1063 
  1153 
  1064 \begin{center}
  1154 \begin{center}
  1065 \bl{$matches\,s\,r$} \;\;if and only if \;\; \bl{$s \in L(r)$}
  1155 \bl{$matcher\,s\,r$} \;\;if and only if \;\; \bl{$s \in L(r)$}
  1066 \end{center}\bigskip\bigskip 
  1156 \end{center}\bigskip\bigskip 
  1067 
  1157 
  1068 \small
  1158 \small
  1069 \textcolor{gray}{\mbox{}\hfill{}by Janusz Brzozowski (1964)}
  1159 \textcolor{gray}{\mbox{}\hfill{}by Janusz Brzozowski (1964)}
  1070 
  1160 
  1071 \end{frame}
  1161 \end{frame}
  1072 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
  1162 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
  1073 
  1163 
  1074 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  1164 
  1075 \begin{frame}[c]
  1165 
  1076 \frametitle{The Derivative of a Rexp}
  1166 
  1077 
  1167 
  1078 \begin{center}
  1168  
  1079 \begin{tabular}{@ {}l@ {\hspace{2mm}}c@ {\hspace{2mm}}l@ {\hspace{-10mm}}l@ {}}
       
  1080   \bl{$der\, c\, (\ZERO)$}      & \bl{$\dn$} & \bl{$\ZERO$} & \\
       
  1081   \bl{$der\, c\, (\ONE)$}           & \bl{$\dn$} & \bl{$\ZERO$} & \\
       
  1082   \bl{$der\, c\, (d)$}                     & \bl{$\dn$} & \bl{if $c = d$ then $\ONE$ else $\ZERO$} & \\
       
  1083   \bl{$der\, c\, (r_1 + r_2)$}        & \bl{$\dn$} & \bl{$der\, c\, r_1 + der\, c\, r_2$} & \\
       
  1084   \bl{$der\, c\, (r_1 \cdot r_2)$}  & \bl{$\dn$}  & \bl{if $nullable (r_1)$}\\
       
  1085   & & \bl{then $(der\,c\,r_1) \cdot r_2 + der\, c\, r_2$}\\ 
       
  1086   & & \bl{else $(der\, c\, r_1) \cdot r_2$}\\
       
  1087   \bl{$der\, c\, (r^*)$}          & \bl{$\dn$} & \bl{$(der\,c\,r) \cdot (r^*)$} &\medskip\\
       
  1088 
       
  1089   \bl{$\textit{ders}\, []\, r$}     & \bl{$\dn$} & \bl{$r$} & \\
       
  1090   \bl{$\textit{ders}\, (c\!::\!s)\, r$} & \bl{$\dn$} & \bl{$\textit{ders}\,s\,(der\,c\,r)$} & \\
       
  1091   \end{tabular}
       
  1092 \end{center}
       
  1093 
       
  1094 \end{frame}
       
  1095 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
       
  1096 
       
  1097 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
  1098 \begin{frame}[c]
       
  1099 \frametitle{Example}
       
  1100 
       
  1101 Given \bl{$r \dn ((a \cdot b) + b)^*$} what is
       
  1102 
       
  1103 \begin{center}
       
  1104 \def\arraystretch{1.5}  
       
  1105 \begin{tabular}{@{}lcl}
       
  1106   \bl{$\der\,a\,((a \cdot b) + b)^*$}
       
  1107     & \bl{$\Rightarrow$}& \bl{$\der\,a\, \underline{((a \cdot b) + b)^*}$}\\
       
  1108     & \bl{$=$} & \bl{$(der\,a\,(\underline{(a \cdot b) + b})) \cdot r$}\\
       
  1109     & \bl{$=$} & \bl{$((der\,a\,(\underline{a \cdot b})) + (der\,a\,b)) \cdot r$}\\
       
  1110     & \bl{$=$} & \bl{$(((der\,a\,\underline{a}) \cdot b) + (der\,a\,b)) \cdot r$}\\
       
  1111     & \bl{$=$} & \bl{$((\ONE \cdot b) + (der\,a\,\underline{b})) \cdot r$}\\
       
  1112     & \bl{$=$} & \bl{$((\ONE \cdot b) + \ZERO) \cdot r$}\\
       
  1113 \end{tabular}
       
  1114 \end{center}
       
  1115 
       
  1116 \end{frame}
       
  1117 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
       
  1118 
       
  1119 
       
  1120 
       
  1121 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
  1122 \begin{frame}[c]
       
  1123 
       
  1124 Input: string \bl{$abc$} and regular expression \bl{$r$} 
       
  1125 
       
  1126 \begin{enumerate}
       
  1127 \item \bl{$der\,a\,r$}
       
  1128 \item \bl{$der\,b\,(der\,a\,r)$}
       
  1129 \item \bl{$der\,c\,(der\,b\,(der\,a\,r))$}\bigskip\pause
       
  1130 \item finally check whether the last regular expression can match the empty string
       
  1131 \end{enumerate}
       
  1132 
       
  1133 \end{frame}
       
  1134 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
  1135 
       
  1136 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
  1137 \begin{frame}[t]
       
  1138 \frametitle{Simplification}
       
  1139 
       
  1140 Given \bl{$r \dn ((a \cdot b) + b)^*$}, you can simplify as follows
       
  1141 
       
  1142 \begin{center}
       
  1143 \def\arraystretch{2}  
       
  1144 \begin{tabular}{@{}lcl}
       
  1145   \bl{$((\ONE \cdot b) + \ZERO) \cdot r$}
       
  1146     & \bl{$\Rightarrow$} & \bl{$((\underline{\ONE \cdot b}) + \ZERO) \cdot r$}\\
       
  1147     & \bl{$=$} & \bl{$(\underline{b + \ZERO}) \cdot r$}\\
       
  1148     & \bl{$=$} & \bl{$b \cdot r$}\\
       
  1149 \end{tabular}
       
  1150 \end{center}
       
  1151 
       
  1152 \end{frame}
       
  1153 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
       
  1154 
  1169 
  1155 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  1170 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  1156 \begin{frame}[c]
  1171 \begin{frame}[c]
  1157   \frametitle{Proofs about Rexp}
  1172   \frametitle{Proofs about Rexp}
  1158   
  1173   
  1228   
  1243   
  1229   \begin{center}
  1244   \begin{center}
  1230   \begin{tabular}{rp{4cm}}
  1245   \begin{tabular}{rp{4cm}}
  1231   \bl{$\Leftrightarrow$} & \bl{$[] \in L(\ders\,s\,r)$}\medskip\\
  1246   \bl{$\Leftrightarrow$} & \bl{$[] \in L(\ders\,s\,r)$}\medskip\\
  1232   \bl{$\Leftrightarrow$} & \bl{$nullable(\ders\,s\,r)$}\medskip\\
  1247   \bl{$\Leftrightarrow$} & \bl{$nullable(\ders\,s\,r)$}\medskip\\
  1233   \bl{$\dn$} & \bl{$matches\,s\,r$}
  1248   \bl{$\dn$} & \bl{$matcher\,s\,r$}
  1234   \end{tabular}
  1249   \end{tabular}
  1235   \end{center}
  1250   \end{center}
  1236   
  1251   
  1237   \end{itemize}
  1252   \end{itemize}
  1238   
  1253