WEBVTT
Kind: captions
Language: en

00:00:11.980 --> 00:00:13.509 align:start position:0%
 
hello<00:00:12.980><c> everyone</c>

00:00:13.509 --> 00:00:13.519 align:start position:0%
hello everyone
 

00:00:13.519 --> 00:00:16.390 align:start position:0%
hello everyone
test<00:00:13.789><c> test</c><00:00:14.379><c> yeah</c><00:00:15.409><c> I'm</c><00:00:15.589><c> Everett</c><00:00:15.889><c> Hilton</c><00:00:16.190><c> Brandt</c>

00:00:16.390 --> 00:00:16.400 align:start position:0%
test test yeah I'm Everett Hilton Brandt
 

00:00:16.400 --> 00:00:18.880 align:start position:0%
test test yeah I'm Everett Hilton Brandt
and<00:00:16.970><c> I</c><00:00:17.660><c> should</c><00:00:17.840><c> have</c><00:00:17.930><c> put</c><00:00:18.080><c> also</c><00:00:18.290><c> my</c><00:00:18.560><c> group</c><00:00:18.740><c> on</c>

00:00:18.880 --> 00:00:18.890 align:start position:0%
and I should have put also my group on
 

00:00:18.890 --> 00:00:20.080 align:start position:0%
and I should have put also my group on
there<00:00:19.070><c> but</c><00:00:19.250><c> I</c><00:00:19.280><c> was</c><00:00:19.460><c> kind</c><00:00:19.610><c> of</c><00:00:19.670><c> in</c><00:00:19.760><c> a</c><00:00:19.820><c> rush</c><00:00:19.940><c> to</c>

00:00:20.080 --> 00:00:20.090 align:start position:0%
there but I was kind of in a rush to
 

00:00:20.090 --> 00:00:21.070 align:start position:0%
there but I was kind of in a rush to
make<00:00:20.120><c> the</c><00:00:20.270><c> slides</c><00:00:20.510><c> because</c><00:00:20.720><c> it</c><00:00:20.870><c> was</c><00:00:20.960><c> all</c><00:00:21.050><c> a</c>

00:00:21.070 --> 00:00:21.080 align:start position:0%
make the slides because it was all a
 

00:00:21.080 --> 00:00:22.420 align:start position:0%
make the slides because it was all a
little<00:00:21.170><c> bit</c><00:00:21.320><c> last-minute</c><00:00:21.710><c> but</c><00:00:22.070><c> you</c><00:00:22.340><c> know</c>

00:00:22.420 --> 00:00:22.430 align:start position:0%
little bit last-minute but you know
 

00:00:22.430 --> 00:00:24.010 align:start position:0%
little bit last-minute but you know
that's<00:00:22.610><c> how</c><00:00:22.700><c> it</c><00:00:22.730><c> goes</c>

00:00:24.010 --> 00:00:24.020 align:start position:0%
that's how it goes
 

00:00:24.020 --> 00:00:25.900 align:start position:0%
that's how it goes
and<00:00:24.260><c> the</c><00:00:24.770><c> original</c><00:00:25.100><c> title</c><00:00:25.370><c> was</c><00:00:25.400><c> overview</c><00:00:25.850><c> on</c>

00:00:25.900 --> 00:00:25.910 align:start position:0%
and the original title was overview on
 

00:00:25.910 --> 00:00:27.280 align:start position:0%
and the original title was overview on
progress<00:00:26.210><c> report</c><00:00:26.570><c> and</c><00:00:26.720><c> then</c><00:00:26.870><c> I</c><00:00:26.900><c> decided</c>

00:00:27.280 --> 00:00:27.290 align:start position:0%
progress report and then I decided
 

00:00:27.290 --> 00:00:28.930 align:start position:0%
progress report and then I decided
yesterday<00:00:27.770><c> that</c><00:00:27.980><c> more</c><00:00:28.220><c> kind</c><00:00:28.520><c> of</c><00:00:28.580><c> a</c><00:00:28.640><c> Kay</c><00:00:28.760><c> by</c>

00:00:28.930 --> 00:00:28.940 align:start position:0%
yesterday that more kind of a Kay by
 

00:00:28.940 --> 00:00:31.210 align:start position:0%
yesterday that more kind of a Kay by
example<00:00:29.360><c> approach</c><00:00:29.600><c> would</c><00:00:29.810><c> go</c><00:00:29.990><c> better</c><00:00:30.800><c> here</c><00:00:31.070><c> so</c>

00:00:31.210 --> 00:00:31.220 align:start position:0%
example approach would go better here so
 

00:00:31.220 --> 00:00:33.100 align:start position:0%
example approach would go better here so
I<00:00:31.280><c> figured</c><00:00:31.640><c> I'll</c><00:00:32.329><c> put</c><00:00:32.539><c> that</c><00:00:32.629><c> as</c><00:00:32.780><c> a</c><00:00:32.809><c> subtitle</c>

00:00:33.100 --> 00:00:33.110 align:start position:0%
I figured I'll put that as a subtitle
 

00:00:33.110 --> 00:00:34.900 align:start position:0%
I figured I'll put that as a subtitle
but<00:00:33.680><c> still</c><00:00:33.890><c> leave</c><00:00:34.010><c> the</c><00:00:34.040><c> original</c><00:00:34.430><c> ones</c><00:00:34.579><c> so</c><00:00:34.850><c> I</c>

00:00:34.900 --> 00:00:34.910 align:start position:0%
but still leave the original ones so I
 

00:00:34.910 --> 00:00:36.340 align:start position:0%
but still leave the original ones so I
don't<00:00:35.090><c> offend</c><00:00:35.210><c> anyone</c><00:00:35.690><c> or</c><00:00:35.720><c> something</c><00:00:36.140><c> so</c>

00:00:36.340 --> 00:00:36.350 align:start position:0%
don't offend anyone or something so
 

00:00:36.350 --> 00:00:39.970 align:start position:0%
don't offend anyone or something so
we'll<00:00:36.680><c> see</c><00:00:37.390><c> okay</c><00:00:38.390><c> so</c><00:00:38.450><c> what</c><00:00:38.900><c> is</c><00:00:39.020><c> K</c><00:00:39.260><c> K</c><00:00:39.680><c> is</c><00:00:39.829><c> this</c>

00:00:39.970 --> 00:00:39.980 align:start position:0%
we'll see okay so what is K K is this
 

00:00:39.980 --> 00:00:41.380 align:start position:0%
we'll see okay so what is K K is this
language<00:00:40.370><c> for</c><00:00:40.760><c> building</c><00:00:40.880><c> programming</c>

00:00:41.380 --> 00:00:41.390 align:start position:0%
language for building programming
 

00:00:41.390 --> 00:00:42.790 align:start position:0%
language for building programming
languages<00:00:41.750><c> in</c><00:00:41.900><c> and</c><00:00:42.079><c> then</c><00:00:42.230><c> you</c><00:00:42.350><c> get</c><00:00:42.440><c> to</c><00:00:42.560><c> derive</c>

00:00:42.790 --> 00:00:42.800 align:start position:0%
languages in and then you get to derive
 

00:00:42.800 --> 00:00:44.710 align:start position:0%
languages in and then you get to derive
a<00:00:42.829><c> bunch</c><00:00:43.070><c> of</c><00:00:43.130><c> tools</c><00:00:43.310><c> from</c><00:00:43.520><c> it</c><00:00:43.670><c> so</c><00:00:44.000><c> essentially</c>

00:00:44.710 --> 00:00:44.720 align:start position:0%
a bunch of tools from it so essentially
 

00:00:44.720 --> 00:00:46.360 align:start position:0%
a bunch of tools from it so essentially
you<00:00:45.140><c> give</c><00:00:45.410><c> us</c><00:00:45.530><c> the</c><00:00:45.710><c> formal</c><00:00:46.070><c> language</c>

00:00:46.360 --> 00:00:46.370 align:start position:0%
you give us the formal language
 

00:00:46.370 --> 00:00:49.150 align:start position:0%
you give us the formal language
definition<00:00:46.940><c> syntax</c><00:00:47.420><c> and</c><00:00:47.630><c> semantics</c><00:00:48.110><c> and</c><00:00:49.010><c> then</c>

00:00:49.150 --> 00:00:49.160 align:start position:0%
definition syntax and semantics and then
 

00:00:49.160 --> 00:00:50.590 align:start position:0%
definition syntax and semantics and then
we<00:00:49.250><c> derive</c><00:00:49.489><c> a</c><00:00:49.520><c> bunch</c><00:00:49.760><c> of</c><00:00:49.880><c> tools</c><00:00:50.030><c> for</c><00:00:50.270><c> me</c><00:00:50.360><c> so</c>

00:00:50.590 --> 00:00:50.600 align:start position:0%
we derive a bunch of tools for me so
 

00:00:50.600 --> 00:00:53.170 align:start position:0%
we derive a bunch of tools for me so
ones<00:00:50.840><c> that</c><00:00:51.140><c> are</c><00:00:51.470><c> more</c><00:00:52.070><c> in</c><00:00:52.430><c> the</c><00:00:52.640><c> vision</c><00:00:52.970><c> phase</c>

00:00:53.170 --> 00:00:53.180 align:start position:0%
ones that are more in the vision phase
 

00:00:53.180 --> 00:00:55.150 align:start position:0%
ones that are more in the vision phase
right<00:00:53.450><c> now</c><00:00:53.510><c> our</c><00:00:53.870><c> test</c><00:00:54.140><c> case</c><00:00:54.320><c> generation</c><00:00:54.739><c> and</c>

00:00:55.150 --> 00:00:55.160 align:start position:0%
right now our test case generation and
 

00:00:55.160 --> 00:00:57.130 align:start position:0%
right now our test case generation and
compiler<00:00:55.670><c> but</c><00:00:56.180><c> all</c><00:00:56.329><c> of</c><00:00:56.450><c> the</c><00:00:56.540><c> other</c><00:00:56.690><c> tools</c><00:00:56.960><c> you</c>

00:00:57.130 --> 00:00:57.140 align:start position:0%
compiler but all of the other tools you
 

00:00:57.140 --> 00:00:58.690 align:start position:0%
compiler but all of the other tools you
see<00:00:57.320><c> here</c><00:00:57.590><c> we</c><00:00:57.770><c> actually</c><00:00:58.070><c> derived</c><00:00:58.370><c> from</c><00:00:58.520><c> the</c>

00:00:58.690 --> 00:00:58.700 align:start position:0%
see here we actually derived from the
 

00:00:58.700 --> 00:01:00.490 align:start position:0%
see here we actually derived from the
one<00:00:58.820><c> semantics</c><00:00:59.390><c> so</c><00:00:59.870><c> that</c><00:00:59.989><c> means</c><00:01:00.200><c> that</c><00:01:00.380><c> the</c>

00:01:00.490 --> 00:01:00.500 align:start position:0%
one semantics so that means that the
 

00:01:00.500 --> 00:01:01.540 align:start position:0%
one semantics so that means that the
tool<00:01:00.680><c> that</c><00:01:00.829><c> you're</c><00:01:00.920><c> doing</c><00:01:01.130><c> symbolic</c>

00:01:01.540 --> 00:01:01.550 align:start position:0%
tool that you're doing symbolic
 

00:01:01.550 --> 00:01:03.790 align:start position:0%
tool that you're doing symbolic
execution<00:01:01.670><c> with</c><00:01:02.239><c> or</c><00:01:02.510><c> model</c><00:01:03.079><c> checking</c><00:01:03.410><c> with</c><00:01:03.559><c> or</c>

00:01:03.790 --> 00:01:03.800 align:start position:0%
execution with or model checking with or
 

00:01:03.800 --> 00:01:05.770 align:start position:0%
execution with or model checking with or
deductive<00:01:04.280><c> program</c><00:01:04.579><c> verification</c><00:01:04.759><c> or</c><00:01:05.449><c> you're</c>

00:01:05.770 --> 00:01:05.780 align:start position:0%
deductive program verification or you're
 

00:01:05.780 --> 00:01:09.070 align:start position:0%
deductive program verification or you're
executing<00:01:06.320><c> the</c><00:01:06.590><c> test</c><00:01:06.799><c> set</c><00:01:06.950><c> with</c><00:01:07.450><c> use</c><00:01:08.450><c> all</c><00:01:08.750><c> the</c>

00:01:09.070 --> 00:01:09.080 align:start position:0%
executing the test set with use all the
 

00:01:09.080 --> 00:01:10.180 align:start position:0%
executing the test set with use all the
same<00:01:09.229><c> semantics</c><00:01:09.770><c> there's</c><00:01:09.920><c> only</c><00:01:10.010><c> one</c>

00:01:10.180 --> 00:01:10.190 align:start position:0%
same semantics there's only one
 

00:01:10.190 --> 00:01:12.310 align:start position:0%
same semantics there's only one
semantics<00:01:10.670><c> that</c><00:01:10.760><c> all</c><00:01:11.659><c> of</c><00:01:11.750><c> them</c><00:01:11.870><c> are</c><00:01:11.960><c> using</c><00:01:12.260><c> if</c>

00:01:12.310 --> 00:01:12.320 align:start position:0%
semantics that all of them are using if
 

00:01:12.320 --> 00:01:13.719 align:start position:0%
semantics that all of them are using if
there's<00:01:12.470><c> no</c><00:01:12.620><c> way</c><00:01:12.740><c> for</c><00:01:12.770><c> them</c><00:01:13.010><c> to</c><00:01:13.040><c> disagree</c><00:01:13.520><c> on</c>

00:01:13.719 --> 00:01:13.729 align:start position:0%
there's no way for them to disagree on
 

00:01:13.729 --> 00:01:16.300 align:start position:0%
there's no way for them to disagree on
how<00:01:14.120><c> the</c><00:01:14.180><c> execution</c><00:01:14.720><c> happens</c><00:01:15.280><c> which</c><00:01:16.280><c> is</c>

00:01:16.300 --> 00:01:16.310 align:start position:0%
how the execution happens which is
 

00:01:16.310 --> 00:01:17.560 align:start position:0%
how the execution happens which is
important<00:01:16.790><c> when</c><00:01:16.909><c> you're</c><00:01:17.030><c> trying</c><00:01:17.090><c> to</c><00:01:17.240><c> verify</c>

00:01:17.560 --> 00:01:17.570 align:start position:0%
important when you're trying to verify
 

00:01:17.570 --> 00:01:18.609 align:start position:0%
important when you're trying to verify
the<00:01:17.630><c> program's</c><00:01:18.020><c> have</c><00:01:18.140><c> the</c><00:01:18.200><c> properties</c><00:01:18.590><c> you</c>

00:01:18.609 --> 00:01:18.619 align:start position:0%
the program's have the properties you
 

00:01:18.619 --> 00:01:21.550 align:start position:0%
the program's have the properties you
think<00:01:18.890><c> they</c><00:01:18.979><c> have</c><00:01:19.570><c> the</c><00:01:20.570><c> Kay</c><00:01:20.750><c> backend</c><00:01:21.200><c> I'm</c><00:01:21.409><c> not</c>

00:01:21.550 --> 00:01:21.560 align:start position:0%
think they have the Kay backend I'm not
 

00:01:21.560 --> 00:01:22.870 align:start position:0%
think they have the Kay backend I'm not
really<00:01:21.680><c> gonna</c><00:01:21.830><c> go</c><00:01:22.010><c> into</c><00:01:22.159><c> much</c><00:01:22.310><c> depth</c><00:01:22.580><c> on</c><00:01:22.729><c> this</c>

00:01:22.870 --> 00:01:22.880 align:start position:0%
really gonna go into much depth on this
 

00:01:22.880 --> 00:01:24.760 align:start position:0%
really gonna go into much depth on this
but<00:01:23.180><c> the</c><00:01:23.330><c> static</c><00:01:23.659><c> logic</c><00:01:23.990><c> we</c><00:01:24.080><c> use</c><00:01:24.260><c> for</c><00:01:24.500><c> matching</c>

00:01:24.760 --> 00:01:24.770 align:start position:0%
but the static logic we use for matching
 

00:01:24.770 --> 00:01:25.750 align:start position:0%
but the static logic we use for matching
configurations

00:01:25.750 --> 00:01:25.760 align:start position:0%
configurations
 

00:01:25.760 --> 00:01:28.810 align:start position:0%
configurations
it's<00:01:26.299><c> called</c><00:01:26.450><c> matching</c><00:01:26.659><c> logic</c><00:01:27.610><c> there's</c><00:01:28.610><c> some</c>

00:01:28.810 --> 00:01:28.820 align:start position:0%
it's called matching logic there's some
 

00:01:28.820 --> 00:01:30.310 align:start position:0%
it's called matching logic there's some
ongoing<00:01:29.000><c> work</c><00:01:29.420><c> on</c><00:01:29.600><c> showing</c><00:01:29.840><c> that</c><00:01:30.020><c> this</c><00:01:30.170><c> is</c><00:01:30.290><c> a</c>

00:01:30.310 --> 00:01:30.320 align:start position:0%
ongoing work on showing that this is a
 

00:01:30.320 --> 00:01:32.020 align:start position:0%
ongoing work on showing that this is a
generalization<00:01:30.740><c> of</c><00:01:31.070><c> separation</c><00:01:31.580><c> logic</c><00:01:31.909><c> and</c>

00:01:32.020 --> 00:01:32.030 align:start position:0%
generalization of separation logic and
 

00:01:32.030 --> 00:01:33.280 align:start position:0%
generalization of separation logic and
the<00:01:32.090><c> poly</c><00:01:32.270><c> otic</c><00:01:32.510><c> modal</c><00:01:32.780><c> logics</c><00:01:33.140><c> and</c>

00:01:33.280 --> 00:01:33.290 align:start position:0%
the poly otic modal logics and
 

00:01:33.290 --> 00:01:35.380 align:start position:0%
the poly otic modal logics and
first-order<00:01:34.250><c> logic</c><00:01:34.400><c> as</c><00:01:34.670><c> well</c><00:01:34.700><c> and</c><00:01:35.060><c> stuff</c><00:01:35.240><c> like</c>

00:01:35.380 --> 00:01:35.390 align:start position:0%
first-order logic as well and stuff like
 

00:01:35.390 --> 00:01:36.850 align:start position:0%
first-order logic as well and stuff like
that<00:01:35.570><c> so</c><00:01:35.840><c> well</c><00:01:36.409><c> and</c><00:01:36.560><c> when</c><00:01:36.680><c> I</c><00:01:36.710><c> say</c>

00:01:36.850 --> 00:01:36.860 align:start position:0%
that so well and when I say
 

00:01:36.860 --> 00:01:38.170 align:start position:0%
that so well and when I say
generalization<00:01:37.460><c> I</c><00:01:37.549><c> really</c><00:01:37.760><c> just</c><00:01:37.909><c> mean</c><00:01:38.030><c> like</c>

00:01:38.170 --> 00:01:38.180 align:start position:0%
generalization I really just mean like
 

00:01:38.180 --> 00:01:41.140 align:start position:0%
generalization I really just mean like
there's<00:01:38.390><c> embeddings</c><00:01:38.990><c> into</c><00:01:39.320><c> it</c><00:01:39.439><c> and</c><00:01:40.250><c> then</c><00:01:40.790><c> also</c>

00:01:41.140 --> 00:01:41.150 align:start position:0%
there's embeddings into it and then also
 

00:01:41.150 --> 00:01:43.000 align:start position:0%
there's embeddings into it and then also
the<00:01:41.450><c> dynamic</c><00:01:41.810><c> logic</c><00:01:42.110><c> is</c><00:01:42.200><c> reach</c><00:01:42.350><c> ability</c><00:01:42.530><c> logic</c>

00:01:43.000 --> 00:01:43.010 align:start position:0%
the dynamic logic is reach ability logic
 

00:01:43.010 --> 00:01:44.050 align:start position:0%
the dynamic logic is reach ability logic
which<00:01:43.159><c> is</c><00:01:43.280><c> this</c><00:01:43.400><c> language</c><00:01:43.820><c> independent</c>

00:01:44.050 --> 00:01:44.060 align:start position:0%
which is this language independent
 

00:01:44.060 --> 00:01:45.820 align:start position:0%
which is this language independent
dynamic<00:01:44.869><c> logic</c><00:01:45.229><c> for</c><00:01:45.439><c> reasoning</c><00:01:45.799><c> about</c>

00:01:45.820 --> 00:01:45.830 align:start position:0%
dynamic logic for reasoning about
 

00:01:45.830 --> 00:01:47.980 align:start position:0%
dynamic logic for reasoning about
transition<00:01:46.430><c> systems</c><00:01:46.790><c> so</c><00:01:47.420><c> go</c><00:01:47.600><c> ahead</c><00:01:47.689><c> and</c><00:01:47.780><c> ask</c>

00:01:47.980 --> 00:01:47.990 align:start position:0%
transition systems so go ahead and ask
 

00:01:47.990 --> 00:01:49.929 align:start position:0%
transition systems so go ahead and ask
me<00:01:48.140><c> or</c><00:01:48.530><c> the</c><00:01:48.650><c> other</c><00:01:48.680><c> team</c><00:01:49.070><c> members</c><00:01:49.100><c> you</c><00:01:49.790><c> guys</c>

00:01:49.929 --> 00:01:49.939 align:start position:0%
me or the other team members you guys
 

00:01:49.939 --> 00:01:52.300 align:start position:0%
me or the other team members you guys
raise<00:01:50.119><c> your</c><00:01:50.240><c> hands</c><00:01:50.390><c> if</c><00:01:51.009><c> you</c><00:01:52.009><c> have</c><00:01:52.159><c> any</c>

00:01:52.300 --> 00:01:52.310 align:start position:0%
raise your hands if you have any
 

00:01:52.310 --> 00:01:53.770 align:start position:0%
raise your hands if you have any
questions<00:01:52.700><c> about</c><00:01:52.820><c> these</c><00:01:53.030><c> specific</c><00:01:53.330><c> things</c>

00:01:53.770 --> 00:01:53.780 align:start position:0%
questions about these specific things
 

00:01:53.780 --> 00:01:55.240 align:start position:0%
questions about these specific things
but<00:01:54.470><c> I'm</c><00:01:54.560><c> not</c><00:01:54.650><c> really</c><00:01:54.770><c> going</c><00:01:54.920><c> to</c><00:01:55.009><c> talk</c><00:01:55.130><c> about</c>

00:01:55.240 --> 00:01:55.250 align:start position:0%
but I'm not really going to talk about
 

00:01:55.250 --> 00:01:58.179 align:start position:0%
but I'm not really going to talk about
that<00:01:55.520><c> in</c><00:01:55.640><c> this</c><00:01:55.850><c> presentation</c><00:01:56.890><c> instead</c><00:01:57.890><c> what</c>

00:01:58.179 --> 00:01:58.189 align:start position:0%
that in this presentation instead what
 

00:01:58.189 --> 00:01:59.560 align:start position:0%
that in this presentation instead what
I'm<00:01:58.250><c> going</c><00:01:58.280><c> to</c><00:01:58.430><c> focus</c><00:01:58.549><c> on</c><00:01:58.820><c> is</c><00:01:59.060><c> this</c><00:01:59.240><c> K</c><00:01:59.420><c> by</c>

00:01:59.560 --> 00:01:59.570 align:start position:0%
I'm going to focus on is this K by
 

00:01:59.570 --> 00:02:02.679 align:start position:0%
I'm going to focus on is this K by
example<00:01:59.990><c> thing</c><00:02:00.310><c> so</c><00:02:01.310><c> the</c><00:02:01.790><c> organization</c><00:02:02.420><c> we</c>

00:02:02.679 --> 00:02:02.689 align:start position:0%
example thing so the organization we
 

00:02:02.689 --> 00:02:03.940 align:start position:0%
example thing so the organization we
have<00:02:02.810><c> on</c><00:02:02.900><c> github</c><00:02:03.200><c> is</c><00:02:03.290><c> this</c><00:02:03.409><c> K</c><00:02:03.560><c> framework</c>

00:02:03.940 --> 00:02:03.950 align:start position:0%
have on github is this K framework
 

00:02:03.950 --> 00:02:05.950 align:start position:0%
have on github is this K framework
organization<00:02:04.549><c> for</c><00:02:04.729><c> the</c><00:02:04.790><c> KVM</c><00:02:05.210><c> repository</c><00:02:05.810><c> is</c><00:02:05.930><c> a</c>

00:02:05.950 --> 00:02:05.960 align:start position:0%
organization for the KVM repository is a
 

00:02:05.960 --> 00:02:08.710 align:start position:0%
organization for the KVM repository is a
TDM<00:02:06.320><c> semantics</c><00:02:06.799><c> and</c><00:02:07.009><c> all</c><00:02:07.759><c> of</c><00:02:07.909><c> the</c><00:02:08.060><c> semantics</c>

00:02:08.710 --> 00:02:08.720 align:start position:0%
TDM semantics and all of the semantics
 

00:02:08.720 --> 00:02:10.059 align:start position:0%
TDM semantics and all of the semantics
that<00:02:08.750><c> we</c><00:02:08.869><c> maintain</c><00:02:09.200><c> are</c><00:02:09.590><c> developed</c><00:02:09.920><c> there</c>

00:02:10.059 --> 00:02:10.069 align:start position:0%
that we maintain are developed there
 

00:02:10.069 --> 00:02:11.170 align:start position:0%
that we maintain are developed there
there<00:02:10.250><c> are</c><00:02:10.369><c> some</c><00:02:10.550><c> semantics</c><00:02:10.970><c> that</c><00:02:11.060><c> other</c>

00:02:11.170 --> 00:02:11.180 align:start position:0%
there are some semantics that other
 

00:02:11.180 --> 00:02:13.410 align:start position:0%
there are some semantics that other
people<00:02:11.480><c> maintain</c><00:02:11.870><c> that</c><00:02:12.200><c> aren't</c><00:02:12.950><c> within</c><00:02:13.099><c> our</c>

00:02:13.410 --> 00:02:13.420 align:start position:0%
people maintain that aren't within our
 

00:02:13.420 --> 00:02:16.500 align:start position:0%
people maintain that aren't within our
kind<00:02:13.599><c> of</c><00:02:13.720><c> organization</c><00:02:14.650><c> and</c><00:02:15.400><c> then</c><00:02:16.120><c> directly</c>

00:02:16.500 --> 00:02:16.510 align:start position:0%
kind of organization and then directly
 

00:02:16.510 --> 00:02:18.600 align:start position:0%
kind of organization and then directly
in<00:02:16.599><c> this</c><00:02:16.750><c> repository</c><00:02:16.990><c> we</c><00:02:17.680><c> have</c><00:02:17.860><c> this</c>

00:02:18.600 --> 00:02:18.610 align:start position:0%
in this repository we have this
 

00:02:18.610 --> 00:02:20.309 align:start position:0%
in this repository we have this
directory<00:02:19.510><c> which</c><00:02:19.630><c> has</c><00:02:19.660><c> a</c><00:02:19.810><c> bunch</c><00:02:20.050><c> of</c><00:02:20.110><c> toy</c>

00:02:20.309 --> 00:02:20.319 align:start position:0%
directory which has a bunch of toy
 

00:02:20.319 --> 00:02:21.839 align:start position:0%
directory which has a bunch of toy
languages<00:02:20.860><c> you</c><00:02:20.980><c> can</c><00:02:21.099><c> kind</c><00:02:21.310><c> of</c><00:02:21.340><c> play</c><00:02:21.459><c> with</c><00:02:21.550><c> and</c>

00:02:21.839 --> 00:02:21.849 align:start position:0%
languages you can kind of play with and
 

00:02:21.849 --> 00:02:23.550 align:start position:0%
languages you can kind of play with and
get<00:02:21.940><c> familiar</c><00:02:22.090><c> with</c><00:02:22.300><c> k</c><00:02:22.569><c> so</c><00:02:23.290><c> that's</c><00:02:23.349><c> a</c><00:02:23.440><c> good</c>

00:02:23.550 --> 00:02:23.560 align:start position:0%
get familiar with k so that's a good
 

00:02:23.560 --> 00:02:28.199 align:start position:0%
get familiar with k so that's a good
place<00:02:23.709><c> to</c><00:02:23.739><c> start</c><00:02:25.260><c> okay</c><00:02:26.260><c> so</c><00:02:27.010><c> I'm</c><00:02:27.880><c> gonna</c><00:02:28.000><c> dive</c>

00:02:28.199 --> 00:02:28.209 align:start position:0%
place to start okay so I'm gonna dive
 

00:02:28.209 --> 00:02:29.940 align:start position:0%
place to start okay so I'm gonna dive
right<00:02:28.239><c> in</c><00:02:28.599><c> and</c><00:02:28.750><c> basically</c><00:02:29.110><c> this</c><00:02:29.590><c> part</c><00:02:29.830><c> of</c><00:02:29.890><c> the</c>

00:02:29.940 --> 00:02:29.950 align:start position:0%
right in and basically this part of the
 

00:02:29.950 --> 00:02:31.140 align:start position:0%
right in and basically this part of the
presentation<00:02:30.040><c> is</c><00:02:30.489><c> just</c><00:02:30.520><c> gonna</c><00:02:30.730><c> be</c><00:02:30.880><c> a</c><00:02:30.910><c> bunch</c><00:02:31.060><c> of</c>

00:02:31.140 --> 00:02:31.150 align:start position:0%
presentation is just gonna be a bunch of
 

00:02:31.150 --> 00:02:33.000 align:start position:0%
presentation is just gonna be a bunch of
K<00:02:31.330><c> so</c><00:02:31.690><c> I'm</c><00:02:31.989><c> gonna</c><00:02:32.080><c> try</c><00:02:32.290><c> to</c><00:02:32.319><c> teach</c><00:02:32.530><c> you</c><00:02:32.560><c> guys</c><00:02:32.680><c> K</c>

00:02:33.000 --> 00:02:33.010 align:start position:0%
K so I'm gonna try to teach you guys K
 

00:02:33.010 --> 00:02:35.220 align:start position:0%
K so I'm gonna try to teach you guys K
using<00:02:33.970><c> an</c><00:02:34.360><c> example</c><00:02:34.720><c> that</c><00:02:34.810><c> hopefully</c><00:02:35.200><c> people</c>

00:02:35.220 --> 00:02:35.230 align:start position:0%
using an example that hopefully people
 

00:02:35.230 --> 00:02:37.860 align:start position:0%
using an example that hopefully people
are<00:02:35.709><c> familiar</c><00:02:35.830><c> with</c><00:02:36.160><c> which</c><00:02:36.520><c> is</c><00:02:36.730><c> EBM</c><00:02:37.120><c> so</c><00:02:37.780><c> we're</c>

00:02:37.860 --> 00:02:37.870 align:start position:0%
are familiar with which is EBM so we're
 

00:02:37.870 --> 00:02:40.350 align:start position:0%
are familiar with which is EBM so we're
gonna<00:02:37.989><c> start</c><00:02:38.260><c> off</c><00:02:38.410><c> with</c><00:02:38.440><c> some</c><00:02:38.650><c> basic</c><00:02:39.300><c> kind</c><00:02:40.300><c> of</c>

00:02:40.350 --> 00:02:40.360 align:start position:0%
gonna start off with some basic kind of
 

00:02:40.360 --> 00:02:43.920 align:start position:0%
gonna start off with some basic kind of
functional<00:02:40.780><c> style</c><00:02:41.110><c> rules</c><00:02:41.500><c> in</c><00:02:41.830><c> k</c><00:02:42.660><c> here</c><00:02:43.660><c> we're</c>

00:02:43.920 --> 00:02:43.930 align:start position:0%
functional style rules in k here we're
 

00:02:43.930 --> 00:02:45.809 align:start position:0%
functional style rules in k here we're
declaring<00:02:44.110><c> a</c><00:02:44.349><c> function</c><00:02:44.380><c> called</c><00:02:44.920><c> chop</c><00:02:45.220><c> it</c>

00:02:45.809 --> 00:02:45.819 align:start position:0%
declaring a function called chop it
 

00:02:45.819 --> 00:02:47.550 align:start position:0%
declaring a function called chop it
takes<00:02:46.090><c> in</c><00:02:46.239><c> an</c><00:02:46.330><c> integer</c><00:02:46.540><c> it</c><00:02:46.959><c> produces</c><00:02:47.440><c> an</c>

00:02:47.550 --> 00:02:47.560 align:start position:0%
takes in an integer it produces an
 

00:02:47.560 --> 00:02:49.470 align:start position:0%
takes in an integer it produces an
integer<00:02:47.800><c> so</c><00:02:48.069><c> the</c><00:02:48.190><c> type</c><00:02:48.640><c> signature</c><00:02:49.120><c> of</c><00:02:49.209><c> this</c><00:02:49.300><c> is</c>

00:02:49.470 --> 00:02:49.480 align:start position:0%
integer so the type signature of this is
 

00:02:49.480 --> 00:02:51.600 align:start position:0%
integer so the type signature of this is
int<00:02:49.720><c> int</c><00:02:50.019><c> we</c><00:02:50.739><c> declare</c><00:02:51.100><c> here</c><00:02:51.280><c> that</c><00:02:51.430><c> it's</c><00:02:51.549><c> a</c>

00:02:51.600 --> 00:02:51.610 align:start position:0%
int int we declare here that it's a
 

00:02:51.610 --> 00:02:53.340 align:start position:0%
int int we declare here that it's a
function<00:02:52.000><c> and</c><00:02:52.209><c> then</c><00:02:52.360><c> we</c><00:02:52.420><c> give</c><00:02:52.569><c> the</c><00:02:52.720><c> rule</c><00:02:52.989><c> we</c>

00:02:53.340 --> 00:02:53.350 align:start position:0%
function and then we give the rule we
 

00:02:53.350 --> 00:02:54.720 align:start position:0%
function and then we give the rule we
give<00:02:53.500><c> it</c><00:02:53.590><c> semantics</c><00:02:54.100><c> using</c><00:02:54.370><c> this</c><00:02:54.459><c> rule</c>

00:02:54.720 --> 00:02:54.730 align:start position:0%
give it semantics using this rule
 

00:02:54.730 --> 00:02:57.360 align:start position:0%
give it semantics using this rule
keyword<00:02:55.150><c> so</c><00:02:55.630><c> we</c><00:02:55.720><c> say</c><00:02:55.840><c> rule</c><00:02:56.170><c> chop</c><00:02:56.890><c> of</c><00:02:57.130><c> some</c>

00:02:57.360 --> 00:02:57.370 align:start position:0%
keyword so we say rule chop of some
 

00:02:57.370 --> 00:03:00.090 align:start position:0%
keyword so we say rule chop of some
integer<00:02:57.790><c> goes</c><00:02:58.330><c> to</c><00:02:58.510><c> the</c><00:02:58.600><c> integer</c><00:02:58.840><c> modulo</c><00:02:59.200><c> POW</c>

00:03:00.090 --> 00:03:00.100 align:start position:0%
integer goes to the integer modulo POW
 

00:03:00.100 --> 00:03:02.220 align:start position:0%
integer goes to the integer modulo POW
256<00:03:00.790><c> where</c><00:03:00.940><c> this</c><00:03:01.030><c> is</c><00:03:01.180><c> the</c><00:03:01.269><c> built</c><00:03:01.450><c> in</c><00:03:01.630><c> K</c><00:03:01.840><c> modulus</c>

00:03:02.220 --> 00:03:02.230 align:start position:0%
256 where this is the built in K modulus
 

00:03:02.230 --> 00:03:04.289 align:start position:0%
256 where this is the built in K modulus
operator<00:03:02.410><c> and</c><00:03:02.950><c> that</c><00:03:02.980><c> only</c><00:03:03.549><c> happens</c><00:03:04.000><c> if</c><00:03:04.150><c> it's</c>

00:03:04.289 --> 00:03:04.299 align:start position:0%
operator and that only happens if it's
 

00:03:04.299 --> 00:03:06.270 align:start position:0%
operator and that only happens if it's
either<00:03:04.480><c> less</c><00:03:04.660><c> than</c><00:03:04.690><c> 0</c><00:03:05.140><c> or</c><00:03:05.380><c> greater</c><00:03:05.650><c> than</c><00:03:06.069><c> POW</c>

00:03:06.270 --> 00:03:06.280 align:start position:0%
either less than 0 or greater than POW
 

00:03:06.280 --> 00:03:09.570 align:start position:0%
either less than 0 or greater than POW
256<00:03:06.970><c> which</c><00:03:07.120><c> is</c><00:03:07.269><c> 2</c><00:03:07.480><c> to</c><00:03:07.569><c> the</c><00:03:07.600><c> 256</c><00:03:08.340><c> otherwise</c><00:03:09.340><c> it</c>

00:03:09.570 --> 00:03:09.580 align:start position:0%
256 which is 2 to the 256 otherwise it
 

00:03:09.580 --> 00:03:11.340 align:start position:0%
256 which is 2 to the 256 otherwise it
just<00:03:09.610><c> goes</c><00:03:09.850><c> to</c><00:03:10.000><c> I</c><00:03:10.180><c> if</c><00:03:10.660><c> it's</c><00:03:10.900><c> within</c><00:03:11.049><c> those</c>

00:03:11.340 --> 00:03:11.350 align:start position:0%
just goes to I if it's within those
 

00:03:11.350 --> 00:03:12.930 align:start position:0%
just goes to I if it's within those
bounds<00:03:12.069><c> right</c><00:03:12.190><c> there</c><00:03:12.370><c> so</c><00:03:12.519><c> you</c><00:03:12.549><c> see</c><00:03:12.640><c> that</c><00:03:12.819><c> these</c>

00:03:12.930 --> 00:03:12.940 align:start position:0%
bounds right there so you see that these
 

00:03:12.940 --> 00:03:16.830 align:start position:0%
bounds right there so you see that these
cover<00:03:13.239><c> all</c><00:03:13.480><c> the</c><00:03:13.600><c> cases</c><00:03:15.269><c> some</c><00:03:16.269><c> other</c><00:03:16.420><c> operators</c>

00:03:16.830 --> 00:03:16.840 align:start position:0%
cover all the cases some other operators
 

00:03:16.840 --> 00:03:19.050 align:start position:0%
cover all the cases some other operators
we<00:03:16.959><c> define</c><00:03:17.260><c> these</c><00:03:17.829><c> are</c><00:03:17.950><c> just</c><00:03:18.100><c> a</c><00:03:18.370><c> fraction</c><00:03:18.760><c> of</c>

00:03:19.050 --> 00:03:19.060 align:start position:0%
we define these are just a fraction of
 

00:03:19.060 --> 00:03:21.810 align:start position:0%
we define these are just a fraction of
them<00:03:19.239><c> for</c><00:03:19.510><c> them</c><00:03:19.690><c> you</c><00:03:20.170><c> know</c><00:03:20.200><c> demonstrating</c><00:03:21.130><c> but</c>

00:03:21.810 --> 00:03:21.820 align:start position:0%
them for them you know demonstrating but
 

00:03:21.820 --> 00:03:23.009 align:start position:0%
them for them you know demonstrating but
for<00:03:21.970><c> example</c><00:03:22.269><c> there's</c><00:03:22.420><c> this</c><00:03:22.480><c> plus</c><00:03:22.780><c> word</c>

00:03:23.009 --> 00:03:23.019 align:start position:0%
for example there's this plus word
 

00:03:23.019 --> 00:03:25.229 align:start position:0%
for example there's this plus word
operator<00:03:23.530><c> and</c><00:03:23.739><c> notice</c><00:03:24.579><c> we</c><00:03:24.700><c> can</c><00:03:24.850><c> define</c><00:03:25.120><c> the</c>

00:03:25.229 --> 00:03:25.239 align:start position:0%
operator and notice we can define the
 

00:03:25.239 --> 00:03:26.910 align:start position:0%
operator and notice we can define the
syntax<00:03:25.450><c> right</c><00:03:25.870><c> here</c><00:03:26.079><c> to</c><00:03:26.230><c> be</c><00:03:26.320><c> in</c><00:03:26.500><c> fixed</c>

00:03:26.910 --> 00:03:26.920 align:start position:0%
syntax right here to be in fixed
 

00:03:26.920 --> 00:03:28.440 align:start position:0%
syntax right here to be in fixed
directly<00:03:27.160><c> so</c><00:03:27.609><c> we</c><00:03:27.640><c> can</c><00:03:27.760><c> say</c><00:03:28.030><c> actually</c>

00:03:28.440 --> 00:03:28.450 align:start position:0%
directly so we can say actually
 

00:03:28.450 --> 00:03:31.530 align:start position:0%
directly so we can say actually
something<00:03:28.720><c> like</c><00:03:28.870><c> 3</c><00:03:29.170><c> plus</c><00:03:29.380><c> word</c><00:03:29.709><c> 4</c><00:03:30.480><c> instead</c><00:03:31.480><c> of</c>

00:03:31.530 --> 00:03:31.540 align:start position:0%
something like 3 plus word 4 instead of
 

00:03:31.540 --> 00:03:33.720 align:start position:0%
something like 3 plus word 4 instead of
having<00:03:31.750><c> to</c><00:03:31.900><c> say</c><00:03:32.019><c> plus</c><00:03:32.260><c> word</c><00:03:32.470><c> of</c><00:03:32.739><c> 3</c><00:03:33.130><c> &amp;</c><00:03:33.280><c> 4</c><00:03:33.430><c> for</c>

00:03:33.720 --> 00:03:33.730 align:start position:0%
having to say plus word of 3 &amp; 4 for
 

00:03:33.730 --> 00:03:35.220 align:start position:0%
having to say plus word of 3 &amp; 4 for
example<00:03:33.790><c> we</c><00:03:34.630><c> declare</c><00:03:34.870><c> that</c><00:03:34.900><c> that's</c><00:03:35.140><c> a</c>

00:03:35.220 --> 00:03:35.230 align:start position:0%
example we declare that that's a
 

00:03:35.230 --> 00:03:37.170 align:start position:0%
example we declare that that's a
function<00:03:35.620><c> and</c><00:03:35.799><c> then</c><00:03:36.190><c> we</c><00:03:36.280><c> give</c><00:03:36.400><c> semantics</c><00:03:36.850><c> to</c>

00:03:37.170 --> 00:03:37.180 align:start position:0%
function and then we give semantics to
 

00:03:37.180 --> 00:03:38.849 align:start position:0%
function and then we give semantics to
it<00:03:37.299><c> down</c><00:03:37.450><c> here</c><00:03:37.720><c> just</c><00:03:37.989><c> by</c><00:03:38.109><c> calling</c><00:03:38.320><c> the</c><00:03:38.650><c> built</c>

00:03:38.849 --> 00:03:38.859 align:start position:0%
it down here just by calling the built
 

00:03:38.859 --> 00:03:40.470 align:start position:0%
it down here just by calling the built
in<00:03:39.010><c> plus</c><00:03:39.280><c> int</c><00:03:39.519><c> operator</c><00:03:39.910><c> and</c><00:03:40.120><c> then</c><00:03:40.209><c> calling</c>

00:03:40.470 --> 00:03:40.480 align:start position:0%
in plus int operator and then calling
 

00:03:40.480 --> 00:03:42.630 align:start position:0%
in plus int operator and then calling
chopped<00:03:40.720><c> on</c><00:03:41.019><c> top</c><00:03:41.260><c> of</c><00:03:41.410><c> it</c><00:03:41.500><c> notice</c><00:03:42.220><c> we</c><00:03:42.310><c> also</c><00:03:42.430><c> give</c>

00:03:42.630 --> 00:03:42.640 align:start position:0%
chopped on top of it notice we also give
 

00:03:42.640 --> 00:03:44.250 align:start position:0%
chopped on top of it notice we also give
semantics<00:03:43.030><c> to</c><00:03:43.150><c> division</c><00:03:43.570><c> this</c><00:03:43.840><c> one</c><00:03:44.019><c> has</c><00:03:44.140><c> to</c><00:03:44.230><c> be</c>

00:03:44.250 --> 00:03:44.260 align:start position:0%
semantics to division this one has to be
 

00:03:44.260 --> 00:03:46.080 align:start position:0%
semantics to division this one has to be
broken<00:03:44.440><c> to</c><00:03:44.709><c> two</c><00:03:44.890><c> cases</c><00:03:45.070><c> where</c><00:03:45.519><c> you're</c>

00:03:46.080 --> 00:03:46.090 align:start position:0%
broken to two cases where you're
 

00:03:46.090 --> 00:03:47.729 align:start position:0%
broken to two cases where you're
dividing<00:03:46.269><c> by</c><00:03:46.510><c> 0</c><00:03:46.780><c> we're</c><00:03:47.140><c> an</c><00:03:47.230><c> EVM</c><00:03:47.560><c> that's</c>

00:03:47.729 --> 00:03:47.739 align:start position:0%
dividing by 0 we're an EVM that's
 

00:03:47.739 --> 00:03:49.949 align:start position:0%
dividing by 0 we're an EVM that's
defined<00:03:48.070><c> to</c><00:03:48.130><c> be</c><00:03:48.190><c> 0</c><00:03:48.480><c> and</c><00:03:49.480><c> where</c><00:03:49.720><c> you're</c><00:03:49.810><c> not</c>

00:03:49.949 --> 00:03:49.959 align:start position:0%
defined to be 0 and where you're not
 

00:03:49.959 --> 00:03:51.960 align:start position:0%
defined to be 0 and where you're not
dividing<00:03:50.320><c> by</c><00:03:50.410><c> 0</c><00:03:50.680><c> in</c><00:03:50.859><c> which</c><00:03:51.010><c> case</c><00:03:51.190><c> we</c><00:03:51.310><c> just</c><00:03:51.489><c> call</c>

00:03:51.960 --> 00:03:51.970 align:start position:0%
dividing by 0 in which case we just call
 

00:03:51.970 --> 00:03:55.380 align:start position:0%
dividing by 0 in which case we just call
chopped<00:03:52.180><c> on</c><00:03:52.359><c> the</c><00:03:52.450><c> normal</c><00:03:52.660><c> division</c><00:03:52.959><c> okay</c>

00:03:55.380 --> 00:03:55.390 align:start position:0%
chopped on the normal division okay
 

00:03:55.390 --> 00:03:57.059 align:start position:0%
chopped on the normal division okay
and<00:03:55.750><c> also</c><00:03:55.900><c> feel</c><00:03:56.170><c> free</c><00:03:56.319><c> to</c><00:03:56.350><c> ask</c><00:03:56.500><c> any</c><00:03:56.650><c> questions</c>

00:03:57.059 --> 00:03:57.069 align:start position:0%
and also feel free to ask any questions
 

00:03:57.069 --> 00:03:58.440 align:start position:0%
and also feel free to ask any questions
at<00:03:57.190><c> any</c><00:03:57.310><c> time</c><00:03:57.400><c> it's</c><00:03:57.640><c> gonna</c><00:03:57.730><c> kind</c><00:03:58.000><c> of</c><00:03:58.060><c> ramp</c><00:03:58.269><c> up</c>

00:03:58.440 --> 00:03:58.450 align:start position:0%
at any time it's gonna kind of ramp up
 

00:03:58.450 --> 00:03:59.940 align:start position:0%
at any time it's gonna kind of ramp up
in<00:03:58.600><c> difficulty</c><00:03:58.930><c> as</c><00:03:59.170><c> we</c><00:03:59.290><c> go</c><00:03:59.440><c> so</c><00:03:59.620><c> it's</c><00:03:59.709><c> better</c><00:03:59.859><c> to</c>

00:03:59.940 --> 00:03:59.950 align:start position:0%
in difficulty as we go so it's better to
 

00:03:59.950 --> 00:04:01.289 align:start position:0%
in difficulty as we go so it's better to
ask<00:04:00.579><c> earlier</c>

00:04:01.289 --> 00:04:01.299 align:start position:0%
ask earlier
 

00:04:01.299 --> 00:04:05.009 align:start position:0%
ask earlier
ok<00:04:01.989><c> so</c><00:04:02.049><c> defining</c><00:04:02.829><c> data</c><00:04:03.069><c> structures</c><00:04:03.489><c> in</c><00:04:03.609><c> K</c><00:04:04.019><c> this</c>

00:04:05.009 --> 00:04:05.019 align:start position:0%
ok so defining data structures in K this
 

00:04:05.019 --> 00:04:06.690 align:start position:0%
ok so defining data structures in K this
is<00:04:05.140><c> gonna</c><00:04:05.260><c> be</c><00:04:05.440><c> a</c><00:04:05.470><c> word</c><00:04:05.650><c> stack</c><00:04:05.950><c> for</c><00:04:06.130><c> evm</c><00:04:06.489><c> and</c>

00:04:06.690 --> 00:04:06.700 align:start position:0%
is gonna be a word stack for evm and
 

00:04:06.700 --> 00:04:08.130 align:start position:0%
is gonna be a word stack for evm and
we're<00:04:06.790><c> gonna</c><00:04:06.880><c> define</c><00:04:07.209><c> it</c><00:04:07.390><c> as</c><00:04:07.480><c> a</c><00:04:07.510><c> simple</c><00:04:07.959><c> cons</c>

00:04:08.130 --> 00:04:08.140 align:start position:0%
we're gonna define it as a simple cons
 

00:04:08.140 --> 00:04:10.379 align:start position:0%
we're gonna define it as a simple cons
list<00:04:08.440><c> so</c><00:04:08.650><c> anyone</c><00:04:08.890><c> in</c><00:04:09.220><c> the</c><00:04:10.030><c> functional</c>

00:04:10.379 --> 00:04:10.389 align:start position:0%
list so anyone in the functional
 

00:04:10.389 --> 00:04:11.640 align:start position:0%
list so anyone in the functional
programming<00:04:10.690><c> languages</c><00:04:11.079><c> will</c><00:04:11.260><c> recognize</c>

00:04:11.640 --> 00:04:11.650 align:start position:0%
programming languages will recognize
 

00:04:11.650 --> 00:04:14.759 align:start position:0%
programming languages will recognize
this<00:04:12.239><c> this</c><00:04:13.239><c> is</c><00:04:13.420><c> just</c><00:04:13.630><c> something</c><00:04:13.810><c> that</c><00:04:13.959><c> it's</c><00:04:14.620><c> a</c>

00:04:14.759 --> 00:04:14.769 align:start position:0%
this this is just something that it's a
 

00:04:14.769 --> 00:04:17.940 align:start position:0%
this this is just something that it's a
hint<00:04:14.950><c> or</c><00:04:15.100><c> at</c><00:04:15.280><c> SM</c><00:04:16.060><c> T</c><00:04:16.180><c> solver</c><00:04:16.539><c> but</c><00:04:17.320><c> basically</c><00:04:17.709><c> we</c>

00:04:17.940 --> 00:04:17.950 align:start position:0%
hint or at SM T solver but basically we
 

00:04:17.950 --> 00:04:19.560 align:start position:0%
hint or at SM T solver but basically we
say<00:04:18.160><c> that</c><00:04:18.400><c> we</c><00:04:18.489><c> have</c><00:04:18.519><c> this</c><00:04:18.760><c> dot</c><00:04:19.000><c> word</c><00:04:19.239><c> stack</c>

00:04:19.560 --> 00:04:19.570 align:start position:0%
say that we have this dot word stack
 

00:04:19.570 --> 00:04:21.690 align:start position:0%
say that we have this dot word stack
right<00:04:20.440><c> here</c><00:04:20.500><c> which</c><00:04:20.889><c> serves</c><00:04:21.160><c> as</c><00:04:21.310><c> the</c><00:04:21.400><c> empty</c>

00:04:21.690 --> 00:04:21.700 align:start position:0%
right here which serves as the empty
 

00:04:21.700 --> 00:04:23.010 align:start position:0%
right here which serves as the empty
element<00:04:22.090><c> of</c><00:04:22.150><c> the</c><00:04:22.240><c> cons</c><00:04:22.419><c> list</c><00:04:22.690><c> and</c><00:04:22.900><c> then</c><00:04:22.990><c> you</c>

00:04:23.010 --> 00:04:23.020 align:start position:0%
element of the cons list and then you
 

00:04:23.020 --> 00:04:25.409 align:start position:0%
element of the cons list and then you
can<00:04:23.110><c> also</c><00:04:23.349><c> cons</c><00:04:23.710><c> an</c><00:04:24.099><c> integer</c><00:04:24.669><c> onto</c><00:04:25.180><c> a</c><00:04:25.240><c> word</c>

00:04:25.409 --> 00:04:25.419 align:start position:0%
can also cons an integer onto a word
 

00:04:25.419 --> 00:04:27.180 align:start position:0%
can also cons an integer onto a word
stack<00:04:25.720><c> and</c><00:04:25.960><c> that</c><00:04:25.990><c> also</c><00:04:26.440><c> produces</c><00:04:26.860><c> a</c><00:04:26.890><c> word</c>

00:04:27.180 --> 00:04:27.190 align:start position:0%
stack and that also produces a word
 

00:04:27.190 --> 00:04:28.920 align:start position:0%
stack and that also produces a word
stack<00:04:27.370><c> so</c><00:04:28.180><c> this</c><00:04:28.300><c> can</c><00:04:28.450><c> be</c><00:04:28.540><c> thought</c><00:04:28.660><c> of</c><00:04:28.720><c> as</c><00:04:28.870><c> a</c>

00:04:28.920 --> 00:04:28.930 align:start position:0%
stack so this can be thought of as a
 

00:04:28.930 --> 00:04:31.470 align:start position:0%
stack so this can be thought of as a
singly<00:04:29.290><c> linked</c><00:04:29.560><c> list</c><00:04:29.770><c> and</c><00:04:30.060><c> then</c><00:04:31.060><c> here's</c><00:04:31.270><c> for</c>

00:04:31.470 --> 00:04:31.480 align:start position:0%
singly linked list and then here's for
 

00:04:31.480 --> 00:04:33.570 align:start position:0%
singly linked list and then here's for
example<00:04:31.510><c> word</c><00:04:31.960><c> stack</c><00:04:32.200><c> append</c><00:04:32.560><c> given</c><00:04:33.400><c> to</c><00:04:33.490><c> your</c>

00:04:33.570 --> 00:04:33.580 align:start position:0%
example word stack append given to your
 

00:04:33.580 --> 00:04:35.550 align:start position:0%
example word stack append given to your
word<00:04:33.700><c> stacks</c><00:04:34.030><c> you</c><00:04:34.300><c> can</c><00:04:34.810><c> put</c><00:04:35.050><c> plus</c><00:04:35.230><c> plus</c><00:04:35.440><c> in</c>

00:04:35.550 --> 00:04:35.560 align:start position:0%
word stacks you can put plus plus in
 

00:04:35.560 --> 00:04:36.930 align:start position:0%
word stacks you can put plus plus in
between<00:04:35.800><c> them</c><00:04:35.950><c> that</c><00:04:36.160><c> also</c><00:04:36.280><c> produces</c><00:04:36.550><c> a</c><00:04:36.760><c> word</c>

00:04:36.930 --> 00:04:36.940 align:start position:0%
between them that also produces a word
 

00:04:36.940 --> 00:04:38.790 align:start position:0%
between them that also produces a word
stack<00:04:37.240><c> and</c><00:04:37.540><c> then</c><00:04:38.020><c> you</c><00:04:38.110><c> know</c><00:04:38.200><c> dot</c><00:04:38.380><c> word</c><00:04:38.530><c> stack</c>

00:04:38.790 --> 00:04:38.800 align:start position:0%
stack and then you know dot word stack
 

00:04:38.800 --> 00:04:40.440 align:start position:0%
stack and then you know dot word stack
append<00:04:39.220><c> some</c><00:04:39.520><c> word</c><00:04:39.670><c> stack</c><00:04:39.940><c> is</c><00:04:40.090><c> just</c><00:04:40.240><c> the</c><00:04:40.330><c> word</c>

00:04:40.440 --> 00:04:40.450 align:start position:0%
append some word stack is just the word
 

00:04:40.450 --> 00:04:42.750 align:start position:0%
append some word stack is just the word
stack<00:04:40.720><c> and</c><00:04:40.960><c> then</c><00:04:41.410><c> some</c><00:04:42.010><c> word</c><00:04:42.190><c> appended</c><00:04:42.640><c> to</c><00:04:42.670><c> a</c>

00:04:42.750 --> 00:04:42.760 align:start position:0%
stack and then some word appended to a
 

00:04:42.760 --> 00:04:45.180 align:start position:0%
stack and then some word appended to a
cons<00:04:43.420><c> down</c><00:04:43.660><c> to</c><00:04:43.750><c> a</c><00:04:43.810><c> word</c><00:04:43.930><c> stack</c><00:04:44.230><c> append</c><00:04:45.010><c> a</c><00:04:45.070><c> word</c>

00:04:45.180 --> 00:04:45.190 align:start position:0%
cons down to a word stack append a word
 

00:04:45.190 --> 00:04:47.490 align:start position:0%
cons down to a word stack append a word
stack<00:04:45.460><c> is</c><00:04:45.670><c> the</c><00:04:45.760><c> word</c><00:04:45.940><c> cons</c><00:04:46.330><c> down</c><00:04:46.540><c> to</c><00:04:46.780><c> depending</c>

00:04:47.490 --> 00:04:47.500 align:start position:0%
stack is the word cons down to depending
 

00:04:47.500 --> 00:04:50.940 align:start position:0%
stack is the word cons down to depending
of<00:04:47.590><c> the</c><00:04:47.680><c> tails</c><00:04:47.860><c> okay</c><00:04:48.670><c> pretty</c><00:04:49.770><c> pretty</c><00:04:50.770><c> simple</c>

00:04:50.940 --> 00:04:50.950 align:start position:0%
of the tails okay pretty pretty simple
 

00:04:50.950 --> 00:04:54.780 align:start position:0%
of the tails okay pretty pretty simple
functional<00:04:51.460><c> programming</c><00:04:51.850><c> like</c><00:04:52.150><c> stuff</c><00:04:53.190><c> ok</c><00:04:54.190><c> so</c>

00:04:54.780 --> 00:04:54.790 align:start position:0%
functional programming like stuff ok so
 

00:04:54.790 --> 00:04:56.220 align:start position:0%
functional programming like stuff ok so
then<00:04:54.940><c> in</c><00:04:55.180><c> K</c><00:04:55.360><c> we</c><00:04:55.510><c> have</c><00:04:55.660><c> this</c><00:04:55.780><c> thing</c><00:04:55.930><c> called</c><00:04:56.080><c> a</c>

00:04:56.220 --> 00:04:56.230 align:start position:0%
then in K we have this thing called a
 

00:04:56.230 --> 00:04:57.810 align:start position:0%
then in K we have this thing called a
configuration<00:04:56.830><c> which</c><00:04:56.980><c> basically</c><00:04:57.250><c> specifies</c>

00:04:57.810 --> 00:04:57.820 align:start position:0%
configuration which basically specifies
 

00:04:57.820 --> 00:05:00.140 align:start position:0%
configuration which basically specifies
the<00:04:58.000><c> state</c><00:04:58.240><c> of</c><00:04:58.390><c> our</c><00:04:58.450><c> system</c><00:04:58.840><c> and</c><00:04:59.020><c> that</c><00:04:59.590><c> lets</c><00:04:59.860><c> us</c>

00:05:00.140 --> 00:05:00.150 align:start position:0%
the state of our system and that lets us
 

00:05:00.150 --> 00:05:03.390 align:start position:0%
the state of our system and that lets us
kind<00:05:01.150><c> of</c><00:05:01.380><c> tell</c><00:05:02.380><c> Kay</c><00:05:02.620><c> that</c><00:05:02.920><c> you</c><00:05:03.070><c> know</c><00:05:03.160><c> there's</c><00:05:03.370><c> a</c>

00:05:03.390 --> 00:05:03.400 align:start position:0%
kind of tell Kay that you know there's a
 

00:05:03.400 --> 00:05:04.620 align:start position:0%
kind of tell Kay that you know there's a
bunch<00:05:03.520><c> of</c><00:05:03.640><c> state</c><00:05:03.880><c> sitting</c><00:05:04.150><c> around</c><00:05:04.330><c> that</c><00:05:04.510><c> we</c>

00:05:04.620 --> 00:05:04.630 align:start position:0%
bunch of state sitting around that we
 

00:05:04.630 --> 00:05:05.850 align:start position:0%
bunch of state sitting around that we
don't<00:05:04.780><c> have</c><00:05:04.930><c> to</c><00:05:05.050><c> want</c><00:05:05.290><c> to</c><00:05:05.350><c> have</c><00:05:05.440><c> to</c><00:05:05.560><c> mention</c>

00:05:05.850 --> 00:05:05.860 align:start position:0%
don't have to want to have to mention
 

00:05:05.860 --> 00:05:06.960 align:start position:0%
don't have to want to have to mention
all<00:05:05.950><c> the</c><00:05:06.070><c> time</c><00:05:06.250><c> but</c><00:05:06.370><c> we</c><00:05:06.490><c> want</c><00:05:06.670><c> to</c><00:05:06.730><c> be</c><00:05:06.790><c> able</c><00:05:06.850><c> to</c>

00:05:06.960 --> 00:05:06.970 align:start position:0%
all the time but we want to be able to
 

00:05:06.970 --> 00:05:08.720 align:start position:0%
all the time but we want to be able to
grab<00:05:07.150><c> it</c><00:05:07.270><c> anytime</c><00:05:07.480><c> we</c><00:05:07.720><c> do</c><00:05:07.840><c> need</c><00:05:07.990><c> to</c><00:05:08.080><c> mention</c><00:05:08.230><c> it</c>

00:05:08.720 --> 00:05:08.730 align:start position:0%
grab it anytime we do need to mention it
 

00:05:08.730 --> 00:05:10.980 align:start position:0%
grab it anytime we do need to mention it
so<00:05:09.730><c> here's</c><00:05:10.180><c> just</c><00:05:10.240><c> a</c><00:05:10.480><c> fragment</c><00:05:10.690><c> of</c><00:05:10.930><c> the</c>

00:05:10.980 --> 00:05:10.990 align:start position:0%
so here's just a fragment of the
 

00:05:10.990 --> 00:05:12.240 align:start position:0%
so here's just a fragment of the
configuration<00:05:11.620><c> the</c><00:05:11.740><c> actual</c><00:05:12.010><c> configuration</c>

00:05:12.240 --> 00:05:12.250 align:start position:0%
configuration the actual configuration
 

00:05:12.250 --> 00:05:15.570 align:start position:0%
configuration the actual configuration
contains<00:05:12.940><c> 60</c><00:05:13.450><c> plus</c><00:05:13.660><c> cells</c><00:05:13.960><c> a</c><00:05:14.260><c> cell</c><00:05:14.620><c> is</c><00:05:15.250><c> one</c><00:05:15.460><c> of</c>

00:05:15.570 --> 00:05:15.580 align:start position:0%
contains 60 plus cells a cell is one of
 

00:05:15.580 --> 00:05:19.530 align:start position:0%
contains 60 plus cells a cell is one of
these<00:05:15.700><c> XML</c><00:05:16.330><c> like</c><00:05:16.630><c> brackets</c><00:05:17.320><c> like</c><00:05:18.310><c> this</c><00:05:18.540><c> and</c>

00:05:19.530 --> 00:05:19.540 align:start position:0%
these XML like brackets like this and
 

00:05:19.540 --> 00:05:21.150 align:start position:0%
these XML like brackets like this and
then<00:05:19.720><c> in</c><00:05:20.080><c> the</c><00:05:20.320><c> semantics</c><00:05:20.800><c> when</c><00:05:20.980><c> we</c><00:05:21.040><c> say</c>

00:05:21.150 --> 00:05:21.160 align:start position:0%
then in the semantics when we say
 

00:05:21.160 --> 00:05:22.950 align:start position:0%
then in the semantics when we say
configuration<00:05:21.820><c> you</c><00:05:21.970><c> also</c><00:05:22.120><c> supply</c><00:05:22.510><c> kind</c><00:05:22.870><c> of</c>

00:05:22.950 --> 00:05:22.960 align:start position:0%
configuration you also supply kind of
 

00:05:22.960 --> 00:05:24.780 align:start position:0%
configuration you also supply kind of
the<00:05:23.050><c> default</c><00:05:23.230><c> value</c><00:05:23.920><c> of</c><00:05:24.100><c> each</c><00:05:24.370><c> of</c><00:05:24.490><c> the</c><00:05:24.580><c> cells</c>

00:05:24.780 --> 00:05:24.790 align:start position:0%
the default value of each of the cells
 

00:05:24.790 --> 00:05:27.120 align:start position:0%
the default value of each of the cells
so<00:05:25.390><c> this</c><00:05:25.540><c> is</c><00:05:25.690><c> telling</c><00:05:25.900><c> us</c><00:05:26.140><c> that</c><00:05:26.200><c> in</c><00:05:26.500><c> the</c><00:05:26.620><c> case</c><00:05:26.830><c> L</c>

00:05:27.120 --> 00:05:27.130 align:start position:0%
so this is telling us that in the case L
 

00:05:27.130 --> 00:05:29.580 align:start position:0%
so this is telling us that in the case L
the<00:05:27.580><c> entire</c><00:05:27.880><c> evm</c><00:05:28.330><c> program</c><00:05:28.780><c> is</c><00:05:29.020><c> loaded</c><00:05:29.410><c> that's</c>

00:05:29.580 --> 00:05:29.590 align:start position:0%
the entire evm program is loaded that's
 

00:05:29.590 --> 00:05:31.230 align:start position:0%
the entire evm program is loaded that's
what<00:05:29.710><c> this</c><00:05:29.770><c> dollar</c><00:05:30.010><c> sign</c><00:05:30.100><c> PGM</c><00:05:30.640><c> it's</c><00:05:30.820><c> a</c><00:05:30.880><c> special</c>

00:05:31.230 --> 00:05:31.240 align:start position:0%
what this dollar sign PGM it's a special
 

00:05:31.240 --> 00:05:33.840 align:start position:0%
what this dollar sign PGM it's a special
symbol<00:05:31.560><c> is</c><00:05:32.560><c> loaded</c><00:05:32.950><c> into</c><00:05:33.100><c> the</c><00:05:33.250><c> K</c><00:05:33.370><c> cell</c><00:05:33.640><c> at</c><00:05:33.790><c> the</c>

00:05:33.840 --> 00:05:33.850 align:start position:0%
symbol is loaded into the K cell at the
 

00:05:33.850 --> 00:05:36.450 align:start position:0%
symbol is loaded into the K cell at the
beginning<00:05:34.120><c> of</c><00:05:34.150><c> execution</c><00:05:34.750><c> and</c><00:05:35.620><c> then</c><00:05:36.250><c> there's</c>

00:05:36.450 --> 00:05:36.460 align:start position:0%
beginning of execution and then there's
 

00:05:36.460 --> 00:05:39.270 align:start position:0%
beginning of execution and then there's
a<00:05:36.550><c> sub</c><00:05:36.850><c> configuration</c><00:05:37.540><c> called</c><00:05:37.750><c> EVM</c><00:05:38.260><c> that</c><00:05:39.070><c> for</c>

00:05:39.270 --> 00:05:39.280 align:start position:0%
a sub configuration called EVM that for
 

00:05:39.280 --> 00:05:41.580 align:start position:0%
a sub configuration called EVM that for
example<00:05:39.460><c> contains</c><00:05:40.000><c> the</c><00:05:40.360><c> VM</c><00:05:40.660><c> execution</c><00:05:41.350><c> state</c>

00:05:41.580 --> 00:05:41.590 align:start position:0%
example contains the VM execution state
 

00:05:41.590 --> 00:05:43.590 align:start position:0%
example contains the VM execution state
so<00:05:41.800><c> for</c><00:05:41.919><c> examples</c><00:05:42.310><c> the</c><00:05:42.820><c> current</c><00:05:43.090><c> executing</c>

00:05:43.590 --> 00:05:43.600 align:start position:0%
so for examples the current executing
 

00:05:43.600 --> 00:05:45.510 align:start position:0%
so for examples the current executing
program<00:05:43.990><c> which</c><00:05:44.530><c> in</c><00:05:44.650><c> the</c><00:05:44.740><c> yellow</c><00:05:44.890><c> paper</c><00:05:45.160><c> is</c><00:05:45.340><c> I</c>

00:05:45.510 --> 00:05:45.520 align:start position:0%
program which in the yellow paper is I
 

00:05:45.520 --> 00:05:48.090 align:start position:0%
program which in the yellow paper is I
underbar<00:05:45.910><c> be</c><00:05:46.090><c> the</c><00:05:46.840><c> current</c><00:05:47.260><c> words</c><00:05:47.440><c> gap</c><00:05:47.740><c> which</c>

00:05:48.090 --> 00:05:48.100 align:start position:0%
underbar be the current words gap which
 

00:05:48.100 --> 00:05:50.760 align:start position:0%
underbar be the current words gap which
is<00:05:48.130><c> me</c><00:05:48.370><c> us</c><00:05:48.640><c> the</c><00:05:49.180><c> local</c><00:05:49.480><c> memory</c><00:05:49.630><c> mu</c><00:05:49.930><c> m</c><00:05:50.110><c> and</c><00:05:50.350><c> the</c>

00:05:50.760 --> 00:05:50.770 align:start position:0%
is me us the local memory mu m and the
 

00:05:50.770 --> 00:05:53.760 align:start position:0%
is me us the local memory mu m and the
current<00:05:51.010><c> gas</c><00:05:51.220><c> available</c><00:05:51.610><c> which</c><00:05:52.240><c> is</c><00:05:52.360><c> mu</c><00:05:52.480><c> g</c><00:05:52.770><c> okay</c>

00:05:53.760 --> 00:05:53.770 align:start position:0%
current gas available which is mu g okay
 

00:05:53.770 --> 00:05:56.070 align:start position:0%
current gas available which is mu g okay
we<00:05:54.430><c> don't</c><00:05:54.520><c> just</c><00:05:54.730><c> have</c><00:05:54.910><c> the</c><00:05:55.060><c> VM</c><00:05:55.360><c> execution</c>

00:05:56.070 --> 00:05:56.080 align:start position:0%
we don't just have the VM execution
 

00:05:56.080 --> 00:05:59.010 align:start position:0%
we don't just have the VM execution
state<00:05:56.320><c> we</c><00:05:56.500><c> also</c><00:05:56.680><c> have</c><00:05:57.070><c> the</c><00:05:57.550><c> network</c><00:05:58.000><c> state</c><00:05:58.480><c> so</c>

00:05:59.010 --> 00:05:59.020 align:start position:0%
state we also have the network state so
 

00:05:59.020 --> 00:06:00.900 align:start position:0%
state we also have the network state so
we<00:05:59.140><c> have</c><00:05:59.260><c> another</c><00:05:59.470><c> sub</c><00:05:59.770><c> configuration</c><00:06:00.490><c> so</c>

00:06:00.900 --> 00:06:00.910 align:start position:0%
we have another sub configuration so
 

00:06:00.910 --> 00:06:02.580 align:start position:0%
we have another sub configuration so
what<00:06:01.090><c> you</c><00:06:01.150><c> saw</c><00:06:01.300><c> above</c><00:06:01.570><c> is</c><00:06:01.930><c> where</c><00:06:02.110><c> this</c><00:06:02.230><c> dot</c><00:06:02.560><c> dot</c>

00:06:02.580 --> 00:06:02.590 align:start position:0%
what you saw above is where this dot dot
 

00:06:02.590 --> 00:06:05.340 align:start position:0%
what you saw above is where this dot dot
is<00:06:02.919><c> this</c><00:06:03.880><c> is</c><00:06:03.970><c> the</c><00:06:04.060><c> network</c><00:06:04.360><c> state</c><00:06:04.630><c> we</c><00:06:05.169><c> have</c><00:06:05.320><c> a</c>

00:06:05.340 --> 00:06:05.350 align:start position:0%
is this is the network state we have a
 

00:06:05.350 --> 00:06:07.140 align:start position:0%
is this is the network state we have a
map<00:06:05.620><c> of</c><00:06:05.650><c> the</c><00:06:05.860><c> active</c><00:06:06.280><c> accounts</c><00:06:06.669><c> essentially</c>

00:06:07.140 --> 00:06:07.150 align:start position:0%
map of the active accounts essentially
 

00:06:07.150 --> 00:06:08.909 align:start position:0%
map of the active accounts essentially
that<00:06:07.240><c> map</c><00:06:07.480><c> just</c><00:06:07.690><c> states</c><00:06:07.960><c> whether</c><00:06:08.230><c> it's</c><00:06:08.590><c> an</c>

00:06:08.909 --> 00:06:08.919 align:start position:0%
that map just states whether it's an
 

00:06:08.919 --> 00:06:11.070 align:start position:0%
that map just states whether it's an
empty<00:06:09.340><c> account</c><00:06:09.700><c> or</c><00:06:09.910><c> an</c><00:06:10.090><c> actual</c><00:06:10.390><c> non-existent</c>

00:06:11.070 --> 00:06:11.080 align:start position:0%
empty account or an actual non-existent
 

00:06:11.080 --> 00:06:14.490 align:start position:0%
empty account or an actual non-existent
account<00:06:11.460><c> and</c><00:06:12.810><c> then</c><00:06:13.810><c> notice</c><00:06:14.110><c> we</c><00:06:14.230><c> have</c><00:06:14.350><c> this</c>

00:06:14.490 --> 00:06:14.500 align:start position:0%
account and then notice we have this
 

00:06:14.500 --> 00:06:16.170 align:start position:0%
account and then notice we have this
accounts<00:06:14.980><c> cell</c><00:06:15.250><c> which</c><00:06:15.580><c> is</c><00:06:15.610><c> wrapping</c><00:06:16.090><c> this</c>

00:06:16.170 --> 00:06:16.180 align:start position:0%
accounts cell which is wrapping this
 

00:06:16.180 --> 00:06:18.450 align:start position:0%
accounts cell which is wrapping this
account<00:06:16.540><c> cell</c><00:06:16.840><c> which</c><00:06:17.440><c> has</c><00:06:17.470><c> multiplicity</c><00:06:18.010><c> star</c>

00:06:18.450 --> 00:06:18.460 align:start position:0%
account cell which has multiplicity star
 

00:06:18.460 --> 00:06:20.640 align:start position:0%
account cell which has multiplicity star
which<00:06:18.820><c> basically</c><00:06:19.090><c> says</c><00:06:19.419><c> you</c><00:06:20.050><c> know</c><00:06:20.169><c> you</c><00:06:20.500><c> can</c>

00:06:20.640 --> 00:06:20.650 align:start position:0%
which basically says you know you can
 

00:06:20.650 --> 00:06:22.470 align:start position:0%
which basically says you know you can
have<00:06:20.770><c> as</c><00:06:20.860><c> many</c><00:06:21.010><c> account</c><00:06:21.490><c> cells</c><00:06:21.820><c> as</c><00:06:22.060><c> you</c><00:06:22.090><c> want</c>

00:06:22.470 --> 00:06:22.480 align:start position:0%
have as many account cells as you want
 

00:06:22.480 --> 00:06:24.810 align:start position:0%
have as many account cells as you want
so<00:06:22.900><c> you</c><00:06:23.410><c> know</c><00:06:23.530><c> in</c><00:06:23.650><c> a</c><00:06:23.710><c> realistic</c><00:06:23.980><c> EVM</c><00:06:24.490><c> network</c>

00:06:24.810 --> 00:06:24.820 align:start position:0%
so you know in a realistic EVM network
 

00:06:24.820 --> 00:06:26.880 align:start position:0%
so you know in a realistic EVM network
you<00:06:24.970><c> can</c><00:06:25.090><c> have</c><00:06:25.270><c> many</c><00:06:25.900><c> account</c><00:06:26.230><c> cells</c><00:06:26.500><c> and</c><00:06:26.770><c> then</c>

00:06:26.880 --> 00:06:26.890 align:start position:0%
you can have many account cells and then
 

00:06:26.890 --> 00:06:28.800 align:start position:0%
you can have many account cells and then
in<00:06:27.040><c> each</c><00:06:27.160><c> account</c><00:06:27.460><c> you</c><00:06:27.700><c> have</c><00:06:27.730><c> an</c><00:06:28.180><c> account</c><00:06:28.600><c> ID</c>

00:06:28.800 --> 00:06:28.810 align:start position:0%
in each account you have an account ID
 

00:06:28.810 --> 00:06:30.870 align:start position:0%
in each account you have an account ID
the<00:06:29.140><c> balance</c><00:06:29.560><c> the</c><00:06:29.800><c> code</c><00:06:30.040><c> the</c><00:06:30.370><c> storage</c><00:06:30.730><c> and</c><00:06:30.820><c> the</c>

00:06:30.870 --> 00:06:30.880 align:start position:0%
the balance the code the storage and the
 

00:06:30.880 --> 00:06:32.400 align:start position:0%
the balance the code the storage and the
nonce<00:06:31.090><c> and</c><00:06:31.330><c> these</c><00:06:31.540><c> are</c><00:06:31.690><c> the</c><00:06:31.810><c> initial</c><00:06:32.110><c> values</c>

00:06:32.400 --> 00:06:32.410 align:start position:0%
nonce and these are the initial values
 

00:06:32.410 --> 00:06:35.190 align:start position:0%
nonce and these are the initial values
down<00:06:33.130><c> here</c><00:06:33.190><c> we</c><00:06:33.940><c> also</c><00:06:34.150><c> have</c><00:06:34.450><c> things</c><00:06:34.750><c> like</c><00:06:34.900><c> the</c>

00:06:35.190 --> 00:06:35.200 align:start position:0%
down here we also have things like the
 

00:06:35.200 --> 00:06:36.719 align:start position:0%
down here we also have things like the
transact<00:06:35.620><c> of</c><00:06:35.770><c> the</c><00:06:35.830><c> current</c><00:06:36.070><c> transaction</c><00:06:36.550><c> set</c>

00:06:36.719 --> 00:06:36.729 align:start position:0%
transact of the current transaction set
 

00:06:36.729 --> 00:06:38.580 align:start position:0%
transact of the current transaction set
and<00:06:36.880><c> a</c><00:06:36.910><c> couple</c><00:06:37.090><c> other</c><00:06:37.300><c> little</c><00:06:37.600><c> network</c><00:06:38.320><c> state</c>

00:06:38.580 --> 00:06:38.590 align:start position:0%
and a couple other little network state
 

00:06:38.590 --> 00:06:40.559 align:start position:0%
and a couple other little network state
things<00:06:38.860><c> for</c><00:06:39.400><c> instance</c><00:06:39.490><c> so</c>

00:06:40.559 --> 00:06:40.569 align:start position:0%
things for instance so
 

00:06:40.569 --> 00:06:41.579 align:start position:0%
things for instance so
like<00:06:40.629><c> I</c><00:06:40.719><c> said</c><00:06:40.899><c> the</c><00:06:41.050><c> actual</c><00:06:41.199><c> configuration</c>

00:06:41.579 --> 00:06:41.589 align:start position:0%
like I said the actual configuration
 

00:06:41.589 --> 00:06:43.769 align:start position:0%
like I said the actual configuration
contains<00:06:42.309><c> you</c><00:06:42.909><c> know</c><00:06:42.999><c> sixty</c><00:06:43.330><c> plus</c><00:06:43.449><c> cells</c>

00:06:43.769 --> 00:06:43.779 align:start position:0%
contains you know sixty plus cells
 

00:06:43.779 --> 00:06:45.239 align:start position:0%
contains you know sixty plus cells
obviously<00:06:44.409><c> I</c><00:06:44.469><c> can't</c><00:06:44.649><c> put</c><00:06:44.830><c> the</c><00:06:44.889><c> whole</c><00:06:45.009><c> thing</c>

00:06:45.239 --> 00:06:45.249 align:start position:0%
obviously I can't put the whole thing
 

00:06:45.249 --> 00:06:47.669 align:start position:0%
obviously I can't put the whole thing
here<00:06:45.569><c> and</c><00:06:46.569><c> then</c><00:06:46.839><c> another</c><00:06:47.020><c> thing</c><00:06:47.259><c> to</c><00:06:47.379><c> note</c><00:06:47.529><c> this</c>

00:06:47.669 --> 00:06:47.679 align:start position:0%
here and then another thing to note this
 

00:06:47.679 --> 00:06:49.320 align:start position:0%
here and then another thing to note this
multiplicity<00:06:48.099><c> star</c><00:06:48.490><c> here</c><00:06:48.729><c> people</c><00:06:48.999><c> have</c><00:06:49.119><c> asked</c>

00:06:49.320 --> 00:06:49.330 align:start position:0%
multiplicity star here people have asked
 

00:06:49.330 --> 00:06:50.730 align:start position:0%
multiplicity star here people have asked
me<00:06:49.449><c> about</c><00:06:49.539><c> you</c><00:06:49.929><c> know</c><00:06:50.289><c> how</c><00:06:50.409><c> can</c><00:06:50.589><c> you</c><00:06:50.649><c> do</c>

00:06:50.730 --> 00:06:50.740 align:start position:0%
me about you know how can you do
 

00:06:50.740 --> 00:06:52.439 align:start position:0%
me about you know how can you do
concurrency<00:06:51.369><c> or</c><00:06:51.399><c> parallelism</c><00:06:51.939><c> or</c><00:06:52.179><c> something</c>

00:06:52.439 --> 00:06:52.449 align:start position:0%
concurrency or parallelism or something
 

00:06:52.449 --> 00:06:54.089 align:start position:0%
concurrency or parallelism or something
like<00:06:52.539><c> that</c><00:06:52.599><c> that's</c><00:06:53.229><c> exactly</c><00:06:53.379><c> how</c><00:06:53.770><c> you</c><00:06:53.800><c> do</c><00:06:54.009><c> it</c>

00:06:54.089 --> 00:06:54.099 align:start position:0%
like that that's exactly how you do it
 

00:06:54.099 --> 00:06:55.529 align:start position:0%
like that that's exactly how you do it
you<00:06:54.189><c> essentially</c><00:06:54.490><c> do</c><00:06:54.639><c> a</c><00:06:54.669><c> multiplicity</c><00:06:55.089><c> star</c>

00:06:55.529 --> 00:06:55.539 align:start position:0%
you essentially do a multiplicity star
 

00:06:55.539 --> 00:06:57.719 align:start position:0%
you essentially do a multiplicity star
in<00:06:56.439><c> a</c><00:06:56.619><c> cell</c><00:06:56.860><c> that's</c><00:06:57.069><c> surrounding</c><00:06:57.490><c> the</c><00:06:57.580><c> case</c>

00:06:57.719 --> 00:06:57.729 align:start position:0%
in a cell that's surrounding the case
 

00:06:57.729 --> 00:06:59.489 align:start position:0%
in a cell that's surrounding the case
else<00:06:58.029><c> so</c><00:06:58.179><c> for</c><00:06:58.300><c> example</c><00:06:58.659><c> in</c><00:06:58.749><c> the</c><00:06:58.839><c> C</c><00:06:58.990><c> semantics</c>

00:06:59.489 --> 00:06:59.499 align:start position:0%
else so for example in the C semantics
 

00:06:59.499 --> 00:07:01.290 align:start position:0%
else so for example in the C semantics
we<00:06:59.649><c> have</c><00:06:59.830><c> or</c><00:06:59.979><c> in</c><00:07:00.069><c> the</c><00:07:00.129><c> C++</c><00:07:00.339><c> semantics</c><00:07:01.029><c> we</c><00:07:01.149><c> have</c>

00:07:01.290 --> 00:07:01.300 align:start position:0%
we have or in the C++ semantics we have
 

00:07:01.300 --> 00:07:04.799 align:start position:0%
we have or in the C++ semantics we have
we<00:07:01.809><c> have</c><00:07:01.929><c> multi-threading</c><00:07:02.559><c> semantics</c><00:07:03.809><c> using</c>

00:07:04.799 --> 00:07:04.809 align:start position:0%
we have multi-threading semantics using
 

00:07:04.809 --> 00:07:06.889 align:start position:0%
we have multi-threading semantics using
this<00:07:04.869><c> multiplicity</c><00:07:05.229><c> star</c><00:07:05.649><c> or</c><00:07:05.889><c> in</c><00:07:06.279><c> the</c><00:07:06.369><c> rolling</c>

00:07:06.889 --> 00:07:06.899 align:start position:0%
this multiplicity star or in the rolling
 

00:07:06.899 --> 00:07:09.329 align:start position:0%
this multiplicity star or in the rolling
case<00:07:07.899><c> semantics</c><00:07:08.409><c> that</c><00:07:08.469><c> exists</c><00:07:08.860><c> that's</c><00:07:08.979><c> one</c><00:07:09.189><c> we</c>

00:07:09.329 --> 00:07:09.339 align:start position:0%
case semantics that exists that's one we
 

00:07:09.339 --> 00:07:12.329 align:start position:0%
case semantics that exists that's one we
don't<00:07:09.459><c> develop</c><00:07:10.439><c> they</c><00:07:11.439><c> also</c><00:07:11.619><c> use</c><00:07:11.830><c> multiplicity</c>

00:07:12.329 --> 00:07:12.339 align:start position:0%
don't develop they also use multiplicity
 

00:07:12.339 --> 00:07:13.949 align:start position:0%
don't develop they also use multiplicity
star<00:07:12.550><c> for</c><00:07:12.789><c> the</c><00:07:12.879><c> independent</c><00:07:13.360><c> processes</c><00:07:13.839><c> that</c>

00:07:13.949 --> 00:07:13.959 align:start position:0%
star for the independent processes that
 

00:07:13.959 --> 00:07:16.739 align:start position:0%
star for the independent processes that
are<00:07:14.080><c> evolving</c><00:07:14.439><c> in</c><00:07:14.559><c> parallel</c><00:07:15.599><c> okay</c>

00:07:16.739 --> 00:07:16.749 align:start position:0%
are evolving in parallel okay
 

00:07:16.749 --> 00:07:24.480 align:start position:0%
are evolving in parallel okay
any<00:07:17.169><c> questions</c><00:07:18.129><c> that's</c><00:07:18.699><c> far</c><00:07:21.659><c> okay</c><00:07:23.339><c> let's</c><00:07:24.339><c> get</c>

00:07:24.480 --> 00:07:24.490 align:start position:0%
any questions that's far okay let's get
 

00:07:24.490 --> 00:07:26.699 align:start position:0%
any questions that's far okay let's get
on<00:07:24.610><c> to</c><00:07:24.759><c> EDM</c><00:07:25.330><c> executions</c><00:07:25.990><c> so</c><00:07:26.080><c> before</c><00:07:26.469><c> what</c><00:07:26.619><c> we</c>

00:07:26.699 --> 00:07:26.709 align:start position:0%
on to EDM executions so before what we
 

00:07:26.709 --> 00:07:27.959 align:start position:0%
on to EDM executions so before what we
saw<00:07:26.889><c> were</c><00:07:27.069><c> rules</c><00:07:27.339><c> that</c><00:07:27.610><c> we're</c><00:07:27.729><c> just</c><00:07:27.819><c> defining</c>

00:07:27.959 --> 00:07:27.969 align:start position:0%
saw were rules that we're just defining
 

00:07:27.969 --> 00:07:29.670 align:start position:0%
saw were rules that we're just defining
functions<00:07:28.389><c> essentially</c><00:07:29.050><c> and</c><00:07:29.349><c> that's</c><00:07:29.439><c> just</c>

00:07:29.670 --> 00:07:29.680 align:start position:0%
functions essentially and that's just
 

00:07:29.680 --> 00:07:31.559 align:start position:0%
functions essentially and that's just
kind<00:07:29.830><c> of</c><00:07:29.889><c> the</c><00:07:29.949><c> functional</c><00:07:30.430><c> you</c><00:07:31.029><c> know</c><00:07:31.089><c> subset</c>

00:07:31.559 --> 00:07:31.569 align:start position:0%
kind of the functional you know subset
 

00:07:31.569 --> 00:07:32.879 align:start position:0%
kind of the functional you know subset
of<00:07:31.599><c> what</c><00:07:31.749><c> you</c><00:07:31.839><c> can</c><00:07:31.959><c> define</c><00:07:32.169><c> in</c><00:07:32.289><c> K</c><00:07:32.469><c> but</c><00:07:32.680><c> now</c><00:07:32.830><c> we</c>

00:07:32.879 --> 00:07:32.889 align:start position:0%
of what you can define in K but now we
 

00:07:32.889 --> 00:07:35.689 align:start position:0%
of what you can define in K but now we
want<00:07:33.069><c> to</c><00:07:33.219><c> define</c><00:07:33.519><c> generic</c><00:07:34.479><c> tranzact</c>

00:07:35.689 --> 00:07:35.699 align:start position:0%
want to define generic tranzact
 

00:07:35.699 --> 00:07:38.399 align:start position:0%
want to define generic tranzact
transitions<00:07:36.699><c> in</c><00:07:36.939><c> the</c><00:07:37.059><c> transition</c><00:07:37.509><c> system</c><00:07:37.869><c> so</c>

00:07:38.399 --> 00:07:38.409 align:start position:0%
transitions in the transition system so
 

00:07:38.409 --> 00:07:40.259 align:start position:0%
transitions in the transition system so
first<00:07:38.889><c> we</c><00:07:39.039><c> need</c><00:07:39.189><c> to</c><00:07:39.279><c> say</c><00:07:39.429><c> well</c><00:07:39.639><c> how</c><00:07:39.849><c> to</c><00:07:39.909><c> perform</c>

00:07:40.259 --> 00:07:40.269 align:start position:0%
first we need to say well how to perform
 

00:07:40.269 --> 00:07:42.299 align:start position:0%
first we need to say well how to perform
a<00:07:40.419><c> single</c><00:07:40.689><c> step</c><00:07:40.929><c> so</c><00:07:40.959><c> we</c><00:07:41.259><c> introduce</c><00:07:41.889><c> this</c><00:07:42.039><c> next</c>

00:07:42.299 --> 00:07:42.309 align:start position:0%
a single step so we introduce this next
 

00:07:42.309 --> 00:07:44.489 align:start position:0%
a single step so we introduce this next
operator<00:07:42.909><c> and</c><00:07:43.179><c> in</c><00:07:43.929><c> the</c><00:07:44.019><c> yellow</c><00:07:44.139><c> paper</c>

00:07:44.489 --> 00:07:44.499 align:start position:0%
operator and in the yellow paper
 

00:07:44.499 --> 00:07:47.759 align:start position:0%
operator and in the yellow paper
basically<00:07:44.769><c> what</c><00:07:45.099><c> you</c><00:07:45.189><c> do</c><00:07:45.309><c> is</c><00:07:45.580><c> you</c><00:07:46.419><c> say</c><00:07:46.659><c> okay</c><00:07:47.559><c> do</c>

00:07:47.759 --> 00:07:47.769 align:start position:0%
basically what you do is you say okay do
 

00:07:47.769 --> 00:07:49.230 align:start position:0%
basically what you do is you say okay do
a<00:07:47.800><c> few</c><00:07:48.039><c> simple</c><00:07:48.249><c> checks</c><00:07:48.580><c> to</c><00:07:48.759><c> see</c><00:07:48.909><c> if</c><00:07:48.939><c> this</c><00:07:49.180><c> is</c>

00:07:49.230 --> 00:07:49.240 align:start position:0%
a few simple checks to see if this is
 

00:07:49.240 --> 00:07:50.909 align:start position:0%
a few simple checks to see if this is
going<00:07:49.419><c> to</c><00:07:49.479><c> throw</c><00:07:49.629><c> an</c><00:07:49.719><c> exception</c><00:07:49.809><c> like</c><00:07:50.349><c> well</c>

00:07:50.909 --> 00:07:50.919 align:start position:0%
going to throw an exception like well
 

00:07:50.919 --> 00:07:53.459 align:start position:0%
going to throw an exception like well
the<00:07:51.039><c> word</c><00:07:51.189><c> stack</c><00:07:51.550><c> be</c><00:07:51.909><c> under</c><00:07:52.209><c> overflowed</c><00:07:52.839><c> will</c>

00:07:53.459 --> 00:07:53.469 align:start position:0%
the word stack be under overflowed will
 

00:07:53.469 --> 00:07:55.170 align:start position:0%
the word stack be under overflowed will
the<00:07:53.559><c> gas</c><00:07:53.740><c> limit</c><00:07:54.069><c> be</c><00:07:54.189><c> exceeded</c><00:07:54.639><c> some</c><00:07:54.999><c> other</c>

00:07:55.170 --> 00:07:55.180 align:start position:0%
the gas limit be exceeded some other
 

00:07:55.180 --> 00:07:57.239 align:start position:0%
the gas limit be exceeded some other
trucks<00:07:55.419><c> like</c><00:07:55.599><c> that</c><00:07:55.749><c> and</c><00:07:55.990><c> then</c><00:07:56.379><c> if</c><00:07:56.680><c> not</c><00:07:56.979><c> then</c>

00:07:57.239 --> 00:07:57.249 align:start position:0%
trucks like that and then if not then
 

00:07:57.249 --> 00:07:58.980 align:start position:0%
trucks like that and then if not then
you<00:07:57.369><c> execute</c><00:07:57.729><c> the</c><00:07:57.939><c> OP</c><00:07:58.089><c> code</c><00:07:58.119><c> and</c><00:07:58.599><c> then</c>

00:07:58.980 --> 00:07:58.990 align:start position:0%
you execute the OP code and then
 

00:07:58.990 --> 00:07:59.939 align:start position:0%
you execute the OP code and then
afterwards<00:07:59.379><c> you</c><00:07:59.409><c> increment</c><00:07:59.800><c> the</c><00:07:59.860><c> program</c>

00:07:59.939 --> 00:07:59.949 align:start position:0%
afterwards you increment the program
 

00:07:59.949 --> 00:08:01.920 align:start position:0%
afterwards you increment the program
counter<00:08:00.189><c> and</c><00:08:00.639><c> then</c><00:08:01.119><c> you</c><00:08:01.209><c> revert</c><00:08:01.449><c> the</c><00:08:01.599><c> state</c><00:08:01.809><c> if</c>

00:08:01.920 --> 00:08:01.930 align:start position:0%
counter and then you revert the state if
 

00:08:01.930 --> 00:08:03.149 align:start position:0%
counter and then you revert the state if
any<00:08:02.110><c> of</c><00:08:02.259><c> the</c><00:08:02.379><c> above</c><00:08:02.469><c> steps</c><00:08:02.860><c> through</c><00:08:03.069><c> an</c>

00:08:03.149 --> 00:08:03.159 align:start position:0%
any of the above steps through an
 

00:08:03.159 --> 00:08:05.999 align:start position:0%
any of the above steps through an
exception<00:08:03.779><c> okay</c><00:08:04.779><c> so</c><00:08:05.050><c> here's</c><00:08:05.259><c> the</c><00:08:05.319><c> actual</c><00:08:05.680><c> K</c>

00:08:05.999 --> 00:08:06.009 align:start position:0%
exception okay so here's the actual K
 

00:08:06.009 --> 00:08:08.309 align:start position:0%
exception okay so here's the actual K
rule<00:08:06.309><c> right</c><00:08:06.579><c> here</c><00:08:06.610><c> notice</c><00:08:07.389><c> here</c><00:08:07.749><c> now</c><00:08:08.050><c> we</c><00:08:08.110><c> have</c>

00:08:08.309 --> 00:08:08.319 align:start position:0%
rule right here notice here now we have
 

00:08:08.319 --> 00:08:09.869 align:start position:0%
rule right here notice here now we have
the<00:08:08.469><c> same</c><00:08:08.740><c> keyword</c><00:08:09.129><c> rule</c><00:08:09.430><c> but</c><00:08:09.669><c> we</c><00:08:09.699><c> have</c>

00:08:09.869 --> 00:08:09.879 align:start position:0%
the same keyword rule but we have
 

00:08:09.879 --> 00:08:12.829 align:start position:0%
the same keyword rule but we have
multiple<00:08:10.300><c> cells</c><00:08:10.569><c> mentioned</c><00:08:11.110><c> back</c><00:08:11.649><c> up</c><00:08:11.919><c> here</c>

00:08:12.829 --> 00:08:12.839 align:start position:0%
multiple cells mentioned back up here
 

00:08:12.839 --> 00:08:15.359 align:start position:0%
multiple cells mentioned back up here
right<00:08:13.839><c> we</c><00:08:14.079><c> have</c><00:08:14.259><c> rule</c><00:08:14.559><c> but</c><00:08:14.740><c> we</c><00:08:14.829><c> have</c><00:08:14.949><c> no</c><00:08:15.129><c> K</c>

00:08:15.359 --> 00:08:15.369 align:start position:0%
right we have rule but we have no K
 

00:08:15.369 --> 00:08:16.920 align:start position:0%
right we have rule but we have no K
cells<00:08:15.669><c> mentioned</c><00:08:16.149><c> and</c><00:08:16.329><c> then</c><00:08:16.629><c> we</c><00:08:16.689><c> have</c><00:08:16.809><c> this</c>

00:08:16.920 --> 00:08:16.930 align:start position:0%
cells mentioned and then we have this
 

00:08:16.930 --> 00:08:18.299 align:start position:0%
cells mentioned and then we have this
function<00:08:17.139><c> attribute</c><00:08:17.680><c> which</c><00:08:17.800><c> basically</c><00:08:18.039><c> means</c>

00:08:18.299 --> 00:08:18.309 align:start position:0%
function attribute which basically means
 

00:08:18.309 --> 00:08:19.769 align:start position:0%
function attribute which basically means
that<00:08:18.399><c> anywhere</c><00:08:18.909><c> in</c><00:08:18.999><c> the</c><00:08:19.089><c> configuration</c><00:08:19.509><c> this</c>

00:08:19.769 --> 00:08:19.779 align:start position:0%
that anywhere in the configuration this
 

00:08:19.779 --> 00:08:22.769 align:start position:0%
that anywhere in the configuration this
rule<00:08:19.959><c> can</c><00:08:20.079><c> apply</c><00:08:20.319><c> but</c><00:08:21.249><c> this</c><00:08:21.430><c> rule</c><00:08:21.699><c> only</c><00:08:21.999><c> can</c>

00:08:22.769 --> 00:08:22.779 align:start position:0%
rule can apply but this rule only can
 

00:08:22.779 --> 00:08:24.929 align:start position:0%
rule can apply but this rule only can
apply<00:08:23.050><c> exactly</c><00:08:23.409><c> at</c><00:08:23.860><c> these</c><00:08:24.249><c> parts</c><00:08:24.610><c> of</c><00:08:24.789><c> the</c>

00:08:24.929 --> 00:08:24.939 align:start position:0%
apply exactly at these parts of the
 

00:08:24.939 --> 00:08:28.170 align:start position:0%
apply exactly at these parts of the
configuration<00:08:25.569><c> so</c><00:08:26.379><c> what</c><00:08:27.099><c> do</c><00:08:27.159><c> we</c><00:08:27.219><c> do</c><00:08:27.369><c> when</c><00:08:28.089><c> we</c>

00:08:28.170 --> 00:08:28.180 align:start position:0%
configuration so what do we do when we
 

00:08:28.180 --> 00:08:30.480 align:start position:0%
configuration so what do we do when we
see<00:08:28.300><c> the</c><00:08:28.419><c> next</c><00:08:28.599><c> operator</c><00:08:29.079><c> we</c><00:08:29.319><c> replace</c><00:08:29.709><c> it</c><00:08:29.979><c> with</c>

00:08:30.480 --> 00:08:30.490 align:start position:0%
see the next operator we replace it with
 

00:08:30.490 --> 00:08:32.759 align:start position:0%
see the next operator we replace it with
this<00:08:30.729><c> chunk</c><00:08:31.029><c> of</c><00:08:31.119><c> code</c><00:08:31.180><c> when</c><00:08:32.169><c> the</c><00:08:32.349><c> program</c>

00:08:32.759 --> 00:08:32.769 align:start position:0%
this chunk of code when the program
 

00:08:32.769 --> 00:08:34.649 align:start position:0%
this chunk of code when the program
counter<00:08:32.949><c> is</c><00:08:33.250><c> P</c><00:08:33.459><c> count</c><00:08:33.759><c> and</c><00:08:33.969><c> in</c><00:08:34.240><c> the</c><00:08:34.479><c> program</c>

00:08:34.649 --> 00:08:34.659 align:start position:0%
counter is P count and in the program
 

00:08:34.659 --> 00:08:36.990 align:start position:0%
counter is P count and in the program
cell<00:08:35.079><c> the</c><00:08:35.169><c> current</c><00:08:35.409><c> program</c><00:08:35.740><c> so</c><00:08:35.949><c> that</c><00:08:36.550><c> program</c>

00:08:36.990 --> 00:08:37.000 align:start position:0%
cell the current program so that program
 

00:08:37.000 --> 00:08:38.759 align:start position:0%
cell the current program so that program
counter<00:08:37.389><c> is</c><00:08:37.419><c> pointing</c><00:08:37.959><c> to</c><00:08:38.079><c> OP</c><00:08:38.229><c> and</c><00:08:38.560><c> we</c><00:08:38.620><c> don't</c>

00:08:38.759 --> 00:08:38.769 align:start position:0%
counter is pointing to OP and we don't
 

00:08:38.769 --> 00:08:40.379 align:start position:0%
counter is pointing to OP and we don't
care<00:08:38.949><c> about</c><00:08:39.009><c> the</c><00:08:39.310><c> rest</c><00:08:39.459><c> of</c><00:08:39.759><c> the</c><00:08:39.880><c> program</c>

00:08:40.379 --> 00:08:40.389 align:start position:0%
care about the rest of the program
 

00:08:40.389 --> 00:08:42.480 align:start position:0%
care about the rest of the program
note<00:08:40.719><c> that</c><00:08:40.750><c> this</c><00:08:40.959><c> dot</c><00:08:41.199><c> dot</c><00:08:41.439><c> is</c><00:08:41.889><c> not</c><00:08:42.099><c> me</c>

00:08:42.480 --> 00:08:42.490 align:start position:0%
note that this dot dot is not me
 

00:08:42.490 --> 00:08:44.159 align:start position:0%
note that this dot dot is not me
alighting<00:08:43.029><c> details</c><00:08:43.389><c> that's</c><00:08:43.659><c> actually</c><00:08:44.050><c> what</c>

00:08:44.159 --> 00:08:44.169 align:start position:0%
alighting details that's actually what
 

00:08:44.169 --> 00:08:45.389 align:start position:0%
alighting details that's actually what
the<00:08:44.259><c> rule</c><00:08:44.410><c> looks</c><00:08:44.560><c> like</c><00:08:44.769><c> this</c><00:08:44.920><c> is</c><00:08:45.009><c> verbatim</c>

00:08:45.389 --> 00:08:45.399 align:start position:0%
the rule looks like this is verbatim
 

00:08:45.399 --> 00:08:46.139 align:start position:0%
the rule looks like this is verbatim
what<00:08:45.459><c> the</c><00:08:45.579><c> rule</c><00:08:45.699><c> looks</c><00:08:45.850><c> like</c><00:08:45.970><c> in</c><00:08:46.089><c> the</c>

00:08:46.139 --> 00:08:46.149 align:start position:0%
what the rule looks like in the
 

00:08:46.149 --> 00:08:48.660 align:start position:0%
what the rule looks like in the
semantics<00:08:46.600><c> so</c><00:08:47.199><c> essentially</c><00:08:47.709><c> we</c><00:08:48.130><c> use</c><00:08:48.310><c> this</c><00:08:48.459><c> dot</c>

00:08:48.660 --> 00:08:48.670 align:start position:0%
semantics so essentially we use this dot
 

00:08:48.670 --> 00:08:50.790 align:start position:0%
semantics so essentially we use this dot
dot<00:08:48.880><c> to</c><00:08:49.149><c> tell</c><00:08:49.300><c> K</c><00:08:49.540><c> don't</c><00:08:49.959><c> care</c><00:08:50.260><c> we</c><00:08:50.589><c> don't</c><00:08:50.620><c> care</c>

00:08:50.790 --> 00:08:50.800 align:start position:0%
dot to tell K don't care we don't care
 

00:08:50.800 --> 00:08:52.139 align:start position:0%
dot to tell K don't care we don't care
what's<00:08:51.069><c> there</c><00:08:51.220><c> we</c><00:08:51.370><c> just</c><00:08:51.519><c> care</c><00:08:51.670><c> about</c><00:08:51.699><c> that</c><00:08:51.970><c> one</c>

00:08:52.139 --> 00:08:52.149 align:start position:0%
what's there we just care about that one
 

00:08:52.149 --> 00:08:53.370 align:start position:0%
what's there we just care about that one
particular

00:08:53.370 --> 00:08:53.380 align:start position:0%
particular
 

00:08:53.380 --> 00:08:57.660 align:start position:0%
particular
opcode<00:08:53.980><c> in</c><00:08:54.220><c> the</c><00:08:54.510><c> program</c><00:08:55.510><c> cell</c><00:08:56.310><c> so</c><00:08:57.310><c> yeah</c><00:08:57.460><c> when</c>

00:08:57.660 --> 00:08:57.670 align:start position:0%
opcode in the program cell so yeah when
 

00:08:57.670 --> 00:08:59.970 align:start position:0%
opcode in the program cell so yeah when
we<00:08:57.760><c> go</c><00:08:57.880><c> next</c><00:08:58.300><c> we</c><00:08:58.450><c> say</c><00:08:58.630><c> first</c><00:08:58.960><c> push</c><00:08:59.620><c> the</c><00:08:59.800><c> call</c>

00:08:59.970 --> 00:08:59.980 align:start position:0%
we go next we say first push the call
 

00:08:59.980 --> 00:09:01.770 align:start position:0%
we go next we say first push the call
stack<00:09:00.280><c> which</c><00:09:00.520><c> basically</c><00:09:00.820><c> saves</c><00:09:01.180><c> a</c><00:09:01.330><c> copy</c><00:09:01.510><c> of</c>

00:09:01.770 --> 00:09:01.780 align:start position:0%
stack which basically saves a copy of
 

00:09:01.780 --> 00:09:04.830 align:start position:0%
stack which basically saves a copy of
the<00:09:01.870><c> current</c><00:09:02.020><c> execution</c><00:09:02.380><c> state</c><00:09:03.720><c> then</c><00:09:04.720><c> we</c>

00:09:04.830 --> 00:09:04.840 align:start position:0%
the current execution state then we
 

00:09:04.840 --> 00:09:06.780 align:start position:0%
the current execution state then we
check<00:09:05.050><c> is</c><00:09:05.230><c> it</c><00:09:05.380><c> exceptional</c><00:09:05.920><c> this</c><00:09:06.100><c> is</c><00:09:06.310><c> is</c><00:09:06.550><c> it</c><00:09:06.730><c> a</c>

00:09:06.780 --> 00:09:06.790 align:start position:0%
check is it exceptional this is is it a
 

00:09:06.790 --> 00:09:08.460 align:start position:0%
check is it exceptional this is is it a
bad<00:09:06.940><c> jump</c><00:09:07.240><c> operator</c><00:09:07.780><c> so</c><00:09:07.990><c> is</c><00:09:08.050><c> it</c><00:09:08.110><c> going</c><00:09:08.230><c> to</c><00:09:08.290><c> jump</c>

00:09:08.460 --> 00:09:08.470 align:start position:0%
bad jump operator so is it going to jump
 

00:09:08.470 --> 00:09:10.350 align:start position:0%
bad jump operator so is it going to jump
to<00:09:08.500><c> an</c><00:09:08.650><c> invalid</c><00:09:08.860><c> jump</c><00:09:09.160><c> destination</c><00:09:09.700><c> is</c><00:09:09.850><c> it</c><00:09:10.240><c> one</c>

00:09:10.350 --> 00:09:10.360 align:start position:0%
to an invalid jump destination is it one
 

00:09:10.360 --> 00:09:12.890 align:start position:0%
to an invalid jump destination is it one
of<00:09:10.420><c> the</c><00:09:10.480><c> designated</c><00:09:10.960><c> invalid</c><00:09:11.350><c> operators</c>

00:09:12.890 --> 00:09:12.900 align:start position:0%
of the designated invalid operators
 

00:09:12.900 --> 00:09:15.030 align:start position:0%
of the designated invalid operators
there's<00:09:13.900><c> one</c><00:09:14.080><c> of</c><00:09:14.260><c> the</c><00:09:14.380><c> stack</c><00:09:14.590><c> underflow</c><00:09:15.010><c> or</c>

00:09:15.030 --> 00:09:15.040 align:start position:0%
there's one of the stack underflow or
 

00:09:15.040 --> 00:09:19.230 align:start position:0%
there's one of the stack underflow or
overflow<00:09:15.160><c> check</c><00:09:16.770><c> if</c><00:09:17.770><c> that</c><00:09:18.130><c> check</c><00:09:18.670><c> passes</c><00:09:19.090><c> and</c>

00:09:19.230 --> 00:09:19.240 align:start position:0%
overflow check if that check passes and
 

00:09:19.240 --> 00:09:20.310 align:start position:0%
overflow check if that check passes and
doesn't<00:09:19.450><c> throw</c><00:09:19.540><c> an</c><00:09:19.630><c> exception</c><00:09:19.690><c> then</c><00:09:20.260><c> we</c>

00:09:20.310 --> 00:09:20.320 align:start position:0%
doesn't throw an exception then we
 

00:09:20.320 --> 00:09:22.050 align:start position:0%
doesn't throw an exception then we
actually<00:09:20.470><c> execute</c><00:09:21.070><c> the</c><00:09:21.100><c> operator</c><00:09:21.520><c> which</c><00:09:21.760><c> does</c>

00:09:22.050 --> 00:09:22.060 align:start position:0%
actually execute the operator which does
 

00:09:22.060 --> 00:09:23.670 align:start position:0%
actually execute the operator which does
the<00:09:22.240><c> memory</c><00:09:22.450><c> computation</c><00:09:23.230><c> how</c><00:09:23.380><c> much</c><00:09:23.500><c> memory</c>

00:09:23.670 --> 00:09:23.680 align:start position:0%
the memory computation how much memory
 

00:09:23.680 --> 00:09:25.980 align:start position:0%
the memory computation how much memory
this<00:09:23.920><c> is</c><00:09:24.040><c> going</c><00:09:24.190><c> to</c><00:09:24.250><c> change</c><00:09:24.780><c> also</c><00:09:25.780><c> does</c><00:09:25.900><c> the</c>

00:09:25.980 --> 00:09:25.990 align:start position:0%
this is going to change also does the
 

00:09:25.990 --> 00:09:27.990 align:start position:0%
this is going to change also does the
gas<00:09:26.110><c> computation</c><00:09:26.800><c> and</c><00:09:26.950><c> also</c><00:09:27.280><c> has</c><00:09:27.460><c> the</c><00:09:27.670><c> effect</c>

00:09:27.990 --> 00:09:28.000 align:start position:0%
gas computation and also has the effect
 

00:09:28.000 --> 00:09:29.760 align:start position:0%
gas computation and also has the effect
on<00:09:28.180><c> the</c><00:09:28.330><c> state</c><00:09:28.600><c> of</c><00:09:28.810><c> whatever</c><00:09:29.110><c> this</c><00:09:29.290><c> opcode</c><00:09:29.740><c> is</c>

00:09:29.760 --> 00:09:29.770 align:start position:0%
on the state of whatever this opcode is
 

00:09:29.770 --> 00:09:31.080 align:start position:0%
on the state of whatever this opcode is
and<00:09:30.040><c> then</c><00:09:30.460><c> we</c><00:09:30.550><c> increment</c><00:09:30.670><c> the</c><00:09:31.000><c> program</c>

00:09:31.080 --> 00:09:31.090 align:start position:0%
and then we increment the program
 

00:09:31.090 --> 00:09:33.180 align:start position:0%
and then we increment the program
counter<00:09:31.360><c> if</c><00:09:31.990><c> any</c><00:09:32.590><c> of</c><00:09:32.740><c> these</c><00:09:32.830><c> throw</c><00:09:33.100><c> an</c>

00:09:33.180 --> 00:09:33.190 align:start position:0%
counter if any of these throw an
 

00:09:33.190 --> 00:09:34.800 align:start position:0%
counter if any of these throw an
exception<00:09:33.280><c> that</c><00:09:33.880><c> exception</c><00:09:34.210><c> ends</c><00:09:34.720><c> up</c>

00:09:34.800 --> 00:09:34.810 align:start position:0%
exception that exception ends up
 

00:09:34.810 --> 00:09:36.870 align:start position:0%
exception that exception ends up
consuming<00:09:35.310><c> the</c><00:09:36.310><c> remaining</c><00:09:36.670><c> of</c><00:09:36.760><c> these</c>

00:09:36.870 --> 00:09:36.880 align:start position:0%
consuming the remaining of these
 

00:09:36.880 --> 00:09:39.630 align:start position:0%
consuming the remaining of these
operators<00:09:37.270><c> until</c><00:09:37.690><c> it</c><00:09:37.840><c> hits</c><00:09:38.020><c> this</c><00:09:38.640><c> syntax</c>

00:09:39.630 --> 00:09:39.640 align:start position:0%
operators until it hits this syntax
 

00:09:39.640 --> 00:09:41.430 align:start position:0%
operators until it hits this syntax
right<00:09:39.940><c> here</c><00:09:40.210><c> which</c><00:09:40.510><c> basically</c><00:09:40.810><c> acts</c><00:09:41.110><c> like</c><00:09:41.320><c> an</c>

00:09:41.430 --> 00:09:41.440 align:start position:0%
right here which basically acts like an
 

00:09:41.440 --> 00:09:43.560 align:start position:0%
right here which basically acts like an
if-then-else<00:09:41.860><c> over</c><00:09:42.160><c> exceptions</c><00:09:42.670><c> so</c><00:09:43.240><c> if</c><00:09:43.390><c> there</c>

00:09:43.560 --> 00:09:43.570 align:start position:0%
if-then-else over exceptions so if there
 

00:09:43.570 --> 00:09:44.520 align:start position:0%
if-then-else over exceptions so if there
is<00:09:43.600><c> no</c><00:09:43.840><c> exceptions</c>

00:09:44.520 --> 00:09:44.530 align:start position:0%
is no exceptions
 

00:09:44.530 --> 00:09:47.100 align:start position:0%
is no exceptions
we<00:09:44.770><c> drop</c><00:09:45.040><c> the</c><00:09:45.190><c> call</c><00:09:45.370><c> stack</c><00:09:45.700><c> which</c><00:09:46.210><c> essentially</c>

00:09:47.100 --> 00:09:47.110 align:start position:0%
we drop the call stack which essentially
 

00:09:47.110 --> 00:09:48.720 align:start position:0%
we drop the call stack which essentially
forgets<00:09:47.500><c> the</c><00:09:47.710><c> state</c><00:09:47.920><c> that</c><00:09:48.070><c> we</c><00:09:48.130><c> saved</c><00:09:48.370><c> up</c><00:09:48.520><c> here</c>

00:09:48.720 --> 00:09:48.730 align:start position:0%
forgets the state that we saved up here
 

00:09:48.730 --> 00:09:50.610 align:start position:0%
forgets the state that we saved up here
but<00:09:49.210><c> there</c><00:09:49.330><c> is</c><00:09:49.510><c> an</c><00:09:49.720><c> exception</c><00:09:49.810><c> we</c><00:09:50.320><c> take</c><00:09:50.500><c> the</c>

00:09:50.610 --> 00:09:50.620 align:start position:0%
but there is an exception we take the
 

00:09:50.620 --> 00:09:52.470 align:start position:0%
but there is an exception we take the
false<00:09:50.860><c> branch</c><00:09:51.130><c> of</c><00:09:51.370><c> this</c><00:09:51.460><c> if-then-else</c><00:09:52.000><c> which</c>

00:09:52.470 --> 00:09:52.480 align:start position:0%
false branch of this if-then-else which
 

00:09:52.480 --> 00:09:53.580 align:start position:0%
false branch of this if-then-else which
means<00:09:52.660><c> that</c><00:09:52.750><c> we</c><00:09:52.840><c> pop</c><00:09:53.020><c> the</c><00:09:53.170><c> call</c><00:09:53.350><c> stack</c>

00:09:53.580 --> 00:09:53.590 align:start position:0%
means that we pop the call stack
 

00:09:53.590 --> 00:09:55.260 align:start position:0%
means that we pop the call stack
reverting<00:09:54.250><c> to</c><00:09:54.280><c> the</c><00:09:54.490><c> previous</c><00:09:54.850><c> state</c><00:09:55.060><c> and</c>

00:09:55.260 --> 00:09:55.270 align:start position:0%
reverting to the previous state and
 

00:09:55.270 --> 00:09:57.570 align:start position:0%
reverting to the previous state and
propagate<00:09:56.020><c> the</c><00:09:56.110><c> exception</c><00:09:56.530><c> on</c><00:09:56.710><c> so</c><00:09:57.400><c> this</c>

00:09:57.570 --> 00:09:57.580 align:start position:0%
propagate the exception on so this
 

00:09:57.580 --> 00:09:59.280 align:start position:0%
propagate the exception on so this
little<00:09:57.820><c> squiggly</c><00:09:58.060><c> arrow</c><00:09:58.240><c> can</c><00:09:58.840><c> be</c><00:09:58.870><c> read</c><00:09:59.140><c> as</c>

00:09:59.280 --> 00:09:59.290 align:start position:0%
little squiggly arrow can be read as
 

00:09:59.290 --> 00:10:01.830 align:start position:0%
little squiggly arrow can be read as
followed<00:09:59.800><c> by</c><00:09:59.950><c> essentially</c><00:10:00.730><c> so</c><00:10:01.420><c> if</c><00:10:01.600><c> you</c><00:10:01.690><c> only</c>

00:10:01.830 --> 00:10:01.840 align:start position:0%
followed by essentially so if you only
 

00:10:01.840 --> 00:10:04.110 align:start position:0%
followed by essentially so if you only
see<00:10:02.140><c> a</c><00:10:02.350><c> single</c><00:10:02.740><c> element</c><00:10:02.980><c> right</c><00:10:03.280><c> here</c><00:10:03.610><c> with</c>

00:10:04.110 --> 00:10:04.120 align:start position:0%
see a single element right here with
 

00:10:04.120 --> 00:10:07.110 align:start position:0%
see a single element right here with
this<00:10:04.240><c> dot</c><00:10:04.480><c> dot</c><00:10:04.690><c> so</c><00:10:05.440><c> this</c><00:10:05.620><c> the</c><00:10:06.430><c> precedence</c><00:10:07.000><c> of</c>

00:10:07.110 --> 00:10:07.120 align:start position:0%
this dot dot so this the precedence of
 

00:10:07.120 --> 00:10:09.210 align:start position:0%
this dot dot so this the precedence of
this<00:10:07.270><c> is</c><00:10:07.420><c> that</c><00:10:07.600><c> this</c><00:10:07.810><c> dot</c><00:10:08.200><c> dot</c><00:10:08.230><c> is</c><00:10:08.470><c> outside</c><00:10:08.950><c> of</c>

00:10:09.210 --> 00:10:09.220 align:start position:0%
this is that this dot dot is outside of
 

00:10:09.220 --> 00:10:13.200 align:start position:0%
this is that this dot dot is outside of
the<00:10:09.700><c> scope</c><00:10:09.820><c> of</c><00:10:10.090><c> this</c><00:10:10.240><c> rewrite</c><00:10:11.020><c> arrow</c><00:10:12.210><c> then</c>

00:10:13.200 --> 00:10:13.210 align:start position:0%
the scope of this rewrite arrow then
 

00:10:13.210 --> 00:10:14.640 align:start position:0%
the scope of this rewrite arrow then
that<00:10:13.390><c> means</c><00:10:13.570><c> there's</c><00:10:13.750><c> only</c><00:10:13.810><c> a</c><00:10:13.960><c> single</c><00:10:14.170><c> element</c>

00:10:14.640 --> 00:10:14.650 align:start position:0%
that means there's only a single element
 

00:10:14.650 --> 00:10:16.380 align:start position:0%
that means there's only a single element
and<00:10:14.800><c> then</c><00:10:14.890><c> anything</c><00:10:15.160><c> else</c><00:10:15.430><c> in</c><00:10:15.910><c> the</c><00:10:16.060><c> followed</c>

00:10:16.380 --> 00:10:16.390 align:start position:0%
and then anything else in the followed
 

00:10:16.390 --> 00:10:17.760 align:start position:0%
and then anything else in the followed
by<00:10:16.510><c> part</c><00:10:16.780><c> but</c><00:10:16.930><c> we're</c><00:10:17.080><c> replacing</c><00:10:17.290><c> the</c><00:10:17.590><c> single</c>

00:10:17.760 --> 00:10:17.770 align:start position:0%
by part but we're replacing the single
 

00:10:17.770 --> 00:10:18.720 align:start position:0%
by part but we're replacing the single
element<00:10:18.160><c> with</c><00:10:18.280><c> several</c><00:10:18.610><c> different</c>

00:10:18.720 --> 00:10:18.730 align:start position:0%
element with several different
 

00:10:18.730 --> 00:10:21.360 align:start position:0%
element with several different
computations<00:10:19.480><c> to</c><00:10:19.720><c> make</c><00:10:19.900><c> does</c><00:10:20.890><c> this</c><00:10:21.040><c> make</c>

00:10:21.360 --> 00:10:21.370 align:start position:0%
computations to make does this make
 

00:10:21.370 --> 00:10:26.090 align:start position:0%
computations to make does this make
sense<00:10:24.480><c> all</c><00:10:25.480><c> right</c>

00:10:26.090 --> 00:10:26.100 align:start position:0%
sense all right
 

00:10:26.100 --> 00:10:29.160 align:start position:0%
sense all right
okay<00:10:27.100><c> so</c><00:10:27.160><c> EBM</c><00:10:27.730><c> programs</c><00:10:28.150><c> let's</c><00:10:28.870><c> take</c><00:10:28.990><c> a</c><00:10:29.020><c> look</c>

00:10:29.160 --> 00:10:29.170 align:start position:0%
okay so EBM programs let's take a look
 

00:10:29.170 --> 00:10:32.460 align:start position:0%
okay so EBM programs let's take a look
what<00:10:29.290><c> they</c><00:10:29.410><c> look</c><00:10:29.590><c> like</c><00:10:29.620><c> in</c><00:10:29.860><c> K</c><00:10:31.110><c> EVM</c><00:10:32.110><c> opcodes</c>

00:10:32.460 --> 00:10:32.470 align:start position:0%
what they look like in K EVM opcodes
 

00:10:32.470 --> 00:10:34.650 align:start position:0%
what they look like in K EVM opcodes
here<00:10:32.830><c> are</c><00:10:32.950><c> some</c><00:10:33.190><c> simple</c><00:10:33.610><c> expressions</c><00:10:34.180><c> so</c><00:10:34.480><c> we</c>

00:10:34.650 --> 00:10:34.660 align:start position:0%
here are some simple expressions so we
 

00:10:34.660 --> 00:10:36.690 align:start position:0%
here are some simple expressions so we
actually<00:10:34.810><c> been</c><00:10:35.500><c> up</c><00:10:35.680><c> the</c><00:10:35.830><c> opcodes</c><00:10:36.250><c> based</c><00:10:36.520><c> on</c>

00:10:36.690 --> 00:10:36.700 align:start position:0%
actually been up the opcodes based on
 

00:10:36.700 --> 00:10:39.030 align:start position:0%
actually been up the opcodes based on
their<00:10:36.940><c> arity</c><00:10:37.360><c> essentially</c><00:10:37.990><c> so</c><00:10:38.200><c> sub</c><00:10:38.650><c> and</c><00:10:38.830><c> div</c>

00:10:39.030 --> 00:10:39.040 align:start position:0%
their arity essentially so sub and div
 

00:10:39.040 --> 00:10:41.400 align:start position:0%
their arity essentially so sub and div
are<00:10:39.250><c> binstock</c><00:10:39.670><c> ops</c><00:10:40.000><c> and</c><00:10:40.240><c> we</c><00:10:40.720><c> use</c><00:10:40.930><c> somewhere</c>

00:10:41.400 --> 00:10:41.410 align:start position:0%
are binstock ops and we use somewhere
 

00:10:41.410 --> 00:10:42.420 align:start position:0%
are binstock ops and we use somewhere
else<00:10:41.560><c> in</c><00:10:41.680><c> the</c><00:10:41.770><c> semantics</c><00:10:42.220><c> we</c><00:10:42.340><c> will</c>

00:10:42.420 --> 00:10:42.430 align:start position:0%
else in the semantics we will
 

00:10:42.430 --> 00:10:44.010 align:start position:0%
else in the semantics we will
automatically<00:10:43.000><c> load</c><00:10:43.180><c> the</c><00:10:43.210><c> arguments</c><00:10:43.870><c> based</c>

00:10:44.010 --> 00:10:44.020 align:start position:0%
automatically load the arguments based
 

00:10:44.020 --> 00:10:45.690 align:start position:0%
automatically load the arguments based
on<00:10:44.200><c> the</c><00:10:44.320><c> air</c><00:10:44.440><c> D</c><00:10:44.590><c> so</c><00:10:44.710><c> all</c><00:10:44.860><c> bins</c><00:10:45.100><c> stack</c><00:10:45.310><c> offs</c><00:10:45.520><c> will</c>

00:10:45.690 --> 00:10:45.700 align:start position:0%
on the air D so all bins stack offs will
 

00:10:45.700 --> 00:10:47.340 align:start position:0%
on the air D so all bins stack offs will
get<00:10:45.820><c> two</c><00:10:45.970><c> arguments</c><00:10:46.420><c> off</c><00:10:46.510><c> the</c><00:10:46.630><c> word</c><00:10:46.750><c> stack</c><00:10:47.050><c> and</c>

00:10:47.340 --> 00:10:47.350 align:start position:0%
get two arguments off the word stack and
 

00:10:47.350 --> 00:10:48.900 align:start position:0%
get two arguments off the word stack and
the<00:10:47.800><c> word</c><00:10:47.950><c> stack</c><00:10:48.190><c> will</c><00:10:48.310><c> have</c><00:10:48.430><c> those</c><00:10:48.580><c> arguments</c>

00:10:48.900 --> 00:10:48.910 align:start position:0%
the word stack will have those arguments
 

00:10:48.910 --> 00:10:51.690 align:start position:0%
the word stack will have those arguments
removed<00:10:49.360><c> so</c><00:10:50.020><c> sub</c><00:10:50.290><c> just</c><00:10:50.500><c> goes</c><00:10:50.680><c> to</c><00:10:50.860><c> -</c><00:10:51.130><c> word</c><00:10:51.340><c> Dave</c>

00:10:51.690 --> 00:10:51.700 align:start position:0%
removed so sub just goes to - word Dave
 

00:10:51.700 --> 00:10:54.570 align:start position:0%
removed so sub just goes to - word Dave
goes<00:10:51.910><c> to</c><00:10:52.090><c> /</c><00:10:52.510><c> push</c><00:10:52.900><c> /</c><00:10:53.470><c> word</c><00:10:53.770><c> and</c><00:10:53.980><c> then</c><00:10:54.400><c> that's</c>

00:10:54.570 --> 00:10:54.580 align:start position:0%
goes to / push / word and then that's
 

00:10:54.580 --> 00:10:56.160 align:start position:0%
goes to / push / word and then that's
followed<00:10:54.730><c> by</c><00:10:54.880><c> this</c><00:10:55.000><c> hash</c><00:10:55.300><c> push</c><00:10:55.630><c> which</c><00:10:55.900><c> is</c><00:10:56.020><c> just</c>

00:10:56.160 --> 00:10:56.170 align:start position:0%
followed by this hash push which is just
 

00:10:56.170 --> 00:10:58.110 align:start position:0%
followed by this hash push which is just
an<00:10:56.260><c> internal</c><00:10:56.620><c> operator</c><00:10:57.010><c> for</c><00:10:57.190><c> actually</c><00:10:57.520><c> moving</c>

00:10:58.110 --> 00:10:58.120 align:start position:0%
an internal operator for actually moving
 

00:10:58.120 --> 00:11:00.270 align:start position:0%
an internal operator for actually moving
the<00:10:58.300><c> result</c><00:10:58.600><c> over</c><00:10:58.870><c> to</c><00:10:59.050><c> the</c><00:10:59.170><c> /</c><00:10:59.980><c> -</c><00:11:00.070><c> the</c><00:11:00.160><c> word</c>

00:11:00.270 --> 00:11:00.280 align:start position:0%
the result over to the / - the word
 

00:11:00.280 --> 00:11:04.829 align:start position:0%
the result over to the / - the word
stack<00:11:01.140><c> and</c><00:11:02.700><c> then</c><00:11:03.700><c> in</c><00:11:03.970><c> here's</c><00:11:04.390><c> some</c><00:11:04.540><c> local</c>

00:11:04.829 --> 00:11:04.839 align:start position:0%
stack and then in here's some local
 

00:11:04.839 --> 00:11:06.780 align:start position:0%
stack and then in here's some local
memory<00:11:04.990><c> operators</c><00:11:05.589><c> like</c><00:11:05.770><c> M</c><00:11:05.950><c> load</c><00:11:06.250><c> which</c><00:11:06.550><c> is</c><00:11:06.580><c> a</c>

00:11:06.780 --> 00:11:06.790 align:start position:0%
memory operators like M load which is a
 

00:11:06.790 --> 00:11:08.880 align:start position:0%
memory operators like M load which is a
and<00:11:06.880><c> stack</c><00:11:07.210><c> up</c><00:11:07.420><c> so</c><00:11:07.630><c> it</c><00:11:07.690><c> takes</c><00:11:07.840><c> one</c><00:11:08.020><c> argument</c><00:11:08.050><c> so</c>

00:11:08.880 --> 00:11:08.890 align:start position:0%
and stack up so it takes one argument so
 

00:11:08.890 --> 00:11:11.340 align:start position:0%
and stack up so it takes one argument so
M<00:11:09.070><c> load</c><00:11:09.340><c> had</c><00:11:09.640><c> a</c><00:11:09.670><c> specific</c><00:11:09.940><c> index</c><00:11:10.480><c> you</c><00:11:11.080><c> go</c><00:11:11.200><c> and</c>

00:11:11.340 --> 00:11:11.350 align:start position:0%
M load had a specific index you go and
 

00:11:11.350 --> 00:11:12.780 align:start position:0%
M load had a specific index you go and
grab<00:11:11.530><c> the</c><00:11:11.680><c> local</c><00:11:11.980><c> memory</c><00:11:12.160><c> from</c><00:11:12.400><c> the</c><00:11:12.490><c> local</c>

00:11:12.780 --> 00:11:12.790 align:start position:0%
grab the local memory from the local
 

00:11:12.790 --> 00:11:16.080 align:start position:0%
grab the local memory from the local
memory<00:11:12.940><c> cell</c><00:11:13.240><c> and</c><00:11:13.450><c> then</c><00:11:14.440><c> you</c><00:11:14.560><c> say</c><00:11:14.770><c> as</c><00:11:15.010><c> word</c><00:11:15.400><c> the</c>

00:11:16.080 --> 00:11:16.090 align:start position:0%
memory cell and then you say as word the
 

00:11:16.090 --> 00:11:17.910 align:start position:0%
memory cell and then you say as word the
range<00:11:16.390><c> for</c><00:11:16.840><c> the</c><00:11:16.960><c> local</c><00:11:17.260><c> memory</c><00:11:17.410><c> starting</c><00:11:17.830><c> at</c>

00:11:17.910 --> 00:11:17.920 align:start position:0%
range for the local memory starting at
 

00:11:17.920 --> 00:11:20.310 align:start position:0%
range for the local memory starting at
index<00:11:18.220><c> and</c><00:11:18.430><c> going</c><00:11:18.610><c> 32</c><00:11:18.970><c> bytes</c><00:11:19.180><c> so</c><00:11:19.720><c> you</c><00:11:19.780><c> take</c><00:11:19.930><c> 32</c>

00:11:20.310 --> 00:11:20.320 align:start position:0%
index and going 32 bytes so you take 32
 

00:11:20.320 --> 00:11:21.990 align:start position:0%
index and going 32 bytes so you take 32
bytes<00:11:20.530><c> from</c><00:11:20.650><c> a</c><00:11:20.740><c> local</c><00:11:20.980><c> memory</c><00:11:21.130><c> pack</c><00:11:21.850><c> it</c>

00:11:21.990 --> 00:11:22.000 align:start position:0%
bytes from a local memory pack it
 

00:11:22.000 --> 00:11:23.790 align:start position:0%
bytes from a local memory pack it
together<00:11:22.240><c> as</c><00:11:22.420><c> a</c><00:11:22.450><c> word</c><00:11:22.660><c> and</c><00:11:22.960><c> then</c><00:11:23.530><c> you</c><00:11:23.620><c> push</c>

00:11:23.790 --> 00:11:23.800 align:start position:0%
together as a word and then you push
 

00:11:23.800 --> 00:11:25.200 align:start position:0%
together as a word and then you push
that<00:11:23.980><c> on</c><00:11:24.130><c> to</c><00:11:24.220><c> the</c><00:11:24.280><c> word</c><00:11:24.430><c> stack</c><00:11:24.700><c> because</c>

00:11:25.200 --> 00:11:25.210 align:start position:0%
that on to the word stack because
 

00:11:25.210 --> 00:11:26.670 align:start position:0%
that on to the word stack because
remember<00:11:25.420><c> the</c><00:11:25.600><c> local</c><00:11:25.930><c> memory</c><00:11:26.080><c> is</c><00:11:26.320><c> actually</c><00:11:26.650><c> a</c>

00:11:26.670 --> 00:11:26.680 align:start position:0%
remember the local memory is actually a
 

00:11:26.680 --> 00:11:29.780 align:start position:0%
remember the local memory is actually a
byte<00:11:26.980><c> sequence</c><00:11:27.820><c> it's</c><00:11:28.000><c> not</c><00:11:28.150><c> a</c><00:11:28.180><c> word</c><00:11:28.390><c> sequence</c>

00:11:29.780 --> 00:11:29.790 align:start position:0%
byte sequence it's not a word sequence
 

00:11:29.790 --> 00:11:33.150 align:start position:0%
byte sequence it's not a word sequence
here<00:11:30.790><c> we</c><00:11:30.910><c> have</c><00:11:31.030><c> a</c><00:11:31.060><c> bin</c><00:11:31.240><c> stack</c><00:11:31.480><c> up</c><00:11:31.720><c> M</c><00:11:31.930><c> store</c><00:11:32.290><c> so</c><00:11:32.860><c> M</c>

00:11:33.150 --> 00:11:33.160 align:start position:0%
here we have a bin stack up M store so M
 

00:11:33.160 --> 00:11:36.570 align:start position:0%
here we have a bin stack up M store so M
store<00:11:33.520><c> of</c><00:11:33.760><c> this</c><00:11:34.390><c> value</c><00:11:34.930><c> at</c><00:11:35.140><c> this</c><00:11:35.410><c> index</c><00:11:35.860><c> it's</c>

00:11:36.570 --> 00:11:36.580 align:start position:0%
store of this value at this index it's
 

00:11:36.580 --> 00:11:37.860 align:start position:0%
store of this value at this index it's
going<00:11:36.730><c> to</c><00:11:36.790><c> take</c><00:11:36.940><c> the</c><00:11:37.060><c> local</c><00:11:37.360><c> memory</c><00:11:37.540><c> and</c>

00:11:37.860 --> 00:11:37.870 align:start position:0%
going to take the local memory and
 

00:11:37.870 --> 00:11:40.020 align:start position:0%
going to take the local memory and
replace<00:11:38.200><c> it</c><00:11:38.440><c> with</c><00:11:38.470><c> the</c><00:11:38.680><c> local</c><00:11:38.860><c> memory</c><00:11:39.340><c> where</c>

00:11:40.020 --> 00:11:40.030 align:start position:0%
replace it with the local memory where
 

00:11:40.030 --> 00:11:43.790 align:start position:0%
replace it with the local memory where
at<00:11:40.180><c> that</c><00:11:40.390><c> index</c><00:11:40.900><c> you</c><00:11:41.290><c> write</c><00:11:41.590><c> 32</c><00:11:42.430><c> words</c>

00:11:43.790 --> 00:11:43.800 align:start position:0%
at that index you write 32 words
 

00:11:43.800 --> 00:11:46.290 align:start position:0%
at that index you write 32 words
prefixed<00:11:44.800><c> with</c><00:11:44.980><c> essentially</c><00:11:45.790><c> the</c><00:11:45.820><c> bytes</c><00:11:46.060><c> of</c>

00:11:46.290 --> 00:11:46.300 align:start position:0%
prefixed with essentially the bytes of
 

00:11:46.300 --> 00:11:48.630 align:start position:0%
prefixed with essentially the bytes of
this<00:11:46.450><c> value</c><00:11:47.350><c> so</c><00:11:47.680><c> you</c><00:11:47.740><c> chop</c><00:11:48.010><c> that</c><00:11:48.190><c> value</c><00:11:48.550><c> up</c>

00:11:48.630 --> 00:11:48.640 align:start position:0%
this value so you chop that value up
 

00:11:48.640 --> 00:11:50.280 align:start position:0%
this value so you chop that value up
into<00:11:48.820><c> 32</c><00:11:49.060><c> different</c><00:11:49.240><c> words</c><00:11:49.540><c> if</c><00:11:49.900><c> it's</c><00:11:50.140><c> not</c>

00:11:50.280 --> 00:11:50.290 align:start position:0%
into 32 different words if it's not
 

00:11:50.290 --> 00:11:52.080 align:start position:0%
into 32 different words if it's not
enough<00:11:50.530><c> you</c><00:11:50.680><c> pad</c><00:11:50.890><c> it</c><00:11:50.920><c> to</c><00:11:51.100><c> the</c><00:11:51.190><c> width</c><00:11:51.340><c> of</c><00:11:51.460><c> 32</c><00:11:51.850><c> and</c>

00:11:52.080 --> 00:11:52.090 align:start position:0%
enough you pad it to the width of 32 and
 

00:11:52.090 --> 00:11:54.170 align:start position:0%
enough you pad it to the width of 32 and
then<00:11:52.570><c> you</c><00:11:52.660><c> write</c><00:11:52.810><c> it</c><00:11:52.900><c> to</c><00:11:52.990><c> the</c><00:11:53.020><c> local</c><00:11:53.200><c> memory</c>

00:11:54.170 --> 00:11:54.180 align:start position:0%
then you write it to the local memory
 

00:11:54.180 --> 00:11:58.320 align:start position:0%
then you write it to the local memory
does<00:11:55.180><c> this</c><00:11:55.300><c> make</c><00:11:55.690><c> sense</c><00:11:56.340><c> okay</c><00:11:57.340><c> so</c><00:11:58.060><c> the</c><00:11:58.150><c> rules</c>

00:11:58.320 --> 00:11:58.330 align:start position:0%
does this make sense okay so the rules
 

00:11:58.330 --> 00:11:59.400 align:start position:0%
does this make sense okay so the rules
are<00:11:58.420><c> gonna</c><00:11:58.600><c> start</c><00:11:58.810><c> getting</c><00:11:58.930><c> bigger</c><00:11:59.230><c> and</c>

00:11:59.400 --> 00:11:59.410 align:start position:0%
are gonna start getting bigger and
 

00:11:59.410 --> 00:12:00.750 align:start position:0%
are gonna start getting bigger and
mentioning<00:11:59.800><c> more</c><00:11:59.950><c> of</c><00:12:00.010><c> the</c><00:12:00.100><c> configuration</c>

00:12:00.750 --> 00:12:00.760 align:start position:0%
mentioning more of the configuration
 

00:12:00.760 --> 00:12:02.850 align:start position:0%
mentioning more of the configuration
notice<00:12:01.150><c> this</c><00:12:01.330><c> only</c><00:12:01.510><c> mentions</c><00:12:01.870><c> one</c><00:12:02.020><c> cell</c><00:12:02.320><c> this</c>

00:12:02.850 --> 00:12:02.860 align:start position:0%
notice this only mentions one cell this
 

00:12:02.860 --> 00:12:04.230 align:start position:0%
notice this only mentions one cell this
mentions<00:12:03.190><c> two</c><00:12:03.340><c> so</c><00:12:03.490><c> oh</c><00:12:03.700><c> and</c><00:12:03.730><c> there's</c><00:12:03.940><c> one</c><00:12:04.090><c> more</c>

00:12:04.230 --> 00:12:04.240 align:start position:0%
mentions two so oh and there's one more
 

00:12:04.240 --> 00:12:06.120 align:start position:0%
mentions two so oh and there's one more
thing<00:12:04.450><c> notice</c><00:12:05.050><c> here</c><00:12:05.320><c> we</c><00:12:05.440><c> have</c><00:12:05.470><c> to</c><00:12:05.860><c> rewrite</c>

00:12:06.120 --> 00:12:06.130 align:start position:0%
thing notice here we have to rewrite
 

00:12:06.130 --> 00:12:09.060 align:start position:0%
thing notice here we have to rewrite
arrows<00:12:06.720><c> this</c><00:12:07.720><c> is</c><00:12:07.930><c> as</c><00:12:08.080><c> opposed</c><00:12:08.350><c> to</c><00:12:08.500><c> a</c><00:12:08.650><c> lot</c><00:12:09.040><c> of</c>

00:12:09.060 --> 00:12:09.070 align:start position:0%
arrows this is as opposed to a lot of
 

00:12:09.070 --> 00:12:10.620 align:start position:0%
arrows this is as opposed to a lot of
languages<00:12:09.610><c> which</c><00:12:09.850><c> would</c><00:12:10.000><c> require</c><00:12:10.300><c> that</c><00:12:10.510><c> you</c>

00:12:10.620 --> 00:12:10.630 align:start position:0%
languages which would require that you
 

00:12:10.630 --> 00:12:13.290 align:start position:0%
languages which would require that you
pull<00:12:10.870><c> this</c><00:12:11.050><c> rewrite</c><00:12:11.440><c> arrow</c><00:12:11.710><c> outside</c><00:12:12.610><c> copy</c><00:12:13.090><c> the</c>

00:12:13.290 --> 00:12:13.300 align:start position:0%
pull this rewrite arrow outside copy the
 

00:12:13.300 --> 00:12:15.810 align:start position:0%
pull this rewrite arrow outside copy the
whole<00:12:13.390><c> configuration</c><00:12:13.720><c> above</c><00:12:14.350><c> and</c><00:12:14.500><c> below</c><00:12:14.820><c> but</c>

00:12:15.810 --> 00:12:15.820 align:start position:0%
whole configuration above and below but
 

00:12:15.820 --> 00:12:17.490 align:start position:0%
whole configuration above and below but
if<00:12:15.970><c> essentially</c><00:12:16.450><c> K</c><00:12:16.600><c> does</c><00:12:16.840><c> that</c><00:12:16.990><c> for</c><00:12:17.230><c> you</c><00:12:17.380><c> it</c>

00:12:17.490 --> 00:12:17.500 align:start position:0%
if essentially K does that for you it
 

00:12:17.500 --> 00:12:19.140 align:start position:0%
if essentially K does that for you it
pulls<00:12:17.710><c> rewrite</c><00:12:18.040><c> arrow</c><00:12:18.220><c> outside</c><00:12:18.610><c> and</c><00:12:18.790><c> copies</c>

00:12:19.140 --> 00:12:19.150 align:start position:0%
pulls rewrite arrow outside and copies
 

00:12:19.150 --> 00:12:20.910 align:start position:0%
pulls rewrite arrow outside and copies
you<00:12:19.690><c> know</c><00:12:19.810><c> so</c><00:12:19.930><c> you'll</c><00:12:20.080><c> have</c><00:12:20.170><c> a</c><00:12:20.230><c> K</c><00:12:20.440><c> and</c><00:12:20.590><c> a</c><00:12:20.680><c> local</c>

00:12:20.910 --> 00:12:20.920 align:start position:0%
you know so you'll have a K and a local
 

00:12:20.920 --> 00:12:22.440 align:start position:0%
you know so you'll have a K and a local
man<00:12:21.040><c> before</c><00:12:21.340><c> then</c><00:12:21.550><c> the</c><00:12:21.700><c> rewrite</c><00:12:21.970><c> arrow</c><00:12:22.180><c> then</c><00:12:22.390><c> a</c>

00:12:22.440 --> 00:12:22.450 align:start position:0%
man before then the rewrite arrow then a
 

00:12:22.450 --> 00:12:24.420 align:start position:0%
man before then the rewrite arrow then a
key<00:12:22.600><c> and</c><00:12:22.660><c> a</c><00:12:22.750><c> local</c><00:12:22.900><c> man</c><00:12:23.170><c> with</c><00:12:23.890><c> the</c><00:12:24.010><c> right</c><00:12:24.190><c> hand</c>

00:12:24.420 --> 00:12:24.430 align:start position:0%
key and a local man with the right hand
 

00:12:24.430 --> 00:12:26.070 align:start position:0%
key and a local man with the right hand
side<00:12:24.610><c> of</c><00:12:24.790><c> these</c><00:12:24.940><c> but</c><00:12:25.180><c> okay</c><00:12:25.570><c> just</c><00:12:25.780><c> pull</c><00:12:25.930><c> those</c>

00:12:26.070 --> 00:12:26.080 align:start position:0%
side of these but okay just pull those
 

00:12:26.080 --> 00:12:27.600 align:start position:0%
side of these but okay just pull those
out<00:12:26.170><c> for</c><00:12:26.410><c> you</c><00:12:26.440><c> so</c><00:12:26.650><c> the</c><00:12:27.040><c> rule</c><00:12:27.190><c> can</c><00:12:27.340><c> be</c><00:12:27.400><c> a</c><00:12:27.430><c> little</c>

00:12:27.600 --> 00:12:27.610 align:start position:0%
out for you so the rule can be a little
 

00:12:27.610 --> 00:12:30.960 align:start position:0%
out for you so the rule can be a little
more<00:12:27.730><c> compact</c><00:12:28.060><c> and</c><00:12:28.270><c> readable</c><00:12:29.730><c> does</c><00:12:30.730><c> that</c><00:12:30.820><c> make</c>

00:12:30.960 --> 00:12:30.970 align:start position:0%
more compact and readable does that make
 

00:12:30.970 --> 00:12:31.790 align:start position:0%
more compact and readable does that make
sense

00:12:31.790 --> 00:12:31.800 align:start position:0%
sense
 

00:12:31.800 --> 00:12:34.770 align:start position:0%
sense
okay<00:12:32.800><c> so</c><00:12:33.730><c> then</c><00:12:33.880><c> here's</c><00:12:34.240><c> some</c><00:12:34.420><c> aetherium</c>

00:12:34.770 --> 00:12:34.780 align:start position:0%
okay so then here's some aetherium
 

00:12:34.780 --> 00:12:37.020 align:start position:0%
okay so then here's some aetherium
Network<00:12:35.050><c> op</c><00:12:35.230><c> codes</c><00:12:35.530><c> so</c><00:12:35.860><c> S</c><00:12:36.040><c> load</c><00:12:36.250><c> and</c><00:12:36.400><c> store</c>

00:12:37.020 --> 00:12:37.030 align:start position:0%
Network op codes so S load and store
 

00:12:37.030 --> 00:12:39.300 align:start position:0%
Network op codes so S load and store
they're<00:12:37.420><c> the</c><00:12:37.630><c> network</c><00:12:38.140><c> storage</c><00:12:38.440><c> analogues</c><00:12:39.160><c> of</c>

00:12:39.300 --> 00:12:39.310 align:start position:0%
they're the network storage analogues of
 

00:12:39.310 --> 00:12:41.640 align:start position:0%
they're the network storage analogues of
the<00:12:39.370><c> EM</c><00:12:39.520><c> load</c><00:12:39.700><c> and</c><00:12:39.850><c> M</c><00:12:39.940><c> store</c><00:12:40.320><c> so</c><00:12:41.320><c> when</c><00:12:41.440><c> you</c><00:12:41.530><c> s</c>

00:12:41.640 --> 00:12:41.650 align:start position:0%
the EM load and M store so when you s
 

00:12:41.650 --> 00:12:43.890 align:start position:0%
the EM load and M store so when you s
load<00:12:41.950><c> at</c><00:12:42.190><c> an</c><00:12:42.340><c> index</c><00:12:42.730><c> there's</c><00:12:43.090><c> a</c><00:12:43.180><c> moon</c><00:12:43.420><c> stack</c><00:12:43.660><c> up</c>

00:12:43.890 --> 00:12:43.900 align:start position:0%
load at an index there's a moon stack up
 

00:12:43.900 --> 00:12:46.740 align:start position:0%
load at an index there's a moon stack up
and<00:12:44.160><c> the</c><00:12:45.160><c> current</c><00:12:45.490><c> executing</c><00:12:46.060><c> account</c><00:12:46.360><c> is</c><00:12:46.570><c> the</c>

00:12:46.740 --> 00:12:46.750 align:start position:0%
and the current executing account is the
 

00:12:46.750 --> 00:12:47.700 align:start position:0%
and the current executing account is the
one<00:12:46.870><c> with</c><00:12:47.050><c> this</c><00:12:47.170><c> ID</c>

00:12:47.700 --> 00:12:47.710 align:start position:0%
one with this ID
 

00:12:47.710 --> 00:12:50.520 align:start position:0%
one with this ID
well<00:12:48.130><c> first</c><00:12:48.460><c> we</c><00:12:48.670><c> match</c><00:12:48.910><c> an</c><00:12:49.300><c> account</c><00:12:50.260><c> so</c>

00:12:50.520 --> 00:12:50.530 align:start position:0%
well first we match an account so
 

00:12:50.530 --> 00:12:51.600 align:start position:0%
well first we match an account so
remember<00:12:50.800><c> there's</c><00:12:50.950><c> many</c><00:12:51.130><c> different</c><00:12:51.460><c> accounts</c>

00:12:51.600 --> 00:12:51.610 align:start position:0%
remember there's many different accounts
 

00:12:51.610 --> 00:12:52.920 align:start position:0%
remember there's many different accounts
because<00:12:51.850><c> that</c><00:12:52.000><c> multiplicity</c><00:12:52.510><c> star</c><00:12:52.720><c> if</c><00:12:52.810><c> we</c>

00:12:52.920 --> 00:12:52.930 align:start position:0%
because that multiplicity star if we
 

00:12:52.930 --> 00:12:54.300 align:start position:0%
because that multiplicity star if we
match<00:12:53.110><c> the</c><00:12:53.320><c> particular</c><00:12:53.530><c> one</c><00:12:53.860><c> that</c><00:12:54.040><c> matches</c>

00:12:54.300 --> 00:12:54.310 align:start position:0%
match the particular one that matches
 

00:12:54.310 --> 00:12:56.520 align:start position:0%
match the particular one that matches
the<00:12:54.640><c> account</c><00:12:54.940><c> of</c><00:12:55.120><c> the</c><00:12:55.230><c> the</c><00:12:56.230><c> one</c><00:12:56.350><c> that's</c>

00:12:56.520 --> 00:12:56.530 align:start position:0%
the account of the the one that's
 

00:12:56.530 --> 00:12:58.500 align:start position:0%
the account of the the one that's
currently<00:12:56.650><c> executing</c><00:12:57.100><c> and</c><00:12:57.550><c> then</c><00:12:57.940><c> we</c><00:12:58.060><c> look</c><00:12:58.300><c> in</c>

00:12:58.500 --> 00:12:58.510 align:start position:0%
currently executing and then we look in
 

00:12:58.510 --> 00:13:01.710 align:start position:0%
currently executing and then we look in
its<00:12:58.660><c> storage</c><00:12:59.430><c> for</c><00:13:00.430><c> this</c><00:13:00.760><c> index</c><00:13:01.210><c> essentially</c>

00:13:01.710 --> 00:13:01.720 align:start position:0%
its storage for this index essentially
 

00:13:01.720 --> 00:13:04.020 align:start position:0%
its storage for this index essentially
and<00:13:01.960><c> we</c><00:13:02.110><c> then</c><00:13:02.260><c> we</c><00:13:02.350><c> push</c><00:13:02.590><c> the</c><00:13:03.070><c> value</c><00:13:03.280><c> up</c><00:13:03.820><c> right</c>

00:13:04.020 --> 00:13:04.030 align:start position:0%
and we then we push the value up right
 

00:13:04.030 --> 00:13:05.220 align:start position:0%
and we then we push the value up right
here<00:13:04.180><c> and</c><00:13:04.390><c> the</c><00:13:04.450><c> storage</c><00:13:04.690><c> and</c><00:13:04.900><c> the</c><00:13:04.960><c> account</c>

00:13:05.220 --> 00:13:05.230 align:start position:0%
here and the storage and the account
 

00:13:05.230 --> 00:13:06.660 align:start position:0%
here and the storage and the account
don't<00:13:05.380><c> change</c><00:13:05.710><c> we</c><00:13:05.860><c> just</c><00:13:05.890><c> push</c><00:13:06.190><c> the</c><00:13:06.310><c> value</c><00:13:06.520><c> up</c>

00:13:06.660 --> 00:13:06.670 align:start position:0%
don't change we just push the value up
 

00:13:06.670 --> 00:13:08.420 align:start position:0%
don't change we just push the value up
there

00:13:08.420 --> 00:13:08.430 align:start position:0%
there
 

00:13:08.430 --> 00:13:10.650 align:start position:0%
there
yeah<00:13:09.430><c> so</c><00:13:09.550><c> it's</c><00:13:09.670><c> kind</c><00:13:09.820><c> of</c><00:13:09.850><c> a</c><00:13:09.910><c> lot</c><00:13:10.060><c> going</c><00:13:10.270><c> on</c><00:13:10.420><c> but</c>

00:13:10.650 --> 00:13:10.660 align:start position:0%
yeah so it's kind of a lot going on but
 

00:13:10.660 --> 00:13:12.930 align:start position:0%
yeah so it's kind of a lot going on but
once<00:13:10.870><c> again</c><00:13:11.170><c> this</c><00:13:11.650><c> dot</c><00:13:11.890><c> dot</c><00:13:12.100><c> is</c><00:13:12.490><c> not</c><00:13:12.730><c> me</c>

00:13:12.930 --> 00:13:12.940 align:start position:0%
once again this dot dot is not me
 

00:13:12.940 --> 00:13:14.310 align:start position:0%
once again this dot dot is not me
alighting<00:13:13.330><c> details</c><00:13:13.660><c> this</c><00:13:13.840><c> is</c><00:13:13.900><c> actually</c>

00:13:14.310 --> 00:13:14.320 align:start position:0%
alighting details this is actually
 

00:13:14.320 --> 00:13:16.550 align:start position:0%
alighting details this is actually
verbatim<00:13:14.740><c> the</c><00:13:14.830><c> K</c><00:13:15.010><c> rule</c><00:13:15.280><c> for</c><00:13:15.490><c> this</c><00:13:15.580><c> operator</c><00:13:16.060><c> so</c>

00:13:16.550 --> 00:13:16.560 align:start position:0%
verbatim the K rule for this operator so
 

00:13:16.560 --> 00:13:18.850 align:start position:0%
verbatim the K rule for this operator so
once<00:13:17.560><c> again</c><00:13:17.650><c> K</c><00:13:17.950><c> is</c><00:13:18.070><c> kind</c><00:13:18.280><c> of</c><00:13:18.310><c> being</c><00:13:18.490><c> our</c>

00:13:18.850 --> 00:13:18.860 align:start position:0%
once again K is kind of being our
 

00:13:18.860 --> 00:13:20.860 align:start position:0%
once again K is kind of being our
allowing<00:13:19.280><c> us</c><00:13:19.370><c> to</c><00:13:19.400><c> elide</c><00:13:19.760><c> lots</c><00:13:20.030><c> of</c><00:13:20.120><c> details</c><00:13:20.480><c> of</c>

00:13:20.860 --> 00:13:20.870 align:start position:0%
allowing us to elide lots of details of
 

00:13:20.870 --> 00:13:22.750 align:start position:0%
allowing us to elide lots of details of
the<00:13:21.260><c> configuration</c><00:13:21.830><c> that</c><00:13:21.860><c> we</c><00:13:22.040><c> don't</c><00:13:22.220><c> need</c><00:13:22.400><c> to</c>

00:13:22.750 --> 00:13:22.760 align:start position:0%
the configuration that we don't need to
 

00:13:22.760 --> 00:13:26.140 align:start position:0%
the configuration that we don't need to
mention<00:13:23.330><c> for</c><00:13:23.480><c> this</c><00:13:23.570><c> particular</c><00:13:23.840><c> rule</c><00:13:24.760><c> s</c><00:13:25.760><c> store</c>

00:13:26.140 --> 00:13:26.150 align:start position:0%
mention for this particular rule s store
 

00:13:26.150 --> 00:13:29.530 align:start position:0%
mention for this particular rule s store
right<00:13:26.570><c> here</c><00:13:27.670><c> it</c><00:13:28.670><c> has</c><00:13:28.820><c> once</c><00:13:29.120><c> again</c><00:13:29.210><c> to</c>

00:13:29.530 --> 00:13:29.540 align:start position:0%
right here it has once again to
 

00:13:29.540 --> 00:13:31.150 align:start position:0%
right here it has once again to
transition<00:13:30.050><c> arrows</c><00:13:30.290><c> one</c><00:13:30.530><c> that's</c><00:13:30.770><c> going</c><00:13:31.040><c> on</c>

00:13:31.150 --> 00:13:31.160 align:start position:0%
transition arrows one that's going on
 

00:13:31.160 --> 00:13:33.220 align:start position:0%
transition arrows one that's going on
within<00:13:31.850><c> the</c><00:13:32.000><c> account</c><00:13:32.390><c> and</c><00:13:32.600><c> one</c><00:13:32.810><c> that's</c><00:13:32.990><c> going</c>

00:13:33.220 --> 00:13:33.230 align:start position:0%
within the account and one that's going
 

00:13:33.230 --> 00:13:35.680 align:start position:0%
within the account and one that's going
on<00:13:33.380><c> in</c><00:13:34.130><c> the</c><00:13:34.280><c> case</c><00:13:34.490><c> L</c><00:13:34.730><c> and</c><00:13:34.970><c> then</c><00:13:35.570><c> we're</c>

00:13:35.680 --> 00:13:35.690 align:start position:0%
on in the case L and then we're
 

00:13:35.690 --> 00:13:37.470 align:start position:0%
on in the case L and then we're
rewriting<00:13:36.050><c> the</c><00:13:36.290><c> S</c><00:13:36.410><c> store</c><00:13:36.710><c> to</c><00:13:36.890><c> the</c><00:13:36.980><c> empty</c>

00:13:37.470 --> 00:13:37.480 align:start position:0%
rewriting the S store to the empty
 

00:13:37.480 --> 00:13:39.130 align:start position:0%
rewriting the S store to the empty
computation<00:13:38.480><c> essentially</c><00:13:38.840><c> so</c><00:13:38.930><c> we're</c><00:13:39.020><c> saying</c>

00:13:39.130 --> 00:13:39.140 align:start position:0%
computation essentially so we're saying
 

00:13:39.140 --> 00:13:40.900 align:start position:0%
computation essentially so we're saying
that<00:13:39.200><c> the</c><00:13:39.350><c> computation</c><00:13:39.830><c> is</c><00:13:39.920><c> done</c><00:13:39.950><c> we</c><00:13:40.760><c> once</c>

00:13:40.900 --> 00:13:40.910 align:start position:0%
that the computation is done we once
 

00:13:40.910 --> 00:13:42.970 align:start position:0%
that the computation is done we once
again<00:13:40.970><c> match</c><00:13:41.300><c> on</c><00:13:41.510><c> the</c><00:13:41.630><c> account</c><00:13:41.870><c> ID</c><00:13:42.080><c> grab</c><00:13:42.860><c> the</c>

00:13:42.970 --> 00:13:42.980 align:start position:0%
again match on the account ID grab the
 

00:13:42.980 --> 00:13:45.190 align:start position:0%
again match on the account ID grab the
account<00:13:43.280><c> take</c><00:13:43.820><c> the</c><00:13:43.940><c> storage</c><00:13:44.330><c> update</c><00:13:45.080><c> the</c>

00:13:45.190 --> 00:13:45.200 align:start position:0%
account take the storage update the
 

00:13:45.200 --> 00:13:46.870 align:start position:0%
account take the storage update the
index<00:13:45.380><c> and</c><00:13:45.710><c> the</c><00:13:45.770><c> storage</c><00:13:46.010><c> with</c><00:13:46.250><c> the</c><00:13:46.280><c> value</c><00:13:46.700><c> and</c>

00:13:46.870 --> 00:13:46.880 align:start position:0%
index and the storage with the value and
 

00:13:46.880 --> 00:13:48.580 align:start position:0%
index and the storage with the value and
then<00:13:47.300><c> there's</c><00:13:47.450><c> this</c><00:13:47.690><c> side</c><00:13:47.930><c> condition</c><00:13:48.380><c> here</c>

00:13:48.580 --> 00:13:48.590 align:start position:0%
then there's this side condition here
 

00:13:48.590 --> 00:13:50.220 align:start position:0%
then there's this side condition here
because<00:13:48.830><c> there's</c><00:13:48.980><c> a</c><00:13:49.010><c> bunch</c><00:13:49.130><c> of</c><00:13:49.250><c> different</c>

00:13:50.220 --> 00:13:50.230 align:start position:0%
because there's a bunch of different
 

00:13:50.230 --> 00:13:52.840 align:start position:0%
because there's a bunch of different
semantics<00:13:51.230><c> whether</c><00:13:51.890><c> the</c><00:13:52.160><c> key</c><00:13:52.400><c> is</c><00:13:52.520><c> already</c><00:13:52.790><c> in</c>

00:13:52.840 --> 00:13:52.850 align:start position:0%
semantics whether the key is already in
 

00:13:52.850 --> 00:13:54.220 align:start position:0%
semantics whether the key is already in
the<00:13:52.940><c> storage</c><00:13:53.270><c> or</c><00:13:53.390><c> not</c><00:13:53.510><c> in</c><00:13:53.600><c> the</c><00:13:53.690><c> storage</c><00:13:54.110><c> or</c>

00:13:54.220 --> 00:13:54.230 align:start position:0%
the storage or not in the storage or
 

00:13:54.230 --> 00:14:06.820 align:start position:0%
the storage or not in the storage or
wasn't<00:13:54.560><c> empty</c><00:13:54.650><c> or</c><00:13:54.830><c> it</c><00:13:54.890><c> wasn't</c><00:13:55.220><c> yeah</c><00:14:05.350><c> so</c><00:14:06.350><c> this</c>

00:14:06.820 --> 00:14:06.830 align:start position:0%
wasn't empty or it wasn't yeah so this
 

00:14:06.830 --> 00:14:09.190 align:start position:0%
wasn't empty or it wasn't yeah so this
this<00:14:07.430><c> this</c><00:14:08.090><c> arrow</c><00:14:08.360><c> right</c><00:14:08.600><c> here</c><00:14:08.630><c> is</c><00:14:09.020><c> actually</c>

00:14:09.190 --> 00:14:09.200 align:start position:0%
this this arrow right here is actually
 

00:14:09.200 --> 00:14:11.290 align:start position:0%
this this arrow right here is actually
map<00:14:09.680><c> update</c><00:14:10.130><c> and</c><00:14:10.310><c> it</c><00:14:10.370><c> ships</c><00:14:10.640><c> with</c><00:14:10.730><c> K</c><00:14:11.030><c> as</c><00:14:11.240><c> a</c>

00:14:11.290 --> 00:14:11.300 align:start position:0%
map update and it ships with K as a
 

00:14:11.300 --> 00:14:14.200 align:start position:0%
map update and it ships with K as a
built<00:14:11.780><c> in</c><00:14:11.960><c> from</c><00:14:12.170><c> the</c><00:14:12.260><c> preload</c><00:14:12.880><c> this</c><00:14:13.880><c> right</c>

00:14:14.200 --> 00:14:14.210 align:start position:0%
built in from the preload this right
 

00:14:14.210 --> 00:14:16.870 align:start position:0%
built in from the preload this right
here<00:14:14.510><c> is</c><00:14:14.660><c> actually</c><00:14:15.430><c> specific</c><00:14:16.430><c> to</c><00:14:16.490><c> the</c><00:14:16.580><c> evm</c>

00:14:16.870 --> 00:14:16.880 align:start position:0%
here is actually specific to the evm
 

00:14:16.880 --> 00:14:18.340 align:start position:0%
here is actually specific to the evm
semantics<00:14:17.450><c> because</c><00:14:17.750><c> it</c><00:14:17.870><c> has</c><00:14:17.990><c> to</c><00:14:18.110><c> write</c><00:14:18.320><c> a</c>

00:14:18.340 --> 00:14:18.350 align:start position:0%
semantics because it has to write a
 

00:14:18.350 --> 00:14:20.230 align:start position:0%
semantics because it has to write a
whole<00:14:18.620><c> word</c><00:14:18.860><c> stack</c><00:14:19.190><c> at</c><00:14:19.400><c> a</c><00:14:19.460><c> time</c><00:14:19.700><c> so</c><00:14:19.970><c> it</c><00:14:20.060><c> writes</c>

00:14:20.230 --> 00:14:20.240 align:start position:0%
whole word stack at a time so it writes
 

00:14:20.240 --> 00:14:21.370 align:start position:0%
whole word stack at a time so it writes
the<00:14:20.420><c> first</c><00:14:20.600><c> element</c><00:14:20.960><c> then</c><00:14:21.050><c> the</c><00:14:21.110><c> second</c>

00:14:21.370 --> 00:14:21.380 align:start position:0%
the first element then the second
 

00:14:21.380 --> 00:14:22.750 align:start position:0%
the first element then the second
element<00:14:21.410><c> so</c><00:14:21.650><c> this</c><00:14:21.740><c> D</c><00:14:21.920><c> sugars</c><00:14:22.250><c> to</c><00:14:22.400><c> a</c><00:14:22.430><c> sequence</c>

00:14:22.750 --> 00:14:22.760 align:start position:0%
element so this D sugars to a sequence
 

00:14:22.760 --> 00:14:26.650 align:start position:0%
element so this D sugars to a sequence
of<00:14:23.000><c> 32</c><00:14:23.510><c> of</c><00:14:23.840><c> the</c><00:14:24.620><c> map</c><00:14:24.860><c> update</c><00:14:25.250><c> operations</c><00:14:25.850><c> does</c>

00:14:26.650 --> 00:14:26.660 align:start position:0%
of 32 of the map update operations does
 

00:14:26.660 --> 00:14:29.890 align:start position:0%
of 32 of the map update operations does
that<00:14:26.750><c> make</c><00:14:26.840><c> sense</c><00:14:27.400><c> I</c><00:14:28.400><c> guess</c><00:14:29.210><c> I</c><00:14:29.360><c> could</c><00:14:29.570><c> give</c><00:14:29.870><c> it</c>

00:14:29.890 --> 00:14:29.900 align:start position:0%
that make sense I guess I could give it
 

00:14:29.900 --> 00:14:32.320 align:start position:0%
that make sense I guess I could give it
some<00:14:30.110><c> nicer</c><00:14:30.410><c> syntax</c><00:14:30.620><c> but</c><00:14:31.100><c> I</c><00:14:31.520><c> don't</c><00:14:32.150><c> know</c><00:14:32.210><c> that</c>

00:14:32.320 --> 00:14:32.330 align:start position:0%
some nicer syntax but I don't know that
 

00:14:32.330 --> 00:14:33.700 align:start position:0%
some nicer syntax but I don't know that
was<00:14:32.420><c> an</c><00:14:32.510><c> early</c><00:14:32.630><c> design</c><00:14:32.870><c> decision</c><00:14:33.410><c> then</c><00:14:33.590><c> it's</c>

00:14:33.700 --> 00:14:33.710 align:start position:0%
was an early design decision then it's
 

00:14:33.710 --> 00:14:41.710 align:start position:0%
was an early design decision then it's
hard<00:14:33.890><c> to</c><00:14:33.980><c> change</c><00:14:34.190><c> later</c><00:14:36.700><c> yeah</c><00:14:38.530><c> ok</c><00:14:40.150><c> ok</c><00:14:41.150><c> so</c><00:14:41.600><c> I</c>

00:14:41.710 --> 00:14:41.720 align:start position:0%
hard to change later yeah ok ok so I
 

00:14:41.720 --> 00:14:42.790 align:start position:0%
hard to change later yeah ok ok so I
just<00:14:41.900><c> wanted</c><00:14:42.050><c> to</c><00:14:42.140><c> show</c><00:14:42.230><c> an</c><00:14:42.320><c> example</c><00:14:42.410><c> of</c><00:14:42.740><c> a</c>

00:14:42.790 --> 00:14:42.800 align:start position:0%
just wanted to show an example of a
 

00:14:42.800 --> 00:14:44.260 align:start position:0%
just wanted to show an example of a
bigger<00:14:42.980><c> Network</c><00:14:43.310><c> hop</c><00:14:43.460><c> code</c><00:14:43.730><c> so</c><00:14:43.910><c> this</c><00:14:44.030><c> is</c><00:14:44.150><c> the</c>

00:14:44.260 --> 00:14:44.270 align:start position:0%
bigger Network hop code so this is the
 

00:14:44.270 --> 00:14:45.610 align:start position:0%
bigger Network hop code so this is the
call-off<00:14:44.480><c> code</c><00:14:44.840><c> it's</c><00:14:45.050><c> running</c><00:14:45.290><c> off</c><00:14:45.410><c> the</c><00:14:45.440><c> edge</c>

00:14:45.610 --> 00:14:45.620 align:start position:0%
call-off code it's running off the edge
 

00:14:45.620 --> 00:14:47.530 align:start position:0%
call-off code it's running off the edge
of<00:14:45.740><c> the</c><00:14:45.800><c> screen</c><00:14:46.070><c> here</c><00:14:46.250><c> but</c><00:14:47.000><c> basically</c><00:14:47.330><c> we</c>

00:14:47.530 --> 00:14:47.540 align:start position:0%
of the screen here but basically we
 

00:14:47.540 --> 00:14:50.440 align:start position:0%
of the screen here but basically we
define<00:14:47.840><c> a</c><00:14:47.870><c> bunch</c><00:14:48.110><c> of</c><00:14:48.200><c> internal</c><00:14:49.300><c> operators</c><00:14:50.300><c> to</c>

00:14:50.440 --> 00:14:50.450 align:start position:0%
define a bunch of internal operators to
 

00:14:50.450 --> 00:14:51.670 align:start position:0%
define a bunch of internal operators to
help<00:14:50.630><c> with</c><00:14:50.750><c> the</c><00:14:50.840><c> call</c><00:14:50.990><c> opcode</c><00:14:51.380><c> and</c><00:14:51.410><c> that's</c>

00:14:51.670 --> 00:14:51.680 align:start position:0%
help with the call opcode and that's
 

00:14:51.680 --> 00:14:52.990 align:start position:0%
help with the call opcode and that's
pretty<00:14:52.070><c> straightforward</c><00:14:52.310><c> to</c><00:14:52.580><c> do</c><00:14:52.700><c> but</c><00:14:52.880><c> then</c>

00:14:52.990 --> 00:14:53.000 align:start position:0%
pretty straightforward to do but then
 

00:14:53.000 --> 00:14:55.450 align:start position:0%
pretty straightforward to do but then
these<00:14:53.180><c> internals</c><00:14:53.810><c> can</c><00:14:54.020><c> be</c><00:14:54.110><c> reused</c><00:14:54.500><c> for</c><00:14:55.400><c> the</c>

00:14:55.450 --> 00:14:55.460 align:start position:0%
these internals can be reused for the
 

00:14:55.460 --> 00:14:57.700 align:start position:0%
these internals can be reused for the
delegate<00:14:55.880><c> call</c><00:14:56.090><c> opcode</c><00:14:56.540><c> or</c><00:14:56.780><c> probably</c><00:14:57.470><c> for</c><00:14:57.620><c> the</c>

00:14:57.700 --> 00:14:57.710 align:start position:0%
delegate call opcode or probably for the
 

00:14:57.710 --> 00:15:01.090 align:start position:0%
delegate call opcode or probably for the
static<00:14:58.010><c> call</c><00:14:58.220><c> as</c><00:14:58.790><c> well</c><00:14:59.000><c> I'm</c><00:14:59.750><c> not</c><00:14:59.900><c> sure</c><00:14:59.960><c> I'm</c><00:15:00.290><c> it</c>

00:15:01.090 --> 00:15:01.100 align:start position:0%
static call as well I'm not sure I'm it
 

00:15:01.100 --> 00:15:05.170 align:start position:0%
static call as well I'm not sure I'm it
was<00:15:01.400><c> awhile</c><00:15:01.490><c> since</c><00:15:01.730><c> I</c><00:15:01.850><c> wrote</c><00:15:02.000><c> this</c><00:15:02.090><c> code</c><00:15:04.060><c> ok</c>

00:15:05.170 --> 00:15:05.180 align:start position:0%
was awhile since I wrote this code ok
 

00:15:05.180 --> 00:15:06.790 align:start position:0%
was awhile since I wrote this code ok
so<00:15:05.300><c> gas</c><00:15:05.600><c> calculation</c><00:15:06.200><c> I'm</c><00:15:06.380><c> gonna</c><00:15:06.530><c> run</c><00:15:06.680><c> through</c>

00:15:06.790 --> 00:15:06.800 align:start position:0%
so gas calculation I'm gonna run through
 

00:15:06.800 --> 00:15:08.020 align:start position:0%
so gas calculation I'm gonna run through
this<00:15:06.950><c> super</c><00:15:07.160><c> quick</c><00:15:07.400><c> because</c><00:15:07.580><c> it</c><00:15:07.730><c> looks</c><00:15:07.880><c> like</c>

00:15:08.020 --> 00:15:08.030 align:start position:0%
this super quick because it looks like
 

00:15:08.030 --> 00:15:09.220 align:start position:0%
this super quick because it looks like
I'm<00:15:08.150><c> running</c><00:15:08.300><c> low</c><00:15:08.480><c> on</c><00:15:08.510><c> time</c><00:15:08.630><c> and</c><00:15:08.990><c> I</c><00:15:09.020><c> want</c><00:15:09.170><c> to</c>

00:15:09.220 --> 00:15:09.230 align:start position:0%
I'm running low on time and I want to
 

00:15:09.230 --> 00:15:12.490 align:start position:0%
I'm running low on time and I want to
get<00:15:09.320><c> to</c><00:15:09.380><c> the</c><00:15:09.470><c> verification</c><00:15:09.710><c> part</c><00:15:11.500><c> the</c>

00:15:12.490 --> 00:15:12.500 align:start position:0%
get to the verification part the
 

00:15:12.500 --> 00:15:14.260 align:start position:0%
get to the verification part the
intrinsic<00:15:13.070><c> gas</c><00:15:13.310><c> calculation</c><00:15:13.880><c> we</c><00:15:13.970><c> tried</c><00:15:14.150><c> to</c>

00:15:14.260 --> 00:15:14.270 align:start position:0%
intrinsic gas calculation we tried to
 

00:15:14.270 --> 00:15:15.640 align:start position:0%
intrinsic gas calculation we tried to
mirror<00:15:14.510><c> as</c><00:15:14.570><c> much</c><00:15:14.720><c> as</c><00:15:14.840><c> possible</c><00:15:15.020><c> to</c><00:15:15.320><c> style</c><00:15:15.530><c> of</c>

00:15:15.640 --> 00:15:15.650 align:start position:0%
mirror as much as possible to style of
 

00:15:15.650 --> 00:15:17.500 align:start position:0%
mirror as much as possible to style of
the<00:15:15.740><c> yellow</c><00:15:15.920><c> paper</c><00:15:16.210><c> so</c><00:15:17.210><c> we</c><00:15:17.300><c> have</c><00:15:17.420><c> this</c>

00:15:17.500 --> 00:15:17.510 align:start position:0%
the yellow paper so we have this
 

00:15:17.510 --> 00:15:19.720 align:start position:0%
the yellow paper so we have this
function<00:15:17.690><c> gas</c><00:15:17.990><c> exact</c><00:15:18.410><c> which</c><00:15:19.010><c> is</c><00:15:19.040><c> parametric</c>

00:15:19.720 --> 00:15:19.730 align:start position:0%
function gas exact which is parametric
 

00:15:19.730 --> 00:15:21.700 align:start position:0%
function gas exact which is parametric
in<00:15:19.910><c> the</c><00:15:20.030><c> fee</c><00:15:20.210><c> schedule</c><00:15:20.290><c> that</c><00:15:21.290><c> you</c><00:15:21.530><c> are</c>

00:15:21.700 --> 00:15:21.710 align:start position:0%
in the fee schedule that you are
 

00:15:21.710 --> 00:15:22.960 align:start position:0%
in the fee schedule that you are
executing<00:15:22.070><c> with</c><00:15:22.400><c> so</c><00:15:22.610><c> you</c><00:15:22.670><c> can</c><00:15:22.790><c> specify</c>

00:15:22.960 --> 00:15:22.970 align:start position:0%
executing with so you can specify
 

00:15:22.970 --> 00:15:24.880 align:start position:0%
executing with so you can specify
different<00:15:23.420><c> fee</c><00:15:23.540><c> schedules</c><00:15:23.990><c> for</c><00:15:24.530><c> example</c><00:15:24.800><c> I'll</c>

00:15:24.880 --> 00:15:24.890 align:start position:0%
different fee schedules for example I'll
 

00:15:24.890 --> 00:15:27.730 align:start position:0%
different fee schedules for example I'll
talk<00:15:25.010><c> about</c><00:15:25.070><c> that</c><00:15:25.370><c> on</c><00:15:25.490><c> the</c><00:15:25.550><c> next</c><00:15:25.670><c> slide</c><00:15:26.740><c> so</c>

00:15:27.730 --> 00:15:27.740 align:start position:0%
talk about that on the next slide so
 

00:15:27.740 --> 00:15:30.490 align:start position:0%
talk about that on the next slide so
given<00:15:28.250><c> the</c><00:15:28.340><c> schedule</c><00:15:28.730><c> and</c><00:15:28.940><c> the</c><00:15:29.060><c> opcode</c><00:15:29.540><c> call</c>

00:15:30.490 --> 00:15:30.500 align:start position:0%
given the schedule and the opcode call
 

00:15:30.500 --> 00:15:32.560 align:start position:0%
given the schedule and the opcode call
the<00:15:30.920><c> CS</c><00:15:31.730><c> store</c>

00:15:32.560 --> 00:15:32.570 align:start position:0%
the CS store
 

00:15:32.570 --> 00:15:34.600 align:start position:0%
the CS store
gasps<00:15:32.930><c> function</c><00:15:33.350><c> from</c><00:15:33.620><c> the</c><00:15:33.800><c> yellow</c><00:15:34.430><c> paper</c>

00:15:34.600 --> 00:15:34.610 align:start position:0%
gasps function from the yellow paper
 

00:15:34.610 --> 00:15:36.340 align:start position:0%
gasps function from the yellow paper
essentially<00:15:35.030><c> and</c><00:15:35.330><c> then</c><00:15:35.750><c> this</c><00:15:35.990><c> we're</c><00:15:36.200><c> going</c><00:15:36.290><c> to</c>

00:15:36.340 --> 00:15:36.350 align:start position:0%
essentially and then this we're going to
 

00:15:36.350 --> 00:15:37.660 align:start position:0%
essentially and then this we're going to
declare<00:15:36.620><c> as</c><00:15:36.710><c> a</c><00:15:36.770><c> function</c><00:15:37.160><c> which</c><00:15:37.310><c> means</c><00:15:37.460><c> we're</c>

00:15:37.660 --> 00:15:37.670 align:start position:0%
declare as a function which means we're
 

00:15:37.670 --> 00:15:39.310 align:start position:0%
declare as a function which means we're
not<00:15:37.760><c> allowed</c><00:15:38.000><c> to</c><00:15:38.030><c> depend</c><00:15:38.420><c> on</c><00:15:38.570><c> any</c><00:15:38.780><c> part</c><00:15:39.110><c> of</c><00:15:39.170><c> the</c>

00:15:39.310 --> 00:15:39.320 align:start position:0%
not allowed to depend on any part of the
 

00:15:39.320 --> 00:15:41.530 align:start position:0%
not allowed to depend on any part of the
external<00:15:39.650><c> configuration</c><00:15:40.370><c> so</c><00:15:40.850><c> this</c><00:15:40.970><c> gas</c><00:15:41.180><c> exec</c>

00:15:41.530 --> 00:15:41.540 align:start position:0%
external configuration so this gas exec
 

00:15:41.540 --> 00:15:43.000 align:start position:0%
external configuration so this gas exec
operator<00:15:41.960><c> is</c><00:15:42.050><c> gonna</c><00:15:42.200><c> grab</c><00:15:42.470><c> all</c><00:15:42.620><c> the</c><00:15:42.770><c> relevant</c>

00:15:43.000 --> 00:15:43.010 align:start position:0%
operator is gonna grab all the relevant
 

00:15:43.010 --> 00:15:45.250 align:start position:0%
operator is gonna grab all the relevant
parts<00:15:43.340><c> of</c><00:15:43.460><c> the</c><00:15:43.520><c> state</c><00:15:43.790><c> that</c><00:15:44.060><c> C</c><00:15:44.630><c> s</c><00:15:44.750><c> store</c><00:15:44.990><c> needs</c>

00:15:45.250 --> 00:15:45.260 align:start position:0%
parts of the state that C s store needs
 

00:15:45.260 --> 00:15:47.950 align:start position:0%
parts of the state that C s store needs
to<00:15:45.590><c> calculate</c><00:15:46.040><c> its</c><00:15:46.160><c> value</c><00:15:46.550><c> and</c><00:15:46.820><c> give</c><00:15:47.060><c> it</c><00:15:47.210><c> gives</c>

00:15:47.950 --> 00:15:47.960 align:start position:0%
to calculate its value and give it gives
 

00:15:47.960 --> 00:15:50.830 align:start position:0%
to calculate its value and give it gives
you<00:15:48.140><c> a</c><00:15:48.170><c> story</c><00:15:48.470><c> of</c><00:15:48.590><c> those</c><00:15:48.740><c> values</c><00:15:49.160><c> as</c><00:15:49.310><c> arguments</c>

00:15:50.830 --> 00:15:50.840 align:start position:0%
you a story of those values as arguments
 

00:15:50.840 --> 00:15:52.780 align:start position:0%
you a story of those values as arguments
so<00:15:51.170><c> the</c><00:15:51.530><c> definition</c><00:15:51.680><c> of</c><00:15:52.070><c> C</c><00:15:52.190><c> F</c><00:15:52.310><c> store</c><00:15:52.520><c> is</c><00:15:52.610><c> right</c>

00:15:52.780 --> 00:15:52.790 align:start position:0%
so the definition of C F store is right
 

00:15:52.790 --> 00:15:55.360 align:start position:0%
so the definition of C F store is right
here<00:15:53.260><c> once</c><00:15:54.260><c> again</c><00:15:54.440><c> it's</c><00:15:54.590><c> a</c><00:15:54.650><c> function</c><00:15:55.070><c> takes</c>

00:15:55.360 --> 00:15:55.370 align:start position:0%
here once again it's a function takes
 

00:15:55.370 --> 00:15:56.650 align:start position:0%
here once again it's a function takes
three<00:15:55.520><c> arguments</c><00:15:55.760><c> produces</c><00:15:56.240><c> an</c><00:15:56.330><c> int</c><00:15:56.480><c> and</c>

00:15:56.650 --> 00:15:56.660 align:start position:0%
three arguments produces an int and
 

00:15:56.660 --> 00:15:58.570 align:start position:0%
three arguments produces an int and
notice<00:15:57.500><c> it</c><00:15:57.590><c> doesn't</c><00:15:57.740><c> depend</c><00:15:58.010><c> on</c><00:15:58.130><c> any</c><00:15:58.310><c> part</c><00:15:58.550><c> of</c>

00:15:58.570 --> 00:15:58.580 align:start position:0%
notice it doesn't depend on any part of
 

00:15:58.580 --> 00:16:00.550 align:start position:0%
notice it doesn't depend on any part of
the<00:15:58.670><c> configuration</c><00:15:58.910><c> so</c><00:15:59.570><c> you</c><00:16:00.170><c> know</c><00:16:00.260><c> you</c><00:16:00.320><c> check</c>

00:16:00.550 --> 00:16:00.560 align:start position:0%
the configuration so you know you check
 

00:16:00.560 --> 00:16:03.310 align:start position:0%
the configuration so you know you check
is<00:16:00.830><c> the</c><00:16:01.100><c> value</c><00:16:01.340><c> not</c><00:16:01.490><c> equal</c><00:16:01.730><c> to</c><00:16:01.820><c> zero</c><00:16:02.060><c> and</c><00:16:02.450><c> the</c>

00:16:03.310 --> 00:16:03.320 align:start position:0%
is the value not equal to zero and the
 

00:16:03.320 --> 00:16:05.260 align:start position:0%
is the value not equal to zero and the
old<00:16:03.470><c> one</c><00:16:03.710><c> is</c><00:16:03.830><c> not</c><00:16:03.980><c> equal</c><00:16:04.100><c> to</c><00:16:04.310><c> zero</c><00:16:04.520><c> so</c><00:16:04.790><c> this</c><00:16:05.090><c> has</c>

00:16:05.260 --> 00:16:05.270 align:start position:0%
old one is not equal to zero so this has
 

00:16:05.270 --> 00:16:07.450 align:start position:0%
old one is not equal to zero so this has
to<00:16:05.390><c> do</c><00:16:05.510><c> with</c><00:16:05.600><c> whether</c><00:16:05.780><c> you're</c><00:16:06.100><c> setting</c><00:16:07.100><c> it</c><00:16:07.310><c> for</c>

00:16:07.450 --> 00:16:07.460 align:start position:0%
to do with whether you're setting it for
 

00:16:07.460 --> 00:16:09.280 align:start position:0%
to do with whether you're setting it for
the<00:16:07.520><c> setting</c><00:16:08.090><c> or</c><00:16:08.300><c> resetting</c><00:16:08.660><c> it</c><00:16:08.840><c> essentially</c>

00:16:09.280 --> 00:16:09.290 align:start position:0%
the setting or resetting it essentially
 

00:16:09.290 --> 00:16:10.780 align:start position:0%
the setting or resetting it essentially
and<00:16:09.470><c> then</c><00:16:09.800><c> these</c><00:16:09.950><c> are</c><00:16:10.010><c> different</c><00:16:10.400><c> schedule</c>

00:16:10.780 --> 00:16:10.790 align:start position:0%
and then these are different schedule
 

00:16:10.790 --> 00:16:12.400 align:start position:0%
and then these are different schedule
constants<00:16:11.330><c> so</c><00:16:11.540><c> they're</c><00:16:11.690><c> parametric</c><00:16:12.230><c> in</c><00:16:12.350><c> the</c>

00:16:12.400 --> 00:16:12.410 align:start position:0%
constants so they're parametric in the
 

00:16:12.410 --> 00:16:14.710 align:start position:0%
constants so they're parametric in the
particular<00:16:12.650><c> schedule</c><00:16:13.420><c> and</c><00:16:14.420><c> then</c><00:16:14.540><c> these</c><00:16:14.660><c> are</c>

00:16:14.710 --> 00:16:14.720 align:start position:0%
particular schedule and then these are
 

00:16:14.720 --> 00:16:16.600 align:start position:0%
particular schedule and then these are
all<00:16:15.260><c> sorts</c><00:16:15.530><c> of</c><00:16:15.560><c> other</c><00:16:15.740><c> cost</c><00:16:16.010><c> functions</c><00:16:16.490><c> that</c>

00:16:16.600 --> 00:16:16.610 align:start position:0%
all sorts of other cost functions that
 

00:16:16.610 --> 00:16:17.950 align:start position:0%
all sorts of other cost functions that
we've<00:16:16.760><c> implemented</c><00:16:17.060><c> these</c><00:16:17.570><c> mirror</c><00:16:17.840><c> exactly</c>

00:16:17.950 --> 00:16:17.960 align:start position:0%
we've implemented these mirror exactly
 

00:16:17.960 --> 00:16:20.560 align:start position:0%
we've implemented these mirror exactly
what<00:16:18.590><c> goes</c><00:16:18.710><c> on</c><00:16:18.860><c> in</c><00:16:18.980><c> the</c><00:16:19.040><c> yellow</c><00:16:19.220><c> paper</c><00:16:19.570><c> so</c>

00:16:20.560 --> 00:16:20.570 align:start position:0%
what goes on in the yellow paper so
 

00:16:20.570 --> 00:16:21.940 align:start position:0%
what goes on in the yellow paper so
really<00:16:20.810><c> you</c><00:16:20.960><c> can</c><00:16:21.080><c> read</c><00:16:21.290><c> this</c><00:16:21.500><c> instead</c><00:16:21.800><c> of</c><00:16:21.860><c> the</c>

00:16:21.940 --> 00:16:21.950 align:start position:0%
really you can read this instead of the
 

00:16:21.950 --> 00:16:22.990 align:start position:0%
really you can read this instead of the
yellow<00:16:22.070><c> paper</c><00:16:22.310><c> if</c><00:16:22.490><c> you</c><00:16:22.550><c> don't</c><00:16:22.730><c> like</c><00:16:22.850><c> reading</c>

00:16:22.990 --> 00:16:23.000 align:start position:0%
yellow paper if you don't like reading
 

00:16:23.000 --> 00:16:24.820 align:start position:0%
yellow paper if you don't like reading
yellow<00:16:23.330><c> paper</c><00:16:23.510><c> and</c><00:16:24.110><c> it</c><00:16:24.440><c> has</c><00:16:24.560><c> a</c><00:16:24.590><c> lot</c><00:16:24.800><c> more</c>

00:16:24.820 --> 00:16:24.830 align:start position:0%
yellow paper and it has a lot more
 

00:16:24.830 --> 00:16:27.270 align:start position:0%
yellow paper and it has a lot more
explanatory<00:16:25.580><c> text</c><00:16:25.730><c> around</c><00:16:25.970><c> it</c><00:16:26.270><c> in</c><00:16:26.930><c> our</c>

00:16:27.270 --> 00:16:27.280 align:start position:0%
explanatory text around it in our
 

00:16:27.280 --> 00:16:31.300 align:start position:0%
explanatory text around it in our
repository<00:16:28.280><c> online</c><00:16:30.130><c> here's</c><00:16:31.130><c> how</c><00:16:31.250><c> we</c>

00:16:31.300 --> 00:16:31.310 align:start position:0%
repository online here's how we
 

00:16:31.310 --> 00:16:33.670 align:start position:0%
repository online here's how we
implement<00:16:31.730><c> the</c><00:16:31.850><c> schedules</c><00:16:32.450><c> so</c><00:16:33.020><c> we</c><00:16:33.140><c> say</c><00:16:33.350><c> that</c>

00:16:33.670 --> 00:16:33.680 align:start position:0%
implement the schedules so we say that
 

00:16:33.680 --> 00:16:35.950 align:start position:0%
implement the schedules so we say that
you<00:16:33.920><c> can</c><00:16:34.100><c> produce</c><00:16:34.280><c> an</c><00:16:34.610><c> integer</c><00:16:35.060><c> if</c><00:16:35.420><c> you</c><00:16:35.810><c> have</c><00:16:35.930><c> a</c>

00:16:35.950 --> 00:16:35.960 align:start position:0%
you can produce an integer if you have a
 

00:16:35.960 --> 00:16:37.240 align:start position:0%
you can produce an integer if you have a
schedule<00:16:36.200><c> constant</c><00:16:36.740><c> and</c><00:16:36.830><c> in</c><00:16:36.920><c> these</c><00:16:37.040><c> brackets</c>

00:16:37.240 --> 00:16:37.250 align:start position:0%
schedule constant and in these brackets
 

00:16:37.250 --> 00:16:39.790 align:start position:0%
schedule constant and in these brackets
in<00:16:37.610><c> a</c><00:16:37.700><c> particular</c><00:16:37.910><c> schedule</c><00:16:38.270><c> and</c><00:16:38.780><c> then</c><00:16:39.380><c> here</c>

00:16:39.790 --> 00:16:39.800 align:start position:0%
in a particular schedule and then here
 

00:16:39.800 --> 00:16:41.500 align:start position:0%
in a particular schedule and then here
are<00:16:40.010><c> some</c><00:16:40.040><c> examples</c><00:16:40.640><c> of</c><00:16:40.700><c> schedule</c><00:16:41.060><c> constants</c>

00:16:41.500 --> 00:16:41.510 align:start position:0%
are some examples of schedule constants
 

00:16:41.510 --> 00:16:43.480 align:start position:0%
are some examples of schedule constants
once<00:16:41.690><c> again</c><00:16:41.900><c> from</c><00:16:42.050><c> the</c><00:16:42.140><c> yellow</c><00:16:42.350><c> paper</c><00:16:42.500><c> g0d</c>

00:16:43.480 --> 00:16:43.490 align:start position:0%
once again from the yellow paper g0d
 

00:16:43.490 --> 00:16:47.350 align:start position:0%
once again from the yellow paper g0d
base<00:16:43.820><c> g</c><00:16:44.480><c> very</c><00:16:44.600><c> low</c><00:16:45.820><c> here's</c><00:16:46.820><c> a</c><00:16:46.880><c> schedule</c><00:16:47.120><c> the</c>

00:16:47.350 --> 00:16:47.360 align:start position:0%
base g very low here's a schedule the
 

00:16:47.360 --> 00:16:49.210 align:start position:0%
base g very low here's a schedule the
default<00:16:47.690><c> schedule</c><00:16:48.110><c> you</c><00:16:48.410><c> know</c><00:16:48.500><c> it</c><00:16:48.620><c> sets</c><00:16:48.800><c> G</c><00:16:48.980><c> zero</c>

00:16:49.210 --> 00:16:49.220 align:start position:0%
default schedule you know it sets G zero
 

00:16:49.220 --> 00:16:51.730 align:start position:0%
default schedule you know it sets G zero
to<00:16:49.310><c> zero</c><00:16:49.550><c> do</c><00:16:49.760><c> you</c><00:16:49.850><c> base</c><00:16:50.000><c> the</c><00:16:50.150><c> to</c><00:16:50.300><c> e</c><00:16:50.540><c> I</c><00:16:51.110><c> p150</c>

00:16:51.730 --> 00:16:51.740 align:start position:0%
to zero do you base the to e I p150
 

00:16:51.740 --> 00:16:54.880 align:start position:0%
to zero do you base the to e I p150
schedule<00:16:52.370><c> G</c><00:16:53.150><c> balance</c><00:16:53.570><c> gets</c><00:16:53.930><c> changed</c><00:16:54.200><c> to</c><00:16:54.320><c> 400</c>

00:16:54.880 --> 00:16:54.890 align:start position:0%
schedule G balance gets changed to 400
 

00:16:54.890 --> 00:16:57.250 align:start position:0%
schedule G balance gets changed to 400
over<00:16:55.130><c> the</c><00:16:55.540><c> schedule</c><00:16:56.540><c> that</c><00:16:56.720><c> come</c><00:16:56.900><c> before</c><00:16:57.080><c> that</c>

00:16:57.250 --> 00:16:57.260 align:start position:0%
over the schedule that come before that
 

00:16:57.260 --> 00:16:58.810 align:start position:0%
over the schedule that come before that
was<00:16:57.530><c> like</c><00:16:57.650><c> homestead</c><00:16:58.190><c> or</c><00:16:58.340><c> something</c><00:16:58.610><c> I</c><00:16:58.670><c> don't</c>

00:16:58.810 --> 00:16:58.820 align:start position:0%
was like homestead or something I don't
 

00:16:58.820 --> 00:16:59.910 align:start position:0%
was like homestead or something I don't
quite<00:16:58.910><c> remember</c>

00:16:59.910 --> 00:16:59.920 align:start position:0%
quite remember
 

00:16:59.920 --> 00:17:03.160 align:start position:0%
quite remember
so<00:17:00.920><c> you</c><00:17:00.980><c> just</c><00:17:01.130><c> update</c><00:17:01.550><c> for</c><00:17:02.420><c> each</c><00:17:02.510><c> new</c><00:17:02.780><c> schedule</c>

00:17:03.160 --> 00:17:03.170 align:start position:0%
so you just update for each new schedule
 

00:17:03.170 --> 00:17:04.569 align:start position:0%
so you just update for each new schedule
change<00:17:03.410><c> you</c><00:17:03.560><c> just</c><00:17:03.590><c> update</c><00:17:04.100><c> the</c><00:17:04.130><c> schedule</c>

00:17:04.569 --> 00:17:04.579 align:start position:0%
change you just update the schedule
 

00:17:04.579 --> 00:17:05.800 align:start position:0%
change you just update the schedule
constants<00:17:05.060><c> for</c><00:17:05.180><c> that</c><00:17:05.329><c> particular</c><00:17:05.510><c> schedule</c>

00:17:05.800 --> 00:17:05.810 align:start position:0%
constants for that particular schedule
 

00:17:05.810 --> 00:17:07.360 align:start position:0%
constants for that particular schedule
so<00:17:06.320><c> there's</c><00:17:06.439><c> actually</c><00:17:06.680><c> a</c><00:17:06.709><c> command</c><00:17:06.949><c> line</c><00:17:07.100><c> flag</c>

00:17:07.360 --> 00:17:07.370 align:start position:0%
so there's actually a command line flag
 

00:17:07.370 --> 00:17:09.429 align:start position:0%
so there's actually a command line flag
you<00:17:07.550><c> can</c><00:17:07.610><c> give</c><00:17:07.820><c> the</c><00:17:07.910><c> semantics</c><00:17:08.390><c> to</c><00:17:09.170><c> tell</c><00:17:09.320><c> it</c>

00:17:09.429 --> 00:17:09.439 align:start position:0%
you can give the semantics to tell it
 

00:17:09.439 --> 00:17:11.980 align:start position:0%
you can give the semantics to tell it
which<00:17:09.530><c> schedule</c><00:17:09.860><c> to</c><00:17:09.949><c> execute</c><00:17:10.310><c> with</c><00:17:10.480><c> okay</c><00:17:11.480><c> so</c>

00:17:11.980 --> 00:17:11.990 align:start position:0%
which schedule to execute with okay so
 

00:17:11.990 --> 00:17:12.790 align:start position:0%
which schedule to execute with okay so
now<00:17:12.079><c> I'm</c><00:17:12.140><c> gonna</c><00:17:12.230><c> talk</c><00:17:12.410><c> about</c><00:17:12.530><c> a</c><00:17:12.620><c> toy</c>

00:17:12.790 --> 00:17:12.800 align:start position:0%
now I'm gonna talk about a toy
 

00:17:12.800 --> 00:17:14.439 align:start position:0%
now I'm gonna talk about a toy
verification<00:17:13.459><c> example</c><00:17:13.850><c> which</c><00:17:13.970><c> is</c><00:17:14.060><c> the</c><00:17:14.150><c> sum</c><00:17:14.329><c> to</c>

00:17:14.439 --> 00:17:14.449 align:start position:0%
verification example which is the sum to
 

00:17:14.449 --> 00:17:17.740 align:start position:0%
verification example which is the sum to
1<00:17:14.600><c> sum</c><00:17:15.350><c> to</c><00:17:15.680><c> end</c><00:17:15.829><c> example</c><00:17:16.430><c> I</c><00:17:16.640><c> forgot</c><00:17:17.600><c> to</c><00:17:17.689><c> put</c>

00:17:17.740 --> 00:17:17.750 align:start position:0%
1 sum to end example I forgot to put
 

00:17:17.750 --> 00:17:19.390 align:start position:0%
1 sum to end example I forgot to put
what<00:17:17.900><c> the</c><00:17:18.020><c> actual</c><00:17:18.290><c> spec</c><00:17:18.560><c> is</c><00:17:18.740><c> here</c><00:17:19.070><c> but</c><00:17:19.250><c> it's</c>

00:17:19.390 --> 00:17:19.400 align:start position:0%
what the actual spec is here but it's
 

00:17:19.400 --> 00:17:22.300 align:start position:0%
what the actual spec is here but it's
basically<00:17:19.670><c> that</c><00:17:19.880><c> s</c><00:17:20.150><c> is</c><00:17:20.420><c> equal</c><00:17:21.170><c> to</c><00:17:21.350><c> n</c><00:17:21.589><c> times</c><00:17:22.070><c> n</c>

00:17:22.300 --> 00:17:22.310 align:start position:0%
basically that s is equal to n times n
 

00:17:22.310 --> 00:17:25.960 align:start position:0%
basically that s is equal to n times n
plus<00:17:22.339><c> 1</c><00:17:22.579><c> over</c><00:17:22.699><c> 2</c><00:17:22.910><c> just</c><00:17:23.420><c> a</c><00:17:23.570><c> classical</c><00:17:24.850><c> you</c><00:17:25.850><c> know</c>

00:17:25.960 --> 00:17:25.970 align:start position:0%
plus 1 over 2 just a classical you know
 

00:17:25.970 --> 00:17:28.360 align:start position:0%
plus 1 over 2 just a classical you know
Euler's<00:17:26.510><c> form</c><00:17:26.930><c> I</c><00:17:27.110><c> think</c><00:17:27.290><c> Oilers</c><00:17:27.709><c> formula</c><00:17:28.160><c> for</c>

00:17:28.360 --> 00:17:28.370 align:start position:0%
Euler's form I think Oilers formula for
 

00:17:28.370 --> 00:17:29.620 align:start position:0%
Euler's form I think Oilers formula for
sums<00:17:28.550><c> or</c><00:17:28.730><c> maybe</c><00:17:28.850><c> you</c><00:17:29.000><c> cleared</c><00:17:29.240><c> or</c><00:17:29.330><c> something</c>

00:17:29.620 --> 00:17:29.630 align:start position:0%
sums or maybe you cleared or something
 

00:17:29.630 --> 00:17:31.420 align:start position:0%
sums or maybe you cleared or something
and<00:17:30.350><c> you</c><00:17:30.440><c> say</c><00:17:30.710><c> enough</c><00:17:30.920><c> names</c><00:17:31.130><c> you</c><00:17:31.280><c> eventually</c>

00:17:31.420 --> 00:17:31.430 align:start position:0%
and you say enough names you eventually
 

00:17:31.430 --> 00:17:33.730 align:start position:0%
and you say enough names you eventually
get<00:17:31.610><c> them</c><00:17:31.760><c> all</c><00:17:32.410><c> so</c><00:17:33.410><c> in</c><00:17:33.500><c> no</c><00:17:33.620><c> particular</c>

00:17:33.730 --> 00:17:33.740 align:start position:0%
get them all so in no particular
 

00:17:33.740 --> 00:17:35.380 align:start position:0%
get them all so in no particular
language<00:17:34.340><c> this</c><00:17:34.550><c> is</c><00:17:34.580><c> kind</c><00:17:34.940><c> of</c><00:17:35.000><c> the</c><00:17:35.090><c> program</c>

00:17:35.380 --> 00:17:35.390 align:start position:0%
language this is kind of the program
 

00:17:35.390 --> 00:17:36.880 align:start position:0%
language this is kind of the program
that<00:17:35.570><c> we're</c><00:17:35.690><c> looking</c><00:17:35.960><c> at</c><00:17:36.110><c> but</c><00:17:36.350><c> in</c><00:17:36.500><c> EVM</c>

00:17:36.880 --> 00:17:36.890 align:start position:0%
that we're looking at but in EVM
 

00:17:36.890 --> 00:17:40.690 align:start position:0%
that we're looking at but in EVM
obviously<00:17:37.370><c> it</c><00:17:37.430><c> looks</c><00:17:37.520><c> a</c><00:17:37.640><c> little</c><00:17:37.730><c> uglier</c><00:17:39.700><c> so</c>

00:17:40.690 --> 00:17:40.700 align:start position:0%
obviously it looks a little uglier so
 

00:17:40.700 --> 00:17:42.160 align:start position:0%
obviously it looks a little uglier so
the<00:17:40.820><c> proof</c><00:17:40.970><c> claim</c><00:17:41.240><c> this</c><00:17:41.510><c> is</c><00:17:41.660><c> the</c><00:17:41.780><c> main</c><00:17:41.930><c> claim</c>

00:17:42.160 --> 00:17:42.170 align:start position:0%
the proof claim this is the main claim
 

00:17:42.170 --> 00:17:43.900 align:start position:0%
the proof claim this is the main claim
right<00:17:42.440><c> here</c><00:17:42.710><c> I'm</c><00:17:43.430><c> gonna</c><00:17:43.550><c> run</c><00:17:43.730><c> through</c><00:17:43.820><c> this</c>

00:17:43.900 --> 00:17:43.910 align:start position:0%
right here I'm gonna run through this
 

00:17:43.910 --> 00:17:45.610 align:start position:0%
right here I'm gonna run through this
really<00:17:44.120><c> quickly</c><00:17:44.390><c> but</c><00:17:44.960><c> basically</c><00:17:45.350><c> we're</c>

00:17:45.610 --> 00:17:45.620 align:start position:0%
really quickly but basically we're
 

00:17:45.620 --> 00:17:46.390 align:start position:0%
really quickly but basically we're
saying<00:17:45.830><c> the</c>

00:17:46.390 --> 00:17:46.400 align:start position:0%
saying the
 

00:17:46.400 --> 00:17:47.890 align:start position:0%
saying the
look<00:17:46.580><c> like</c><00:17:46.760><c> reach</c><00:17:46.940><c> ability</c><00:17:47.180><c> they</c><00:17:47.600><c> look</c><00:17:47.780><c> like</c>

00:17:47.890 --> 00:17:47.900 align:start position:0%
look like reach ability they look like
 

00:17:47.900 --> 00:17:49.750 align:start position:0%
look like reach ability they look like
the<00:17:48.110><c> the</c><00:17:48.530><c> rules</c><00:17:48.770><c> from</c><00:17:48.920><c> the</c><00:17:49.070><c> definition</c><00:17:49.580><c> and</c>

00:17:49.750 --> 00:17:49.760 align:start position:0%
the the rules from the definition and
 

00:17:49.760 --> 00:17:50.860 align:start position:0%
the the rules from the definition and
that's<00:17:49.940><c> because</c><00:17:50.240><c> they</c><00:17:50.330><c> pretty</c><00:17:50.450><c> much</c><00:17:50.600><c> are</c><00:17:50.810><c> the</c>

00:17:50.860 --> 00:17:50.870 align:start position:0%
that's because they pretty much are the
 

00:17:50.870 --> 00:17:52.360 align:start position:0%
that's because they pretty much are the
rules<00:17:51.020><c> from</c><00:17:51.170><c> the</c><00:17:51.230><c> definition</c><00:17:51.650><c> and</c><00:17:51.830><c> basically</c>

00:17:52.360 --> 00:17:52.370 align:start position:0%
rules from the definition and basically
 

00:17:52.370 --> 00:17:53.560 align:start position:0%
rules from the definition and basically
what<00:17:52.520><c> its</c><00:17:52.610><c> gonna</c><00:17:52.670><c> do</c><00:17:52.880><c> is</c><00:17:53.000><c> it's</c><00:17:53.030><c> gonna</c><00:17:53.150><c> start</c><00:17:53.480><c> on</c>

00:17:53.560 --> 00:17:53.570 align:start position:0%
what its gonna do is it's gonna start on
 

00:17:53.570 --> 00:17:55.630 align:start position:0%
what its gonna do is it's gonna start on
the<00:17:53.630><c> left-hand</c><00:17:54.020><c> side</c><00:17:54.230><c> of</c><00:17:54.260><c> the</c><00:17:54.410><c> rule</c><00:17:54.620><c> notice</c><00:17:55.550><c> we</c>

00:17:55.630 --> 00:17:55.640 align:start position:0%
the left-hand side of the rule notice we
 

00:17:55.640 --> 00:17:57.010 align:start position:0%
the left-hand side of the rule notice we
have<00:17:55.730><c> a</c><00:17:55.790><c> symbolic</c><00:17:56.030><c> value</c><00:17:56.480><c> here</c><00:17:56.630><c> for</c><00:17:56.660><c> the</c><00:17:56.870><c> gas</c>

00:17:57.010 --> 00:17:57.020 align:start position:0%
have a symbolic value here for the gas
 

00:17:57.020 --> 00:17:58.990 align:start position:0%
have a symbolic value here for the gas
and<00:17:57.320><c> symbolic</c><00:17:57.710><c> word</c><00:17:57.890><c> stack</c><00:17:58.190><c> here</c><00:17:58.460><c> and</c><00:17:58.610><c> it's</c>

00:17:58.990 --> 00:17:59.000 align:start position:0%
and symbolic word stack here and it's
 

00:17:59.000 --> 00:18:01.270 align:start position:0%
and symbolic word stack here and it's
going<00:17:59.090><c> to</c><00:17:59.150><c> symbolically</c><00:17:59.600><c> execute</c><00:18:00.230><c> using</c><00:18:01.190><c> the</c>

00:18:01.270 --> 00:18:01.280 align:start position:0%
going to symbolically execute using the
 

00:18:01.280 --> 00:18:02.920 align:start position:0%
going to symbolically execute using the
inference<00:18:01.610><c> system</c><00:18:01.760><c> of</c><00:18:02.090><c> reach</c><00:18:02.240><c> ability</c><00:18:02.390><c> logic</c>

00:18:02.920 --> 00:18:02.930 align:start position:0%
inference system of reach ability logic
 

00:18:02.930 --> 00:18:05.800 align:start position:0%
inference system of reach ability logic
until<00:18:03.530><c> it</c><00:18:03.650><c> reaches</c><00:18:03.920><c> a</c><00:18:03.950><c> state</c><00:18:04.250><c> that</c><00:18:04.490><c> this</c><00:18:05.090><c> that</c>

00:18:05.800 --> 00:18:05.810 align:start position:0%
until it reaches a state that this that
 

00:18:05.810 --> 00:18:07.450 align:start position:0%
until it reaches a state that this that
implies<00:18:06.170><c> this</c><00:18:06.500><c> right-hand</c><00:18:06.920><c> side</c><00:18:07.100><c> of</c><00:18:07.220><c> the</c><00:18:07.280><c> rule</c>

00:18:07.450 --> 00:18:07.460 align:start position:0%
implies this right-hand side of the rule
 

00:18:07.460 --> 00:18:11.170 align:start position:0%
implies this right-hand side of the rule
essentially<00:18:09.340><c> so</c><00:18:10.340><c> basically</c><00:18:10.820><c> we're</c><00:18:10.970><c> saying</c>

00:18:11.170 --> 00:18:11.180 align:start position:0%
essentially so basically we're saying
 

00:18:11.180 --> 00:18:13.840 align:start position:0%
essentially so basically we're saying
starting<00:18:11.930><c> at</c><00:18:12.050><c> any</c><00:18:12.200><c> word</c><00:18:12.470><c> stack</c><00:18:12.800><c> we</c><00:18:13.310><c> get</c><00:18:13.490><c> to</c><00:18:13.640><c> the</c>

00:18:13.840 --> 00:18:13.850 align:start position:0%
starting at any word stack we get to the
 

00:18:13.850 --> 00:18:16.480 align:start position:0%
starting at any word stack we get to the
same<00:18:14.090><c> word</c><00:18:14.330><c> stack</c><00:18:14.660><c> but</c><00:18:15.020><c> with</c><00:18:15.200><c> the</c><00:18:15.350><c> sum</c><00:18:15.620><c> from</c><00:18:16.250><c> 1</c>

00:18:16.480 --> 00:18:16.490 align:start position:0%
same word stack but with the sum from 1
 

00:18:16.490 --> 00:18:18.370 align:start position:0%
same word stack but with the sum from 1
to<00:18:16.610><c> n</c><00:18:16.730><c> put</c><00:18:17.000><c> on</c><00:18:17.120><c> the</c><00:18:17.270><c> top</c><00:18:17.450><c> and</c><00:18:17.720><c> our</c><00:18:17.840><c> counter</c><00:18:18.200><c> gets</c>

00:18:18.370 --> 00:18:18.380 align:start position:0%
to n put on the top and our counter gets
 

00:18:18.380 --> 00:18:21.430 align:start position:0%
to n put on the top and our counter gets
to<00:18:18.530><c> 0</c><00:18:18.800><c> and</c><00:18:19.040><c> the</c><00:18:19.460><c> gas</c><00:18:19.720><c> consumed</c><00:18:20.720><c> is</c><00:18:20.960><c> exactly</c>

00:18:21.430 --> 00:18:21.440 align:start position:0%
to 0 and the gas consumed is exactly
 

00:18:21.440 --> 00:18:22.900 align:start position:0%
to 0 and the gas consumed is exactly
this<00:18:21.650><c> amount</c><00:18:21.830><c> and</c><00:18:22.160><c> then</c><00:18:22.520><c> we</c><00:18:22.610><c> have</c><00:18:22.730><c> some</c>

00:18:22.900 --> 00:18:22.910 align:start position:0%
this amount and then we have some
 

00:18:22.910 --> 00:18:24.430 align:start position:0%
this amount and then we have some
preconditions<00:18:23.270><c> basically</c><00:18:23.960><c> stating</c><00:18:24.410><c> that</c>

00:18:24.430 --> 00:18:24.440 align:start position:0%
preconditions basically stating that
 

00:18:24.440 --> 00:18:27.340 align:start position:0%
preconditions basically stating that
like<00:18:24.770><c> and</c><00:18:25.070><c> is</c><00:18:25.580><c> greater</c><00:18:25.850><c> than</c><00:18:25.940><c> 0</c><00:18:26.210><c> there</c><00:18:26.960><c> is</c><00:18:26.990><c> an</c>

00:18:27.340 --> 00:18:27.350 align:start position:0%
like and is greater than 0 there is an
 

00:18:27.350 --> 00:18:29.710 align:start position:0%
like and is greater than 0 there is an
integer<00:18:27.830><c> overflow</c><00:18:28.520><c> the</c><00:18:29.150><c> size</c><00:18:29.390><c> of</c><00:18:29.510><c> the</c><00:18:29.570><c> word</c>

00:18:29.710 --> 00:18:29.720 align:start position:0%
integer overflow the size of the word
 

00:18:29.720 --> 00:18:30.970 align:start position:0%
integer overflow the size of the word
stack<00:18:29.990><c> is</c><00:18:30.140><c> small</c><00:18:30.380><c> enough</c><00:18:30.560><c> that</c><00:18:30.620><c> there</c><00:18:30.860><c> will</c>

00:18:30.970 --> 00:18:30.980 align:start position:0%
stack is small enough that there will
 

00:18:30.980 --> 00:18:34.690 align:start position:0%
stack is small enough that there will
want<00:18:31.340><c> be</c><00:18:31.430><c> a</c><00:18:31.460><c> stack</c><00:18:31.700><c> overflow</c><00:18:31.910><c> and</c><00:18:32.450><c> the</c><00:18:33.400><c> the</c><00:18:34.400><c> gas</c>

00:18:34.690 --> 00:18:34.700 align:start position:0%
want be a stack overflow and the the gas
 

00:18:34.700 --> 00:18:36.640 align:start position:0%
want be a stack overflow and the the gas
consumed<00:18:35.210><c> is</c><00:18:35.390><c> the</c><00:18:35.660><c> gas</c><00:18:35.840><c> available</c><00:18:36.050><c> is</c><00:18:36.440><c> large</c>

00:18:36.640 --> 00:18:36.650 align:start position:0%
consumed is the gas available is large
 

00:18:36.650 --> 00:18:39.970 align:start position:0%
consumed is the gas available is large
enough<00:18:37.300><c> basically</c><00:18:38.300><c> you</c><00:18:39.260><c> know</c><00:18:39.350><c> we</c><00:18:39.560><c> first</c><00:18:39.800><c> write</c>

00:18:39.970 --> 00:18:39.980 align:start position:0%
enough basically you know we first write
 

00:18:39.980 --> 00:18:41.860 align:start position:0%
enough basically you know we first write
down<00:18:40.040><c> the</c><00:18:40.190><c> spec</c><00:18:40.520><c> up</c><00:18:40.700><c> here</c><00:18:41.000><c> and</c><00:18:41.150><c> then</c><00:18:41.540><c> we</c><00:18:41.630><c> try</c><00:18:41.810><c> to</c>

00:18:41.860 --> 00:18:41.870 align:start position:0%
down the spec up here and then we try to
 

00:18:41.870 --> 00:18:44.380 align:start position:0%
down the spec up here and then we try to
prove<00:18:42.080><c> it</c><00:18:42.260><c> and</c><00:18:42.350><c> then</c><00:18:42.560><c> the</c><00:18:42.620><c> prover</c><00:18:42.920><c> tells</c><00:18:43.160><c> us</c><00:18:43.400><c> in</c>

00:18:44.380 --> 00:18:44.390 align:start position:0%
prove it and then the prover tells us in
 

00:18:44.390 --> 00:18:46.000 align:start position:0%
prove it and then the prover tells us in
a<00:18:44.510><c> not</c><00:18:44.690><c> so</c><00:18:44.840><c> intuitive</c><00:18:45.110><c> way</c><00:18:45.380><c> that</c><00:18:45.710><c> it</c><00:18:45.800><c> can't</c>

00:18:46.000 --> 00:18:46.010 align:start position:0%
a not so intuitive way that it can't
 

00:18:46.010 --> 00:18:47.860 align:start position:0%
a not so intuitive way that it can't
prove<00:18:46.250><c> it</c><00:18:46.400><c> and</c><00:18:46.520><c> then</c><00:18:47.030><c> we</c><00:18:47.150><c> say</c><00:18:47.330><c> oh</c><00:18:47.510><c> what</c><00:18:47.720><c> are</c><00:18:47.810><c> the</c>

00:18:47.860 --> 00:18:47.870 align:start position:0%
prove it and then we say oh what are the
 

00:18:47.870 --> 00:18:50.140 align:start position:0%
prove it and then we say oh what are the
preconditions<00:18:48.380><c> we</c><00:18:48.470><c> have</c><00:18:48.620><c> to</c><00:18:48.740><c> add</c><00:18:48.940><c> the</c><00:18:49.940><c> reason</c>

00:18:50.140 --> 00:18:50.150 align:start position:0%
preconditions we have to add the reason
 

00:18:50.150 --> 00:18:52.960 align:start position:0%
preconditions we have to add the reason
I'm<00:18:50.240><c> telling</c><00:18:50.390><c> you</c><00:18:50.540><c> that</c><00:18:50.690><c> is</c><00:18:50.930><c> because</c><00:18:51.730><c> okay</c><00:18:52.730><c> so</c>

00:18:52.960 --> 00:18:52.970 align:start position:0%
I'm telling you that is because okay so
 

00:18:52.970 --> 00:18:55.270 align:start position:0%
I'm telling you that is because okay so
actually<00:18:53.510><c> with</c><00:18:53.630><c> some</c><00:18:53.960><c> example</c><00:18:54.620><c> there's</c><00:18:55.100><c> this</c>

00:18:55.270 --> 00:18:55.280 align:start position:0%
actually with some example there's this
 

00:18:55.280 --> 00:18:57.400 align:start position:0%
actually with some example there's this
loop<00:18:55.550><c> in</c><00:18:55.790><c> traditional</c><00:18:56.450><c> logic</c><00:18:57.200><c> style</c>

00:18:57.400 --> 00:18:57.410 align:start position:0%
loop in traditional logic style
 

00:18:57.410 --> 00:18:58.390 align:start position:0%
loop in traditional logic style
things<00:18:57.650><c> you</c><00:18:57.740><c> have</c><00:18:57.860><c> to</c><00:18:57.920><c> provide</c><00:18:58.100><c> a</c><00:18:58.160><c> loop</c>

00:18:58.390 --> 00:18:58.400 align:start position:0%
things you have to provide a loop
 

00:18:58.400 --> 00:19:00.100 align:start position:0%
things you have to provide a loop
invariant<00:18:58.520><c> we</c><00:18:59.240><c> generalize</c><00:18:59.690><c> that</c><00:18:59.840><c> a</c><00:18:59.900><c> little</c>

00:19:00.100 --> 00:19:00.110 align:start position:0%
invariant we generalize that a little
 

00:19:00.110 --> 00:19:01.360 align:start position:0%
invariant we generalize that a little
bit<00:19:00.230><c> and</c><00:19:00.320><c> reach</c><00:19:00.470><c> ability</c><00:19:00.680><c> logic</c><00:19:01.160><c> to</c><00:19:01.280><c> the</c>

00:19:01.360 --> 00:19:01.370 align:start position:0%
bit and reach ability logic to the
 

00:19:01.370 --> 00:19:03.520 align:start position:0%
bit and reach ability logic to the
notion<00:19:01.640><c> of</c><00:19:01.700><c> a</c><00:19:01.790><c> circularity</c><00:19:02.380><c> and</c><00:19:03.380><c> this</c>

00:19:03.520 --> 00:19:03.530 align:start position:0%
notion of a circularity and this
 

00:19:03.530 --> 00:19:05.500 align:start position:0%
notion of a circularity and this
basically<00:19:03.860><c> says</c><00:19:04.130><c> if</c><00:19:04.670><c> you're</c><00:19:04.880><c> starting</c><00:19:05.270><c> at</c><00:19:05.390><c> the</c>

00:19:05.500 --> 00:19:05.510 align:start position:0%
basically says if you're starting at the
 

00:19:05.510 --> 00:19:07.720 align:start position:0%
basically says if you're starting at the
loop<00:19:05.690><c> head</c><00:19:06.050><c> you</c><00:19:06.860><c> can</c><00:19:07.010><c> reach</c><00:19:07.190><c> the</c><00:19:07.340><c> end</c><00:19:07.370><c> of</c><00:19:07.640><c> the</c>

00:19:07.720 --> 00:19:07.730 align:start position:0%
loop head you can reach the end of the
 

00:19:07.730 --> 00:19:11.530 align:start position:0%
loop head you can reach the end of the
program<00:19:08.230><c> and</c><00:19:10.000><c> calculate</c><00:19:11.000><c> the</c><00:19:11.180><c> correct</c>

00:19:11.530 --> 00:19:11.540 align:start position:0%
program and calculate the correct
 

00:19:11.540 --> 00:19:13.450 align:start position:0%
program and calculate the correct
remaining<00:19:12.140><c> partial</c><00:19:12.590><c> sums</c><00:19:12.800><c> so</c><00:19:13.010><c> notice</c><00:19:13.310><c> in</c><00:19:13.400><c> a</c>

00:19:13.450 --> 00:19:13.460 align:start position:0%
remaining partial sums so notice in a
 

00:19:13.460 --> 00:19:14.650 align:start position:0%
remaining partial sums so notice in a
loop<00:19:13.640><c> invariant</c><00:19:13.820><c> if</c><00:19:14.180><c> you're</c><00:19:14.300><c> familiar</c><00:19:14.420><c> with</c>

00:19:14.650 --> 00:19:14.660 align:start position:0%
loop invariant if you're familiar with
 

00:19:14.660 --> 00:19:16.270 align:start position:0%
loop invariant if you're familiar with
those<00:19:14.840><c> you</c><00:19:15.380><c> specify</c><00:19:15.710><c> the</c><00:19:15.770><c> behavior</c><00:19:15.920><c> of</c><00:19:16.220><c> a</c>

00:19:16.270 --> 00:19:16.280 align:start position:0%
those you specify the behavior of a
 

00:19:16.280 --> 00:19:17.860 align:start position:0%
those you specify the behavior of a
single<00:19:16.460><c> iteration</c><00:19:16.700><c> of</c><00:19:17.090><c> loop</c><00:19:17.270><c> here</c><00:19:17.780><c> you</c>

00:19:17.860 --> 00:19:17.870 align:start position:0%
single iteration of loop here you
 

00:19:17.870 --> 00:19:19.510 align:start position:0%
single iteration of loop here you
specify<00:19:18.080><c> the</c><00:19:18.380><c> behavior</c><00:19:18.800><c> from</c><00:19:19.010><c> the</c><00:19:19.220><c> beginning</c>

00:19:19.510 --> 00:19:19.520 align:start position:0%
specify the behavior from the beginning
 

00:19:19.520 --> 00:19:20.950 align:start position:0%
specify the behavior from the beginning
of<00:19:19.580><c> the</c><00:19:19.640><c> loop</c><00:19:19.790><c> to</c><00:19:20.210><c> the</c><00:19:20.240><c> end</c><00:19:20.510><c> of</c><00:19:20.570><c> the</c><00:19:20.630><c> program</c>

00:19:20.950 --> 00:19:20.960 align:start position:0%
of the loop to the end of the program
 

00:19:20.960 --> 00:19:23.140 align:start position:0%
of the loop to the end of the program
which<00:19:21.110><c> is</c><00:19:21.230><c> often</c><00:19:21.590><c> easier</c><00:19:21.890><c> to</c><00:19:22.010><c> specify</c><00:19:22.520><c> than</c>

00:19:23.140 --> 00:19:23.150 align:start position:0%
which is often easier to specify than
 

00:19:23.150 --> 00:19:24.430 align:start position:0%
which is often easier to specify than
the<00:19:23.270><c> behavior</c><00:19:23.390><c> of</c><00:19:23.630><c> a</c><00:19:23.720><c> single</c><00:19:23.960><c> iteration</c><00:19:24.080><c> of</c>

00:19:24.430 --> 00:19:24.440 align:start position:0%
the behavior of a single iteration of
 

00:19:24.440 --> 00:19:25.770 align:start position:0%
the behavior of a single iteration of
the<00:19:24.530><c> loop</c>

00:19:25.770 --> 00:19:25.780 align:start position:0%
the loop
 

00:19:25.780 --> 00:19:28.030 align:start position:0%
the loop
okay<00:19:26.780><c> so</c><00:19:26.840><c> verifying</c><00:19:27.290><c> a</c><00:19:27.380><c> VI</c><00:19:27.530><c> compliant</c>

00:19:28.030 --> 00:19:28.040 align:start position:0%
okay so verifying a VI compliant
 

00:19:28.040 --> 00:19:30.490 align:start position:0%
okay so verifying a VI compliant
contracts<00:19:28.810><c> writing</c><00:19:29.810><c> these</c><00:19:29.930><c> specifications</c>

00:19:30.490 --> 00:19:30.500 align:start position:0%
contracts writing these specifications
 

00:19:30.500 --> 00:19:31.660 align:start position:0%
contracts writing these specifications
is<00:19:30.590><c> actually</c><00:19:30.860><c> really</c><00:19:30.980><c> hard</c><00:19:31.250><c> for</c><00:19:31.400><c> ABI</c>

00:19:31.660 --> 00:19:31.670 align:start position:0%
is actually really hard for ABI
 

00:19:31.670 --> 00:19:33.640 align:start position:0%
is actually really hard for ABI
contracts<00:19:32.240><c> because</c><00:19:32.540><c> you</c><00:19:33.110><c> know</c><00:19:33.230><c> they're</c><00:19:33.410><c> huge</c>

00:19:33.640 --> 00:19:33.650 align:start position:0%
contracts because you know they're huge
 

00:19:33.650 --> 00:19:35.590 align:start position:0%
contracts because you know they're huge
right<00:19:33.950><c> so</c><00:19:34.430><c> we've</c><00:19:34.730><c> provided</c><00:19:34.910><c> some</c><00:19:35.300><c> helper</c>

00:19:35.590 --> 00:19:35.600 align:start position:0%
right so we've provided some helper
 

00:19:35.600 --> 00:19:37.690 align:start position:0%
right so we've provided some helper
functions<00:19:36.020><c> like</c><00:19:36.260><c> ABI</c><00:19:36.560><c> call</c><00:19:36.830><c> data</c><00:19:37.040><c> and</c><00:19:37.460><c> some</c>

00:19:37.690 --> 00:19:37.700 align:start position:0%
functions like ABI call data and some
 

00:19:37.700 --> 00:19:39.550 align:start position:0%
functions like ABI call data and some
other<00:19:37.820><c> little</c><00:19:38.000><c> ones</c><00:19:38.270><c> which</c><00:19:38.870><c> will</c><00:19:39.080><c> let</c><00:19:39.350><c> you</c>

00:19:39.550 --> 00:19:39.560 align:start position:0%
other little ones which will let you
 

00:19:39.560 --> 00:19:41.770 align:start position:0%
other little ones which will let you
essentially<00:19:40.040><c> actually</c><00:19:40.910><c> pass</c><00:19:41.120><c> in</c><00:19:41.390><c> the</c><00:19:41.540><c> name</c><00:19:41.660><c> of</c>

00:19:41.770 --> 00:19:41.780 align:start position:0%
essentially actually pass in the name of
 

00:19:41.780 --> 00:19:43.150 align:start position:0%
essentially actually pass in the name of
the<00:19:41.840><c> function</c><00:19:41.990><c> you</c><00:19:42.290><c> want</c><00:19:42.320><c> to</c><00:19:42.500><c> call</c><00:19:42.560><c> or</c><00:19:43.040><c> the</c>

00:19:43.150 --> 00:19:43.160 align:start position:0%
the function you want to call or the
 

00:19:43.160 --> 00:19:44.500 align:start position:0%
the function you want to call or the
typed<00:19:43.370><c> arguments</c><00:19:43.940><c> that</c><00:19:44.090><c> you</c><00:19:44.150><c> want</c><00:19:44.300><c> to</c><00:19:44.390><c> pass</c>

00:19:44.500 --> 00:19:44.510 align:start position:0%
typed arguments that you want to pass
 

00:19:44.510 --> 00:19:45.850 align:start position:0%
typed arguments that you want to pass
that<00:19:44.570><c> function</c><00:19:45.170><c> for</c><00:19:45.290><c> example</c><00:19:45.620><c> instead</c><00:19:45.770><c> of</c>

00:19:45.850 --> 00:19:45.860 align:start position:0%
that function for example instead of
 

00:19:45.860 --> 00:19:49.110 align:start position:0%
that function for example instead of
having<00:19:45.950><c> to</c><00:19:46.250><c> pass</c><00:19:46.400><c> in</c><00:19:46.670><c> sorry</c><00:19:47.300><c> the</c><00:19:47.920><c> hex</c><00:19:48.920><c> encoded</c>

00:19:49.110 --> 00:19:49.120 align:start position:0%
having to pass in sorry the hex encoded
 

00:19:49.120 --> 00:19:53.080 align:start position:0%
having to pass in sorry the hex encoded
bike<00:19:50.120><c> string</c><00:19:50.510><c> for</c><00:19:50.750><c> example</c><00:19:51.640><c> and</c><00:19:52.640><c> so</c><00:19:52.760><c> here's</c><00:19:53.000><c> an</c>

00:19:53.080 --> 00:19:53.090 align:start position:0%
bike string for example and so here's an
 

00:19:53.090 --> 00:19:55.080 align:start position:0%
bike string for example and so here's an
example<00:19:53.150><c> usage</c><00:19:53.750><c> and</c><00:19:54.110><c> say</c><00:19:54.260><c> maybe</c><00:19:54.440><c> I</c><00:19:54.530><c> call</c><00:19:54.830><c> data</c>

00:19:55.080 --> 00:19:55.090 align:start position:0%
example usage and say maybe I call data
 

00:19:55.090 --> 00:19:58.270 align:start position:0%
example usage and say maybe I call data
transfer<00:19:56.090><c> to</c><00:19:56.720><c> this</c><00:19:56.840><c> address</c><00:19:57.080><c> this</c><00:19:57.950><c> transfer</c>

00:19:58.270 --> 00:19:58.280 align:start position:0%
transfer to this address this transfer
 

00:19:58.280 --> 00:19:59.769 align:start position:0%
transfer to this address this transfer
value<00:19:58.460><c> note</c><00:19:58.880><c> that</c><00:19:59.060><c> transfer</c><00:19:59.450><c> here</c>

00:19:59.769 --> 00:19:59.779 align:start position:0%
value note that transfer here
 

00:19:59.779 --> 00:20:01.479 align:start position:0%
value note that transfer here
as<00:19:59.869><c> a</c><00:19:59.929><c> symbolic</c><00:20:00.259><c> value</c><00:20:00.469><c> but</c><00:20:01.159><c> this</c><00:20:01.279><c> is</c><00:20:01.369><c> actually</c>

00:20:01.479 --> 00:20:01.489 align:start position:0%
as a symbolic value but this is actually
 

00:20:01.489 --> 00:20:04.629 align:start position:0%
as a symbolic value but this is actually
a<00:20:01.669><c> constant</c><00:20:02.830><c> so</c><00:20:03.830><c> that's</c><00:20:04.129><c> the</c><00:20:04.249><c> called</c><00:20:04.460><c> a</c><00:20:04.580><c> to</c>

00:20:04.629 --> 00:20:04.639 align:start position:0%
a constant so that's the called a to
 

00:20:04.639 --> 00:20:06.759 align:start position:0%
a constant so that's the called a to
sell<00:20:04.909><c> and</c><00:20:05.119><c> then</c><00:20:05.659><c> here</c><00:20:06.019><c> you</c><00:20:06.289><c> would</c><00:20:06.409><c> use</c><00:20:06.590><c> it</c>

00:20:06.759 --> 00:20:06.769 align:start position:0%
sell and then here you would use it
 

00:20:06.769 --> 00:20:08.529 align:start position:0%
sell and then here you would use it
right<00:20:06.919><c> here</c><00:20:07.249><c> this</c><00:20:07.700><c> is</c><00:20:07.879><c> this</c><00:20:08.179><c> would</c><00:20:08.330><c> be</c><00:20:08.419><c> that</c>

00:20:08.529 --> 00:20:08.539 align:start position:0%
right here this is this would be that
 

00:20:08.539 --> 00:20:10.690 align:start position:0%
right here this is this would be that
line<00:20:08.779><c> above</c><00:20:09.159><c> instead</c><00:20:10.159><c> of</c><00:20:10.279><c> having</c><00:20:10.429><c> to</c><00:20:10.549><c> write</c>

00:20:10.690 --> 00:20:10.700 align:start position:0%
line above instead of having to write
 

00:20:10.700 --> 00:20:12.609 align:start position:0%
line above instead of having to write
out<00:20:10.849><c> the</c><00:20:10.999><c> byte</c><00:20:11.149><c> encoded</c><00:20:11.690><c> hex</c><00:20:11.899><c> values</c><00:20:12.259><c> here</c><00:20:12.469><c> and</c>

00:20:12.609 --> 00:20:12.619 align:start position:0%
out the byte encoded hex values here and
 

00:20:12.619 --> 00:20:14.200 align:start position:0%
out the byte encoded hex values here and
then<00:20:12.679><c> notice</c><00:20:13.159><c> the</c><00:20:13.309><c> balanced</c><00:20:13.700><c> one</c><00:20:13.879><c> goes</c><00:20:14.179><c> to</c>

00:20:14.200 --> 00:20:14.210 align:start position:0%
then notice the balanced one goes to
 

00:20:14.210 --> 00:20:16.060 align:start position:0%
then notice the balanced one goes to
balance<00:20:14.899><c> one</c><00:20:14.989><c> -</c><00:20:15.259><c> transferred</c><00:20:15.590><c> miles</c><00:20:15.769><c> -</c><00:20:15.889><c> to</c>

00:20:16.060 --> 00:20:16.070 align:start position:0%
balance one - transferred miles - to
 

00:20:16.070 --> 00:20:18.339 align:start position:0%
balance one - transferred miles - to
balance<00:20:16.190><c> or</c><00:20:16.460><c> to</c><00:20:16.729><c> loss</c><00:20:17.210><c> transfer</c><00:20:17.599><c> and</c><00:20:17.779><c> then</c><00:20:18.169><c> all</c>

00:20:18.339 --> 00:20:18.349 align:start position:0%
balance or to loss transfer and then all
 

00:20:18.349 --> 00:20:20.049 align:start position:0%
balance or to loss transfer and then all
these<00:20:18.469><c> preconditions</c><00:20:19.070><c> right</c><00:20:19.249><c> here</c><00:20:19.460><c> some</c><00:20:20.029><c> of</c>

00:20:20.049 --> 00:20:20.059 align:start position:0%
these preconditions right here some of
 

00:20:20.059 --> 00:20:21.729 align:start position:0%
these preconditions right here some of
them<00:20:20.269><c> were</c><00:20:20.419><c> caught</c><00:20:20.659><c> this</c><00:20:20.929><c> is</c><00:20:21.109><c> this</c><00:20:21.320><c> examples</c>

00:20:21.729 --> 00:20:21.739 align:start position:0%
them were caught this is this examples
 

00:20:21.739 --> 00:20:23.830 align:start position:0%
them were caught this is this examples
hkg<00:20:22.309><c> token</c><00:20:22.639><c> they</c><00:20:22.729><c> had</c><00:20:22.849><c> a</c><00:20:22.879><c> bug</c><00:20:23.059><c> in</c><00:20:23.179><c> it</c><00:20:23.299><c> some</c><00:20:23.809><c> of</c>

00:20:23.830 --> 00:20:23.840 align:start position:0%
hkg token they had a bug in it some of
 

00:20:23.840 --> 00:20:26.589 align:start position:0%
hkg token they had a bug in it some of
these<00:20:23.960><c> were</c><00:20:24.109><c> caught</c><00:20:24.349><c> by</c><00:20:25.159><c> the</c><00:20:25.190><c> hkg</c><00:20:25.789><c> auditors</c>

00:20:26.589 --> 00:20:26.599 align:start position:0%
these were caught by the hkg auditors
 

00:20:26.599 --> 00:20:28.509 align:start position:0%
these were caught by the hkg auditors
some<00:20:26.899><c> weren't</c><00:20:27.049><c> actually</c><00:20:27.499><c> so</c><00:20:27.679><c> our</c><00:20:28.159><c> prove</c><00:20:28.429><c> er</c>

00:20:28.509 --> 00:20:28.519 align:start position:0%
some weren't actually so our prove er
 

00:20:28.519 --> 00:20:30.519 align:start position:0%
some weren't actually so our prove er
was<00:20:28.639><c> able</c><00:20:28.849><c> to</c><00:20:28.879><c> help</c><00:20:29.059><c> us</c><00:20:29.239><c> find</c><00:20:29.539><c> some</c><00:20:30.229><c> integer</c>

00:20:30.519 --> 00:20:30.529 align:start position:0%
was able to help us find some integer
 

00:20:30.529 --> 00:20:31.839 align:start position:0%
was able to help us find some integer
overflow<00:20:30.859><c> bugs</c><00:20:31.070><c> and</c><00:20:31.249><c> stuff</c><00:20:31.369><c> like</c><00:20:31.460><c> that</c><00:20:31.639><c> okay</c>

00:20:31.839 --> 00:20:31.849 align:start position:0%
overflow bugs and stuff like that okay
 

00:20:31.849 --> 00:20:35.259 align:start position:0%
overflow bugs and stuff like that okay
so<00:20:32.839><c> not</c><00:20:33.259><c> enough</c><00:20:33.440><c> time</c><00:20:33.679><c> here</c><00:20:33.889><c> but</c><00:20:34.279><c> basically</c><00:20:34.460><c> we</c>

00:20:35.259 --> 00:20:35.269 align:start position:0%
so not enough time here but basically we
 

00:20:35.269 --> 00:20:37.570 align:start position:0%
so not enough time here but basically we
passed<00:20:35.479><c> the</c><00:20:35.629><c> tests</c><00:20:36.129><c> almost</c><00:20:37.129><c> passing</c><00:20:37.399><c> large</c>

00:20:37.570 --> 00:20:37.580 align:start position:0%
passed the tests almost passing large
 

00:20:37.580 --> 00:20:38.919 align:start position:0%
passed the tests almost passing large
chain<00:20:37.759><c> tests</c><00:20:38.089><c> with</c><00:20:38.359><c> an</c><00:20:38.479><c> order</c><00:20:38.719><c> of</c><00:20:38.839><c> magnitude</c>

00:20:38.919 --> 00:20:38.929 align:start position:0%
chain tests with an order of magnitude
 

00:20:38.929 --> 00:20:41.200 align:start position:0%
chain tests with an order of magnitude
of<00:20:39.619><c> the</c><00:20:39.830><c> performance</c><00:20:40.279><c> of</c><00:20:40.369><c> CPP</c><00:20:40.759><c> etherium</c><00:20:41.089><c> which</c>

00:20:41.200 --> 00:20:41.210 align:start position:0%
of the performance of CPP etherium which
 

00:20:41.210 --> 00:20:43.029 align:start position:0%
of the performance of CPP etherium which
is<00:20:41.299><c> pretty</c><00:20:41.479><c> good</c><00:20:41.690><c> for</c><00:20:41.749><c> a</c><00:20:42.229><c> formal</c><00:20:42.859><c> verification</c>

00:20:43.029 --> 00:20:43.039 align:start position:0%
is pretty good for a formal verification
 

00:20:43.039 --> 00:20:46.329 align:start position:0%
is pretty good for a formal verification
framework<00:20:44.469><c> we're</c><00:20:45.469><c> working</c><00:20:45.769><c> on</c><00:20:45.859><c> some</c><00:20:46.070><c> ABI</c>

00:20:46.329 --> 00:20:46.339 align:start position:0%
framework we're working on some ABI
 

00:20:46.339 --> 00:20:48.339 align:start position:0%
framework we're working on some ABI
abstraction<00:20:46.909><c> stuff</c><00:20:47.149><c> and</c><00:20:47.389><c> not</c><00:20:47.929><c> discussed</c><00:20:48.289><c> here</c>

00:20:48.339 --> 00:20:48.349 align:start position:0%
abstraction stuff and not discussed here
 

00:20:48.349 --> 00:20:49.599 align:start position:0%
abstraction stuff and not discussed here
but<00:20:48.529><c> come</c><00:20:48.769><c> and</c><00:20:48.889><c> ask</c><00:20:49.009><c> me</c><00:20:49.129><c> about</c><00:20:49.219><c> it</c>

00:20:49.599 --> 00:20:49.609 align:start position:0%
but come and ask me about it
 

00:20:49.609 --> 00:20:52.509 align:start position:0%
but come and ask me about it
EVM<00:20:50.179><c> crime</c><00:20:50.509><c> which</c><00:20:51.229><c> was</c><00:20:51.440><c> the</c><00:20:51.619><c> ic3</c><00:20:52.009><c> bootcamp</c>

00:20:52.509 --> 00:20:52.519 align:start position:0%
EVM crime which was the ic3 bootcamp
 

00:20:52.519 --> 00:20:55.690 align:start position:0%
EVM crime which was the ic3 bootcamp
project<00:20:52.999><c> we're</c><00:20:53.779><c> extending</c><00:20:54.219><c> EVM</c><00:20:55.219><c> with</c><00:20:55.489><c> some</c>

00:20:55.690 --> 00:20:55.700 align:start position:0%
project we're extending EVM with some
 

00:20:55.700 --> 00:20:56.829 align:start position:0%
project we're extending EVM with some
stuff<00:20:55.879><c> to</c><00:20:56.059><c> make</c><00:20:56.089><c> it</c><00:20:56.210><c> easier</c><00:20:56.599><c> to</c><00:20:56.629><c> give</c>

00:20:56.829 --> 00:20:56.839 align:start position:0%
stuff to make it easier to give
 

00:20:56.839 --> 00:21:00.039 align:start position:0%
stuff to make it easier to give
semantics<00:20:57.799><c> to</c><00:20:57.919><c> Viper</c><00:20:58.129><c> via</c><00:20:58.940><c> compilation</c><00:20:59.690><c> -</c><00:20:59.779><c> EVM</c>

00:21:00.039 --> 00:21:00.049 align:start position:0%
semantics to Viper via compilation - EVM
 

00:21:00.049 --> 00:21:02.339 align:start position:0%
semantics to Viper via compilation - EVM
and<00:21:00.259><c> we're</c><00:21:00.799><c> getting</c><00:21:00.979><c> pretty</c><00:21:01.129><c> close</c><00:21:01.279><c> on</c><00:21:01.519><c> that</c>

00:21:02.339 --> 00:21:02.349 align:start position:0%
and we're getting pretty close on that
 

00:21:02.349 --> 00:21:06.719 align:start position:0%
and we're getting pretty close on that
yeah<00:21:03.349><c> so</c><00:21:03.559><c> this</c><00:21:03.679><c> is</c><00:21:03.739><c> the</c><00:21:04.039><c> K</c><00:21:04.609><c> framework</c><00:21:05.029><c> overview</c>

00:21:06.719 --> 00:21:06.729 align:start position:0%
yeah so this is the K framework overview
 

00:21:06.729 --> 00:21:08.979 align:start position:0%
yeah so this is the K framework overview
it's<00:21:07.729><c> not</c><00:21:07.879><c> just</c><00:21:08.089><c> for</c><00:21:08.239><c> blockchain</c><00:21:08.599><c> languages</c>

00:21:08.979 --> 00:21:08.989 align:start position:0%
it's not just for blockchain languages
 

00:21:08.989 --> 00:21:11.780 align:start position:0%
it's not just for blockchain languages
and<00:21:09.739><c> that's</c>

00:21:11.780 --> 00:21:11.790 align:start position:0%
and that's
 

00:21:11.790 --> 00:21:15.280 align:start position:0%
and that's
[Applause]

00:21:15.280 --> 00:21:15.290 align:start position:0%
[Applause]
 

00:21:15.290 --> 00:21:26.420 align:start position:0%
[Applause]
thanks<00:21:16.010><c> Everett</c>

00:21:26.420 --> 00:21:26.430 align:start position:0%
 
 

00:21:26.430 --> 00:21:34.009 align:start position:0%
 
[Music]

