| author | Christian Urban <christian.urban@kcl.ac.uk> | 
| Mon, 10 Oct 2022 15:07:31 +0100 | |
| changeset 887 | 67d6615fa6e3 | 
| parent 885 | 04a3742b5ec8 | 
| child 889 | c40a182af075 | 
| permissions | -rw-r--r-- | 
| 22 | 1 | \documentclass{article}
 | 
| 267 
a1544b804d1e
updated homeworks
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
258diff
changeset | 2 | \usepackage{../style}
 | 
| 22 | 3 | |
| 885 | 4 | \newcommand{\solution}[1]{%
 | 
| 5 |   \begin{quote}\sf%
 | |
| 6 | #1% | |
| 7 |   \end{quote}}
 | |
| 8 | \renewcommand{\solution}[1]{}
 | |
| 9 | ||
| 10 | ||
| 22 | 11 | \begin{document}
 | 
| 12 | ||
| 13 | \section*{Homework 2}
 | |
| 14 | ||
| 347 
22b5294daa2a
updated hws
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
294diff
changeset | 15 | \HEADER | 
| 
22b5294daa2a
updated hws
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
294diff
changeset | 16 | |
| 22 | 17 | \begin{enumerate}
 | 
| 499 | 18 | \item What is the difference between \emph{basic} regular expressions  
 | 
| 885 | 19 |   and \emph{extended} regular expressions?
 | 
| 20 | ||
| 21 |   \solution{Basic regular expressions are $\ZERO$, $\ONE$, $c$, $r_1 + r_2$,
 | |
| 22 | $r_1 \cdot r_2$, $r^*$. The extended ones are the bounded | |
| 23 | repetitions, not, etc.} | |
| 499 | 24 | |
| 401 
5d85dc9779b1
updated
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
355diff
changeset | 25 | \item What is the language recognised by the regular | 
| 885 | 26 | expressions $(\ZERO^*)^*$. | 
| 27 | ||
| 28 |   \solution{$L(\ZERO^*{}^*) = \{[]\}$,
 | |
| 29 | remember * always includes the empty string} | |
| 258 
1e4da6d2490c
updated programs
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
132diff
changeset | 30 | |
| 401 
5d85dc9779b1
updated
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
355diff
changeset | 31 | \item Review the first handout about sets of strings and read | 
| 
5d85dc9779b1
updated
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
355diff
changeset | 32 | the second handout. Assuming the alphabet is the set | 
| 
5d85dc9779b1
updated
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
355diff
changeset | 33 |       $\{a, b\}$, decide which of the following equations are
 | 
| 
5d85dc9779b1
updated
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
355diff
changeset | 34 | true in general for arbitrary languages $A$, $B$ and | 
| 
5d85dc9779b1
updated
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
355diff
changeset | 35 | $C$: | 
| 115 
86c1c049eb3e
updated
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
104diff
changeset | 36 | |
| 401 
5d85dc9779b1
updated
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
355diff
changeset | 37 |       \begin{eqnarray}
 | 
| 
5d85dc9779b1
updated
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
355diff
changeset | 38 | (A \cup B) @ C & =^? & A @ C \cup B @ C\nonumber\\ | 
| 
5d85dc9779b1
updated
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
355diff
changeset | 39 | A^* \cup B^* & =^? & (A \cup B)^*\nonumber\\ | 
| 
5d85dc9779b1
updated
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
355diff
changeset | 40 | A^* @ A^* & =^? & A^*\nonumber\\ | 
| 
5d85dc9779b1
updated
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
355diff
changeset | 41 | (A \cap B)@ C & =^? & (A@C) \cap (B@C)\nonumber | 
| 
5d85dc9779b1
updated
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
355diff
changeset | 42 |       \end{eqnarray}
 | 
| 104 
ffde837b1db1
updated
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
102diff
changeset | 43 | |
| 401 
5d85dc9779b1
updated
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
355diff
changeset | 44 | \noindent In case an equation is true, give an | 
| 
5d85dc9779b1
updated
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
355diff
changeset | 45 | explanation; otherwise give a counter-example. | 
| 104 
ffde837b1db1
updated
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
102diff
changeset | 46 | |
| 885 | 47 |       \solution{1 + 3 are equal; 2 + 4 are not. Interesting is 4 where
 | 
| 48 |       $A = \{[a]\}$, $B = \{[]\}$ and $C = \{[a], []\}$}
 | |
| 49 | ||
| 401 
5d85dc9779b1
updated
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
355diff
changeset | 50 | \item Given the regular expressions $r_1 = \ONE$ and $r_2 = | 
| 
5d85dc9779b1
updated
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
355diff
changeset | 51 | \ZERO$ and $r_3 = a$. How many strings can the regular | 
| 
5d85dc9779b1
updated
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
355diff
changeset | 52 | expressions $r_1^*$, $r_2^*$ and $r_3^*$ each match? | 
| 104 
ffde837b1db1
updated
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
102diff
changeset | 53 | |
| 885 | 54 |       \solution{$r_1$ and $r_2$ can match the empty string only, $r_3$ can
 | 
| 55 | match $[]$, $a$, $aa$, ....} | |
| 56 | ||
| 401 
5d85dc9779b1
updated
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
355diff
changeset | 57 | \item Give regular expressions for (a) decimal numbers and for | 
| 617 | 58 | (b) binary numbers. Hint: Observe that the empty string | 
| 401 
5d85dc9779b1
updated
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
355diff
changeset | 59 | is not a number. Also observe that leading 0s are | 
| 617 | 60 | normally not written---for example the JSON format for numbers | 
| 61 | explicitly forbids this. | |
| 22 | 62 | |
| 885 | 63 |       \solution{Just numbers without leading 0s: $0 + (1..9)\cdot(0..1)^*$;
 | 
| 64 | can be extended to decimal; similar for binary numbers | |
| 65 | } | |
| 66 | ||
| 258 
1e4da6d2490c
updated programs
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
132diff
changeset | 67 | \item Decide whether the following two regular expressions are | 
| 401 
5d85dc9779b1
updated
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
355diff
changeset | 68 | equivalent $(\ONE + a)^* \equiv^? a^*$ and $(a \cdot | 
| 
5d85dc9779b1
updated
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
355diff
changeset | 69 | b)^* \cdot a \equiv^? a \cdot (b \cdot a)^*$. | 
| 22 | 70 | |
| 885 | 71 |       \solution{Both are equivalent, but why the second? Essentially you have to show that each string in one set is in the other. For 2 this means you can do an induction proof that $(ab)^na$ is the same string as $a(ba)^n$, where the former is in the first set and the latter in the second.}
 | 
| 72 | ||
| 401 
5d85dc9779b1
updated
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
355diff
changeset | 73 | \item Given the regular expression $r = (a \cdot b + b)^*$. | 
| 
5d85dc9779b1
updated
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
355diff
changeset | 74 | Compute what the derivative of $r$ is with respect to | 
| 
5d85dc9779b1
updated
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
355diff
changeset | 75 | $a$, $b$ and $c$. Is $r$ nullable? | 
| 22 | 76 | |
| 881 | 77 | \item Give an argument for why the following holds: | 
| 885 | 78 |   if $r$ is nullable then $r^{\{n\}} \equiv r^{\{..n\}}$.
 | 
| 79 | ||
| 80 |   \solution{This was from last week; I just explicitly added it here.}
 | |
| 258 
1e4da6d2490c
updated programs
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
132diff
changeset | 81 | |
| 355 
a259eec25156
updated
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
347diff
changeset | 82 | \item Define what is meant by the derivative of a regular | 
| 
a259eec25156
updated
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
347diff
changeset | 83 | expressions with respect to a character. (Hint: The | 
| 
a259eec25156
updated
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
347diff
changeset | 84 | derivative is defined recursively.) | 
| 267 
a1544b804d1e
updated homeworks
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
258diff
changeset | 85 | |
| 885 | 86 |       \solution{the recursive function for $der$}
 | 
| 87 | ||
| 768 | 88 | \item Assume the set $Der$ is defined as | 
| 267 
a1544b804d1e
updated homeworks
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
258diff
changeset | 89 | |
| 
a1544b804d1e
updated homeworks
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
258diff
changeset | 90 |   \begin{center}
 | 
| 
a1544b804d1e
updated homeworks
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
258diff
changeset | 91 |     $Der\,c\,A \dn \{ s \;|\;  c\!::\!s \in A\}$
 | 
| 
a1544b804d1e
updated homeworks
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
258diff
changeset | 92 |   \end{center}
 | 
| 
a1544b804d1e
updated homeworks
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
258diff
changeset | 93 | |
| 401 
5d85dc9779b1
updated
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
355diff
changeset | 94 | What is the relation between $Der$ and the notion of | 
| 
5d85dc9779b1
updated
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
355diff
changeset | 95 | derivative of regular expressions? | 
| 267 
a1544b804d1e
updated homeworks
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
258diff
changeset | 96 | |
| 885 | 97 |       \solution{Main property is $L(der\,c\,r) = Der\,c\,(L(r))$.}
 | 
| 98 | ||
| 267 
a1544b804d1e
updated homeworks
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
258diff
changeset | 99 | \item Give a regular expression over the alphabet $\{a,b\}$
 | 
| 401 
5d85dc9779b1
updated
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
355diff
changeset | 100 | recognising all strings that do not contain any | 
| 
5d85dc9779b1
updated
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
355diff
changeset | 101 | substring $bb$ and end in $a$. | 
| 267 
a1544b804d1e
updated homeworks
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
258diff
changeset | 102 | |
| 885 | 103 | |
| 104 | ||
| 401 
5d85dc9779b1
updated
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
355diff
changeset | 105 | \item Do $(a + b)^* \cdot b^+$ and $(a^* \cdot b^+) + | 
| 885 | 106 | (b^*\cdot b^+)$ define the same language? | 
| 107 | ||
| 108 |    \solution{No, the first one can match for example abababababbbbb}
 | |
| 294 
c29853b672fb
updated hws
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
292diff
changeset | 109 | |
| 
c29853b672fb
updated hws
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
292diff
changeset | 110 | \item Define the function $zeroable$ by recursion over regular | 
| 401 
5d85dc9779b1
updated
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
355diff
changeset | 111 | expressions. This function should satisfy the property | 
| 294 
c29853b672fb
updated hws
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
292diff
changeset | 112 | |
| 
c29853b672fb
updated hws
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
292diff
changeset | 113 | \[ | 
| 401 
5d85dc9779b1
updated
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
355diff
changeset | 114 |   zeroable(r) \;\;\text{if and only if}\;\;L(r) = \{\}\qquad(*)
 | 
| 294 
c29853b672fb
updated hws
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
292diff
changeset | 115 | \] | 
| 
c29853b672fb
updated hws
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
292diff
changeset | 116 | |
| 401 
5d85dc9779b1
updated
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
355diff
changeset | 117 | The function $nullable$ for the not-regular expressions | 
| 
5d85dc9779b1
updated
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
355diff
changeset | 118 | can be defined by | 
| 294 
c29853b672fb
updated hws
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
292diff
changeset | 119 | |
| 
c29853b672fb
updated hws
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
292diff
changeset | 120 | \[ | 
| 
c29853b672fb
updated hws
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
292diff
changeset | 121 | nullable(\sim r) \dn \neg(nullable(r)) | 
| 
c29853b672fb
updated hws
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
292diff
changeset | 122 | \] | 
| 
c29853b672fb
updated hws
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
292diff
changeset | 123 | |
| 401 
5d85dc9779b1
updated
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
355diff
changeset | 124 | Unfortunately, a similar definition for $zeroable$ does | 
| 
5d85dc9779b1
updated
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
355diff
changeset | 125 | not satisfy the property in $(*)$: | 
| 294 
c29853b672fb
updated hws
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
292diff
changeset | 126 | |
| 
c29853b672fb
updated hws
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
292diff
changeset | 127 | \[ | 
| 
c29853b672fb
updated hws
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
292diff
changeset | 128 | zeroable(\sim r) \dn \neg(zeroable(r)) | 
| 
c29853b672fb
updated hws
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
292diff
changeset | 129 | \] | 
| 
c29853b672fb
updated hws
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
292diff
changeset | 130 | |
| 471 | 131 | Find a counter example? | 
| 294 
c29853b672fb
updated hws
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
292diff
changeset | 132 | |
| 401 
5d85dc9779b1
updated
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
355diff
changeset | 133 | \item Give a regular expressions that can recognise all | 
| 
5d85dc9779b1
updated
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
355diff
changeset | 134 |       strings from the language $\{a^n\;|\;\exists k.\; n = 3 k
 | 
| 885 | 135 | + 1 \}$. | 
| 136 | ||
| 137 |       \solution{$a(aaa)^*$}
 | |
| 404 
245d302791c7
updated
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
401diff
changeset | 138 | |
| 
245d302791c7
updated
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
401diff
changeset | 139 | \item Give a regular expression that can recognise an odd | 
| 
245d302791c7
updated
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
401diff
changeset | 140 | number of $a$s or an even number of $b$s. | 
| 444 
3056a4c071b0
updated
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
404diff
changeset | 141 | |
| 
3056a4c071b0
updated
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
404diff
changeset | 142 | \item \POSTSCRIPT | 
| 404 
245d302791c7
updated
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
401diff
changeset | 143 | \end{enumerate}
 | 
| 22 | 144 | |
| 145 | \end{document}
 | |
| 146 | ||
| 147 | %%% Local Variables: | |
| 148 | %%% mode: latex | |
| 149 | %%% TeX-master: t | |
| 150 | %%% End: |