| author | Christian Urban <christian.urban@kcl.ac.uk> | 
| Fri, 11 Oct 2024 19:13:00 +0100 | |
| changeset 966 | d82c91f85391 | 
| parent 940 | 1c1fbf45a03c | 
| permissions | -rw-r--r-- | 
| 22 | 1  | 
\documentclass{article}
 | 
| 
267
 
a1544b804d1e
updated homeworks
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents: 
258 
diff
changeset
 | 
2  | 
\usepackage{../style}
 | 
| 889 | 3  | 
\usepackage{../graphicss}
 | 
4  | 
||
| 22 | 5  | 
\begin{document}
 | 
6  | 
||
7  | 
\section*{Homework 2}
 | 
|
8  | 
||
| 916 | 9  | 
%\HEADER  | 
| 
347
 
22b5294daa2a
updated hws
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents: 
294 
diff
changeset
 | 
10  | 
|
| 22 | 11  | 
\begin{enumerate}
 | 
| 499 | 12  | 
\item What is the difference between \emph{basic} regular expressions  
 | 
| 885 | 13  | 
  and \emph{extended} regular expressions?
 | 
14  | 
||
15  | 
  \solution{Basic regular expressions are $\ZERO$, $\ONE$, $c$, $r_1 + r_2$,
 | 
|
16  | 
$r_1 \cdot r_2$, $r^*$. The extended ones are the bounded  | 
|
| 966 | 17  | 
repetitions, not, etc.  | 
18  | 
||
19  | 
||
20  | 
Maybe explain here how the extended regular expressions  | 
|
21  | 
are defined in terms of the basic ones.  | 
|
22  | 
}  | 
|
| 499 | 23  | 
|
| 
401
 
5d85dc9779b1
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents: 
355 
diff
changeset
 | 
24  | 
\item What is the language recognised by the regular  | 
| 885 | 25  | 
expressions $(\ZERO^*)^*$.  | 
26  | 
||
27  | 
  \solution{$L(\ZERO^*{}^*) = \{[]\}$,
 | 
|
28  | 
remember * always includes the empty string}  | 
|
| 
258
 
1e4da6d2490c
updated programs
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents: 
132 
diff
changeset
 | 
29  | 
|
| 
401
 
5d85dc9779b1
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents: 
355 
diff
changeset
 | 
30  | 
\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: 
355 
diff
changeset
 | 
31  | 
the second handout. Assuming the alphabet is the set  | 
| 
 
5d85dc9779b1
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents: 
355 
diff
changeset
 | 
32  | 
      $\{a, b\}$, decide which of the following equations are
 | 
| 
 
5d85dc9779b1
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents: 
355 
diff
changeset
 | 
33  | 
true in general for arbitrary languages $A$, $B$ and  | 
| 
 
5d85dc9779b1
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents: 
355 
diff
changeset
 | 
34  | 
$C$:  | 
| 
115
 
86c1c049eb3e
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents: 
104 
diff
changeset
 | 
35  | 
|
| 
401
 
5d85dc9779b1
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents: 
355 
diff
changeset
 | 
36  | 
      \begin{eqnarray}
 | 
| 
 
5d85dc9779b1
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents: 
355 
diff
changeset
 | 
37  | 
(A \cup B) @ C & =^? & A @ C \cup B @ C\nonumber\\  | 
| 
 
5d85dc9779b1
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents: 
355 
diff
changeset
 | 
38  | 
A^* \cup B^* & =^? & (A \cup B)^*\nonumber\\  | 
| 
 
5d85dc9779b1
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents: 
355 
diff
changeset
 | 
39  | 
A^* @ A^* & =^? & A^*\nonumber\\  | 
| 
 
5d85dc9779b1
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents: 
355 
diff
changeset
 | 
40  | 
(A \cap B)@ C & =^? & (A@C) \cap (B@C)\nonumber  | 
| 
 
5d85dc9779b1
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents: 
355 
diff
changeset
 | 
41  | 
      \end{eqnarray}
 | 
| 
104
 
ffde837b1db1
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents: 
102 
diff
changeset
 | 
42  | 
|
| 
401
 
5d85dc9779b1
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents: 
355 
diff
changeset
 | 
43  | 
\noindent In case an equation is true, give an  | 
| 
 
5d85dc9779b1
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents: 
355 
diff
changeset
 | 
44  | 
explanation; otherwise give a counter-example.  | 
| 
104
 
ffde837b1db1
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents: 
102 
diff
changeset
 | 
45  | 
|
| 885 | 46  | 
      \solution{1 + 3 are equal; 2 + 4 are not. Interesting is 4 where
 | 
| 927 | 47  | 
        $A = \{[a]\}$, $B = \{[]\}$ and $C = \{[a], []\}$ is an
 | 
48  | 
counter-example.\medskip  | 
|
| 889 | 49  | 
|
| 927 | 50  | 
For equations like 3 it is always a good idea to prove the  | 
| 889 | 51  | 
two inclusions  | 
52  | 
||
53  | 
\[  | 
|
54  | 
A^* \subseteq A^* @ A^* \qquad  | 
|
55  | 
A^* @ A^* \subseteq A^*  | 
|
56  | 
\]  | 
|
57  | 
||
58  | 
This means for every string $s$ we have to show  | 
|
59  | 
||
60  | 
\[  | 
|
61  | 
          s \in A^*    \;\textit{implies}\;  s \in A^* @ A^* \qquad
 | 
|
62  | 
          s \in A^* @ A^* \;\textit{implies}\;  s \in A^*
 | 
|
63  | 
\]  | 
|
64  | 
||
65  | 
The first one is easy because $[] \in A^*$ and therefore  | 
|
66  | 
$s @ [] \in A^* @ A^*$.  | 
|
67  | 
||
68  | 
The second one says that $s$ must be of the form $s = s_1 @ s_2$ with  | 
|
69  | 
$s_1 \in A^*$ and $s_2 \in A^*$. We have to show that  | 
|
70  | 
$s_1 @ s_2 \in A^*$.  | 
|
71  | 
||
72  | 
If $s_1 \in A^*$ then there exists an $n$ such that $s_1 \in A^n$, and  | 
|
73  | 
if $s_2 \in A^*$ then there exists an $m$ such that $s_2 \in A^m$.\bigskip  | 
|
74  | 
||
75  | 
||
| 927 | 76  | 
Aside: We are going to show the following power law  | 
| 889 | 77  | 
|
78  | 
\[  | 
|
79  | 
        A^n \,@\, A^m = A^{n+m}  
 | 
|
80  | 
\]  | 
|
81  | 
||
82  | 
We prove that by induction on $n$.  | 
|
83  | 
||
84  | 
        Case $n = 0$: $A^0 \,@\, A^m = A^{0+m}$ holds because $A^0 = \{[]\}$
 | 
|
85  | 
        and $\{[]\} \,@\, A^m = A ^ m$ and $0 + m = m$.\medskip
 | 
|
86  | 
||
87  | 
Case $n + 1$: The induction hypothesis is  | 
|
88  | 
||
89  | 
        \[ A^n \,@\, A^m = A^{n+m}
 | 
|
90  | 
\]  | 
|
91  | 
||
92  | 
We need to prove  | 
|
93  | 
||
94  | 
\[  | 
|
95  | 
        A^{n+1} \,@\, A^m = A^{(n+1)+m}  
 | 
|
96  | 
\]  | 
|
97  | 
||
98  | 
The left-hand side is $(A \,@\, A^n) \,@\, A^m$ by the definition of  | 
|
99  | 
the power operation. We can rearrange that  | 
|
100  | 
        to $A \,@\, (A^n \,@\, A^m)$.   \footnote{Because for all languages $A$, $B$, $C$ we have $(A @ B) @ C = A @ (B @ C)$.}
 | 
|
101  | 
||
102  | 
        By the induction hypothesis we know that $A^n \,@\, A^m = A^{n+m}$.
 | 
|
103  | 
||
104  | 
        So we have $A \,@\, (A^{n+m})$. But this is $A^{(n+m)+1}$ again if we
 | 
|
105  | 
apply the definition of the power operator. If we  | 
|
106  | 
        rearrange that we get $A^{(n+1)+m}$ and are done with
 | 
|
107  | 
what we need to prove for the power law.\bigskip  | 
|
108  | 
||
109  | 
Picking up where we left, we know that $s_1 \in A^n$ and $s_2 \in A^m$. This now implies that $s_1 @ s_2\in A^n @ A^m$. By the power law this means  | 
|
110  | 
        $s_1 @ s_2\in A^{n+m}$. But this also means $s_1 @ s_2\in A^*$.
 | 
|
111  | 
}  | 
|
| 885 | 112  | 
|
| 
401
 
5d85dc9779b1
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents: 
355 
diff
changeset
 | 
113  | 
\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: 
355 
diff
changeset
 | 
114  | 
\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: 
355 
diff
changeset
 | 
115  | 
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: 
102 
diff
changeset
 | 
116  | 
|
| 885 | 117  | 
      \solution{$r_1$ and $r_2$ can match the empty string only, $r_3$ can
 | 
118  | 
match $[]$, $a$, $aa$, ....}  | 
|
119  | 
||
| 
401
 
5d85dc9779b1
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents: 
355 
diff
changeset
 | 
120  | 
\item Give regular expressions for (a) decimal numbers and for  | 
| 617 | 121  | 
(b) binary numbers. Hint: Observe that the empty string  | 
| 
401
 
5d85dc9779b1
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents: 
355 
diff
changeset
 | 
122  | 
is not a number. Also observe that leading 0s are  | 
| 617 | 123  | 
normally not written---for example the JSON format for numbers  | 
| 891 | 124  | 
explicitly forbids this. So 007 is not a number according to JSON.  | 
| 22 | 125  | 
|
| 940 | 126  | 
      \solution{Just numbers without leading 0s: $0 + (1..9)\cdot(0..9)^*$;
 | 
| 885 | 127  | 
can be extended to decimal; similar for binary numbers  | 
128  | 
}  | 
|
129  | 
||
| 
258
 
1e4da6d2490c
updated programs
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents: 
132 
diff
changeset
 | 
130  | 
\item Decide whether the following two regular expressions are  | 
| 
401
 
5d85dc9779b1
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents: 
355 
diff
changeset
 | 
131  | 
equivalent $(\ONE + a)^* \equiv^? a^*$ and $(a \cdot  | 
| 
 
5d85dc9779b1
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents: 
355 
diff
changeset
 | 
132  | 
b)^* \cdot a \equiv^? a \cdot (b \cdot a)^*$.  | 
| 22 | 133  | 
|
| 885 | 134  | 
      \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.}
 | 
135  | 
||
| 22 | 136  | 
|
| 881 | 137  | 
\item Give an argument for why the following holds:  | 
| 885 | 138  | 
  if $r$ is nullable then $r^{\{n\}} \equiv r^{\{..n\}}$.
 | 
139  | 
||
| 927 | 140  | 
  \solution{ This requires an inductive proof. There are a number of
 | 
141  | 
    ways to prove this. It is clear that if $s \in L (r^{\{n\}})$ then
 | 
|
142  | 
    also $s \in L (r^{\{..n\}})$.
 | 
|
143  | 
||
144  | 
So one way to prove this is to show  | 
|
145  | 
    that if $s \in L (r^{\{..n\}})$ then also $s \in L (r^{\{n\}})$
 | 
|
146  | 
(under the assumption that $r$ is nullable, otherwise it would not  | 
|
147  | 
    be true).  The assumption $s \in L (r^{\{..n\}})$ means
 | 
|
148  | 
    that $s \in L(r^{\{i\}})$ with $i \leq n$ holds
 | 
|
149  | 
    and we have to show that $s \in L(r^{\{n\}})$ holds. 
 | 
|
150  | 
||
151  | 
One can do this by induction for languages as follows:  | 
|
152  | 
||
153  | 
\[  | 
|
154  | 
      \textit{if}\; [] \in A \;\textit{and}\; s \in A^n
 | 
|
155  | 
      \;\textit{then}\; s \in A^{n+m}
 | 
|
156  | 
\]  | 
|
157  | 
||
158  | 
The proof is by induction on $m$. The base case $m=0$ is trivial.  | 
|
159  | 
For the $m + 1$ case we have the induction hypothesis:  | 
|
160  | 
||
161  | 
\[  | 
|
162  | 
      \textit{if}\; [] \in A \;\textit{and}\; s \in A^n
 | 
|
163  | 
      \;\textit{then}\; s \in A^{n+m}  
 | 
|
164  | 
\]  | 
|
165  | 
||
166  | 
and we have to show  | 
|
167  | 
||
168  | 
\[  | 
|
169  | 
    s \in A^{n+m+1}   
 | 
|
170  | 
\]  | 
|
171  | 
||
172  | 
under the assumption $[] \in A$ and $s \in A^n$. From the  | 
|
173  | 
    assumptions and the IH we can infer that $s\in A^{n + m}$.
 | 
|
174  | 
Then using the assumption $[] \in A$ we can infer that also  | 
|
175  | 
||
176  | 
\[  | 
|
177  | 
      s\in A \,@\, A^{n + m}
 | 
|
178  | 
\]  | 
|
179  | 
||
180  | 
    which is equivalent to what we need to show $s \in A^{n+m+1}$.
 | 
|
181  | 
||
182  | 
    Now we know $s \in L(r^{\{i\}})$ with $i \leq n$. Since $i + m = n$
 | 
|
183  | 
    for some $m$ we can conclude that $s \in L(r^{\{n\}})$. Done.
 | 
|
184  | 
||
185  | 
}  | 
|
186  | 
||
187  | 
\item Given the regular expression $r = (a \cdot b + b)^*$.  | 
|
188  | 
Compute what the derivative of $r$ is with respect to  | 
|
189  | 
$a$, $b$ and $c$. Is $r$ nullable?  | 
|
| 
258
 
1e4da6d2490c
updated programs
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents: 
132 
diff
changeset
 | 
190  | 
|
| 
355
 
a259eec25156
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents: 
347 
diff
changeset
 | 
191  | 
\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: 
347 
diff
changeset
 | 
192  | 
expressions with respect to a character. (Hint: The  | 
| 
 
a259eec25156
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents: 
347 
diff
changeset
 | 
193  | 
derivative is defined recursively.)  | 
| 
267
 
a1544b804d1e
updated homeworks
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents: 
258 
diff
changeset
 | 
194  | 
|
| 927 | 195  | 
      \solution{The recursive function for $der$.}
 | 
| 885 | 196  | 
|
| 768 | 197  | 
\item Assume the set $Der$ is defined as  | 
| 
267
 
a1544b804d1e
updated homeworks
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents: 
258 
diff
changeset
 | 
198  | 
|
| 
 
a1544b804d1e
updated homeworks
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents: 
258 
diff
changeset
 | 
199  | 
  \begin{center}
 | 
| 
 
a1544b804d1e
updated homeworks
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents: 
258 
diff
changeset
 | 
200  | 
    $Der\,c\,A \dn \{ s \;|\;  c\!::\!s \in A\}$
 | 
| 
 
a1544b804d1e
updated homeworks
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents: 
258 
diff
changeset
 | 
201  | 
  \end{center}
 | 
| 
 
a1544b804d1e
updated homeworks
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents: 
258 
diff
changeset
 | 
202  | 
|
| 
401
 
5d85dc9779b1
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents: 
355 
diff
changeset
 | 
203  | 
What is the relation between $Der$ and the notion of  | 
| 
 
5d85dc9779b1
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents: 
355 
diff
changeset
 | 
204  | 
derivative of regular expressions?  | 
| 
267
 
a1544b804d1e
updated homeworks
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents: 
258 
diff
changeset
 | 
205  | 
|
| 885 | 206  | 
      \solution{Main property is $L(der\,c\,r) = Der\,c\,(L(r))$.}
 | 
207  | 
||
| 
267
 
a1544b804d1e
updated homeworks
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents: 
258 
diff
changeset
 | 
208  | 
\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: 
355 
diff
changeset
 | 
209  | 
recognising all strings that do not contain any  | 
| 
 
5d85dc9779b1
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents: 
355 
diff
changeset
 | 
210  | 
substring $bb$ and end in $a$.  | 
| 
267
 
a1544b804d1e
updated homeworks
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents: 
258 
diff
changeset
 | 
211  | 
|
| 930 | 212  | 
      \solution{$((ba)^* \cdot (a)^*)^*\,\cdot\,a + ba$ \quad Not sure whether this can be simplified.}
 | 
| 885 | 213  | 
|
| 
401
 
5d85dc9779b1
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents: 
355 
diff
changeset
 | 
214  | 
\item Do $(a + b)^* \cdot b^+$ and $(a^* \cdot b^+) +  | 
| 885 | 215  | 
(b^*\cdot b^+)$ define the same language?  | 
216  | 
||
| 889 | 217  | 
  \solution{No, the first one can match for example abababababbbbb
 | 
218  | 
while the second can only match for example aaaaaabbbbb or bbbbbbb}  | 
|
| 
294
 
c29853b672fb
updated hws
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents: 
292 
diff
changeset
 | 
219  | 
|
| 
 
c29853b672fb
updated hws
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents: 
292 
diff
changeset
 | 
220  | 
\item Define the function $zeroable$ by recursion over regular  | 
| 
401
 
5d85dc9779b1
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents: 
355 
diff
changeset
 | 
221  | 
expressions. This function should satisfy the property  | 
| 
294
 
c29853b672fb
updated hws
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents: 
292 
diff
changeset
 | 
222  | 
|
| 
 
c29853b672fb
updated hws
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents: 
292 
diff
changeset
 | 
223  | 
\[  | 
| 
401
 
5d85dc9779b1
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents: 
355 
diff
changeset
 | 
224  | 
  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: 
292 
diff
changeset
 | 
225  | 
\]  | 
| 
 
c29853b672fb
updated hws
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents: 
292 
diff
changeset
 | 
226  | 
|
| 
401
 
5d85dc9779b1
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents: 
355 
diff
changeset
 | 
227  | 
The function $nullable$ for the not-regular expressions  | 
| 
 
5d85dc9779b1
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents: 
355 
diff
changeset
 | 
228  | 
can be defined by  | 
| 
294
 
c29853b672fb
updated hws
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents: 
292 
diff
changeset
 | 
229  | 
|
| 
 
c29853b672fb
updated hws
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents: 
292 
diff
changeset
 | 
230  | 
\[  | 
| 
 
c29853b672fb
updated hws
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents: 
292 
diff
changeset
 | 
231  | 
nullable(\sim r) \dn \neg(nullable(r))  | 
| 
 
c29853b672fb
updated hws
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents: 
292 
diff
changeset
 | 
232  | 
\]  | 
| 
 
c29853b672fb
updated hws
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents: 
292 
diff
changeset
 | 
233  | 
|
| 
401
 
5d85dc9779b1
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents: 
355 
diff
changeset
 | 
234  | 
Unfortunately, a similar definition for $zeroable$ does  | 
| 
 
5d85dc9779b1
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents: 
355 
diff
changeset
 | 
235  | 
not satisfy the property in $(*)$:  | 
| 
294
 
c29853b672fb
updated hws
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents: 
292 
diff
changeset
 | 
236  | 
|
| 
 
c29853b672fb
updated hws
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents: 
292 
diff
changeset
 | 
237  | 
\[  | 
| 
 
c29853b672fb
updated hws
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents: 
292 
diff
changeset
 | 
238  | 
zeroable(\sim r) \dn \neg(zeroable(r))  | 
| 
 
c29853b672fb
updated hws
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents: 
292 
diff
changeset
 | 
239  | 
\]  | 
| 
 
c29853b672fb
updated hws
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents: 
292 
diff
changeset
 | 
240  | 
|
| 889 | 241  | 
Find a counter example?  | 
242  | 
||
243  | 
||
244  | 
  \solution{
 | 
|
245  | 
Here the idea is that nullable for NOT can be defined as  | 
|
246  | 
||
247  | 
\[nullable(\sim r) \dn \neg(nullable(r))\]  | 
|
248  | 
||
249  | 
This will satisfy the property  | 
|
250  | 
    $nullable(r) \;\;\text{if and only if}\;\;[] \in L(r)$. (Remember how
 | 
|
251  | 
$L(\sim r)$ is defined).\bigskip  | 
|
252  | 
||
253  | 
But you cannot define  | 
|
254  | 
||
255  | 
\[zeroable(\sim r) \dn \neg(zeroable(r))\]  | 
|
256  | 
||
257  | 
because if $r$ for example is $\ONE$ then $\sim \ONE$ can match  | 
|
258  | 
some strings (all non-empty strings). So $zeroable$ should be false. But if we follow  | 
|
259  | 
the above definition we would obtain $\neg(zeroable(\ONE))$. According  | 
|
260  | 
to the definition of $zeroable$ for $\ONE$ this would be false,  | 
|
261  | 
but if we now negate false, we get actually true. So the above  | 
|
262  | 
definition would not satisfy the property  | 
|
263  | 
||
264  | 
\[  | 
|
265  | 
      zeroable(r) \;\;\text{if and only if}\;\;L(r) = \{\}
 | 
|
266  | 
\]  | 
|
267  | 
}  | 
|
| 
294
 
c29853b672fb
updated hws
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents: 
292 
diff
changeset
 | 
268  | 
|
| 
401
 
5d85dc9779b1
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents: 
355 
diff
changeset
 | 
269  | 
\item Give a regular expressions that can recognise all  | 
| 
 
5d85dc9779b1
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents: 
355 
diff
changeset
 | 
270  | 
      strings from the language $\{a^n\;|\;\exists k.\; n = 3 k
 | 
| 885 | 271  | 
+ 1 \}$.  | 
272  | 
||
273  | 
      \solution{$a(aaa)^*$}
 | 
|
| 
404
 
245d302791c7
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents: 
401 
diff
changeset
 | 
274  | 
|
| 
 
245d302791c7
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents: 
401 
diff
changeset
 | 
275  | 
\item Give a regular expression that can recognise an odd  | 
| 889 | 276  | 
number of $a$s or an even number of $b$s.  | 
277  | 
||
278  | 
  \solution{
 | 
|
279  | 
If the a's and b's are meant to be separate, then this is easy  | 
|
280  | 
||
281  | 
\[a(aa)^* + (bb)^*\]  | 
|
282  | 
||
283  | 
If the letters are mixed, then this is difficult  | 
|
284  | 
||
285  | 
\[(aa|bb|(ab|ba)\cdot (aa|bb)^* \cdot (ba|ab))^* \cdot (b|(ab|ba)(bb|aa)^* \cdot a)  | 
|
286  | 
\]  | 
|
287  | 
||
288  | 
(copied from somewhere ;o)  | 
|
289  | 
||
| 927 | 290  | 
The idea behind this monstrous regex is essentially the DFA  | 
| 889 | 291  | 
|
292  | 
\begin{center}    
 | 
|
293  | 
\begin{tikzpicture}[scale=1,>=stealth',very thick,
 | 
|
294  | 
                    every state/.style={minimum size=0pt,
 | 
|
295  | 
draw=blue!50,very thick,fill=blue!20}]  | 
|
296  | 
  \node[state,initial]   (q0) at (0,2) {$q_0$};
 | 
|
297  | 
  \node[state,accepting] (q1) at (2,2) {$q_1$};
 | 
|
298  | 
  \node[state]           (q2) at (0,0) {$q_2$};
 | 
|
299  | 
  \node[state]           (q3) at (2,0) {$q_3$};
 | 
|
300  | 
||
301  | 
 \path[->]  (q0) edge[bend left] node[above] {$a$} (q1)
 | 
|
302  | 
            (q1) edge[bend left] node[above] {$a$} (q0)
 | 
|
303  | 
            (q2) edge[bend left] node[above] {$a$} (q3)
 | 
|
304  | 
            (q3) edge[bend left] node[above] {$a$} (q2)
 | 
|
305  | 
            (q0) edge[bend left] node[right] {$b$} (q2)
 | 
|
306  | 
            (q2) edge[bend left] node[left]  {$b$} (q0)
 | 
|
307  | 
            (q1) edge[bend left] node[right] {$b$} (q3)
 | 
|
308  | 
            (q3) edge[bend left] node[left]  {$b$} (q1);
 | 
|
309  | 
\end{tikzpicture}
 | 
|
310  | 
\end{center}
 | 
|
| 927 | 311  | 
|
312  | 
Maybe a good idea to reconsider this example in Lecture 3  | 
|
313  | 
where the Brzozowski algorithm for DFA $\rightarrow$ Regex  | 
|
314  | 
can be used.  | 
|
| 889 | 315  | 
}  | 
| 
444
 
3056a4c071b0
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents: 
404 
diff
changeset
 | 
316  | 
|
| 
 
3056a4c071b0
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents: 
404 
diff
changeset
 | 
317  | 
\item \POSTSCRIPT  | 
| 
404
 
245d302791c7
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents: 
401 
diff
changeset
 | 
318  | 
\end{enumerate}
 | 
| 22 | 319  | 
|
320  | 
\end{document}
 | 
|
321  | 
||
322  | 
%%% Local Variables:  | 
|
323  | 
%%% mode: latex  | 
|
324  | 
%%% TeX-master: t  | 
|
325  | 
%%% End:  |