776
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1 |
1
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2 |
00:00:06,260 --> 00:00:10,275
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
3 |
I come back, I know
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
4 |
the topic of proofs
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
5 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
6 |
2
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
7 |
00:00:10,275 --> 00:00:13,950
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
8 |
is usually not the most
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
9 |
favorite topics with students.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
10 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
11 |
3
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
12 |
00:00:13,950 --> 00:00:17,220
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
13 |
But I'm really passionate
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
14 |
about proofs in
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
15 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
16 |
4
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
17 |
00:00:17,220 --> 00:00:19,320
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
18 |
this module because they really
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
19 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
20 |
5
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
21 |
00:00:19,320 --> 00:00:21,885
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
22 |
help you with understanding
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
23 |
what's going on.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
24 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
25 |
6
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
26 |
00:00:21,885 --> 00:00:25,170
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
27 |
And very often they help
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
28 |
you with preventing errors.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
29 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
30 |
7
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
31 |
00:00:25,170 --> 00:00:28,695
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
32 |
You seen me earlier doing
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
33 |
these calculations.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
34 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
35 |
8
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
36 |
00:00:28,695 --> 00:00:30,210
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
37 |
And if I hadn't had
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
38 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
39 |
9
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
40 |
00:00:30,210 --> 00:00:33,330
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
41 |
the safety net of
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
42 |
knowing what I'm doing,
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
43 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
44 |
10
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
45 |
00:00:33,330 --> 00:00:35,130
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
46 |
I could have easily gone wrong.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
47 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
48 |
11
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
49 |
00:00:35,130 --> 00:00:36,390
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
50 |
And that's actually a problem is
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
51 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
52 |
12
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
53 |
00:00:36,390 --> 00:00:38,935
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
54 |
existing wreck Expression
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
55 |
Matching engines.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
56 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
57 |
13
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
58 |
00:00:38,935 --> 00:00:41,330
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
59 |
Sometimes in corner
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
60 |
cases as we seen,
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
61 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
62 |
14
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
63 |
00:00:41,330 --> 00:00:43,130
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
64 |
they produce slow results,
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
65 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
66 |
15
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
67 |
00:00:43,130 --> 00:00:45,455
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
68 |
which is actually not so bad.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
69 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
70 |
16
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
71 |
00:00:45,455 --> 00:00:48,020
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
72 |
Much worse is that
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
73 |
we also know they
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
74 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
75 |
17
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
76 |
00:00:48,020 --> 00:00:50,570
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
77 |
sometimes produce
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
78 |
incorrect results.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
79 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
80 |
18
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
81 |
00:00:50,570 --> 00:00:51,980
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
82 |
So for us here,
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
83 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
84 |
19
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
85 |
00:00:51,980 --> 00:00:53,390
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
86 |
the proofs will be
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
87 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
88 |
20
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
89 |
00:00:53,390 --> 00:00:55,100
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
90 |
essentially the safety nets
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
91 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
92 |
21
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
93 |
00:00:55,100 --> 00:00:58,295
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
94 |
of making sure that our
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
95 |
algorithms actually correct.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
96 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
97 |
22
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
98 |
00:00:58,295 --> 00:01:00,095
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
99 |
And that's actually
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
100 |
the beauty of that.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
101 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
102 |
23
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
103 |
00:01:00,095 --> 00:01:03,170
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
104 |
It doesn't happen very often
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
105 |
in real life that we can
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
106 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
107 |
24
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
108 |
00:01:03,170 --> 00:01:06,500
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
109 |
actually prove the
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
110 |
correctness of our algorithm.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
111 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
112 |
25
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
113 |
00:01:06,500 --> 00:01:08,405
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
114 |
But we can do this here.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
115 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
116 |
26
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
117 |
00:01:08,405 --> 00:01:11,000
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
118 |
So we will start
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
119 |
a bit slow first,
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
120 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
121 |
27
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
122 |
00:01:11,000 --> 00:01:14,330
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
123 |
I will show you how
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
124 |
properties are stated.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
125 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
126 |
28
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
127 |
00:01:14,330 --> 00:01:17,255
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
128 |
And then along the way
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
129 |
we will see how proofs
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
130 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
131 |
29
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
132 |
00:01:17,255 --> 00:01:20,940
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
133 |
actually can be performed
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
134 |
and how they can help you.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
135 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
136 |
30
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
137 |
00:01:20,980 --> 00:01:25,205
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
138 |
You can probably remember this
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
139 |
slide from the beginning.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
140 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
141 |
31
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
142 |
00:01:25,205 --> 00:01:29,300
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
143 |
Now we would probably stayed
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
144 |
the same property that
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
145 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
146 |
32
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
147 |
00:01:29,300 --> 00:01:32,420
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
148 |
our algorithm matches
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
149 |
the specification
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
150 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
151 |
33
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
152 |
00:01:32,420 --> 00:01:33,695
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
153 |
of what that means.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
154 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
155 |
34
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
156 |
00:01:33,695 --> 00:01:35,450
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
157 |
Maybe slightly more mathematical,
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
158 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
159 |
35
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
160 |
00:01:35,450 --> 00:01:37,130
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
161 |
we would write
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
162 |
something like this.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
163 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
164 |
36
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
165 |
00:01:37,130 --> 00:01:39,545
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
166 |
If our Marcia is given as
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
167 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
168 |
37
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
169 |
00:01:39,545 --> 00:01:42,740
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
170 |
a string direct expression
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
171 |
R and says yes,
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
172 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
173 |
38
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
174 |
00:01:42,740 --> 00:01:45,110
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
175 |
then this string
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
176 |
really needs to be in
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
177 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
178 |
39
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
179 |
00:01:45,110 --> 00:01:48,350
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
180 |
the language of R. And
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
181 |
if the matcher says no,
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
182 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
183 |
40
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
184 |
00:01:48,350 --> 00:01:50,120
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
185 |
then this string cannot be in
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
186 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
187 |
41
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
188 |
00:01:50,120 --> 00:01:52,325
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
189 |
the language of r. And we spent
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
190 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
191 |
42
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
192 |
00:01:52,325 --> 00:01:54,590
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
193 |
quite some effort to make precise
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
194 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
195 |
43
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
196 |
00:01:54,590 --> 00:01:57,065
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
197 |
what the language is
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
198 |
of a wreck expression.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
199 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
200 |
44
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
201 |
00:01:57,065 --> 00:01:59,090
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
202 |
And we spend some effort to
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
203 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
204 |
45
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
205 |
00:01:59,090 --> 00:02:01,505
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
206 |
make precise what
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
207 |
our algorithm is.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
208 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
209 |
46
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
210 |
00:02:01,505 --> 00:02:02,840
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
211 |
So we could now take
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
212 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
213 |
47
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
214 |
00:02:02,840 --> 00:02:06,875
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
215 |
this property and we could
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
216 |
generate some test cases,
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
217 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
218 |
48
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
219 |
00:02:06,875 --> 00:02:09,410
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
220 |
and that is all fine and good.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
221 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
222 |
49
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
223 |
00:02:09,410 --> 00:02:13,340
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
224 |
Testing is a very important
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
225 |
thing for our software.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
226 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
227 |
50
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
228 |
00:02:13,340 --> 00:02:16,715
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
229 |
But we can only do
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
230 |
this testing so far.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
231 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
232 |
51
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
233 |
00:02:16,715 --> 00:02:19,385
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
234 |
Remember in the homework,
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
235 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
236 |
52
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
237 |
00:02:19,385 --> 00:02:21,275
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
238 |
there was a single string,
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
239 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
240 |
53
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
241 |
00:02:21,275 --> 00:02:23,750
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
242 |
abcd, and there were
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
243 |
actually infinitely
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
244 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
245 |
54
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
246 |
00:02:23,750 --> 00:02:27,530
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
247 |
many wreck expressions which
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
248 |
can match only that string.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
249 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
250 |
55
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
251 |
00:02:27,530 --> 00:02:30,470
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
252 |
So testing something for
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
253 |
infinitely many things,
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
254 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
255 |
56
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
256 |
00:02:30,470 --> 00:02:32,000
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
257 |
that's a bit hard.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
258 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
259 |
57
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
260 |
00:02:32,000 --> 00:02:36,710
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
261 |
And Summa, as soon as we have
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
262 |
an expression with a star,
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
263 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
264 |
58
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
265 |
00:02:36,710 --> 00:02:39,289
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
266 |
this l function returns,
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
267 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
268 |
59
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
269 |
00:02:39,289 --> 00:02:41,360
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
270 |
in the general case
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
271 |
an infinite set.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
272 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
273 |
60
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
274 |
00:02:41,360 --> 00:02:43,940
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
275 |
And testing whether a
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
276 |
string is an infinite set,
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
277 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
278 |
61
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
279 |
00:02:43,940 --> 00:02:45,500
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
280 |
that's also a bit hard.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
281 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
282 |
62
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
283 |
00:02:45,500 --> 00:02:47,510
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
284 |
So testing can only do so much.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
285 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
286 |
63
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
287 |
00:02:47,510 --> 00:02:49,820
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
288 |
We could generate some
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
289 |
wreck expressions
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
290 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
291 |
64
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
292 |
00:02:49,820 --> 00:02:51,560
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
293 |
and we can generate some strings.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
294 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
295 |
65
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
296 |
00:02:51,560 --> 00:02:53,990
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
297 |
And we can test
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
298 |
whether that is true.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
299 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
300 |
66
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
301 |
00:02:53,990 --> 00:02:57,470
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
302 |
So B would be still
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
303 |
in the quandary that
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
304 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
305 |
67
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
306 |
00:02:57,470 --> 00:03:00,950
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
307 |
maybe there's a corner
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
308 |
case which doesn't work.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
309 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
310 |
68
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
311 |
00:03:00,950 --> 00:03:03,110
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
312 |
So what we want to
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
313 |
achieve instead
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
314 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
315 |
69
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
316 |
00:03:03,110 --> 00:03:05,615
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
317 |
is you want to really make sure
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
318 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
319 |
70
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
320 |
00:03:05,615 --> 00:03:07,325
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
321 |
that this algorithm works for
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
322 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
323 |
71
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
324 |
00:03:07,325 --> 00:03:10,850
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
325 |
all reg expression
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
326 |
and for all strings.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
327 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
328 |
72
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
329 |
00:03:10,850 --> 00:03:16,400
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
330 |
And that ONE proving will
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
331 |
help us to establish.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
332 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
333 |
73
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
334 |
00:03:16,400 --> 00:03:19,040
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
335 |
Testing cannot do that.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
336 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
337 |
74
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
338 |
00:03:19,040 --> 00:03:22,310
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
339 |
Remember, metro
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
340 |
mainly consisted of
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
341 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
342 |
75
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
343 |
00:03:22,310 --> 00:03:25,444
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
344 |
these functions,
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
345 |
nullable and derivative.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
346 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
347 |
76
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
348 |
00:03:25,444 --> 00:03:27,755
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
349 |
So if you want to prove
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
350 |
anything about Metro.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
351 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
352 |
77
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
353 |
00:03:27,755 --> 00:03:30,200
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
354 |
Bet on, make sure that
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
355 |
we know what actually
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
356 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
357 |
78
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
358 |
00:03:30,200 --> 00:03:33,890
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
359 |
the specification of
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
360 |
nullable and derivative is.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
361 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
362 |
79
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
363 |
00:03:33,890 --> 00:03:35,750
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
364 |
That's actually quite
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
365 |
instructive to also
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
366 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
367 |
80
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
368 |
00:03:35,750 --> 00:03:37,850
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
369 |
understand how they work.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
370 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
371 |
81
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
372 |
00:03:37,850 --> 00:03:39,695
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
373 |
So let's do that next.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
374 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
375 |
82
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
376 |
00:03:39,695 --> 00:03:41,975
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
377 |
The central property of nullable,
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
378 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
379 |
83
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
380 |
00:03:41,975 --> 00:03:43,445
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
381 |
Actually that's not so hard.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
382 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
383 |
84
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
384 |
00:03:43,445 --> 00:03:48,740
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
385 |
It's just says a function or
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
386 |
a reg expression is nullable
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
387 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
388 |
85
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
389 |
00:03:48,740 --> 00:03:50,360
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
390 |
if and only if
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
391 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
392 |
86
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
393 |
00:03:50,360 --> 00:03:52,160
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
394 |
the empty string is in
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
395 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
396 |
87
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
397 |
00:03:52,160 --> 00:03:54,410
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
398 |
the language that was the
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
399 |
purpose of this novel,
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
400 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
401 |
88
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
402 |
00:03:54,410 --> 00:03:55,670
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
403 |
it takes work, expression and
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
404 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
405 |
89
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
406 |
00:03:55,670 --> 00:03:58,490
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
407 |
test whether can match
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
408 |
the empty string.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
409 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
410 |
90
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
411 |
00:03:58,490 --> 00:04:01,010
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
412 |
Meaning this empty string needs
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
413 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
414 |
91
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
415 |
00:04:01,010 --> 00:04:03,230
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
416 |
to be in the language
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
417 |
of R. And again,
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
418 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
419 |
92
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
420 |
00:04:03,230 --> 00:04:04,385
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
421 |
we have this if an only,
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
422 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
423 |
93
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
424 |
00:04:04,385 --> 00:04:05,885
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
425 |
if this one says yes,
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
426 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
427 |
94
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
428 |
00:04:05,885 --> 00:04:08,465
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
429 |
then the empty string needs
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
430 |
to be in this language.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
431 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
432 |
95
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
433 |
00:04:08,465 --> 00:04:10,385
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
434 |
And if this nullable says no,
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
435 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
436 |
96
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
437 |
00:04:10,385 --> 00:04:13,085
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
438 |
the empty string CoMP
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
439 |
unless language.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
440 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
441 |
97
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
442 |
00:04:13,085 --> 00:04:15,290
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
443 |
So that's relatively easy.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
444 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
445 |
98
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
446 |
00:04:15,290 --> 00:04:18,110
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
447 |
The next one might be also
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
448 |
very instructive to look
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
449 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
450 |
99
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
451 |
00:04:18,110 --> 00:04:22,775
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
452 |
at what's the property the
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
453 |
derivative should satisfy.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
454 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
455 |
100
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
456 |
00:04:22,775 --> 00:04:26,329
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
457 |
And remember, the derivative
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
458 |
was a kind of operation.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
459 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
460 |
101
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
461 |
00:04:26,329 --> 00:04:28,850
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
462 |
We taking a wrecker
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
463 |
expression and we're looking
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
464 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
465 |
102
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
466 |
00:04:28,850 --> 00:04:31,955
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
467 |
at all the strings this
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
468 |
reg expression can match,
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
469 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
470 |
103
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
471 |
00:04:31,955 --> 00:04:35,510
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
472 |
but which starts with
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
473 |
C. And then me somehow
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
474 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
475 |
104
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
476 |
00:04:35,510 --> 00:04:37,250
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
477 |
looking for reg expression
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
478 |
which can match
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
479 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
480 |
105
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
481 |
00:04:37,250 --> 00:04:39,335
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
482 |
the same string starting with C,
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
483 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
484 |
106
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
485 |
00:04:39,335 --> 00:04:42,440
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
486 |
except that this
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
487 |
c is chopped off.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
488 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
489 |
107
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
490 |
00:04:42,440 --> 00:04:47,150
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
491 |
And that actually saves
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
492 |
what this property states.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
493 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
494 |
108
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
495 |
00:04:47,150 --> 00:04:50,300
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
496 |
Take the, take a
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
497 |
break expression are,
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
498 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
499 |
109
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
500 |
00:04:50,300 --> 00:04:53,045
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
501 |
and build the derivative
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
502 |
according to see,
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
503 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
504 |
110
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
505 |
00:04:53,045 --> 00:04:56,150
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
506 |
okay, so this gives
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
507 |
us a reg expression,
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
508 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
509 |
111
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
510 |
00:04:56,150 --> 00:04:58,025
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
511 |
the derivative of that
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
512 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
513 |
112
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
514 |
00:04:58,025 --> 00:05:01,775
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
515 |
r. Now we take the
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
516 |
a language of that,
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
517 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
518 |
113
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
519 |
00:05:01,775 --> 00:05:06,620
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
520 |
are that supposed to be
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
521 |
the same set as if I take
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
522 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
523 |
114
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
524 |
00:05:06,620 --> 00:05:12,845
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
525 |
the language of R and then
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
526 |
build the semantic derivative.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
527 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
528 |
115
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
529 |
00:05:12,845 --> 00:05:16,055
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
530 |
Remember the semantic derivative
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
531 |
was doing exactly that.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
532 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
533 |
116
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
534 |
00:05:16,055 --> 00:05:18,380
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
535 |
It goes through all
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
536 |
the strings in this
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
537 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
538 |
117
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
539 |
00:05:18,380 --> 00:05:21,350
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
540 |
that filters out everything which
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
541 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
542 |
118
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
543 |
00:05:21,350 --> 00:05:24,770
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
544 |
doesn't start with C.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
545 |
So throws them away of
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
546 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
547 |
119
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
548 |
00:05:24,770 --> 00:05:26,510
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
549 |
the remaining strings
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
550 |
which start with
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
551 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
552 |
120
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
553 |
00:05:26,510 --> 00:05:28,670
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
554 |
C. It chops off so that C,
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
555 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
556 |
121
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
557 |
00:05:28,670 --> 00:05:31,370
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
558 |
So this will be exactly
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
559 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
560 |
122
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
561 |
00:05:31,370 --> 00:05:34,205
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
562 |
what our derivative
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
563 |
is supposed to do.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
564 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
565 |
123
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
566 |
00:05:34,205 --> 00:05:36,605
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
567 |
And yes, if you can
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
568 |
establish that,
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
569 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
570 |
124
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
571 |
00:05:36,605 --> 00:05:38,450
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
572 |
then the language of
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
573 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
574 |
125
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
575 |
00:05:38,450 --> 00:05:43,355
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
576 |
this derivative operation
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
577 |
will produce the same sat.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
578 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
579 |
126
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
580 |
00:05:43,355 --> 00:05:45,815
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
581 |
This actually also
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
582 |
how I'm going to
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
583 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
584 |
127
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
585 |
00:05:45,815 --> 00:05:49,760
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
586 |
test in cases icons
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
587 |
yet at the beginning,
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
588 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
589 |
128
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
590 |
00:05:49,760 --> 00:05:52,910
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
591 |
how your coursework is correct.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
592 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
593 |
129
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
594 |
00:05:52,910 --> 00:05:55,625
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
595 |
If you give me a
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
596 |
definition for derivative
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
597 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
598 |
130
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
599 |
00:05:55,625 --> 00:05:58,730
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
600 |
of one of these bounded
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
601 |
record expressions,
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
602 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
603 |
131
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
604 |
00:05:58,730 --> 00:06:01,085
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
605 |
and I can't see
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
606 |
whether it's correct.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
607 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
608 |
132
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
609 |
00:06:01,085 --> 00:06:03,380
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
610 |
Then what it will do
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
611 |
is I will just try to
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
612 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
613 |
133
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
614 |
00:06:03,380 --> 00:06:05,675
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
615 |
establish that this
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
616 |
property holds.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
617 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
618 |
134
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
619 |
00:06:05,675 --> 00:06:07,265
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
620 |
And if I can establish that,
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
621 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
622 |
135
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
623 |
00:06:07,265 --> 00:06:08,870
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
624 |
then you coursework is find.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
625 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
626 |
136
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
627 |
00:06:08,870 --> 00:06:10,550
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
628 |
And if I can't establish that,
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
629 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
630 |
137
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
631 |
00:06:10,550 --> 00:06:12,410
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
632 |
then usually it shows
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
633 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
634 |
138
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
635 |
00:06:12,410 --> 00:06:14,360
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
636 |
there is a counterexample
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
637 |
somewhere.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
638 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
639 |
139
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
640 |
00:06:14,360 --> 00:06:19,220
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
641 |
Because this derivative,
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
642 |
as you've seen desk times,
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
643 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
644 |
140
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
645 |
00:06:19,220 --> 00:06:21,725
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
646 |
more than one solution
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
647 |
you can give.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
648 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
649 |
141
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
650 |
00:06:21,725 --> 00:06:23,915
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
651 |
Some of them are more
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
652 |
efficient than others.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
653 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
654 |
142
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
655 |
00:06:23,915 --> 00:06:25,685
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
656 |
But in terms of correctness,
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
657 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
658 |
143
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
659 |
00:06:25,685 --> 00:06:30,680
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
660 |
there are multiple solutions
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
661 |
for the coursework.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
662 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
663 |
144
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
664 |
00:06:30,680 --> 00:06:34,145
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
665 |
And in the past I really had
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
666 |
to scratch my head and say,
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
667 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
668 |
145
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
669 |
00:06:34,145 --> 00:06:36,995
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
670 |
Is that definition
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
671 |
really correct?
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
672 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
673 |
146
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
674 |
00:06:36,995 --> 00:06:39,620
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
675 |
And so what I did is
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
676 |
I just went ahead and
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
677 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
678 |
147
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
679 |
00:06:39,620 --> 00:06:42,785
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
680 |
tried to prove that or
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
681 |
establish this property.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
682 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
683 |
148
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
684 |
00:06:42,785 --> 00:06:45,110
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
685 |
The reason why we writing
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
686 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
687 |
149
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
688 |
00:06:45,110 --> 00:06:47,300
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
689 |
these properties
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
690 |
down so precisely,
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
691 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
692 |
150
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
693 |
00:06:47,300 --> 00:06:49,880
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
694 |
remember we know here
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
695 |
what the derivative is,
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
696 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
697 |
151
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
698 |
00:06:49,880 --> 00:06:51,290
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
699 |
we know what the
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
700 |
languages we know
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
701 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
702 |
152
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
703 |
00:06:51,290 --> 00:06:53,495
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
704 |
what this semantic derivative is.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
705 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
706 |
153
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
707 |
00:06:53,495 --> 00:06:56,960
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
708 |
This is usually when you are
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
709 |
trying to prove something.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
710 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
711 |
154
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
712 |
00:06:56,960 --> 00:06:58,715
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
713 |
And very important step.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
714 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
715 |
155
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
716 |
00:06:58,715 --> 00:07:01,385
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
717 |
If you know what you're
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
718 |
actually trying to prove,
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
719 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
720 |
156
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
721 |
00:07:01,385 --> 00:07:05,510
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
722 |
then you have already
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
723 |
done half of the proof.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
724 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
725 |
157
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
726 |
00:07:05,510 --> 00:07:08,300
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
727 |
Remember, we want to
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
728 |
establish these properties
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
729 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
730 |
158
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
731 |
00:07:08,300 --> 00:07:10,460
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
732 |
not just for some reg expression,
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
733 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
734 |
159
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
735 |
00:07:10,460 --> 00:07:13,940
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
736 |
but for all wrecker expression
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
737 |
and for all characters.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
738 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
739 |
160
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
740 |
00:07:13,940 --> 00:07:17,225
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
741 |
So proving is the only
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
742 |
method to achieve that.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
743 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
744 |
161
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
745 |
00:07:17,225 --> 00:07:18,590
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
746 |
And I said at the beginning of
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
747 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
748 |
162
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
749 |
00:07:18,590 --> 00:07:21,170
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
750 |
this video's proving is
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
751 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
752 |
163
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
753 |
00:07:21,170 --> 00:07:23,810
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
754 |
not the most favorite
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
755 |
subject of students.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
756 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
757 |
164
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
758 |
00:07:23,810 --> 00:07:25,730
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
759 |
But I can promise you,
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
760 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
761 |
165
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
762 |
00:07:25,730 --> 00:07:29,630
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
763 |
if you just follow a very
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
764 |
simple minded recipe,
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
765 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
766 |
166
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
767 |
00:07:29,630 --> 00:07:33,695
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
768 |
that brings, you're already
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
769 |
very far in these proofs.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
770 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
771 |
167
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
772 |
00:07:33,695 --> 00:07:35,720
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
773 |
Of course, there's
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
774 |
always some creativity
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
775 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
776 |
168
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
777 |
00:07:35,720 --> 00:07:37,070
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
778 |
involved in these proofs.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
779 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
780 |
169
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
781 |
00:07:37,070 --> 00:07:39,380
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
782 |
But a simple-minded
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
783 |
recipe you can
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
784 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
785 |
170
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
786 |
00:07:39,380 --> 00:07:42,620
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
787 |
follow brings you're already
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
788 |
very close to the end.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
789 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
790 |
171
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
791 |
00:07:42,620 --> 00:07:46,610
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
792 |
So let's have a look how
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
793 |
this recipe can be derived.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
794 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
795 |
172
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
796 |
00:07:46,610 --> 00:07:48,740
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
797 |
Establishing a property is for
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
798 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
799 |
173
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
800 |
00:07:48,740 --> 00:07:50,900
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
801 |
all Rekha expression nearly
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
802 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
803 |
174
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
804 |
00:07:50,900 --> 00:07:55,805
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
805 |
always requires an induction
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
806 |
over wreck expressions.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
807 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
808 |
175
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
809 |
00:07:55,805 --> 00:07:57,350
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
810 |
And so we have to look at what's
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
811 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
812 |
176
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
813 |
00:07:57,350 --> 00:07:59,150
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
814 |
the recipe for doing inductions
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
815 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
816 |
177
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
817 |
00:07:59,150 --> 00:08:02,390
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
818 |
over wreck expressions
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
819 |
and inductions.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
820 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
821 |
178
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
822 |
00:08:02,390 --> 00:08:03,590
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
823 |
You probably remember from
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
824 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
825 |
179
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
826 |
00:08:03,590 --> 00:08:07,100
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
827 |
school time you did induction
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
828 |
over natural numbers.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
829 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
830 |
180
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
831 |
00:08:07,100 --> 00:08:11,120
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
832 |
You had to establish that
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
833 |
some property holds for 0.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
834 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
835 |
181
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
836 |
00:08:11,120 --> 00:08:13,775
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
837 |
And you had to establish it
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
838 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
839 |
182
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
840 |
00:08:13,775 --> 00:08:14,960
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
841 |
that if you assume that
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
842 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
843 |
183
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
844 |
00:08:14,960 --> 00:08:16,970
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
845 |
the property holds
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
846 |
for the N case,
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
847 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
848 |
184
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
849 |
00:08:16,970 --> 00:08:21,365
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
850 |
it has to also hold for
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
851 |
the n plus one case.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
852 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
853 |
185
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
854 |
00:08:21,365 --> 00:08:24,350
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
855 |
And induction over wreck
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
856 |
expressions is very,
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
857 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
858 |
186
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
859 |
00:08:24,350 --> 00:08:26,810
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
860 |
very similar to this
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
861 |
kind of induction.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
862 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
863 |
187
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
864 |
00:08:26,810 --> 00:08:30,754
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
865 |
Just that in case of
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
866 |
break expressions,
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
867 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
868 |
188
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
869 |
00:08:30,754 --> 00:08:33,200
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
870 |
we have essentially
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
871 |
three base cases.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
872 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
873 |
189
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
874 |
00:08:33,200 --> 00:08:35,360
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
875 |
So in our grandma
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
876 |
or we say it rec,
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
877 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
878 |
190
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
879 |
00:08:35,360 --> 00:08:38,705
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
880 |
expressions are 01
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
881 |
and characters.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
882 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
883 |
191
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
884 |
00:08:38,705 --> 00:08:42,260
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
885 |
And these will be the base
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
886 |
cases in our induction.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
887 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
888 |
192
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
889 |
00:08:42,260 --> 00:08:43,895
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
890 |
So we have to establish
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
891 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
892 |
193
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
893 |
00:08:43,895 --> 00:08:46,475
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
894 |
any property we want
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
895 |
to prove by induction,
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
896 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
897 |
194
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
898 |
00:08:46,475 --> 00:08:49,055
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
899 |
you have to show
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
900 |
that it holds for 0,
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
901 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
902 |
195
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
903 |
00:08:49,055 --> 00:08:50,495
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
904 |
it holds for one,
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
905 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
906 |
196
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
907 |
00:08:50,495 --> 00:08:52,505
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
908 |
and it holds for the character.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
909 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
910 |
197
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
911 |
00:08:52,505 --> 00:08:57,350
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
912 |
So there's nothing else we
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
913 |
can assume in these cases.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
914 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
915 |
198
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
916 |
00:08:57,350 --> 00:08:59,300
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
917 |
We just have to prove
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
918 |
that this property
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
919 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
920 |
199
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
921 |
00:08:59,300 --> 00:09:01,835
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
922 |
holds in these three base cases.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
923 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
924 |
200
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
925 |
00:09:01,835 --> 00:09:04,490
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
926 |
It is very much the
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
927 |
same as if you proved
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
928 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
929 |
201
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
930 |
00:09:04,490 --> 00:09:06,050
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
931 |
something over natural numbers
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
932 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
933 |
202
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
934 |
00:09:06,050 --> 00:09:08,270
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
935 |
and you had to prove it for 0.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
936 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
937 |
203
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
938 |
00:09:08,270 --> 00:09:10,880
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
939 |
Now, the sequence case,
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
940 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
941 |
204
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
942 |
00:09:10,880 --> 00:09:12,755
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
943 |
the alternative in a star.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
944 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
945 |
205
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
946 |
00:09:12,755 --> 00:09:15,815
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
947 |
These are the kind
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
948 |
of inductive cases.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
949 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
950 |
206
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
951 |
00:09:15,815 --> 00:09:17,750
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
952 |
Remember in natural numbers,
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
953 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
954 |
207
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
955 |
00:09:17,750 --> 00:09:20,450
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
956 |
you could assume that
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
957 |
a property holds for
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
958 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
959 |
208
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
960 |
00:09:20,450 --> 00:09:24,770
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
961 |
n and then you had to
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
962 |
establish it for n plus one.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
963 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
964 |
209
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
965 |
00:09:24,770 --> 00:09:26,945
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
966 |
This is here very simmer.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
967 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
968 |
210
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
969 |
00:09:26,945 --> 00:09:29,000
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
970 |
You can assume that
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
971 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
972 |
211
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
973 |
00:09:29,000 --> 00:09:30,920
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
974 |
these properties hold for
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
975 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
976 |
212
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
977 |
00:09:30,920 --> 00:09:33,140
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
978 |
the components of
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
979 |
these reg expression.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
980 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
981 |
213
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
982 |
00:09:33,140 --> 00:09:35,840
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
983 |
So you can assume that it
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
984 |
holds for this on one,
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
985 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
986 |
214
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
987 |
00:09:35,840 --> 00:09:38,960
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
988 |
and you can assume that
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
989 |
it holds for this R2.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
990 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
991 |
215
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
992 |
00:09:38,960 --> 00:09:41,090
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
993 |
And your task is now to
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
994 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
995 |
216
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
996 |
00:09:41,090 --> 00:09:44,240
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
997 |
establish this property
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
998 |
also for sequences.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
999 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1000 |
217
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1001 |
00:09:44,240 --> 00:09:46,255
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1002 |
The same for alternative soup.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1003 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1004 |
218
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1005 |
00:09:46,255 --> 00:09:48,710
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1006 |
Assume that it holds
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1007 |
already for R1.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1008 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1009 |
219
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1010 |
00:09:48,710 --> 00:09:51,005
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1011 |
You can assume that
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1012 |
it holds for the R2.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1013 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1014 |
220
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1015 |
00:09:51,005 --> 00:09:53,930
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1016 |
You have to establish that
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1017 |
this property holds also for
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1018 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1019 |
221
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1020 |
00:09:53,930 --> 00:09:58,460
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1021 |
the entire alternative,
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1022 |
the same four star.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1023 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1024 |
222
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1025 |
00:09:58,460 --> 00:10:00,440
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1026 |
So there you can assume it for r,
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1027 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1028 |
223
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1029 |
00:10:00,440 --> 00:10:02,330
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1030 |
but you have to now
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1031 |
establish it that
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1032 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1033 |
224
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1034 |
00:10:02,330 --> 00:10:04,760
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1035 |
it also holds for r star.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1036 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1037 |
225
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1038 |
00:10:04,760 --> 00:10:07,910
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1039 |
Ok, that leads to this
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1040 |
simple-minded recipe
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1041 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1042 |
226
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1043 |
00:10:07,910 --> 00:10:09,560
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1044 |
which you can always follow.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1045 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1046 |
227
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1047 |
00:10:09,560 --> 00:10:10,970
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1048 |
So first you have to know
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1049 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1050 |
228
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1051 |
00:10:10,970 --> 00:10:13,085
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1052 |
what's the property
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1053 |
you want to show.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1054 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1055 |
229
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1056 |
00:10:13,085 --> 00:10:16,790
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1057 |
Luckily for you, that's
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1058 |
almost always given by me.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1059 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1060 |
230
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1061 |
00:10:16,790 --> 00:10:19,100
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1062 |
So there's nothing
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1063 |
to think about it.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1064 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1065 |
231
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1066 |
00:10:19,100 --> 00:10:22,100
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1067 |
But then what you have to
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1068 |
do in an induction proof,
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1069 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1070 |
232
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1071 |
00:10:22,100 --> 00:10:23,855
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1072 |
you have to show that
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1073 |
this property holds
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1074 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1075 |
233
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1076 |
00:10:23,855 --> 00:10:26,345
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1077 |
for 041 and characters.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1078 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1079 |
234
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1080 |
00:10:26,345 --> 00:10:28,790
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1081 |
These are the base
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1082 |
cases in the induction.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1083 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1084 |
235
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1085 |
00:10:28,790 --> 00:10:31,280
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1086 |
And then in the induction cases,
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1087 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1088 |
236
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1089 |
00:10:31,280 --> 00:10:32,555
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1090 |
you just have to say, well,
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1091 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1092 |
237
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1093 |
00:10:32,555 --> 00:10:34,535
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1094 |
I know that this
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1095 |
property holds for one,
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1096 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1097 |
238
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1098 |
00:10:34,535 --> 00:10:36,980
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1099 |
I know that the
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1100 |
property holds for R2.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1101 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1102 |
239
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1103 |
00:10:36,980 --> 00:10:38,720
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1104 |
What does it look like that
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1105 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1106 |
240
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1107 |
00:10:38,720 --> 00:10:40,895
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1108 |
this property holds
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1109 |
for the alternative,
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1110 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1111 |
241
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1112 |
00:10:40,895 --> 00:10:44,480
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1113 |
for the sequence
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1114 |
and for the r-star,
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1115 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1116 |
242
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1117 |
00:10:44,480 --> 00:10:46,955
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1118 |
that will then requires
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1119 |
some reasoning.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1120 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1121 |
243
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1122 |
00:10:46,955 --> 00:10:48,230
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1123 |
But if you know what you can
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1124 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1125 |
244
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1126 |
00:10:48,230 --> 00:10:50,359
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1127 |
assume and what do you
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1128 |
have to establish?
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1129 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1130 |
245
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1131 |
00:10:50,359 --> 00:10:52,940
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1132 |
Often can already see bought
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1133 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1134 |
246
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1135 |
00:10:52,940 --> 00:10:55,490
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1136 |
needs to be proved and
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1137 |
what's the argument like?
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1138 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1139 |
247
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1140 |
00:10:55,490 --> 00:10:58,325
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1141 |
So let's try that and
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1142 |
then concrete example.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1143 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1144 |
248
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1145 |
00:10:58,325 --> 00:11:01,265
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1146 |
So how does approve
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1147 |
work in real life?
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1148 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1149 |
249
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1150 |
00:11:01,265 --> 00:11:03,530
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1151 |
And say that the beginning
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1152 |
first you have to know
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1153 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1154 |
250
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1155 |
00:11:03,530 --> 00:11:05,630
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1156 |
what's the property
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1157 |
you want to prove.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1158 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1159 |
251
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1160 |
00:11:05,630 --> 00:11:10,280
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1161 |
So in our case, the P of R is if
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1162 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1163 |
252
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1164 |
00:11:10,280 --> 00:11:14,900
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1165 |
nullable of R holds if
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1166 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1167 |
253
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1168 |
00:11:14,900 --> 00:11:19,760
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1169 |
and only if the empty string
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1170 |
is in the language of.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1171 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1172 |
254
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1173 |
00:11:19,760 --> 00:11:23,690
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1174 |
So we want to do an induction
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1175 |
of rec expressions.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1176 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1177 |
255
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1178 |
00:11:23,690 --> 00:11:28,400
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1179 |
So we better have Fan property
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1180 |
which depends on this
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1181 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1182 |
256
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1183 |
00:11:28,400 --> 00:11:31,130
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1184 |
R. And so now in
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1185 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1186 |
257
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1187 |
00:11:31,130 --> 00:11:34,985
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1188 |
each case I would start with
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1189 |
a blank piece of paper.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1190 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1191 |
258
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1192 |
00:11:34,985 --> 00:11:38,030
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1193 |
And I would write on the top,
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1194 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1195 |
259
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1196 |
00:11:38,030 --> 00:11:40,190
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1197 |
what are my assumptions?
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1198 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1199 |
260
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1200 |
00:11:40,190 --> 00:11:42,470
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1201 |
And on the bottom, I would write
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1202 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1203 |
261
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1204 |
00:11:42,470 --> 00:11:45,485
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1205 |
down what I need to prove.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1206 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1207 |
262
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1208 |
00:11:45,485 --> 00:11:49,280
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1209 |
And then I would try
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1210 |
to somehow navigate
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1211 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1212 |
263
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1213 |
00:11:49,280 --> 00:11:53,540
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1214 |
my way from these assumptions
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1215 |
to what I want to prove,
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1216 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1217 |
264
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1218 |
00:11:53,540 --> 00:11:57,740
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1219 |
to somehow infer
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1220 |
small steps so that I
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1221 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1222 |
265
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1223 |
00:11:57,740 --> 00:11:59,960
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1224 |
can assure that what I'm trying
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1225 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1226 |
266
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1227 |
00:11:59,960 --> 00:12:02,780
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1228 |
to prove holds for
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1229 |
my assumptions.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1230 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1231 |
267
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1232 |
00:12:02,780 --> 00:12:06,905
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1233 |
Obviously. That depends
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1234 |
on how hard that case is.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1235 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1236 |
268
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1237 |
00:12:06,905 --> 00:12:08,930
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1238 |
And if you look at
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1239 |
our first case,
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1240 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1241 |
269
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1242 |
00:12:08,930 --> 00:12:10,835
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1243 |
what we have to show is if to
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1244 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1245 |
270
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1246 |
00:12:10,835 --> 00:12:13,655
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1247 |
prove that this P of 0 holds.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1248 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1249 |
271
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1250 |
00:12:13,655 --> 00:12:15,410
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1251 |
And actually no assumption in
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1252 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1253 |
272
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1254 |
00:12:15,410 --> 00:12:17,450
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1255 |
this case because it's
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1256 |
one of the base cases.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1257 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1258 |
273
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1259 |
00:12:17,450 --> 00:12:23,015
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1260 |
So what I have to show is I
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1261 |
have to show that nullable of
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1262 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1263 |
274
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1264 |
00:12:23,015 --> 00:12:29,570
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1265 |
0 if and only if the empty
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1266 |
string is in L of 0.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1267 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1268 |
275
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1269 |
00:12:29,570 --> 00:12:31,340
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1270 |
Okay? And I have to
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1271 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1272 |
276
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1273 |
00:12:31,340 --> 00:12:34,190
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1274 |
somehow show that this
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1275 |
implementation of nullable in
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1276 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1277 |
277
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1278 |
00:12:34,190 --> 00:12:35,600
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1279 |
this case produces
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1280 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1281 |
278
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1282 |
00:12:35,600 --> 00:12:39,185
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1283 |
exactly the same answer
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1284 |
as that specification.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1285 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1286 |
279
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1287 |
00:12:39,185 --> 00:12:41,660
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1288 |
Okay? So what is nullable of 0 is
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1289 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1290 |
280
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1291 |
00:12:41,660 --> 00:12:45,605
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1292 |
defined where debt is
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1293 |
just false by definition.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1294 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1295 |
281
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1296 |
00:12:45,605 --> 00:12:50,225
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1297 |
And what is this
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1298 |
language of LCA defined?
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1299 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1300 |
282
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1301 |
00:12:50,225 --> 00:12:52,535
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1302 |
Well, that is just
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1303 |
the empty string.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1304 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1305 |
283
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1306 |
00:12:52,535 --> 00:12:55,010
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1307 |
In the empty language.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1308 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1309 |
284
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1310 |
00:12:55,010 --> 00:12:57,110
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1311 |
Is the empty string and
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1312 |
the empty language,
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1313 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1314 |
285
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1315 |
00:12:57,110 --> 00:12:59,240
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1316 |
no, that is false too.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1317 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1318 |
286
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1319 |
00:12:59,240 --> 00:13:01,610
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1320 |
So I have shown that
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1321 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1322 |
287
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1323 |
00:13:01,610 --> 00:13:03,890
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1324 |
both of them produce
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1325 |
the same result.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1326 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1327 |
288
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1328 |
00:13:03,890 --> 00:13:08,765
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1329 |
So I would already be done
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1330 |
in the first base case.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1331 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1332 |
289
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1333 |
00:13:08,765 --> 00:13:12,125
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1334 |
The second base case is not
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1335 |
so much more difficult.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1336 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1337 |
290
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1338 |
00:13:12,125 --> 00:13:15,455
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1339 |
We want to prove
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1340 |
that P of one holds.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1341 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1342 |
291
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1343 |
00:13:15,455 --> 00:13:21,680
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1344 |
And that would say
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1345 |
if nullable of one,
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1346 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1347 |
292
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1348 |
00:13:21,680 --> 00:13:23,825
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1349 |
if and only if
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1350 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1351 |
293
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1352 |
00:13:23,825 --> 00:13:27,665
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1353 |
the empty string is in
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1354 |
the language of one.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1355 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1356 |
294
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1357 |
00:13:27,665 --> 00:13:31,235
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1358 |
Okay? I can again look
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1359 |
at what's that defined,
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1360 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1361 |
295
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1362 |
00:13:31,235 --> 00:13:33,275
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1363 |
that is defined as true.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1364 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1365 |
296
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1366 |
00:13:33,275 --> 00:13:35,450
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1367 |
And what is this language to
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1368 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1369 |
297
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1370 |
00:13:35,450 --> 00:13:37,640
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1371 |
find where that is defined as
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1372 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1373 |
298
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1374 |
00:13:37,640 --> 00:13:39,320
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1375 |
the empty string in
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1376 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1377 |
299
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1378 |
00:13:39,320 --> 00:13:42,230
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1379 |
the language containing
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1380 |
the empty string.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1381 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1382 |
300
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1383 |
00:13:42,230 --> 00:13:44,150
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1384 |
And is the empty string in
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1385 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1386 |
301
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1387 |
00:13:44,150 --> 00:13:46,055
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1388 |
the language containing
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1389 |
the empty string?
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1390 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1391 |
302
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1392 |
00:13:46,055 --> 00:13:47,975
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1393 |
Yes, that's true as well.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1394 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1395 |
303
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1396 |
00:13:47,975 --> 00:13:50,735
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1397 |
So again, I've shown that
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1398 |
the actual implementation
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1399 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1400 |
304
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1401 |
00:13:50,735 --> 00:13:55,250
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1402 |
produces the same result
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1403 |
as the specification.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1404 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1405 |
305
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1406 |
00:13:55,250 --> 00:13:57,635
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1407 |
I leave the character base case
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1408 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1409 |
306
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1410 |
00:13:57,635 --> 00:14:00,690
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1411 |
for you to fill in the details.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1412 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1413 |
307
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1414 |
00:14:01,150 --> 00:14:03,320
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1415 |
More interesting are these
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1416 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1417 |
308
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1418 |
00:14:03,320 --> 00:14:05,300
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1419 |
inductive cases as
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1420 |
you can imagine.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1421 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1422 |
309
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1423 |
00:14:05,300 --> 00:14:08,360
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1424 |
So let's try to prove
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1425 |
it for the alternative.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1426 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1427 |
310
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1428 |
00:14:08,360 --> 00:14:10,639
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1429 |
So I want to show a property
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1430 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1431 |
311
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1432 |
00:14:10,639 --> 00:14:13,790
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1433 |
for this record expression way.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1434 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1435 |
312
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1436 |
00:14:13,790 --> 00:14:15,410
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1437 |
What does our property save
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1438 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1439 |
313
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1440 |
00:14:15,410 --> 00:14:16,970
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1441 |
for that reg expression
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1442 |
where we have to
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1443 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1444 |
314
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1445 |
00:14:16,970 --> 00:14:20,915
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1446 |
say that nullable of
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1447 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1448 |
315
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1449 |
00:14:20,915 --> 00:14:25,490
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1450 |
R1 plus R2 if and only if
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1451 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1452 |
316
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1453 |
00:14:25,490 --> 00:14:31,519
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1454 |
the empty string is in the
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1455 |
language if R1 plus R2.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1456 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1457 |
317
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1458 |
00:14:31,519 --> 00:14:35,090
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1459 |
Ok? So I would now go ahead with
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1460 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1461 |
318
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1462 |
00:14:35,090 --> 00:14:39,695
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1463 |
my plank piece of paper and
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1464 |
I would write down on top.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1465 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1466 |
319
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1467 |
00:14:39,695 --> 00:14:41,475
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1468 |
Now what can I assume?
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1469 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1470 |
320
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1471 |
00:14:41,475 --> 00:14:45,170
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1472 |
Well, I can assume
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1473 |
that P of R1 holds and
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1474 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1475 |
321
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1476 |
00:14:45,170 --> 00:14:49,175
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1477 |
I can assume what
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1478 |
p of r two holds.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1479 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1480 |
322
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1481 |
00:14:49,175 --> 00:14:50,750
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1482 |
And let's just write that down.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1483 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1484 |
323
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1485 |
00:14:50,750 --> 00:14:56,210
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1486 |
We can say that nullable of R1 if
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1487 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1488 |
324
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1489 |
00:14:56,210 --> 00:14:58,655
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1490 |
and only if the empty string
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1491 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1492 |
325
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1493 |
00:14:58,655 --> 00:15:02,000
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1494 |
is in the language of
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1495 |
R1, I can assume that.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1496 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1497 |
326
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1498 |
00:15:02,000 --> 00:15:03,500
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1499 |
And I can assume
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1500 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1501 |
327
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1502 |
00:15:03,500 --> 00:15:10,355
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1503 |
that none above our two if
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1504 |
and only if the empty string.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1505 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1506 |
328
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1507 |
00:15:10,355 --> 00:15:14,675
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1508 |
Or to Hawaii. What's now,
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1509 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1510 |
329
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1511 |
00:15:14,675 --> 00:15:15,830
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1512 |
what do I want to prove?
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1513 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1514 |
330
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1515 |
00:15:15,830 --> 00:15:18,455
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1516 |
Where I want to
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1517 |
prove this property?
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1518 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1519 |
331
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1520 |
00:15:18,455 --> 00:15:21,935
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1521 |
So let me write this here
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1522 |
again on the bottom.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1523 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1524 |
332
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1525 |
00:15:21,935 --> 00:15:30,935
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1526 |
So p of R1 plus R2
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1527 |
is narrow form of R1
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1528 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1529 |
333
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1530 |
00:15:30,935 --> 00:15:34,595
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1531 |
plus R2 if and only if
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1532 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1533 |
334
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1534 |
00:15:34,595 --> 00:15:40,610
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1535 |
the empty string is in the
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1536 |
language of R1 plus R2.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1537 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1538 |
335
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1539 |
00:15:40,610 --> 00:15:43,280
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1540 |
Well, the first thing I can do is
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1541 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1542 |
336
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1543 |
00:15:43,280 --> 00:15:46,760
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1544 |
I can infer what's the
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1545 |
definition of that?
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1546 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1547 |
337
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1548 |
00:15:46,760 --> 00:15:51,920
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1549 |
Where that would
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1550 |
be nullable of R1
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1551 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1552 |
338
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1553 |
00:15:51,920 --> 00:15:57,530
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1554 |
or nullable of our two.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1555 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1556 |
339
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1557 |
00:15:57,530 --> 00:15:59,960
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1558 |
That's how it was defined, okay?
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1559 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1560 |
340
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1561 |
00:15:59,960 --> 00:16:01,730
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1562 |
And what can I do with this?
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1563 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1564 |
341
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1565 |
00:16:01,730 --> 00:16:04,700
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1566 |
I can also look at how is
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1567 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1568 |
342
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1569 |
00:16:04,700 --> 00:16:08,510
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1570 |
this language to find
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1571 |
where that is defined as
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1572 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1573 |
343
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1574 |
00:16:08,510 --> 00:16:16,730
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1575 |
the empty string in the
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1576 |
language of R1 union R2.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1577 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1578 |
344
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1579 |
00:16:16,730 --> 00:16:19,910
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1580 |
Okay? So what does that mean?
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1581 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1582 |
345
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1583 |
00:16:19,910 --> 00:16:23,585
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1584 |
Well, Venice, the empty
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1585 |
string in a union.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1586 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1587 |
346
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1588 |
00:16:23,585 --> 00:16:27,095
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1589 |
Well, it has to be
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1590 |
the case that either
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1591 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1592 |
347
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1593 |
00:16:27,095 --> 00:16:31,190
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1594 |
the empty string
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1595 |
is in L of R one,
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1596 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1597 |
348
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1598 |
00:16:31,190 --> 00:16:37,670
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1599 |
all the empty string
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1600 |
is o. L of R two.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1601 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1602 |
349
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1603 |
00:16:37,670 --> 00:16:43,715
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1604 |
Ok, so that's, I just
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1605 |
applied all the definitions.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1606 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1607 |
350
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1608 |
00:16:43,715 --> 00:16:47,930
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1609 |
And now I have to look better
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1610 |
my induction hypothesis.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1611 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1612 |
351
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1613 |
00:16:47,930 --> 00:16:50,930
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1614 |
These somehow help.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1615 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1616 |
352
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1617 |
00:16:50,930 --> 00:16:55,820
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1618 |
Well, I know nullable
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1619 |
of R1 holds if
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1620 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1621 |
353
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1622 |
00:16:55,820 --> 00:17:00,815
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1623 |
and only if the empty
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1624 |
string is in L of one.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1625 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1626 |
354
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1627 |
00:17:00,815 --> 00:17:05,330
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1628 |
So that is by the induction
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1629 |
hypothesis, a hypothesis.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1630 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1631 |
355
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1632 |
00:17:05,330 --> 00:17:07,670
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1633 |
And I also know by this,
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1634 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1635 |
356
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1636 |
00:17:07,670 --> 00:17:10,040
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1637 |
that this holds only if
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1638 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1639 |
357
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1640 |
00:17:10,040 --> 00:17:17,465
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1641 |
the empty string is in R2
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1642 |
and there's an in-between.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1643 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1644 |
358
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1645 |
00:17:17,465 --> 00:17:19,580
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1646 |
Now you can see again,
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1647 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1648 |
359
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1649 |
00:17:19,580 --> 00:17:23,690
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1650 |
this is what my specification
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1651 |
say It must hold.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1652 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1653 |
360
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1654 |
00:17:23,690 --> 00:17:25,640
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1655 |
And this is essentially
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1656 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1657 |
361
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1658 |
00:17:25,640 --> 00:17:28,685
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1659 |
what I could infer from
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1660 |
my implementation.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1661 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1662 |
362
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1663 |
00:17:28,685 --> 00:17:30,140
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1664 |
And they are the same.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1665 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1666 |
363
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1667 |
00:17:30,140 --> 00:17:32,270
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1668 |
So also this case,
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1669 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1670 |
364
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1671 |
00:17:32,270 --> 00:17:35,520
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1672 |
I've shown my property holds.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1673 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1674 |
365
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1675 |
00:17:35,740 --> 00:17:39,275
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1676 |
Just for fun. Let's do this
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1677 |
also for the sequence.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1678 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1679 |
366
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1680 |
00:17:39,275 --> 00:17:43,835
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1681 |
So we want to show
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1682 |
P of 014 by two.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1683 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1684 |
367
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1685 |
00:17:43,835 --> 00:17:51,050
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1686 |
And that means I have to
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1687 |
prove that nullable of R1 by
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1688 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1689 |
368
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1690 |
00:17:51,050 --> 00:17:54,095
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1691 |
R2 if and only if
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1692 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1693 |
369
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1694 |
00:17:54,095 --> 00:18:00,440
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1695 |
the empty string is
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1696 |
one followed by two.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1697 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1698 |
370
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1699 |
00:18:00,440 --> 00:18:04,880
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1700 |
Ok? And in this case
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1701 |
I'm just writing
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1702 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1703 |
371
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1704 |
00:18:04,880 --> 00:18:09,695
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1705 |
my induction
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1706 |
hypothesis on the top.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1707 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1708 |
372
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1709 |
00:18:09,695 --> 00:18:11,060
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1710 |
And that would be,
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1711 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1712 |
373
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1713 |
00:18:11,060 --> 00:18:13,460
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1714 |
I know that p of r one holds.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1715 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1716 |
374
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1717 |
00:18:13,460 --> 00:18:18,290
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1718 |
So another ball of R one
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1719 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1720 |
375
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1721 |
00:18:18,290 --> 00:18:24,860
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1722 |
if and only if the empty
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1723 |
string is in L one.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1724 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1725 |
376
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1726 |
00:18:24,860 --> 00:18:29,525
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1727 |
And the P of R to say
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1728 |
is that I know already
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1729 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1730 |
377
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1731 |
00:18:29,525 --> 00:18:36,815
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1732 |
nullable of R2 if and only
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1733 |
if the empty string then R2.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1734 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1735 |
378
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1736 |
00:18:36,815 --> 00:18:39,230
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1737 |
Okay? And I know some hard to
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1738 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1739 |
379
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1740 |
00:18:39,230 --> 00:18:42,285
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1741 |
infer that under
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1742 |
these assumptions,
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1743 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1744 |
380
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1745 |
00:18:42,285 --> 00:18:45,970
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1746 |
this property, like
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1747 |
in the earlier case,
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1748 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1749 |
381
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1750 |
00:18:45,970 --> 00:18:48,070
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1751 |
I just have a look how
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1752 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1753 |
382
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1754 |
00:18:48,070 --> 00:18:51,145
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1755 |
everything is defined and
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1756 |
see if I can go from there.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1757 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1758 |
383
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1759 |
00:18:51,145 --> 00:18:56,485
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1760 |
So nullable of the
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1761 |
sequence would be nullable
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1762 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1763 |
384
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1764 |
00:18:56,485 --> 00:19:04,555
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1765 |
of R1 and nullable of R2.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1766 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1767 |
385
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1768 |
00:19:04,555 --> 00:19:08,559
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1769 |
Okay? By the
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1770 |
induction hypothesis,
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1771 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1772 |
386
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1773 |
00:19:08,559 --> 00:19:16,255
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1774 |
I can now infer that
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1775 |
the empty string is
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1776 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1777 |
387
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1778 |
00:19:16,255 --> 00:19:24,750
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1779 |
in L one and the empty
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1780 |
string is in L two.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1781 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1782 |
388
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1783 |
00:19:24,750 --> 00:19:28,175
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1784 |
Ok? Not much as I
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1785 |
can do on this side.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1786 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1787 |
389
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1788 |
00:19:28,175 --> 00:19:31,520
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1789 |
But I can now try
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1790 |
to infer something
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1791 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1792 |
390
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1793 |
00:19:31,520 --> 00:19:33,110
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1794 |
here because I know how
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1795 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1796 |
391
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1797 |
00:19:33,110 --> 00:19:35,735
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1798 |
this L of this
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1799 |
sequence is defined.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1800 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1801 |
392
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1802 |
00:19:35,735 --> 00:19:39,665
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1803 |
That says the empty
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1804 |
string has to be n l,
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1805 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1806 |
393
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1807 |
00:19:39,665 --> 00:19:45,110
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1808 |
one append of L of R, two.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1809 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1810 |
394
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1811 |
00:19:45,110 --> 00:19:48,365
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1812 |
Ok? So they are not yet equal.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1813 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1814 |
395
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1815 |
00:19:48,365 --> 00:19:50,150
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1816 |
But now I have to
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1817 |
essentially scratch
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1818 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1819 |
396
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1820 |
00:19:50,150 --> 00:19:52,430
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1821 |
my head. What does that mean?
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1822 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1823 |
397
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1824 |
00:19:52,430 --> 00:19:54,965
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1825 |
So this is the language
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1826 |
concatenation,
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1827 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1828 |
398
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1829 |
00:19:54,965 --> 00:19:57,035
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1830 |
Venice, the empty string.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1831 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1832 |
399
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1833 |
00:19:57,035 --> 00:20:01,265
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1834 |
In this concatenation of
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1835 |
these two language as well.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1836 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1837 |
400
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1838 |
00:20:01,265 --> 00:20:05,990
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1839 |
It will be there if
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1840 |
L of our wormholes
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1841 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1842 |
401
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1843 |
00:20:05,990 --> 00:20:12,560
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1844 |
and The empty string
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1845 |
of L R2 holds.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1846 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1847 |
402
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1848 |
00:20:12,560 --> 00:20:14,600
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1849 |
And so again, I have shown that
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1850 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1851 |
403
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1852 |
00:20:14,600 --> 00:20:17,780
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1853 |
this is equivalent to that.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1854 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1855 |
404
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1856 |
00:20:17,780 --> 00:20:20,480
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1857 |
Which means that this must be
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1858 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1859 |
405
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1860 |
00:20:20,480 --> 00:20:24,540
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1861 |
equal to that o holds
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1862 |
if and only if.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1863 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1864 |
406
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1865 |
00:20:25,600 --> 00:20:28,940
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1866 |
Finally, the star case,
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1867 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1868 |
407
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1869 |
00:20:28,940 --> 00:20:31,235
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1870 |
p of r star.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1871 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1872 |
408
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1873 |
00:20:31,235 --> 00:20:35,450
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1874 |
Ok? So I know my
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1875 |
induction hypothesis,
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1876 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1877 |
409
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1878 |
00:20:35,450 --> 00:20:41,075
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1879 |
let me write it again on
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1880 |
the top that P of R holds,
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1881 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1882 |
410
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1883 |
00:20:41,075 --> 00:20:46,835
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1884 |
which means nullable of R if and
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1885 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1886 |
411
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1887 |
00:20:46,835 --> 00:20:53,060
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1888 |
only if the empty
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1889 |
string is in L. Okay?
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1890 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1891 |
412
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1892 |
00:20:53,060 --> 00:20:58,580
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1893 |
And I have to prove
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1894 |
that nullable of
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1895 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1896 |
413
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1897 |
00:20:58,580 --> 00:21:08,930
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1898 |
r star if and only if the
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1899 |
empty string is n l of r star.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1900 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1901 |
414
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1902 |
00:21:08,930 --> 00:21:15,020
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1903 |
Ok? So again, I just follow
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1904 |
how are things define?
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1905 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1906 |
415
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1907 |
00:21:15,020 --> 00:21:18,125
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1908 |
So this is defined
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1909 |
actually as true.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1910 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1911 |
416
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1912 |
00:21:18,125 --> 00:21:21,365
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1913 |
So a star's always nullable.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1914 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1915 |
417
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1916 |
00:21:21,365 --> 00:21:23,090
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1917 |
What is this defined where,
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1918 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1919 |
418
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1920 |
00:21:23,090 --> 00:21:26,225
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1921 |
remember that wants to find
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1922 |
using the Kleene star.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1923 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1924 |
419
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1925 |
00:21:26,225 --> 00:21:28,685
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1926 |
So that is essentially L of
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1927 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1928 |
420
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1929 |
00:21:28,685 --> 00:21:33,680
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1930 |
R. And then we had this
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1931 |
star on languages.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1932 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1933 |
421
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1934 |
00:21:33,680 --> 00:21:36,260
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1935 |
And does the star on
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1936 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1937 |
422
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1938 |
00:21:36,260 --> 00:21:39,380
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1939 |
languages always contain
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1940 |
the empty string?
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1941 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1942 |
423
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1943 |
00:21:39,380 --> 00:21:42,980
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1944 |
Yes, that is true as well.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1945 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1946 |
424
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1947 |
00:21:42,980 --> 00:21:45,320
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1948 |
And so again, I've
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1949 |
shown their clone.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1950 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1951 |
425
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1952 |
00:21:45,320 --> 00:21:47,420
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1953 |
And here you can see, even if I
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1954 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1955 |
426
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1956 |
00:21:47,420 --> 00:21:49,730
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1957 |
have here in this case
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1958 |
an induction hypothesis,
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1959 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1960 |
427
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1961 |
00:21:49,730 --> 00:21:51,860
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1962 |
I actually didn't need
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1963 |
that in my reasoning.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1964 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1965 |
428
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1966 |
00:21:51,860 --> 00:21:53,960
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1967 |
Well, that might happen.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1968 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1969 |
429
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1970 |
00:21:53,960 --> 00:21:56,840
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1971 |
This might have been the
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1972 |
first induction proof
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1973 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1974 |
430
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1975 |
00:21:56,840 --> 00:21:58,445
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1976 |
for regular expressions for you.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1977 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1978 |
431
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1979 |
00:21:58,445 --> 00:22:00,680
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1980 |
But you've seen at
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1981 |
Watson so difficult,
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1982 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1983 |
432
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1984 |
00:22:00,680 --> 00:22:02,480
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1985 |
you just follow this recipe.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1986 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1987 |
433
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1988 |
00:22:02,480 --> 00:22:04,280
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1989 |
It told us we can
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1990 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1991 |
434
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1992 |
00:22:04,280 --> 00:22:06,725
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1993 |
assume in each case
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1994 |
what we have to prove.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1995 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1996 |
435
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1997 |
00:22:06,725 --> 00:22:09,860
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1998 |
And then we essentially just
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
1999 |
followed what are things to
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2000 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2001 |
436
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2002 |
00:22:09,860 --> 00:22:13,595
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2003 |
find and try to infer
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2004 |
whether in each case,
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2005 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2006 |
437
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2007 |
00:22:13,595 --> 00:22:15,560
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2008 |
both of them produce
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2009 |
the same result,
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2010 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2011 |
438
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2012 |
00:22:15,560 --> 00:22:18,245
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2013 |
the specification and
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2014 |
the implementation.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2015 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2016 |
439
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2017 |
00:22:18,245 --> 00:22:20,300
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2018 |
And the great thing about this,
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2019 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2020 |
440
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2021 |
00:22:20,300 --> 00:22:22,250
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2022 |
if you've done all these cases,
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2023 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2024 |
441
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2025 |
00:22:22,250 --> 00:22:25,490
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2026 |
we not just know that it holds
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2027 |
for some reg expression,
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2028 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2029 |
442
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2030 |
00:22:25,490 --> 00:22:28,280
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2031 |
but actually it holds for
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2032 |
all wreck expressions be
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2033 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2034 |
443
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2035 |
00:22:28,280 --> 00:22:30,890
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2036 |
couldn't achieve the same
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2037 |
result by looking just
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2038 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2039 |
444
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2040 |
00:22:30,890 --> 00:22:33,710
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2041 |
at testing because
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2042 |
we would not be
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2043 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2044 |
445
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2045 |
00:22:33,710 --> 00:22:37,280
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2046 |
able to test for all
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2047 |
record expressions.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2048 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2049 |
446
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2050 |
00:22:37,280 --> 00:22:39,560
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2051 |
Ok, of course, there will be
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2052 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2053 |
447
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2054 |
00:22:39,560 --> 00:22:43,010
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2055 |
also induction proofs which
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2056 |
are more complicated.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2057 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2058 |
448
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2059 |
00:22:43,010 --> 00:22:46,170
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2060 |
But let's leave that
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2061 |
for another time.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2062 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2063 |
449
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2064 |
00:22:49,210 --> 00:22:53,405
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2065 |
You know, I always like to
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2066 |
talk about the subject.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2067 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2068 |
450
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2069 |
00:22:53,405 --> 00:22:55,700
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2070 |
So here's one last thought.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2071 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2072 |
451
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2073 |
00:22:55,700 --> 00:22:58,040
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2074 |
You might think these proofs for
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2075 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2076 |
452
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2077 |
00:22:58,040 --> 00:22:59,930
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2078 |
this little property
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2079 |
about nullable are
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2080 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2081 |
453
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2082 |
00:22:59,930 --> 00:23:04,295
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2083 |
totally overkill and
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2084 |
total waste of your time.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2085 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2086 |
454
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2087 |
00:23:04,295 --> 00:23:07,310
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2088 |
Please rest assured disproves
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2089 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2090 |
455
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2091 |
00:23:07,310 --> 00:23:10,160
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2092 |
have saved me from so
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2093 |
much embarrassment.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2094 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2095 |
456
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2096 |
00:23:10,160 --> 00:23:13,745
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2097 |
You cannot imagine,
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2098 |
once I have a proof,
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2099 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2100 |
457
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2101 |
00:23:13,745 --> 00:23:15,425
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2102 |
I can sleep much better.
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2103 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2104 |
458
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2105 |
00:23:15,425 --> 00:23:16,820
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2106 |
If I don't have a proof,
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2107 |
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2108 |
459
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2109 |
00:23:16,820 --> 00:23:19,560
|
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff
changeset
|
2110 |
I don't believe what I'm doing.
|