
diff -r 14a6adca16b8 -r 5678414a3898 handouts/ho03.tex
--- a/handouts/ho03.tex	Sun Oct 01 09:46:44 2023 +0100
+++ b/handouts/ho03.tex	Sun Oct 01 10:57:32 2023 +0100
@@ -538,7 +538,7 @@
 \noindent
 I let you think whether the NFAs can match exactly those strings the
 regular expressions can match. To do this translation in code we need
-a way to construct states ``programatically''...and as an additional
+a way to construct states ``programmatically''...and as an additional
 constraint Scala needs to recognise that these states are being distinct.
 For this I implemented in Figure~\ref{thompson1} a class
 \texttt{TState} that includes a counter and a companion object that
@@ -1302,7 +1302,7 @@
 $\epsilon$NFA, then translate it into a NFA by removing all
 $\epsilon$-transitions, and then via the subset construction obtain a
 DFA. In all steps we made sure the language, or which strings can be
-recognised, stays the same. Of cause we should have proved this in
+recognised, stays the same. Of couse we should have proved this in
 each step, but let us cut corners here.  After the last section, we
 can even minimise the DFA (maybe not in code). But again we made sure
 the same language is recognised. You might be wondering: Can we go
@@ -1449,7 +1449,7 @@
 \]
 
 \noindent You can somewhat crosscheck your solution by taking a string
-the regular expression can match and and see whether it can be matched
+the regular expression can match and see whether it can be matched
 by the DFA.  One string for example is $aaa$ and \emph{voila} this
 string is also matched by the automaton.
 




