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