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