WEBVTT
Kind: captions
Language: en

00:00:00.000 --> 00:00:04.350 align:start position:0%
 
foreign

00:00:04.350 --> 00:00:04.360 align:start position:0%
 
 

00:00:04.360 --> 00:00:15.189 align:start position:0%
 
[Music]

00:00:15.189 --> 00:00:15.199 align:start position:0%
 
 

00:00:15.199 --> 00:00:18.950 align:start position:0%
 
and<00:00:16.199><c> I</c><00:00:16.320><c> work</c><00:00:16.560><c> as</c><00:00:17.279><c> a</c><00:00:17.520><c> former</c><00:00:17.820><c> very</c><00:00:18.000><c> very</c><00:00:18.240><c> formal</c>

00:00:18.950 --> 00:00:18.960 align:start position:0%
and I work as a former very very formal
 

00:00:18.960 --> 00:00:20.630 align:start position:0%
and I work as a former very very formal
verification<00:00:19.500><c> engineer</c><00:00:20.100><c> for</c><00:00:20.279><c> one-time</c>

00:00:20.630 --> 00:00:20.640 align:start position:0%
verification engineer for one-time
 

00:00:20.640 --> 00:00:23.029 align:start position:0%
verification engineer for one-time
verification<00:00:21.180><c> and</c><00:00:22.140><c> today</c><00:00:22.320><c> I</c><00:00:22.560><c> want</c><00:00:22.619><c> to</c><00:00:22.740><c> talk</c><00:00:22.920><c> to</c>

00:00:23.029 --> 00:00:23.039 align:start position:0%
verification and today I want to talk to
 

00:00:23.039 --> 00:00:25.130 align:start position:0%
verification and today I want to talk to
you<00:00:23.160><c> about</c><00:00:23.340><c> rounding</c><00:00:24.000><c> errors</c><00:00:24.420><c> and</c><00:00:24.779><c> what</c><00:00:25.019><c> we</c>

00:00:25.130 --> 00:00:25.140 align:start position:0%
you about rounding errors and what we
 

00:00:25.140 --> 00:00:27.009 align:start position:0%
you about rounding errors and what we
can<00:00:25.260><c> do</c><00:00:25.439><c> about</c><00:00:25.680><c> them</c>

00:00:27.009 --> 00:00:27.019 align:start position:0%
can do about them
 

00:00:27.019 --> 00:00:30.790 align:start position:0%
can do about them
so<00:00:28.019><c> very</c><00:00:28.680><c> roughly</c><00:00:29.220><c> speaking</c><00:00:29.760><c> and</c><00:00:30.060><c> I'm</c><00:00:30.300><c> really</c>

00:00:30.790 --> 00:00:30.800 align:start position:0%
so very roughly speaking and I'm really
 

00:00:30.800 --> 00:00:33.889 align:start position:0%
so very roughly speaking and I'm really
oversimplifying<00:00:31.800><c> uh</c><00:00:32.759><c> there</c><00:00:33.120><c> are</c><00:00:33.300><c> two</c><00:00:33.600><c> things</c>

00:00:33.889 --> 00:00:33.899 align:start position:0%
oversimplifying uh there are two things
 

00:00:33.899 --> 00:00:37.190 align:start position:0%
oversimplifying uh there are two things
that<00:00:34.320><c> can</c><00:00:34.500><c> go</c><00:00:34.680><c> wrong</c><00:00:34.920><c> when</c><00:00:35.460><c> we</c><00:00:35.700><c> do</c><00:00:36.200><c> approximate</c>

00:00:37.190 --> 00:00:37.200 align:start position:0%
that can go wrong when we do approximate
 

00:00:37.200 --> 00:00:40.369 align:start position:0%
that can go wrong when we do approximate
arithmetic<00:00:37.980><c> in</c><00:00:38.579><c> contrast</c><00:00:38.940><c> to</c><00:00:39.379><c> exact</c>

00:00:40.369 --> 00:00:40.379 align:start position:0%
arithmetic in contrast to exact
 

00:00:40.379 --> 00:00:43.850 align:start position:0%
arithmetic in contrast to exact
arithmetic<00:00:41.579><c> the</c><00:00:42.180><c> first</c><00:00:42.360><c> one</c><00:00:42.540><c> is</c><00:00:42.780><c> our</c><00:00:43.260><c> the</c>

00:00:43.850 --> 00:00:43.860 align:start position:0%
arithmetic the first one is our the
 

00:00:43.860 --> 00:00:46.369 align:start position:0%
arithmetic the first one is our the
rounding<00:00:44.219><c> error</c><00:00:44.520><c> that</c><00:00:44.640><c> we</c><00:00:44.820><c> do</c><00:00:44.940><c> is</c><00:00:45.540><c> just</c>

00:00:46.369 --> 00:00:46.379 align:start position:0%
rounding error that we do is just
 

00:00:46.379 --> 00:00:49.069 align:start position:0%
rounding error that we do is just
too<00:00:46.980><c> big</c><00:00:47.160><c> too</c><00:00:47.760><c> far</c><00:00:47.940><c> away</c><00:00:48.120><c> from</c><00:00:48.539><c> the</c><00:00:48.780><c> exact</c>

00:00:49.069 --> 00:00:49.079 align:start position:0%
too big too far away from the exact
 

00:00:49.079 --> 00:00:52.490 align:start position:0%
too big too far away from the exact
result<00:00:49.399><c> and</c><00:00:50.399><c> that</c><00:00:50.640><c> is</c><00:00:50.820><c> a</c><00:00:50.940><c> problem</c><00:00:51.059><c> in</c><00:00:51.360><c> itself</c>

00:00:52.490 --> 00:00:52.500 align:start position:0%
result and that is a problem in itself
 

00:00:52.500 --> 00:00:55.189 align:start position:0%
result and that is a problem in itself
but<00:00:52.860><c> that</c><00:00:53.039><c> is</c><00:00:53.219><c> not</c><00:00:53.340><c> the</c><00:00:53.520><c> topic</c><00:00:53.760><c> of</c><00:00:53.940><c> today</c><00:00:54.180><c> so</c><00:00:54.780><c> I</c>

00:00:55.189 --> 00:00:55.199 align:start position:0%
but that is not the topic of today so I
 

00:00:55.199 --> 00:00:57.889 align:start position:0%
but that is not the topic of today so I
want<00:00:55.320><c> to</c><00:00:55.440><c> talk</c><00:00:55.739><c> about</c><00:00:56.120><c> uh</c><00:00:57.120><c> the</c><00:00:57.420><c> second</c><00:00:57.539><c> thing</c>

00:00:57.889 --> 00:00:57.899 align:start position:0%
want to talk about uh the second thing
 

00:00:57.899 --> 00:01:00.529 align:start position:0%
want to talk about uh the second thing
that<00:00:58.260><c> can</c><00:00:58.379><c> go</c><00:00:58.620><c> wrong</c><00:00:58.800><c> and</c><00:00:59.219><c> that</c><00:00:59.399><c> is</c>

00:01:00.529 --> 00:01:00.539 align:start position:0%
that can go wrong and that is
 

00:01:00.539 --> 00:01:03.229 align:start position:0%
that can go wrong and that is
um what<00:01:00.840><c> can</c><00:01:00.960><c> happen</c><00:01:01.140><c> is</c><00:01:01.680><c> that</c><00:01:02.280><c> you</c><00:01:02.520><c> want</c><00:01:03.120><c> to</c>

00:01:03.229 --> 00:01:03.239 align:start position:0%
um what can happen is that you want to
 

00:01:03.239 --> 00:01:06.469 align:start position:0%
um what can happen is that you want to
approximate<00:01:04.019><c> a</c><00:01:04.500><c> value</c><00:01:04.680><c> From</c><00:01:05.400><c> Below</c><00:01:05.820><c> or</c><00:01:06.360><c> you</c>

00:01:06.469 --> 00:01:06.479 align:start position:0%
approximate a value From Below or you
 

00:01:06.479 --> 00:01:08.690 align:start position:0%
approximate a value From Below or you
want<00:01:06.659><c> to</c><00:01:06.780><c> come</c><00:01:06.960><c> from</c><00:01:07.200><c> above</c><00:01:07.560><c> but</c><00:01:08.100><c> you</c><00:01:08.280><c> do</c><00:01:08.400><c> it</c><00:01:08.520><c> in</c>

00:01:08.690 --> 00:01:08.700 align:start position:0%
want to come from above but you do it in
 

00:01:08.700 --> 00:01:10.910 align:start position:0%
want to come from above but you do it in
the<00:01:08.820><c> wrong</c><00:01:08.939><c> direction</c><00:01:09.240><c> like</c>

00:01:10.910 --> 00:01:10.920 align:start position:0%
the wrong direction like
 

00:01:10.920 --> 00:01:14.090 align:start position:0%
the wrong direction like
uh<00:01:11.880><c> in</c><00:01:12.420><c> other</c><00:01:12.479><c> words</c><00:01:12.659><c> you</c><00:01:13.320><c> want</c><00:01:13.439><c> to</c><00:01:13.560><c> round</c><00:01:13.740><c> down</c>

00:01:14.090 --> 00:01:14.100 align:start position:0%
uh in other words you want to round down
 

00:01:14.100 --> 00:01:16.550 align:start position:0%
uh in other words you want to round down
but<00:01:14.580><c> you</c><00:01:14.760><c> round</c><00:01:14.880><c> it</c><00:01:15.119><c> up</c><00:01:15.299><c> instead</c><00:01:15.720><c> and</c><00:01:16.260><c> that</c><00:01:16.439><c> can</c>

00:01:16.550 --> 00:01:16.560 align:start position:0%
but you round it up instead and that can
 

00:01:16.560 --> 00:01:18.950 align:start position:0%
but you round it up instead and that can
lead<00:01:16.799><c> to</c><00:01:17.159><c> severe</c><00:01:17.760><c> security</c><00:01:18.000><c> vulnerabilities</c>

00:01:18.950 --> 00:01:18.960 align:start position:0%
lead to severe security vulnerabilities
 

00:01:18.960 --> 00:01:22.310 align:start position:0%
lead to severe security vulnerabilities
I<00:01:19.320><c> will</c><00:01:19.439><c> show</c><00:01:19.680><c> you</c><00:01:20.000><c> some</c><00:01:21.000><c> examples</c><00:01:21.600><c> that</c><00:01:22.140><c> you</c>

00:01:22.310 --> 00:01:22.320 align:start position:0%
I will show you some examples that you
 

00:01:22.320 --> 00:01:25.249 align:start position:0%
I will show you some examples that you
will<00:01:22.439><c> recognize</c><00:01:22.860><c> maybe</c><00:01:23.220><c> and</c><00:01:23.939><c> then</c><00:01:24.119><c> but</c><00:01:25.020><c> I'm</c>

00:01:25.249 --> 00:01:25.259 align:start position:0%
will recognize maybe and then but I'm
 

00:01:25.259 --> 00:01:26.749 align:start position:0%
will recognize maybe and then but I'm
not<00:01:25.439><c> going</c><00:01:25.560><c> to</c><00:01:25.740><c> work</c><00:01:25.979><c> on</c><00:01:26.159><c> these</c><00:01:26.400><c> real</c><00:01:26.520><c> world</c>

00:01:26.749 --> 00:01:26.759 align:start position:0%
not going to work on these real world
 

00:01:26.759 --> 00:01:28.730 align:start position:0%
not going to work on these real world
examples<00:01:27.240><c> I'm</c><00:01:27.600><c> working</c><00:01:27.900><c> on</c><00:01:28.140><c> a</c><00:01:28.380><c> like</c>

00:01:28.730 --> 00:01:28.740 align:start position:0%
examples I'm working on a like
 

00:01:28.740 --> 00:01:30.770 align:start position:0%
examples I'm working on a like
simplified<00:01:29.220><c> example</c>

00:01:30.770 --> 00:01:30.780 align:start position:0%
simplified example
 

00:01:30.780 --> 00:01:33.950 align:start position:0%
simplified example
um<00:01:30.900><c> and</c><00:01:31.860><c> make</c><00:01:32.159><c> sure</c><00:01:32.340><c> to</c><00:01:32.640><c> understand</c><00:01:32.820><c> like</c><00:01:33.479><c> the</c>

00:01:33.950 --> 00:01:33.960 align:start position:0%
um and make sure to understand like the
 

00:01:33.960 --> 00:01:36.109 align:start position:0%
um and make sure to understand like the
two-way<00:01:34.320><c> trading</c><00:01:34.799><c> problem</c>

00:01:36.109 --> 00:01:36.119 align:start position:0%
two-way trading problem
 

00:01:36.119 --> 00:01:36.830 align:start position:0%
two-way trading problem
um

00:01:36.830 --> 00:01:36.840 align:start position:0%
um
 

00:01:36.840 --> 00:01:39.230 align:start position:0%
um
because<00:01:37.320><c> otherwise</c><00:01:37.920><c> you</c><00:01:38.220><c> won't</c><00:01:38.460><c> be</c><00:01:38.880><c> able</c><00:01:39.119><c> to</c>

00:01:39.230 --> 00:01:39.240 align:start position:0%
because otherwise you won't be able to
 

00:01:39.240 --> 00:01:41.630 align:start position:0%
because otherwise you won't be able to
follow<00:01:39.540><c> my</c><00:01:39.840><c> talk</c><00:01:40.020><c> everything</c><00:01:40.380><c> like</c><00:01:40.920><c> get</c><00:01:41.460><c> to</c>

00:01:41.630 --> 00:01:41.640 align:start position:0%
follow my talk everything like get to
 

00:01:41.640 --> 00:01:43.429 align:start position:0%
follow my talk everything like get to
this<00:01:41.820><c> point</c><00:01:42.000><c> stay</c><00:01:42.299><c> with</c><00:01:42.479><c> me</c><00:01:42.659><c> until</c><00:01:42.900><c> this</c><00:01:43.259><c> point</c>

00:01:43.429 --> 00:01:43.439 align:start position:0%
this point stay with me until this point
 

00:01:43.439 --> 00:01:47.510 align:start position:0%
this point stay with me until this point
and<00:01:43.680><c> then</c><00:01:43.860><c> you</c><00:01:44.040><c> can</c><00:01:44.220><c> make</c><00:01:44.400><c> sense</c><00:01:44.579><c> of</c><00:01:44.759><c> this</c><00:01:44.880><c> talk</c>

00:01:47.510 --> 00:01:47.520 align:start position:0%
 
 

00:01:47.520 --> 00:01:49.190 align:start position:0%
 
um<00:01:47.700><c> so</c>

00:01:49.190 --> 00:01:49.200 align:start position:0%
um so
 

00:01:49.200 --> 00:01:52.370 align:start position:0%
um so
uh<00:01:50.040><c> grounding</c><00:01:50.640><c> errors</c>

00:01:52.370 --> 00:01:52.380 align:start position:0%
uh grounding errors
 

00:01:52.380 --> 00:01:55.130 align:start position:0%
uh grounding errors
um<00:01:52.439><c> they</c><00:01:52.860><c> are</c><00:01:53.040><c> well</c><00:01:53.520><c> we</c><00:01:54.479><c> need</c><00:01:54.600><c> to</c><00:01:54.720><c> accept</c><00:01:54.840><c> them</c>

00:01:55.130 --> 00:01:55.140 align:start position:0%
um they are well we need to accept them
 

00:01:55.140 --> 00:01:57.590 align:start position:0%
um they are well we need to accept them
we<00:01:55.380><c> cannot</c><00:01:55.680><c> do</c><00:01:55.920><c> exact</c><00:01:56.820><c> arithmetic</c><00:01:57.420><c> on</c><00:01:57.540><c> the</c>

00:01:57.590 --> 00:01:57.600 align:start position:0%
we cannot do exact arithmetic on the
 

00:01:57.600 --> 00:02:00.109 align:start position:0%
we cannot do exact arithmetic on the
blockchain<00:01:57.899><c> it's</c><00:01:58.140><c> not</c><00:01:58.500><c> feasible</c><00:01:58.860><c> so</c><00:01:59.640><c> and</c><00:01:59.880><c> we</c>

00:02:00.109 --> 00:02:00.119 align:start position:0%
blockchain it's not feasible so and we
 

00:02:00.119 --> 00:02:01.429 align:start position:0%
blockchain it's not feasible so and we
found

00:02:01.429 --> 00:02:01.439 align:start position:0%
found
 

00:02:01.439 --> 00:02:04.389 align:start position:0%
found
rounding<00:02:02.159><c> errors</c><00:02:02.460><c> in</c><00:02:02.880><c> uni</c><00:02:03.240><c> Swap</c>

00:02:04.389 --> 00:02:04.399 align:start position:0%
rounding errors in uni Swap
 

00:02:04.399 --> 00:02:08.570 align:start position:0%
rounding errors in uni Swap
and<00:02:05.399><c> luckily</c><00:02:05.880><c> this</c><00:02:06.180><c> running</c><00:02:06.360><c> error</c><00:02:06.840><c> was</c><00:02:07.020><c> fixed</c>

00:02:08.570 --> 00:02:08.580 align:start position:0%
and luckily this running error was fixed
 

00:02:08.580 --> 00:02:11.390 align:start position:0%
and luckily this running error was fixed
um before<00:02:09.239><c> uni</c><00:02:09.720><c> swap</c><00:02:09.899><c> V1</c><00:02:10.140><c> was</c><00:02:10.380><c> deployed</c><00:02:10.860><c> but</c><00:02:11.280><c> I</c>

00:02:11.390 --> 00:02:11.400 align:start position:0%
um before uni swap V1 was deployed but I
 

00:02:11.400 --> 00:02:13.210 align:start position:0%
um before uni swap V1 was deployed but I
leave<00:02:11.520><c> it</c><00:02:11.700><c> to</c><00:02:11.879><c> your</c><00:02:12.060><c> imagination</c>

00:02:13.210 --> 00:02:13.220 align:start position:0%
leave it to your imagination
 

00:02:13.220 --> 00:02:16.430 align:start position:0%
leave it to your imagination
how<00:02:14.220><c> the</c><00:02:15.120><c> blockchain</c><00:02:15.480><c> landscape</c><00:02:15.959><c> would</c><00:02:16.200><c> have</c>

00:02:16.430 --> 00:02:16.440 align:start position:0%
how the blockchain landscape would have
 

00:02:16.440 --> 00:02:17.930 align:start position:0%
how the blockchain landscape would have
looked<00:02:16.739><c> liked</c>

00:02:17.930 --> 00:02:17.940 align:start position:0%
looked liked
 

00:02:17.940 --> 00:02:20.630 align:start position:0%
looked liked
um if<00:02:18.480><c> this</c><00:02:19.020><c> bug</c><00:02:19.319><c> was</c><00:02:19.680><c> not</c><00:02:19.860><c> caught</c><00:02:20.160><c> during</c><00:02:20.400><c> an</c>

00:02:20.630 --> 00:02:20.640 align:start position:0%
um if this bug was not caught during an
 

00:02:20.640 --> 00:02:23.690 align:start position:0%
um if this bug was not caught during an
audit<00:02:21.000><c> and</c><00:02:21.720><c> then</c><00:02:21.840><c> we</c><00:02:22.080><c> had</c><00:02:22.319><c> like</c><00:02:22.980><c> two</c><00:02:23.520><c> more</c>

00:02:23.690 --> 00:02:23.700 align:start position:0%
audit and then we had like two more
 

00:02:23.700 --> 00:02:25.550 align:start position:0%
audit and then we had like two more
examples<00:02:24.000><c> Solana</c><00:02:24.599><c> token</c><00:02:25.080><c> Landing</c><00:02:25.319><c> contract</c>

00:02:25.550 --> 00:02:25.560 align:start position:0%
examples Solana token Landing contract
 

00:02:25.560 --> 00:02:28.369 align:start position:0%
examples Solana token Landing contract
and<00:02:25.739><c> Solana</c><00:02:26.099><c> token</c><00:02:26.520><c> stable</c><00:02:26.760><c> swap</c>

00:02:28.369 --> 00:02:28.379 align:start position:0%
and Solana token stable swap
 

00:02:28.379 --> 00:02:29.030 align:start position:0%
and Solana token stable swap
um

00:02:29.030 --> 00:02:29.040 align:start position:0%
um
 

00:02:29.040 --> 00:02:32.630 align:start position:0%
um
and<00:02:29.819><c> there</c><00:02:30.180><c> so</c><00:02:30.780><c> the</c><00:02:31.680><c> um</c><00:02:31.739><c> these</c><00:02:32.160><c> bugs</c><00:02:32.520><c> were</c>

00:02:32.630 --> 00:02:32.640 align:start position:0%
and there so the um these bugs were
 

00:02:32.640 --> 00:02:35.089 align:start position:0%
and there so the um these bugs were
actually<00:02:32.819><c> caught</c><00:02:33.239><c> doing</c><00:02:33.780><c> like</c><00:02:34.379><c> why</c><00:02:34.800><c> these</c>

00:02:35.089 --> 00:02:35.099 align:start position:0%
actually caught doing like why these
 

00:02:35.099 --> 00:02:36.949 align:start position:0%
actually caught doing like why these
contracts<00:02:35.459><c> haven't</c><00:02:35.640><c> deployed</c><00:02:36.180><c> and</c><00:02:36.480><c> at</c><00:02:36.840><c> the</c>

00:02:36.949 --> 00:02:36.959 align:start position:0%
contracts haven't deployed and at the
 

00:02:36.959 --> 00:02:38.809 align:start position:0%
contracts haven't deployed and at the
peak<00:02:37.200><c> time</c><00:02:37.319><c> there</c><00:02:37.739><c> were</c><00:02:37.860><c> like</c><00:02:38.099><c> three</c><00:02:38.400><c> billion</c>

00:02:38.809 --> 00:02:38.819 align:start position:0%
peak time there were like three billion
 

00:02:38.819 --> 00:02:40.729 align:start position:0%
peak time there were like three billion
assets<00:02:39.180><c> at</c><00:02:39.420><c> risk</c>

00:02:40.729 --> 00:02:40.739 align:start position:0%
assets at risk
 

00:02:40.739 --> 00:02:41.449 align:start position:0%
assets at risk
um

00:02:41.449 --> 00:02:41.459 align:start position:0%
um
 

00:02:41.459 --> 00:02:45.229 align:start position:0%
um
so<00:02:42.060><c> luckily</c><00:02:42.720><c> again</c><00:02:43.500><c> uh</c>

00:02:45.229 --> 00:02:45.239 align:start position:0%
so luckily again uh
 

00:02:45.239 --> 00:02:47.990 align:start position:0%
so luckily again uh
these<00:02:46.019><c> were</c><00:02:46.200><c> not</c><00:02:46.379><c> exploited</c><00:02:46.920><c> by</c><00:02:47.160><c> the</c><00:02:47.400><c> but</c><00:02:47.700><c> they</c>

00:02:47.990 --> 00:02:48.000 align:start position:0%
these were not exploited by the but they
 

00:02:48.000 --> 00:02:50.030 align:start position:0%
these were not exploited by the but they
were<00:02:48.120><c> found</c><00:02:48.300><c> by</c><00:02:48.540><c> white</c><00:02:48.720><c> hackers</c><00:02:49.200><c> uh</c><00:02:49.800><c> before</c>

00:02:50.030 --> 00:02:50.040 align:start position:0%
were found by white hackers uh before
 

00:02:50.040 --> 00:02:51.949 align:start position:0%
were found by white hackers uh before
any<00:02:50.400><c> serious</c><00:02:50.879><c> damage</c><00:02:51.180><c> could</c><00:02:51.420><c> it</c><00:02:51.599><c> could</c><00:02:51.840><c> be</c>

00:02:51.949 --> 00:02:51.959 align:start position:0%
any serious damage could it could be
 

00:02:51.959 --> 00:02:53.570 align:start position:0%
any serious damage could it could be
done

00:02:53.570 --> 00:02:53.580 align:start position:0%
done
 

00:02:53.580 --> 00:02:54.850 align:start position:0%
done
um<00:02:53.700><c> so</c>

00:02:54.850 --> 00:02:54.860 align:start position:0%
um so
 

00:02:54.860 --> 00:02:58.490 align:start position:0%
um so
uh<00:02:55.860><c> I</c><00:02:56.220><c> cannot</c><00:02:56.580><c> get</c><00:02:56.819><c> into</c><00:02:57.000><c> detail</c><00:02:57.480><c> into</c><00:02:57.840><c> any</c><00:02:58.319><c> of</c>

00:02:58.490 --> 00:02:58.500 align:start position:0%
uh I cannot get into detail into any of
 

00:02:58.500 --> 00:03:00.770 align:start position:0%
uh I cannot get into detail into any of
those<00:02:58.739><c> but</c><00:02:59.220><c> like</c><00:02:59.700><c> I</c><00:02:59.940><c> promise</c><00:03:00.180><c> you</c><00:03:00.360><c> if</c><00:03:00.660><c> you</c>

00:03:00.770 --> 00:03:00.780 align:start position:0%
those but like I promise you if you
 

00:03:00.780 --> 00:03:03.589 align:start position:0%
those but like I promise you if you
follow<00:03:01.019><c> my</c><00:03:01.260><c> talk</c><00:03:01.500><c> then</c><00:03:02.099><c> you</c><00:03:02.400><c> will</c><00:03:02.700><c> be</c><00:03:02.819><c> able</c><00:03:03.120><c> to</c>

00:03:03.589 --> 00:03:03.599 align:start position:0%
follow my talk then you will be able to
 

00:03:03.599 --> 00:03:06.290 align:start position:0%
follow my talk then you will be able to
visit<00:03:03.840><c> the</c><00:03:04.080><c> links</c><00:03:04.379><c> that</c><00:03:04.560><c> I</c><00:03:04.680><c> put</c><00:03:04.800><c> on</c><00:03:04.980><c> the</c><00:03:05.099><c> slide</c>

00:03:06.290 --> 00:03:06.300 align:start position:0%
visit the links that I put on the slide
 

00:03:06.300 --> 00:03:07.850 align:start position:0%
visit the links that I put on the slide
um<00:03:06.420><c> and</c><00:03:06.660><c> you</c><00:03:06.780><c> will</c><00:03:06.900><c> be</c><00:03:07.019><c> able</c><00:03:07.140><c> to</c><00:03:07.260><c> make</c><00:03:07.379><c> sense</c><00:03:07.680><c> of</c>

00:03:07.850 --> 00:03:07.860 align:start position:0%
um and you will be able to make sense of
 

00:03:07.860 --> 00:03:10.910 align:start position:0%
um and you will be able to make sense of
these<00:03:08.099><c> exploits</c><00:03:08.640><c> and</c><00:03:08.700><c> and</c><00:03:09.000><c> like</c><00:03:09.599><c> how</c><00:03:10.319><c> or</c><00:03:10.560><c> these</c>

00:03:10.910 --> 00:03:10.920 align:start position:0%
these exploits and and like how or these
 

00:03:10.920 --> 00:03:12.649 align:start position:0%
these exploits and and like how or these
vulnerabilities<00:03:11.580><c> and</c><00:03:11.760><c> how</c><00:03:12.000><c> they</c><00:03:12.300><c> could</c><00:03:12.480><c> have</c>

00:03:12.649 --> 00:03:12.659 align:start position:0%
vulnerabilities and how they could have
 

00:03:12.659 --> 00:03:14.570 align:start position:0%
vulnerabilities and how they could have
been<00:03:12.900><c> exploited</c><00:03:13.500><c> if</c><00:03:14.040><c> they</c><00:03:14.220><c> haven't</c><00:03:14.340><c> been</c>

00:03:14.570 --> 00:03:14.580 align:start position:0%
been exploited if they haven't been
 

00:03:14.580 --> 00:03:16.210 align:start position:0%
been exploited if they haven't been
fixed

00:03:16.210 --> 00:03:16.220 align:start position:0%
fixed
 

00:03:16.220 --> 00:03:17.809 align:start position:0%
fixed
so

00:03:17.809 --> 00:03:17.819 align:start position:0%
so
 

00:03:17.819 --> 00:03:20.089 align:start position:0%
so
um I<00:03:18.540><c> want</c><00:03:18.659><c> to</c><00:03:18.780><c> show</c><00:03:19.080><c> you</c><00:03:19.319><c> the</c><00:03:19.860><c> two-way</c>

00:03:20.089 --> 00:03:20.099 align:start position:0%
um I want to show you the two-way
 

00:03:20.099 --> 00:03:22.790 align:start position:0%
um I want to show you the two-way
trading<00:03:20.580><c> problem</c><00:03:20.760><c> and</c><00:03:21.300><c> I</c><00:03:21.900><c> promise</c><00:03:22.319><c> you</c><00:03:22.440><c> this</c>

00:03:22.790 --> 00:03:22.800 align:start position:0%
trading problem and I promise you this
 

00:03:22.800 --> 00:03:25.009 align:start position:0%
trading problem and I promise you this
is<00:03:22.920><c> like</c><00:03:23.159><c> the</c><00:03:23.519><c> most</c><00:03:23.700><c> mathematical</c><00:03:24.360><c> slide</c><00:03:24.840><c> on</c>

00:03:25.009 --> 00:03:25.019 align:start position:0%
is like the most mathematical slide on
 

00:03:25.019 --> 00:03:27.830 align:start position:0%
is like the most mathematical slide on
my<00:03:25.260><c> uh</c><00:03:26.099><c> on</c><00:03:26.400><c> my</c><00:03:26.700><c> entire</c><00:03:26.940><c> talk</c><00:03:27.180><c> which</c><00:03:27.480><c> is</c><00:03:27.599><c> strange</c>

00:03:27.830 --> 00:03:27.840 align:start position:0%
my uh on my entire talk which is strange
 

00:03:27.840 --> 00:03:29.210 align:start position:0%
my uh on my entire talk which is strange
well<00:03:28.080><c> because</c><00:03:28.319><c> I'm</c><00:03:28.560><c> talking</c><00:03:28.739><c> about</c><00:03:28.920><c> running</c>

00:03:29.210 --> 00:03:29.220 align:start position:0%
well because I'm talking about running
 

00:03:29.220 --> 00:03:31.610 align:start position:0%
well because I'm talking about running
errors<00:03:29.700><c> right</c><00:03:29.940><c> okay</c><00:03:30.720><c> but</c>

00:03:31.610 --> 00:03:31.620 align:start position:0%
errors right okay but
 

00:03:31.620 --> 00:03:33.649 align:start position:0%
errors right okay but
um<00:03:31.739><c> I</c><00:03:32.159><c> want</c><00:03:32.280><c> to</c><00:03:32.400><c> introduce</c><00:03:32.940><c> to</c><00:03:33.180><c> you</c><00:03:33.300><c> to</c><00:03:33.480><c> my</c>

00:03:33.649 --> 00:03:33.659 align:start position:0%
um I want to introduce to you to my
 

00:03:33.659 --> 00:03:35.750 align:start position:0%
um I want to introduce to you to my
image<00:03:33.959><c> now</c><00:03:34.140><c> with</c><00:03:34.379><c> friend</c><00:03:34.680><c> Alice</c><00:03:35.159><c> she's</c><00:03:35.459><c> right</c>

00:03:35.750 --> 00:03:35.760 align:start position:0%
image now with friend Alice she's right
 

00:03:35.760 --> 00:03:39.050 align:start position:0%
image now with friend Alice she's right
here<00:03:36.000><c> hi</c><00:03:36.420><c> Alice</c><00:03:36.780><c> and</c><00:03:37.680><c> I</c><00:03:37.920><c> will</c><00:03:38.099><c> demonstrate</c><00:03:38.580><c> to</c>

00:03:39.050 --> 00:03:39.060 align:start position:0%
here hi Alice and I will demonstrate to
 

00:03:39.060 --> 00:03:41.330 align:start position:0%
here hi Alice and I will demonstrate to
you<00:03:39.180><c> the</c><00:03:39.540><c> two-way</c><00:03:39.959><c> rounding</c><00:03:40.379><c> problem</c><00:03:40.620><c> as</c><00:03:41.099><c> the</c>

00:03:41.330 --> 00:03:41.340 align:start position:0%
you the two-way rounding problem as the
 

00:03:41.340 --> 00:03:43.670 align:start position:0%
you the two-way rounding problem as the
two-way<00:03:41.580><c> trading</c><00:03:42.000><c> problem</c><00:03:42.180><c> so</c><00:03:42.959><c> first</c><00:03:43.260><c> I'm</c>

00:03:43.670 --> 00:03:43.680 align:start position:0%
two-way trading problem so first I'm
 

00:03:43.680 --> 00:03:45.710 align:start position:0%
two-way trading problem so first I'm
going<00:03:43.860><c> to</c><00:03:43.980><c> offer</c><00:03:44.340><c> Alice</c><00:03:44.700><c> a</c><00:03:44.819><c> trade</c><00:03:45.060><c> and</c><00:03:45.480><c> we</c><00:03:45.599><c> do</c>

00:03:45.710 --> 00:03:45.720 align:start position:0%
going to offer Alice a trade and we do
 

00:03:45.720 --> 00:03:47.869 align:start position:0%
going to offer Alice a trade and we do
it<00:03:45.840><c> with</c><00:03:46.019><c> exact</c><00:03:46.379><c> arithmetic</c><00:03:47.159><c> and</c><00:03:47.580><c> then</c><00:03:47.700><c> we're</c>

00:03:47.869 --> 00:03:47.879 align:start position:0%
it with exact arithmetic and then we're
 

00:03:47.879 --> 00:03:50.449 align:start position:0%
it with exact arithmetic and then we're
doing<00:03:48.180><c> we</c><00:03:48.659><c> are</c><00:03:48.840><c> going</c><00:03:49.019><c> to</c><00:03:49.140><c> replay</c><00:03:49.440><c> the</c><00:03:50.099><c> wall</c>

00:03:50.449 --> 00:03:50.459 align:start position:0%
doing we are going to replay the wall
 

00:03:50.459 --> 00:03:52.970 align:start position:0%
doing we are going to replay the wall
the<00:03:50.819><c> role</c><00:03:51.120><c> play</c><00:03:51.239><c> and</c><00:03:52.080><c> then</c><00:03:52.319><c> we</c><00:03:52.560><c> are</c><00:03:52.680><c> doing</c><00:03:52.799><c> it</c>

00:03:52.970 --> 00:03:52.980 align:start position:0%
the role play and then we are doing it
 

00:03:52.980 --> 00:03:56.390 align:start position:0%
the role play and then we are doing it
with<00:03:53.159><c> rounding</c><00:03:53.640><c> so</c><00:03:54.120><c> hi</c><00:03:54.720><c> Alice</c><00:03:55.140><c> also</c><00:03:55.620><c> basic</c>

00:03:56.390 --> 00:03:56.400 align:start position:0%
with rounding so hi Alice also basic
 

00:03:56.400 --> 00:03:58.309 align:start position:0%
with rounding so hi Alice also basic
scenarios<00:03:56.819><c> we</c><00:03:57.120><c> have</c><00:03:57.239><c> two</c><00:03:57.420><c> currencies</c><00:03:57.959><c> we</c><00:03:58.200><c> have</c>

00:03:58.309 --> 00:03:58.319 align:start position:0%
scenarios we have two currencies we have
 

00:03:58.319 --> 00:04:00.890 align:start position:0%
scenarios we have two currencies we have
dollar<00:03:58.560><c> and</c><00:03:58.980><c> Gill</c><00:03:59.340><c> Gill</c><00:04:00.000><c> is</c><00:04:00.180><c> just</c><00:04:00.360><c> a</c><00:04:00.480><c> fantasy</c>

00:04:00.890 --> 00:04:00.900 align:start position:0%
dollar and Gill Gill is just a fantasy
 

00:04:00.900 --> 00:04:02.330 align:start position:0%
dollar and Gill Gill is just a fantasy
currency

00:04:02.330 --> 00:04:02.340 align:start position:0%
currency
 

00:04:02.340 --> 00:04:04.270 align:start position:0%
currency
um<00:04:02.400><c> and</c><00:04:02.760><c> we</c><00:04:02.879><c> have</c><00:04:03.000><c> exchange</c><00:04:03.480><c> rate</c><00:04:03.659><c> currently</c>

00:04:04.270 --> 00:04:04.280 align:start position:0%
um and we have exchange rate currently
 

00:04:04.280 --> 00:04:08.330 align:start position:0%
um and we have exchange rate currently
uh<00:04:05.280><c> that</c><00:04:05.580><c> says</c><00:04:05.940><c> I</c><00:04:06.299><c> can</c><00:04:06.420><c> get</c><00:04:06.780><c> like</c>

00:04:08.330 --> 00:04:08.340 align:start position:0%
uh that says I can get like
 

00:04:08.340 --> 00:04:11.089 align:start position:0%
uh that says I can get like
um<00:04:08.400><c> two</c><00:04:09.239><c> Gill</c><00:04:09.599><c> for</c><00:04:09.959><c> one</c><00:04:10.140><c> dollar</c><00:04:10.319><c> so</c><00:04:10.680><c> exchange</c>

00:04:11.089 --> 00:04:11.099 align:start position:0%
um two Gill for one dollar so exchange
 

00:04:11.099 --> 00:04:14.449 align:start position:0%
um two Gill for one dollar so exchange
rate<00:04:11.280><c> is</c><00:04:11.519><c> two</c><00:04:11.700><c> so</c><00:04:12.480><c> I'm</c><00:04:12.959><c> Raul</c><00:04:13.379><c> I</c><00:04:13.799><c> have</c><00:04:13.920><c> one</c><00:04:14.220><c> girl</c>

00:04:14.449 --> 00:04:14.459 align:start position:0%
rate is two so I'm Raul I have one girl
 

00:04:14.459 --> 00:04:17.030 align:start position:0%
rate is two so I'm Raul I have one girl
in<00:04:14.760><c> my</c><00:04:14.879><c> pocket</c><00:04:15.180><c> and</c><00:04:15.659><c> this</c><00:04:15.780><c> is</c><00:04:15.840><c> Alice</c><00:04:16.260><c> and</c><00:04:16.859><c> hey</c>

00:04:17.030 --> 00:04:17.040 align:start position:0%
in my pocket and this is Alice and hey
 

00:04:17.040 --> 00:04:18.890 align:start position:0%
in my pocket and this is Alice and hey
Alice<00:04:17.400><c> do</c><00:04:17.639><c> you</c><00:04:17.699><c> want</c><00:04:17.760><c> to</c><00:04:17.880><c> trade</c><00:04:18.060><c> with</c><00:04:18.299><c> me</c><00:04:18.419><c> I</c><00:04:18.780><c> can</c>

00:04:18.890 --> 00:04:18.900 align:start position:0%
Alice do you want to trade with me I can
 

00:04:18.900 --> 00:04:21.469 align:start position:0%
Alice do you want to trade with me I can
offer<00:04:19.260><c> you</c><00:04:19.440><c> one</c><00:04:19.919><c> gear</c><00:04:20.280><c> how</c><00:04:20.699><c> many</c><00:04:20.820><c> dollars</c><00:04:21.180><c> do</c><00:04:21.299><c> I</c>

00:04:21.469 --> 00:04:21.479 align:start position:0%
offer you one gear how many dollars do I
 

00:04:21.479 --> 00:04:23.270 align:start position:0%
offer you one gear how many dollars do I
get<00:04:21.540><c> for</c><00:04:21.720><c> that</c><00:04:21.959><c> and</c><00:04:22.560><c> let</c><00:04:22.800><c> us</c><00:04:22.919><c> do</c><00:04:23.100><c> the</c>

00:04:23.270 --> 00:04:23.280 align:start position:0%
get for that and let us do the
 

00:04:23.280 --> 00:04:24.310 align:start position:0%
get for that and let us do the
calculation

00:04:24.310 --> 00:04:24.320 align:start position:0%
calculation
 

00:04:24.320 --> 00:04:27.350 align:start position:0%
calculation
he<00:04:25.320><c> gives</c><00:04:25.440><c> me</c><00:04:25.680><c> one</c><00:04:26.100><c> dollar</c><00:04:26.280><c> he</c><00:04:26.880><c> gives</c><00:04:27.000><c> me</c><00:04:27.180><c> one</c>

00:04:27.350 --> 00:04:27.360 align:start position:0%
he gives me one dollar he gives me one
 

00:04:27.360 --> 00:04:29.990 align:start position:0%
he gives me one dollar he gives me one
kill<00:04:27.600><c> so</c><00:04:28.080><c> I</c><00:04:28.259><c> need</c><00:04:28.380><c> to</c><00:04:28.560><c> divide</c><00:04:28.919><c> by</c><00:04:29.280><c> the</c><00:04:29.580><c> exchange</c>

00:04:29.990 --> 00:04:30.000 align:start position:0%
kill so I need to divide by the exchange
 

00:04:30.000 --> 00:04:33.290 align:start position:0%
kill so I need to divide by the exchange
rate<00:04:30.240><c> uh</c><00:04:31.080><c> so</c><00:04:31.380><c> you</c><00:04:31.800><c> get</c><00:04:32.100><c> one</c><00:04:32.460><c> you</c><00:04:32.759><c> get</c><00:04:33.000><c> half</c><00:04:33.120><c> a</c>

00:04:33.290 --> 00:04:33.300 align:start position:0%
rate uh so you get one you get half a
 

00:04:33.300 --> 00:04:35.689 align:start position:0%
rate uh so you get one you get half a
dollar<00:04:33.419><c> back</c><00:04:33.660><c> from</c><00:04:33.900><c> me</c><00:04:34.080><c> so</c><00:04:34.560><c> now</c><00:04:34.800><c> I</c><00:04:35.160><c> have</c><00:04:35.220><c> half</c><00:04:35.460><c> a</c>

00:04:35.689 --> 00:04:35.699 align:start position:0%
dollar back from me so now I have half a
 

00:04:35.699 --> 00:04:37.969 align:start position:0%
dollar back from me so now I have half a
dollar<00:04:35.820><c> so</c><00:04:36.660><c> I</c><00:04:36.840><c> get</c><00:04:37.020><c> back</c><00:04:37.199><c> to</c><00:04:37.320><c> Alice</c><00:04:37.680><c> and</c><00:04:37.860><c> say</c>

00:04:37.969 --> 00:04:37.979 align:start position:0%
dollar so I get back to Alice and say
 

00:04:37.979 --> 00:04:39.890 align:start position:0%
dollar so I get back to Alice and say
hey<00:04:38.160><c> Alice</c><00:04:38.639><c> I</c><00:04:39.000><c> don't</c><00:04:39.120><c> want</c><00:04:39.300><c> my</c><00:04:39.479><c> half</c><00:04:39.600><c> dollar</c>

00:04:39.890 --> 00:04:39.900 align:start position:0%
hey Alice I don't want my half dollar
 

00:04:39.900 --> 00:04:41.030 align:start position:0%
hey Alice I don't want my half dollar
anymore

00:04:41.030 --> 00:04:41.040 align:start position:0%
anymore
 

00:04:41.040 --> 00:04:43.610 align:start position:0%
anymore
um<00:04:41.160><c> can</c><00:04:41.280><c> I</c><00:04:41.460><c> get</c><00:04:41.580><c> my</c><00:04:41.820><c> Gill</c><00:04:42.180><c> back</c><00:04:42.419><c> and</c><00:04:43.020><c> I</c><00:04:43.380><c> offer</c>

00:04:43.610 --> 00:04:43.620 align:start position:0%
um can I get my Gill back and I offer
 

00:04:43.620 --> 00:04:46.430 align:start position:0%
um can I get my Gill back and I offer
Alice<00:04:43.979><c> the</c><00:04:44.460><c> uh</c><00:04:44.940><c> half</c><00:04:45.300><c> the</c><00:04:45.479><c> dollar</c><00:04:45.660><c> and</c><00:04:46.259><c> she</c>

00:04:46.430 --> 00:04:46.440 align:start position:0%
Alice the uh half the dollar and she
 

00:04:46.440 --> 00:04:48.409 align:start position:0%
Alice the uh half the dollar and she
does<00:04:46.680><c> the</c><00:04:46.860><c> computation</c><00:04:47.280><c> and</c><00:04:47.580><c> now</c><00:04:47.940><c> this</c><00:04:48.240><c> time</c>

00:04:48.409 --> 00:04:48.419 align:start position:0%
does the computation and now this time
 

00:04:48.419 --> 00:04:50.090 align:start position:0%
does the computation and now this time
she<00:04:48.720><c> needs</c><00:04:48.960><c> to</c>

00:04:50.090 --> 00:04:50.100 align:start position:0%
she needs to
 

00:04:50.100 --> 00:04:52.249 align:start position:0%
she needs to
um<00:04:50.160><c> to</c><00:04:50.639><c> to</c><00:04:50.759><c> multiply</c><00:04:51.240><c> by</c><00:04:51.479><c> the</c><00:04:51.660><c> exchange</c><00:04:52.020><c> rate</c>

00:04:52.249 --> 00:04:52.259 align:start position:0%
um to to multiply by the exchange rate
 

00:04:52.259 --> 00:04:54.830 align:start position:0%
um to to multiply by the exchange rate
and<00:04:52.800><c> so</c><00:04:53.100><c> she</c><00:04:53.400><c> ends</c><00:04:53.699><c> up</c><00:04:53.759><c> with</c><00:04:54.000><c> one</c><00:04:54.180><c> girl</c>

00:04:54.830 --> 00:04:54.840 align:start position:0%
and so she ends up with one girl
 

00:04:54.840 --> 00:04:56.990 align:start position:0%
and so she ends up with one girl
everything<00:04:55.440><c> went</c><00:04:55.800><c> fine</c><00:04:56.040><c> I</c><00:04:56.340><c> started</c><00:04:56.580><c> with</c><00:04:56.759><c> one</c>

00:04:56.990 --> 00:04:57.000 align:start position:0%
everything went fine I started with one
 

00:04:57.000 --> 00:04:58.969 align:start position:0%
everything went fine I started with one
Gill<00:04:57.360><c> and</c><00:04:57.600><c> I</c><00:04:57.840><c> ended</c><00:04:58.020><c> up</c><00:04:58.139><c> with</c><00:04:58.320><c> one</c><00:04:58.500><c> kill</c><00:04:58.680><c> right</c>

00:04:58.969 --> 00:04:58.979 align:start position:0%
Gill and I ended up with one kill right
 

00:04:58.979 --> 00:05:01.670 align:start position:0%
Gill and I ended up with one kill right
so<00:04:59.820><c> now</c><00:05:00.060><c> let's</c><00:05:00.300><c> do</c><00:05:00.540><c> the</c><00:05:00.840><c> same</c><00:05:00.960><c> thing</c><00:05:01.199><c> with</c>

00:05:01.670 --> 00:05:01.680 align:start position:0%
so now let's do the same thing with
 

00:05:01.680 --> 00:05:04.790 align:start position:0%
so now let's do the same thing with
rounding<00:05:02.160><c> so</c><00:05:02.880><c> and</c><00:05:03.240><c> for</c><00:05:03.540><c> Simplicity</c><00:05:04.020><c> I'm</c><00:05:04.620><c> just</c>

00:05:04.790 --> 00:05:04.800 align:start position:0%
rounding so and for Simplicity I'm just
 

00:05:04.800 --> 00:05:07.370 align:start position:0%
rounding so and for Simplicity I'm just
rounding<00:05:05.220><c> to</c><00:05:05.460><c> like</c><00:05:05.820><c> uh</c><00:05:06.419><c> there's</c><00:05:06.660><c> there's</c><00:05:06.960><c> no</c>

00:05:07.370 --> 00:05:07.380 align:start position:0%
rounding to like uh there's there's no
 

00:05:07.380 --> 00:05:10.430 align:start position:0%
rounding to like uh there's there's no
decimal<00:05:08.160><c> no</c><00:05:09.060><c> digit</c><00:05:09.360><c> after</c><00:05:09.540><c> the</c><00:05:09.720><c> decimal</c><00:05:10.199><c> point</c>

00:05:10.430 --> 00:05:10.440 align:start position:0%
decimal no digit after the decimal point
 

00:05:10.440 --> 00:05:13.189 align:start position:0%
decimal no digit after the decimal point
that's<00:05:10.979><c> just</c><00:05:11.220><c> for</c><00:05:11.400><c> Simplicity</c>

00:05:13.189 --> 00:05:13.199 align:start position:0%
that's just for Simplicity
 

00:05:13.199 --> 00:05:16.610 align:start position:0%
that's just for Simplicity
um<00:05:13.259><c> so</c><00:05:13.620><c> now</c><00:05:13.919><c> Alice</c><00:05:14.400><c> I'm</c><00:05:14.880><c> Raul</c><00:05:15.180><c> I</c><00:05:15.479><c> have</c><00:05:15.660><c> one</c><00:05:16.199><c> uh</c>

00:05:16.610 --> 00:05:16.620 align:start position:0%
um so now Alice I'm Raul I have one uh
 

00:05:16.620 --> 00:05:18.710 align:start position:0%
um so now Alice I'm Raul I have one uh
Guild<00:05:16.979><c> to</c><00:05:17.160><c> offer</c><00:05:17.460><c> how</c><00:05:17.820><c> many</c><00:05:17.940><c> dollars</c><00:05:18.300><c> do</c><00:05:18.479><c> I</c><00:05:18.600><c> get</c>

00:05:18.710 --> 00:05:18.720 align:start position:0%
Guild to offer how many dollars do I get
 

00:05:18.720 --> 00:05:21.590 align:start position:0%
Guild to offer how many dollars do I get
for<00:05:18.840><c> that</c><00:05:19.020><c> let's</c><00:05:19.800><c> do</c><00:05:20.040><c> the</c><00:05:20.220><c> computation</c><00:05:20.699><c> and</c>

00:05:21.590 --> 00:05:21.600 align:start position:0%
for that let's do the computation and
 

00:05:21.600 --> 00:05:24.409 align:start position:0%
for that let's do the computation and
but<00:05:21.960><c> she</c><00:05:22.139><c> does</c><00:05:22.320><c> a</c><00:05:22.440><c> rounding</c><00:05:22.860><c> error</c>

00:05:24.409 --> 00:05:24.419 align:start position:0%
but she does a rounding error
 

00:05:24.419 --> 00:05:25.070 align:start position:0%
but she does a rounding error
um

00:05:25.070 --> 00:05:25.080 align:start position:0%
um
 

00:05:25.080 --> 00:05:26.870 align:start position:0%
um
do<00:05:25.500><c> I</c><00:05:25.680><c> have</c><00:05:25.740><c> a</c><00:05:25.860><c> laser</c><00:05:26.100><c> pointer</c><00:05:26.340><c> here</c><00:05:26.520><c> no</c><00:05:26.699><c> I</c>

00:05:26.870 --> 00:05:26.880 align:start position:0%
do I have a laser pointer here no I
 

00:05:26.880 --> 00:05:27.770 align:start position:0%
do I have a laser pointer here no I
don't

00:05:27.770 --> 00:05:27.780 align:start position:0%
don't
 

00:05:27.780 --> 00:05:30.110 align:start position:0%
don't
um<00:05:27.900><c> so</c><00:05:28.320><c> she</c><00:05:28.620><c> does</c><00:05:28.740><c> a</c><00:05:28.919><c> rounding</c><00:05:29.340><c> aware</c><00:05:29.639><c> in</c><00:05:30.000><c> this</c>

00:05:30.110 --> 00:05:30.120 align:start position:0%
um so she does a rounding aware in this
 

00:05:30.120 --> 00:05:32.290 align:start position:0%
um so she does a rounding aware in this
computation<00:05:30.660><c> so</c>

00:05:32.290 --> 00:05:32.300 align:start position:0%
computation so
 

00:05:32.300 --> 00:05:35.210 align:start position:0%
computation so
we<00:05:33.300><c> divide</c><00:05:33.660><c> two</c><00:05:33.960><c> by</c><00:05:34.139><c> one</c><00:05:34.320><c> this</c><00:05:34.560><c> gives</c><00:05:34.860><c> us</c><00:05:34.979><c> two</c>

00:05:35.210 --> 00:05:35.220 align:start position:0%
we divide two by one this gives us two
 

00:05:35.220 --> 00:05:37.550 align:start position:0%
we divide two by one this gives us two
and<00:05:35.639><c> then</c><00:05:35.759><c> we</c><00:05:35.880><c> want</c><00:05:36.120><c> divide</c><00:05:36.539><c> one</c><00:05:36.780><c> by</c><00:05:36.960><c> two</c><00:05:37.259><c> which</c>

00:05:37.550 --> 00:05:37.560 align:start position:0%
and then we want divide one by two which
 

00:05:37.560 --> 00:05:41.150 align:start position:0%
and then we want divide one by two which
gives<00:05:37.919><c> us</c><00:05:38.100><c> 0.5</c><00:05:38.940><c> and</c><00:05:39.840><c> we</c><00:05:40.139><c> are</c><00:05:40.320><c> using</c><00:05:40.800><c> uh</c>

00:05:41.150 --> 00:05:41.160 align:start position:0%
gives us 0.5 and we are using uh
 

00:05:41.160 --> 00:05:43.430 align:start position:0%
gives us 0.5 and we are using uh
rounding<00:05:41.520><c> to</c><00:05:41.639><c> the</c><00:05:41.820><c> nearest</c><00:05:41.940><c> neighbor</c><00:05:42.360><c> here</c><00:05:43.199><c> so</c>

00:05:43.430 --> 00:05:43.440 align:start position:0%
rounding to the nearest neighbor here so
 

00:05:43.440 --> 00:05:46.490 align:start position:0%
rounding to the nearest neighbor here so
that<00:05:43.740><c> means</c><00:05:43.979><c> we</c><00:05:44.220><c> are</c><00:05:44.400><c> rounding</c><00:05:44.820><c> up</c>

00:05:46.490 --> 00:05:46.500 align:start position:0%
that means we are rounding up
 

00:05:46.500 --> 00:05:49.070 align:start position:0%
that means we are rounding up
um<00:05:46.620><c> so</c><00:05:46.919><c> that</c><00:05:47.520><c> means</c><00:05:47.820><c> I</c><00:05:48.180><c> get</c><00:05:48.300><c> one</c><00:05:48.600><c> dollar</c><00:05:48.780><c> back</c>

00:05:49.070 --> 00:05:49.080 align:start position:0%
um so that means I get one dollar back
 

00:05:49.080 --> 00:05:51.770 align:start position:0%
um so that means I get one dollar back
from<00:05:49.380><c> Alice</c><00:05:49.740><c> so</c><00:05:50.280><c> now</c><00:05:50.460><c> I</c><00:05:50.699><c> have</c><00:05:50.759><c> one</c><00:05:51.000><c> dollar</c>

00:05:51.770 --> 00:05:51.780 align:start position:0%
from Alice so now I have one dollar
 

00:05:51.780 --> 00:05:53.749 align:start position:0%
from Alice so now I have one dollar
uh<00:05:52.500><c> I</c><00:05:52.680><c> go</c><00:05:52.800><c> back</c><00:05:52.919><c> to</c><00:05:53.039><c> our</c><00:05:53.160><c> list</c><00:05:53.340><c> and</c><00:05:53.520><c> say</c><00:05:53.580><c> hey</c>

00:05:53.749 --> 00:05:53.759 align:start position:0%
uh I go back to our list and say hey
 

00:05:53.759 --> 00:05:55.610 align:start position:0%
uh I go back to our list and say hey
Alice<00:05:54.120><c> I</c><00:05:54.360><c> don't</c><00:05:54.479><c> want</c><00:05:54.660><c> my</c><00:05:54.840><c> dollar</c><00:05:55.020><c> anymore</c><00:05:55.380><c> can</c>

00:05:55.610 --> 00:05:55.620 align:start position:0%
Alice I don't want my dollar anymore can
 

00:05:55.620 --> 00:05:57.830 align:start position:0%
Alice I don't want my dollar anymore can
I<00:05:55.800><c> get</c><00:05:55.860><c> my</c><00:05:55.979><c> Gill</c><00:05:56.280><c> back</c><00:05:56.460><c> and</c><00:05:56.880><c> again</c><00:05:57.060><c> Alice</c><00:05:57.660><c> do</c>

00:05:57.830 --> 00:05:57.840 align:start position:0%
I get my Gill back and again Alice do
 

00:05:57.840 --> 00:06:00.230 align:start position:0%
I get my Gill back and again Alice do
the<00:05:58.199><c> calculation</c><00:05:58.680><c> this</c><00:05:59.400><c> time</c><00:05:59.580><c> she's</c><00:05:59.820><c> not</c><00:06:00.120><c> even</c>

00:06:00.230 --> 00:06:00.240 align:start position:0%
the calculation this time she's not even
 

00:06:00.240 --> 00:06:02.150 align:start position:0%
the calculation this time she's not even
doing<00:06:00.419><c> a</c><00:06:00.660><c> rounding</c><00:06:01.020><c> error</c>

00:06:02.150 --> 00:06:02.160 align:start position:0%
doing a rounding error
 

00:06:02.160 --> 00:06:04.670 align:start position:0%
doing a rounding error
um<00:06:02.280><c> but</c><00:06:02.699><c> she</c><00:06:02.940><c> ends</c><00:06:03.180><c> up</c><00:06:03.240><c> giving</c><00:06:03.539><c> me</c><00:06:03.840><c> two</c><00:06:04.320><c> kill</c>

00:06:04.670 --> 00:06:04.680 align:start position:0%
um but she ends up giving me two kill
 

00:06:04.680 --> 00:06:07.189 align:start position:0%
um but she ends up giving me two kill
and<00:06:05.400><c> that</c><00:06:05.699><c> is</c><00:06:05.820><c> the</c><00:06:06.060><c> basic</c><00:06:06.300><c> problem</c><00:06:06.539><c> right</c><00:06:06.900><c> I</c>

00:06:07.189 --> 00:06:07.199 align:start position:0%
and that is the basic problem right I
 

00:06:07.199 --> 00:06:10.129 align:start position:0%
and that is the basic problem right I
started<00:06:07.740><c> with</c><00:06:07.979><c> one</c><00:06:08.160><c> girl</c><00:06:08.419><c> I</c><00:06:09.419><c> did</c><00:06:09.539><c> two</c><00:06:09.780><c> trades</c>

00:06:10.129 --> 00:06:10.139 align:start position:0%
started with one girl I did two trades
 

00:06:10.139 --> 00:06:11.870 align:start position:0%
started with one girl I did two trades
with<00:06:10.320><c> Alice</c><00:06:10.680><c> and</c><00:06:10.919><c> I</c><00:06:11.100><c> ended</c><00:06:11.340><c> up</c><00:06:11.460><c> with</c><00:06:11.699><c> two</c>

00:06:11.870 --> 00:06:11.880 align:start position:0%
with Alice and I ended up with two
 

00:06:11.880 --> 00:06:14.629 align:start position:0%
with Alice and I ended up with two
guilds<00:06:12.240><c> in</c><00:06:12.360><c> my</c><00:06:12.479><c> pocket</c><00:06:12.780><c> so</c><00:06:13.500><c> in</c><00:06:13.740><c> other</c><00:06:13.860><c> words</c><00:06:14.039><c> I</c>

00:06:14.629 --> 00:06:14.639 align:start position:0%
guilds in my pocket so in other words I
 

00:06:14.639 --> 00:06:17.870 align:start position:0%
guilds in my pocket so in other words I
just<00:06:14.880><c> like</c><00:06:15.479><c> created</c><00:06:16.020><c> money</c><00:06:16.320><c> out</c><00:06:16.560><c> of</c><00:06:16.680><c> thin</c><00:06:16.919><c> air</c>

00:06:17.870 --> 00:06:17.880 align:start position:0%
just like created money out of thin air
 

00:06:17.880 --> 00:06:20.390 align:start position:0%
just like created money out of thin air
so<00:06:18.600><c> let's</c><00:06:18.900><c> bring</c><00:06:19.139><c> this</c><00:06:19.500><c> example</c><00:06:19.979><c> into</c><00:06:20.160><c> the</c>

00:06:20.390 --> 00:06:20.400 align:start position:0%
so let's bring this example into the
 

00:06:20.400 --> 00:06:22.309 align:start position:0%
so let's bring this example into the
blockchain<00:06:20.759><c> context</c>

00:06:22.309 --> 00:06:22.319 align:start position:0%
blockchain context
 

00:06:22.319 --> 00:06:24.529 align:start position:0%
blockchain context
um<00:06:22.380><c> so</c><00:06:22.740><c> the</c><00:06:23.280><c> important</c><00:06:23.639><c> thing</c><00:06:23.940><c> here</c><00:06:24.180><c> in</c><00:06:24.419><c> this</c>

00:06:24.529 --> 00:06:24.539 align:start position:0%
um so the important thing here in this
 

00:06:24.539 --> 00:06:27.469 align:start position:0%
um so the important thing here in this
example<00:06:24.840><c> was</c><00:06:25.020><c> that</c><00:06:25.259><c> I</c><00:06:25.500><c> needed</c><00:06:25.800><c> two</c><00:06:26.100><c> trades</c><00:06:26.580><c> and</c>

00:06:27.469 --> 00:06:27.479 align:start position:0%
example was that I needed two trades and
 

00:06:27.479 --> 00:06:30.290 align:start position:0%
example was that I needed two trades and
like<00:06:27.840><c> in</c><00:06:28.139><c> in</c><00:06:28.319><c> many</c><00:06:28.560><c> smart</c><00:06:28.800><c> contracts</c><00:06:29.460><c> you</c><00:06:30.120><c> will</c>

00:06:30.290 --> 00:06:30.300 align:start position:0%
like in in many smart contracts you will
 

00:06:30.300 --> 00:06:31.370 align:start position:0%
like in in many smart contracts you will
see

00:06:31.370 --> 00:06:31.380 align:start position:0%
see
 

00:06:31.380 --> 00:06:34.010 align:start position:0%
see
a<00:06:31.860><c> pair</c><00:06:31.979><c> of</c><00:06:32.160><c> trading</c><00:06:32.639><c> functions</c><00:06:33.060><c> like</c><00:06:33.419><c> a</c>

00:06:34.010 --> 00:06:34.020 align:start position:0%
a pair of trading functions like a
 

00:06:34.020 --> 00:06:35.809 align:start position:0%
a pair of trading functions like a
deposit<00:06:34.440><c> and</c><00:06:34.620><c> a</c><00:06:34.740><c> redu-im</c><00:06:35.220><c> function</c><00:06:35.580><c> or</c>

00:06:35.809 --> 00:06:35.819 align:start position:0%
deposit and a redu-im function or
 

00:06:35.819 --> 00:06:38.270 align:start position:0%
deposit and a redu-im function or
deposit<00:06:36.300><c> and</c><00:06:36.479><c> withdraw</c><00:06:37.020><c> stake</c><00:06:37.680><c> and</c><00:06:37.800><c> unstake</c>

00:06:38.270 --> 00:06:38.280 align:start position:0%
deposit and withdraw stake and unstake
 

00:06:38.280 --> 00:06:40.189 align:start position:0%
deposit and withdraw stake and unstake
function<00:06:38.699><c> and</c><00:06:39.300><c> so</c><00:06:39.479><c> on</c>

00:06:40.189 --> 00:06:40.199 align:start position:0%
function and so on
 

00:06:40.199 --> 00:06:43.790 align:start position:0%
function and so on
and<00:06:40.819><c> so</c><00:06:41.819><c> what</c><00:06:42.479><c> what</c><00:06:42.539><c> happened</c><00:06:43.080><c> here</c><00:06:43.319><c> what</c><00:06:43.680><c> went</c>

00:06:43.790 --> 00:06:43.800 align:start position:0%
and so what what happened here what went
 

00:06:43.800 --> 00:06:45.409 align:start position:0%
and so what what happened here what went
wrong<00:06:44.039><c> like</c><00:06:44.340><c> you</c><00:06:44.520><c> know</c><00:06:44.639><c> have</c><00:06:44.940><c> a</c><00:06:45.060><c> look</c><00:06:45.120><c> at</c><00:06:45.300><c> the</c>

00:06:45.409 --> 00:06:45.419 align:start position:0%
wrong like you know have a look at the
 

00:06:45.419 --> 00:06:48.230 align:start position:0%
wrong like you know have a look at the
red<00:06:45.539><c> line</c><00:06:45.900><c> so</c><00:06:46.560><c> I</c><00:06:46.919><c> deposited</c><00:06:47.460><c> one</c><00:06:47.699><c> Guild</c><00:06:48.000><c> to</c>

00:06:48.230 --> 00:06:48.240 align:start position:0%
red line so I deposited one Guild to
 

00:06:48.240 --> 00:06:50.749 align:start position:0%
red line so I deposited one Guild to
Alice<00:06:48.600><c> and</c><00:06:49.199><c> then</c><00:06:49.380><c> I</c><00:06:49.620><c> immediately</c><00:06:50.039><c> redeemed</c><00:06:50.639><c> it</c>

00:06:50.749 --> 00:06:50.759 align:start position:0%
Alice and then I immediately redeemed it
 

00:06:50.759 --> 00:06:52.909 align:start position:0%
Alice and then I immediately redeemed it
like<00:06:50.940><c> in</c><00:06:51.180><c> the</c><00:06:51.300><c> same</c><00:06:51.419><c> transaction</c><00:06:51.960><c> and</c><00:06:52.620><c> I</c><00:06:52.740><c> was</c>

00:06:52.909 --> 00:06:52.919 align:start position:0%
like in the same transaction and I was
 

00:06:52.919 --> 00:06:56.090 align:start position:0%
like in the same transaction and I was
able<00:06:53.220><c> to</c><00:06:53.340><c> make</c><00:06:53.580><c> two</c><00:06:53.819><c> kill</c><00:06:54.060><c> out</c><00:06:54.419><c> of</c><00:06:54.539><c> that</c><00:06:54.740><c> so</c><00:06:55.740><c> I</c>

00:06:56.090 --> 00:06:56.100 align:start position:0%
able to make two kill out of that so I
 

00:06:56.100 --> 00:06:58.969 align:start position:0%
able to make two kill out of that so I
created<00:06:56.520><c> money</c><00:06:56.699><c> out</c><00:06:56.880><c> of</c><00:06:57.060><c> thin</c><00:06:57.240><c> air</c><00:06:57.419><c> so</c>

00:06:58.969 --> 00:06:58.979 align:start position:0%
created money out of thin air so
 

00:06:58.979 --> 00:07:00.290 align:start position:0%
created money out of thin air so
um

00:07:00.290 --> 00:07:00.300 align:start position:0%
um
 

00:07:00.300 --> 00:07:05.510 align:start position:0%
um
now<00:07:01.139><c> okay</c><00:07:02.100><c> so</c><00:07:03.259><c> we</c><00:07:04.259><c> we</c><00:07:04.620><c> don't</c><00:07:04.860><c> want</c><00:07:05.039><c> that</c><00:07:05.220><c> right</c>

00:07:05.510 --> 00:07:05.520 align:start position:0%
now okay so we we don't want that right
 

00:07:05.520 --> 00:07:08.510 align:start position:0%
now okay so we we don't want that right
we<00:07:06.060><c> need</c><00:07:06.180><c> to</c><00:07:06.300><c> fix</c><00:07:06.539><c> that</c><00:07:06.780><c> so</c><00:07:07.380><c> we</c><00:07:07.560><c> need</c><00:07:07.740><c> to</c><00:07:07.979><c> like</c>

00:07:08.510 --> 00:07:08.520 align:start position:0%
we need to fix that so we need to like
 

00:07:08.520 --> 00:07:11.330 align:start position:0%
we need to fix that so we need to like
make<00:07:08.819><c> a</c><00:07:09.000><c> sanity</c><00:07:09.360><c> check</c><00:07:09.720><c> that</c><00:07:10.139><c> we</c><00:07:10.800><c> don't</c><00:07:10.979><c> get</c>

00:07:11.330 --> 00:07:11.340 align:start position:0%
make a sanity check that we don't get
 

00:07:11.340 --> 00:07:14.090 align:start position:0%
make a sanity check that we don't get
like<00:07:11.699><c> more</c><00:07:12.000><c> money</c><00:07:12.240><c> out</c><00:07:12.479><c> than</c><00:07:12.780><c> we</c><00:07:13.020><c> put</c><00:07:13.199><c> in</c>

00:07:14.090 --> 00:07:14.100 align:start position:0%
like more money out than we put in
 

00:07:14.100 --> 00:07:16.969 align:start position:0%
like more money out than we put in
um<00:07:14.220><c> and</c><00:07:14.580><c> this</c><00:07:15.180><c> is</c><00:07:15.300><c> the</c><00:07:15.419><c> second</c><00:07:15.780><c> line</c><00:07:16.139><c> here</c><00:07:16.500><c> this</c>

00:07:16.969 --> 00:07:16.979 align:start position:0%
um and this is the second line here this
 

00:07:16.979 --> 00:07:19.370 align:start position:0%
um and this is the second line here this
is<00:07:17.100><c> my</c><00:07:17.400><c> sanity</c><00:07:17.819><c> assumption</c><00:07:18.360><c> that</c><00:07:18.840><c> when</c><00:07:19.020><c> I</c><00:07:19.199><c> put</c>

00:07:19.370 --> 00:07:19.380 align:start position:0%
is my sanity assumption that when I put
 

00:07:19.380 --> 00:07:22.010 align:start position:0%
is my sanity assumption that when I put
one<00:07:19.740><c> Guild</c><00:07:20.099><c> into</c><00:07:20.340><c> the</c><00:07:20.580><c> contract</c><00:07:20.940><c> or</c>

00:07:22.010 --> 00:07:22.020 align:start position:0%
one Guild into the contract or
 

00:07:22.020 --> 00:07:23.870 align:start position:0%
one Guild into the contract or
um<00:07:22.080><c> I</c><00:07:22.259><c> should</c><00:07:22.560><c> be</c><00:07:22.680><c> able</c><00:07:22.800><c> to</c><00:07:22.919><c> get</c><00:07:23.099><c> at</c><00:07:23.340><c> most</c><00:07:23.520><c> one</c>

00:07:23.870 --> 00:07:23.880 align:start position:0%
um I should be able to get at most one
 

00:07:23.880 --> 00:07:27.350 align:start position:0%
um I should be able to get at most one
kill<00:07:24.060><c> out</c><00:07:24.360><c> if</c><00:07:24.960><c> I</c><00:07:25.139><c> immediately</c><00:07:25.680><c> redeem</c>

00:07:27.350 --> 00:07:27.360 align:start position:0%
kill out if I immediately redeem
 

00:07:27.360 --> 00:07:29.390 align:start position:0%
kill out if I immediately redeem
um<00:07:27.479><c> and</c><00:07:27.720><c> of</c><00:07:27.960><c> course</c><00:07:28.080><c> this</c><00:07:28.740><c> concept</c><00:07:28.979><c> can</c><00:07:29.220><c> be</c>

00:07:29.390 --> 00:07:29.400 align:start position:0%
um and of course this concept can be
 

00:07:29.400 --> 00:07:31.249 align:start position:0%
um and of course this concept can be
generalized<00:07:30.000><c> it</c><00:07:30.180><c> shouldn't</c><00:07:30.599><c> only</c><00:07:30.720><c> hold</c><00:07:30.960><c> for</c>

00:07:31.249 --> 00:07:31.259 align:start position:0%
generalized it shouldn't only hold for
 

00:07:31.259 --> 00:07:33.230 align:start position:0%
generalized it shouldn't only hold for
one<00:07:31.500><c> gear</c><00:07:31.800><c> but</c><00:07:32.039><c> it</c><00:07:32.400><c> should</c><00:07:32.580><c> essentially</c><00:07:32.940><c> hold</c>

00:07:33.230 --> 00:07:33.240 align:start position:0%
one gear but it should essentially hold
 

00:07:33.240 --> 00:07:34.550 align:start position:0%
one gear but it should essentially hold
for<00:07:33.539><c> for</c>

00:07:34.550 --> 00:07:34.560 align:start position:0%
for for
 

00:07:34.560 --> 00:07:36.050 align:start position:0%
for for
um arbitrary<00:07:35.099><c> amounts</c><00:07:35.580><c> that</c><00:07:35.699><c> I'm</c><00:07:35.819><c> putting</c>

00:07:36.050 --> 00:07:36.060 align:start position:0%
um arbitrary amounts that I'm putting
 

00:07:36.060 --> 00:07:39.650 align:start position:0%
um arbitrary amounts that I'm putting
into<00:07:36.240><c> the</c><00:07:36.479><c> contract</c>

00:07:39.650 --> 00:07:39.660 align:start position:0%
 
 

00:07:39.660 --> 00:07:43.010 align:start position:0%
 
um so<00:07:40.080><c> this</c><00:07:40.680><c> is</c><00:07:40.740><c> what</c><00:07:41.160><c> a</c><00:07:41.580><c> typical</c><00:07:41.880><c> the</c><00:07:42.599><c> typical</c>

00:07:43.010 --> 00:07:43.020 align:start position:0%
um so this is what a typical the typical
 

00:07:43.020 --> 00:07:44.809 align:start position:0%
um so this is what a typical the typical
implementation<00:07:43.740><c> of</c>

00:07:44.809 --> 00:07:44.819 align:start position:0%
implementation of
 

00:07:44.819 --> 00:07:47.210 align:start position:0%
implementation of
um a<00:07:45.419><c> deposit</c><00:07:46.020><c> and</c><00:07:46.199><c> a</c><00:07:46.319><c> redeem</c><00:07:46.620><c> function</c><00:07:46.979><c> look</c>

00:07:47.210 --> 00:07:47.220 align:start position:0%
um a deposit and a redeem function look
 

00:07:47.220 --> 00:07:49.670 align:start position:0%
um a deposit and a redeem function look
like<00:07:47.400><c> looks</c><00:07:47.759><c> like</c><00:07:47.880><c> and</c>

00:07:49.670 --> 00:07:49.680 align:start position:0%
like looks like and
 

00:07:49.680 --> 00:07:52.070 align:start position:0%
like looks like and
um<00:07:49.800><c> what</c><00:07:50.039><c> you</c><00:07:50.220><c> can</c><00:07:50.400><c> see</c><00:07:50.699><c> here</c><00:07:51.000><c> is</c><00:07:51.300><c> like</c><00:07:51.780><c> let's</c>

00:07:52.070 --> 00:07:52.080 align:start position:0%
um what you can see here is like let's
 

00:07:52.080 --> 00:07:53.629 align:start position:0%
um what you can see here is like let's
walk<00:07:52.440><c> over</c><00:07:52.620><c> the</c><00:07:52.860><c> deposit</c><00:07:53.220><c> function</c><00:07:53.460><c> real</c>

00:07:53.629 --> 00:07:53.639 align:start position:0%
walk over the deposit function real
 

00:07:53.639 --> 00:07:56.629 align:start position:0%
walk over the deposit function real
quick<00:07:53.880><c> so</c><00:07:54.180><c> the</c><00:07:54.360><c> deposit</c><00:07:54.840><c> function</c><00:07:55.220><c> accepts</c><00:07:56.220><c> an</c>

00:07:56.629 --> 00:07:56.639 align:start position:0%
quick so the deposit function accepts an
 

00:07:56.639 --> 00:08:00.170 align:start position:0%
quick so the deposit function accepts an
asset<00:07:57.000><c> amount</c><00:07:57.680><c> and</c><00:07:58.680><c> then</c><00:07:59.039><c> it</c><00:07:59.340><c> converts</c><00:07:59.819><c> this</c>

00:08:00.170 --> 00:08:00.180 align:start position:0%
asset amount and then it converts this
 

00:08:00.180 --> 00:08:02.150 align:start position:0%
asset amount and then it converts this
asset<00:08:00.539><c> amount</c><00:08:00.840><c> into</c><00:08:01.199><c> shares</c><00:08:01.740><c> just</c><00:08:01.979><c> by</c>

00:08:02.150 --> 00:08:02.160 align:start position:0%
asset amount into shares just by
 

00:08:02.160 --> 00:08:04.430 align:start position:0%
asset amount into shares just by
multiplying<00:08:02.759><c> the</c><00:08:03.000><c> amount</c><00:08:03.240><c> of</c><00:08:03.419><c> assets</c><00:08:03.780><c> with</c><00:08:04.259><c> a</c>

00:08:04.430 --> 00:08:04.440 align:start position:0%
multiplying the amount of assets with a
 

00:08:04.440 --> 00:08:05.930 align:start position:0%
multiplying the amount of assets with a
current<00:08:04.620><c> exchange</c><00:08:05.160><c> rate</c>

00:08:05.930 --> 00:08:05.940 align:start position:0%
current exchange rate
 

00:08:05.940 --> 00:08:07.909 align:start position:0%
current exchange rate
then<00:08:06.419><c> we</c><00:08:06.539><c> are</c><00:08:06.720><c> transferring</c><00:08:07.199><c> the</c><00:08:07.440><c> asset</c><00:08:07.740><c> we</c>

00:08:07.909 --> 00:08:07.919 align:start position:0%
then we are transferring the asset we
 

00:08:07.919 --> 00:08:09.710 align:start position:0%
then we are transferring the asset we
are<00:08:08.039><c> pulling</c><00:08:08.340><c> in</c><00:08:08.460><c> we</c><00:08:08.880><c> are</c><00:08:09.000><c> pulling</c><00:08:09.300><c> the</c><00:08:09.419><c> Assets</c>

00:08:09.710 --> 00:08:09.720 align:start position:0%
are pulling in we are pulling the Assets
 

00:08:09.720 --> 00:08:11.089 align:start position:0%
are pulling in we are pulling the Assets
in<00:08:10.020><c> from</c><00:08:10.319><c> the</c>

00:08:11.089 --> 00:08:11.099 align:start position:0%
in from the
 

00:08:11.099 --> 00:08:13.550 align:start position:0%
in from the
um<00:08:11.160><c> from</c><00:08:11.460><c> the</c><00:08:11.580><c> user</c><00:08:11.940><c> uh</c><00:08:12.720><c> then</c><00:08:12.960><c> we</c><00:08:13.139><c> are</c><00:08:13.199><c> minting</c>

00:08:13.550 --> 00:08:13.560 align:start position:0%
um from the user uh then we are minting
 

00:08:13.560 --> 00:08:15.469 align:start position:0%
um from the user uh then we are minting
some<00:08:13.740><c> shares</c><00:08:14.160><c> and</c><00:08:14.280><c> finally</c><00:08:14.580><c> we</c><00:08:14.940><c> return</c><00:08:15.120><c> the</c>

00:08:15.469 --> 00:08:15.479 align:start position:0%
some shares and finally we return the
 

00:08:15.479 --> 00:08:17.870 align:start position:0%
some shares and finally we return the
shares<00:08:15.900><c> that</c><00:08:16.500><c> we</c><00:08:16.680><c> have</c><00:08:16.800><c> minted</c><00:08:17.220><c> and</c><00:08:17.759><c> the</c>

00:08:17.870 --> 00:08:17.880 align:start position:0%
shares that we have minted and the
 

00:08:17.880 --> 00:08:20.749 align:start position:0%
shares that we have minted and the
redeem<00:08:18.180><c> function</c><00:08:18.539><c> is</c><00:08:18.720><c> similar</c><00:08:19.440><c> and</c><00:08:20.220><c> with</c><00:08:20.580><c> what</c>

00:08:20.749 --> 00:08:20.759 align:start position:0%
redeem function is similar and with what
 

00:08:20.759 --> 00:08:23.390 align:start position:0%
redeem function is similar and with what
I<00:08:21.000><c> just</c><00:08:21.360><c> told</c><00:08:21.539><c> you</c><00:08:21.840><c> you</c><00:08:22.139><c> can</c><00:08:22.379><c> see</c><00:08:22.620><c> or</c><00:08:22.979><c> maybe</c><00:08:23.160><c> you</c>

00:08:23.390 --> 00:08:23.400 align:start position:0%
I just told you you can see or maybe you
 

00:08:23.400 --> 00:08:25.550 align:start position:0%
I just told you you can see or maybe you
cannot<00:08:23.699><c> see</c><00:08:23.879><c> it</c><00:08:24.060><c> because</c><00:08:24.300><c> well</c><00:08:24.780><c> I</c><00:08:25.080><c> didn't</c><00:08:25.199><c> use</c>

00:08:25.550 --> 00:08:25.560 align:start position:0%
cannot see it because well I didn't use
 

00:08:25.560 --> 00:08:28.129 align:start position:0%
cannot see it because well I didn't use
the<00:08:26.099><c> uh</c><00:08:26.639><c> you</c><00:08:27.240><c> cannot</c><00:08:27.419><c> see</c><00:08:27.599><c> the</c><00:08:27.720><c> implementation</c>

00:08:28.129 --> 00:08:28.139 align:start position:0%
the uh you cannot see the implementation
 

00:08:28.139 --> 00:08:30.290 align:start position:0%
the uh you cannot see the implementation
of<00:08:28.379><c> the</c><00:08:28.500><c> multiplication</c><00:08:29.039><c> function</c>

00:08:30.290 --> 00:08:30.300 align:start position:0%
of the multiplication function
 

00:08:30.300 --> 00:08:33.050 align:start position:0%
of the multiplication function
um<00:08:30.360><c> but</c><00:08:30.720><c> like</c><00:08:31.199><c> this</c><00:08:31.620><c> contract</c><00:08:32.039><c> is</c><00:08:32.520><c> suffering</c>

00:08:33.050 --> 00:08:33.060 align:start position:0%
um but like this contract is suffering
 

00:08:33.060 --> 00:08:35.389 align:start position:0%
um but like this contract is suffering
uh<00:08:33.659><c> from</c><00:08:33.899><c> the</c><00:08:34.080><c> exact</c><00:08:34.320><c> vulnerability</c><00:08:35.099><c> that</c>

00:08:35.389 --> 00:08:35.399 align:start position:0%
uh from the exact vulnerability that
 

00:08:35.399 --> 00:08:37.670 align:start position:0%
uh from the exact vulnerability that
that<00:08:35.640><c> I</c><00:08:36.000><c> showed</c><00:08:36.360><c> you</c><00:08:36.419><c> before</c>

00:08:37.670 --> 00:08:37.680 align:start position:0%
that I showed you before
 

00:08:37.680 --> 00:08:39.709 align:start position:0%
that I showed you before
um<00:08:37.800><c> and</c><00:08:38.039><c> that</c><00:08:38.219><c> was</c><00:08:38.339><c> present</c><00:08:38.760><c> in</c><00:08:39.060><c> a</c><00:08:39.180><c> like</c><00:08:39.419><c> more</c>

00:08:39.709 --> 00:08:39.719 align:start position:0%
um and that was present in a like more
 

00:08:39.719 --> 00:08:43.909 align:start position:0%
um and that was present in a like more
complicated<00:08:40.520><c> uh</c><00:08:41.520><c> a</c><00:08:42.120><c> more</c><00:08:42.899><c> complex</c><00:08:43.140><c> setting</c><00:08:43.620><c> in</c>

00:08:43.909 --> 00:08:43.919 align:start position:0%
complicated uh a more complex setting in
 

00:08:43.919 --> 00:08:47.630 align:start position:0%
complicated uh a more complex setting in
this<00:08:44.159><c> uh</c><00:08:44.880><c> in</c><00:08:45.420><c> this</c><00:08:45.600><c> unit</c><00:08:46.020><c> swap</c><00:08:46.500><c> contract</c><00:08:47.040><c> that</c>

00:08:47.630 --> 00:08:47.640 align:start position:0%
this uh in this unit swap contract that
 

00:08:47.640 --> 00:08:49.730 align:start position:0%
this uh in this unit swap contract that
I<00:08:47.760><c> talked</c><00:08:48.000><c> about</c><00:08:48.120><c> earlier</c>

00:08:49.730 --> 00:08:49.740 align:start position:0%
I talked about earlier
 

00:08:49.740 --> 00:08:52.190 align:start position:0%
I talked about earlier
um<00:08:49.920><c> so</c><00:08:50.700><c> this</c><00:08:51.060><c> multiplication</c><00:08:51.600><c> function</c><00:08:51.959><c> and</c>

00:08:52.190 --> 00:08:52.200 align:start position:0%
um so this multiplication function and
 

00:08:52.200 --> 00:08:54.470 align:start position:0%
um so this multiplication function and
this<00:08:52.380><c> division</c><00:08:52.680><c> function</c><00:08:53.040><c> is</c><00:08:53.279><c> is</c><00:08:53.580><c> implemented</c>

00:08:54.470 --> 00:08:54.480 align:start position:0%
this division function is is implemented
 

00:08:54.480 --> 00:08:56.690 align:start position:0%
this division function is is implemented
as<00:08:55.260><c> like</c><00:08:55.500><c> rounding</c><00:08:55.980><c> to</c><00:08:56.100><c> the</c><00:08:56.220><c> nearest</c><00:08:56.339><c> neighbor</c>

00:08:56.690 --> 00:08:56.700 align:start position:0%
as like rounding to the nearest neighbor
 

00:08:56.700 --> 00:08:58.550 align:start position:0%
as like rounding to the nearest neighbor
and<00:08:57.000><c> that</c><00:08:57.180><c> is</c><00:08:57.300><c> the</c><00:08:57.480><c> mistake</c><00:08:57.839><c> that</c><00:08:58.080><c> we</c><00:08:58.200><c> did</c><00:08:58.380><c> here</c>

00:08:58.550 --> 00:08:58.560 align:start position:0%
and that is the mistake that we did here
 

00:08:58.560 --> 00:09:01.430 align:start position:0%
and that is the mistake that we did here
but<00:08:59.220><c> like</c><00:08:59.880><c> how</c><00:09:00.360><c> do</c><00:09:00.540><c> we</c><00:09:00.660><c> actually</c><00:09:00.839><c> know</c><00:09:01.140><c> in</c>

00:09:01.430 --> 00:09:01.440 align:start position:0%
but like how do we actually know in
 

00:09:01.440 --> 00:09:03.769 align:start position:0%
but like how do we actually know in
which<00:09:01.620><c> direction</c><00:09:01.800><c> we</c><00:09:02.220><c> should</c><00:09:02.339><c> round</c><00:09:02.519><c> and</c>

00:09:03.769 --> 00:09:03.779 align:start position:0%
which direction we should round and
 

00:09:03.779 --> 00:09:06.829 align:start position:0%
which direction we should round and
um<00:09:03.839><c> there's</c><00:09:04.260><c> like</c><00:09:04.500><c> a</c><00:09:04.800><c> very</c><00:09:04.920><c> simple</c><00:09:05.279><c> uh</c>

00:09:06.829 --> 00:09:06.839 align:start position:0%
um there's like a very simple uh
 

00:09:06.839 --> 00:09:09.949 align:start position:0%
um there's like a very simple uh
a<00:09:07.140><c> very</c><00:09:07.560><c> simple</c><00:09:07.920><c> rule</c><00:09:08.399><c> of</c><00:09:08.519><c> some</c><00:09:08.820><c> rule</c><00:09:09.720><c> of</c><00:09:09.779><c> thumb</c>

00:09:09.949 --> 00:09:09.959 align:start position:0%
a very simple rule of some rule of thumb
 

00:09:09.959 --> 00:09:12.949 align:start position:0%
a very simple rule of some rule of thumb
that<00:09:10.200><c> I</c><00:09:10.440><c> can</c><00:09:10.620><c> give</c><00:09:11.160><c> you</c><00:09:11.279><c> and</c><00:09:11.459><c> that</c><00:09:11.700><c> is</c><00:09:11.880><c> I</c><00:09:12.660><c> call</c>

00:09:12.949 --> 00:09:12.959 align:start position:0%
that I can give you and that is I call
 

00:09:12.959 --> 00:09:15.829 align:start position:0%
that I can give you and that is I call
it<00:09:13.140><c> keep</c><00:09:13.680><c> the</c><00:09:13.860><c> change</c><00:09:14.100><c> that</c><00:09:14.519><c> means</c><00:09:14.839><c> whenever</c>

00:09:15.829 --> 00:09:15.839 align:start position:0%
it keep the change that means whenever
 

00:09:15.839 --> 00:09:19.130 align:start position:0%
it keep the change that means whenever
we<00:09:16.140><c> whenever</c><00:09:16.680><c> we</c><00:09:17.160><c> are</c><00:09:17.279><c> rounding</c><00:09:17.700><c> up</c><00:09:17.959><c> uh</c><00:09:18.959><c> oh</c>

00:09:19.130 --> 00:09:19.140 align:start position:0%
we whenever we are rounding up uh oh
 

00:09:19.140 --> 00:09:21.889 align:start position:0%
we whenever we are rounding up uh oh
sorry<00:09:19.500><c> whenever</c><00:09:20.399><c> we</c><00:09:20.760><c> have</c><00:09:20.940><c> incoming</c><00:09:21.480><c> assets</c>

00:09:21.889 --> 00:09:21.899 align:start position:0%
sorry whenever we have incoming assets
 

00:09:21.899 --> 00:09:25.190 align:start position:0%
sorry whenever we have incoming assets
like<00:09:22.800><c> accept</c><00:09:23.160><c> assets</c><00:09:23.700><c> from</c><00:09:23.940><c> the</c><00:09:24.120><c> user</c><00:09:24.480><c> then</c><00:09:25.019><c> we</c>

00:09:25.190 --> 00:09:25.200 align:start position:0%
like accept assets from the user then we
 

00:09:25.200 --> 00:09:28.070 align:start position:0%
like accept assets from the user then we
are<00:09:25.320><c> going</c><00:09:25.500><c> to</c><00:09:25.620><c> round</c><00:09:25.800><c> up</c><00:09:26.100><c> and</c><00:09:26.940><c> whenever</c><00:09:27.360><c> like</c>

00:09:28.070 --> 00:09:28.080 align:start position:0%
are going to round up and whenever like
 

00:09:28.080 --> 00:09:30.769 align:start position:0%
are going to round up and whenever like
we<00:09:28.380><c> are</c><00:09:28.500><c> sending</c><00:09:28.860><c> assets</c><00:09:29.279><c> out</c><00:09:29.580><c> to</c><00:09:29.880><c> the</c><00:09:30.000><c> user</c><00:09:30.360><c> we</c>

00:09:30.769 --> 00:09:30.779 align:start position:0%
we are sending assets out to the user we
 

00:09:30.779 --> 00:09:33.290 align:start position:0%
we are sending assets out to the user we
are<00:09:30.959><c> rounding</c><00:09:31.320><c> down</c><00:09:31.560><c> and</c><00:09:32.399><c> if</c><00:09:32.519><c> we</c><00:09:32.700><c> follow</c><00:09:32.940><c> this</c>

00:09:33.290 --> 00:09:33.300 align:start position:0%
are rounding down and if we follow this
 

00:09:33.300 --> 00:09:36.170 align:start position:0%
are rounding down and if we follow this
this<00:09:33.600><c> rule</c><00:09:34.080><c> that</c><00:09:34.980><c> means</c><00:09:35.339><c> you</c><00:09:35.880><c> will</c>

00:09:36.170 --> 00:09:36.180 align:start position:0%
this rule that means you will
 

00:09:36.180 --> 00:09:38.210 align:start position:0%
this rule that means you will
approximate<00:09:36.899><c> your</c><00:09:37.200><c> values</c><00:09:37.560><c> from</c><00:09:37.860><c> the</c><00:09:38.040><c> right</c>

00:09:38.210 --> 00:09:38.220 align:start position:0%
approximate your values from the right
 

00:09:38.220 --> 00:09:40.490 align:start position:0%
approximate your values from the right
direction<00:09:38.519><c> and</c><00:09:39.360><c> users</c><00:09:39.720><c> won't</c><00:09:39.959><c> be</c><00:09:40.140><c> able</c><00:09:40.320><c> to</c>

00:09:40.490 --> 00:09:40.500 align:start position:0%
direction and users won't be able to
 

00:09:40.500 --> 00:09:42.290 align:start position:0%
direction and users won't be able to
create<00:09:40.800><c> money</c><00:09:41.160><c> out</c><00:09:41.339><c> of</c><00:09:41.519><c> thin</c><00:09:41.700><c> air</c><00:09:41.880><c> and</c><00:09:42.060><c> doing</c>

00:09:42.290 --> 00:09:42.300 align:start position:0%
create money out of thin air and doing
 

00:09:42.300 --> 00:09:45.110 align:start position:0%
create money out of thin air and doing
your<00:09:42.600><c> contracts</c><00:09:43.019><c> that</c><00:09:43.680><c> is</c><00:09:43.860><c> the</c><00:09:44.160><c> simple</c><00:09:44.339><c> rule</c>

00:09:45.110 --> 00:09:45.120 align:start position:0%
your contracts that is the simple rule
 

00:09:45.120 --> 00:09:47.990 align:start position:0%
your contracts that is the simple rule
so<00:09:45.779><c> that</c><00:09:46.140><c> means</c><00:09:46.440><c> like</c><00:09:46.860><c> let's</c><00:09:47.160><c> revisit</c><00:09:47.820><c> the</c>

00:09:47.990 --> 00:09:48.000 align:start position:0%
so that means like let's revisit the
 

00:09:48.000 --> 00:09:50.750 align:start position:0%
so that means like let's revisit the
example<00:09:48.420><c> from</c><00:09:48.600><c> before</c><00:09:48.839><c> so</c>

00:09:50.750 --> 00:09:50.760 align:start position:0%
example from before so
 

00:09:50.760 --> 00:09:52.970 align:start position:0%
example from before so
um<00:09:50.820><c> like</c><00:09:51.660><c> let's</c><00:09:52.019><c> walk</c><00:09:52.200><c> over</c><00:09:52.320><c> the</c><00:09:52.560><c> deposit</c>

00:09:52.970 --> 00:09:52.980 align:start position:0%
um like let's walk over the deposit
 

00:09:52.980 --> 00:09:54.889 align:start position:0%
um like let's walk over the deposit
functions<00:09:53.399><c> so</c><00:09:53.580><c> instead</c><00:09:54.120><c> of</c><00:09:54.360><c> like</c><00:09:54.660><c> just</c>

00:09:54.889 --> 00:09:54.899 align:start position:0%
functions so instead of like just
 

00:09:54.899 --> 00:09:58.370 align:start position:0%
functions so instead of like just
multiplying<00:09:55.560><c> I</c><00:09:56.100><c> just</c><00:09:56.279><c> know</c><00:09:56.459><c> now</c><00:09:56.760><c> I</c><00:09:57.300><c> use</c><00:09:57.480><c> now</c>

00:09:58.370 --> 00:09:58.380 align:start position:0%
multiplying I just know now I use now
 

00:09:58.380 --> 00:09:59.870 align:start position:0%
multiplying I just know now I use now
um<00:09:58.440><c> a</c><00:09:58.740><c> variation</c><00:09:59.040><c> of</c><00:09:59.279><c> the</c><00:09:59.399><c> multiplication</c>

00:09:59.870 --> 00:09:59.880 align:start position:0%
um a variation of the multiplication
 

00:09:59.880 --> 00:10:03.769 align:start position:0%
um a variation of the multiplication
function<00:10:00.360><c> that</c><00:10:01.019><c> always</c><00:10:01.320><c> rounds</c><00:10:01.980><c> down</c><00:10:02.220><c> and</c><00:10:03.180><c> it</c>

00:10:03.769 --> 00:10:03.779 align:start position:0%
function that always rounds down and it
 

00:10:03.779 --> 00:10:06.170 align:start position:0%
function that always rounds down and it
runs<00:10:04.080><c> down</c><00:10:04.260><c> because</c><00:10:04.800><c> I'm</c><00:10:05.160><c> sending</c><00:10:05.580><c> the</c><00:10:05.760><c> assets</c>

00:10:06.170 --> 00:10:06.180 align:start position:0%
runs down because I'm sending the assets
 

00:10:06.180 --> 00:10:08.750 align:start position:0%
runs down because I'm sending the assets
out<00:10:06.839><c> to</c><00:10:07.140><c> the</c><00:10:07.260><c> user</c>

00:10:08.750 --> 00:10:08.760 align:start position:0%
out to the user
 

00:10:08.760 --> 00:10:11.329 align:start position:0%
out to the user
and<00:10:09.300><c> for</c><00:10:09.540><c> the</c><00:10:09.720><c> redeem</c><00:10:09.959><c> function</c><00:10:10.380><c> here</c><00:10:10.860><c> in</c><00:10:11.040><c> this</c>

00:10:11.329 --> 00:10:11.339 align:start position:0%
and for the redeem function here in this
 

00:10:11.339 --> 00:10:14.329 align:start position:0%
and for the redeem function here in this
example<00:10:11.700><c> it's</c><00:10:12.060><c> it's</c><00:10:12.300><c> the</c><00:10:12.600><c> same</c>

00:10:14.329 --> 00:10:14.339 align:start position:0%
example it's it's the same
 

00:10:14.339 --> 00:10:17.389 align:start position:0%
example it's it's the same
um<00:10:14.459><c> so</c><00:10:14.940><c> now</c>

00:10:17.389 --> 00:10:17.399 align:start position:0%
um so now
 

00:10:17.399 --> 00:10:20.389 align:start position:0%
um so now
how<00:10:18.000><c> can</c><00:10:18.240><c> we</c><00:10:18.480><c> actually</c><00:10:19.019><c> be</c><00:10:19.500><c> sure</c><00:10:19.680><c> that</c><00:10:20.100><c> our</c>

00:10:20.389 --> 00:10:20.399 align:start position:0%
how can we actually be sure that our
 

00:10:20.399 --> 00:10:22.070 align:start position:0%
how can we actually be sure that our
implementation<00:10:21.000><c> is</c><00:10:21.240><c> correct</c><00:10:21.480><c> I</c><00:10:21.720><c> mean</c><00:10:21.839><c> this</c>

00:10:22.070 --> 00:10:22.080 align:start position:0%
implementation is correct I mean this
 

00:10:22.080 --> 00:10:23.750 align:start position:0%
implementation is correct I mean this
example<00:10:22.380><c> was</c><00:10:22.620><c> really</c><00:10:22.860><c> simple</c><00:10:23.040><c> and</c><00:10:23.339><c> you</c><00:10:23.580><c> were</c>

00:10:23.750 --> 00:10:23.760 align:start position:0%
example was really simple and you were
 

00:10:23.760 --> 00:10:27.050 align:start position:0%
example was really simple and you were
maybe<00:10:24.060><c> able</c><00:10:24.480><c> to</c><00:10:24.600><c> follow</c><00:10:24.839><c> it</c><00:10:25.080><c> like</c><00:10:25.380><c> on</c><00:10:25.620><c> the</c><00:10:26.160><c> spot</c>

00:10:27.050 --> 00:10:27.060 align:start position:0%
maybe able to follow it like on the spot
 

00:10:27.060 --> 00:10:30.050 align:start position:0%
maybe able to follow it like on the spot
um<00:10:27.120><c> but</c><00:10:27.300><c> but</c><00:10:27.540><c> like</c><00:10:28.140><c> uh</c>

00:10:30.050 --> 00:10:30.060 align:start position:0%
um but but like uh
 

00:10:30.060 --> 00:10:31.490 align:start position:0%
um but but like uh
um<00:10:30.180><c> when</c><00:10:30.420><c> you're</c><00:10:30.540><c> working</c><00:10:30.779><c> when</c><00:10:31.200><c> you're</c><00:10:31.320><c> a</c>

00:10:31.490 --> 00:10:31.500 align:start position:0%
um when you're working when you're a
 

00:10:31.500 --> 00:10:33.230 align:start position:0%
um when you're working when you're a
developer<00:10:31.920><c> and</c><00:10:32.100><c> working</c><00:10:32.279><c> on</c><00:10:32.519><c> a</c><00:10:32.700><c> like</c><00:10:32.880><c> real</c>

00:10:33.230 --> 00:10:33.240 align:start position:0%
developer and working on a like real
 

00:10:33.240 --> 00:10:35.570 align:start position:0%
developer and working on a like real
world<00:10:33.480><c> contract</c><00:10:34.080><c> your</c><00:10:34.680><c> logic</c><00:10:35.100><c> will</c><00:10:35.279><c> be</c><00:10:35.459><c> more</c>

00:10:35.570 --> 00:10:35.580 align:start position:0%
world contract your logic will be more
 

00:10:35.580 --> 00:10:37.910 align:start position:0%
world contract your logic will be more
complex<00:10:35.940><c> so</c><00:10:36.180><c> you</c><00:10:36.420><c> want</c><00:10:36.480><c> to</c><00:10:36.660><c> have</c><00:10:36.779><c> tests</c><00:10:37.320><c> that</c>

00:10:37.910 --> 00:10:37.920 align:start position:0%
complex so you want to have tests that
 

00:10:37.920 --> 00:10:40.009 align:start position:0%
complex so you want to have tests that
ensure<00:10:38.339><c> that</c><00:10:38.700><c> you</c><00:10:39.000><c> can</c>

00:10:40.009 --> 00:10:40.019 align:start position:0%
ensure that you can
 

00:10:40.019 --> 00:10:41.570 align:start position:0%
ensure that you can
um<00:10:40.080><c> actually</c>

00:10:41.570 --> 00:10:41.580 align:start position:0%
um actually
 

00:10:41.580 --> 00:10:44.750 align:start position:0%
um actually
um<00:10:41.940><c> detect</c><00:10:42.600><c> counter</c><00:10:43.080><c> examples</c><00:10:43.500><c> and</c><00:10:43.860><c> achieve</c><00:10:44.640><c> a</c>

00:10:44.750 --> 00:10:44.760 align:start position:0%
um detect counter examples and achieve a
 

00:10:44.760 --> 00:10:47.150 align:start position:0%
um detect counter examples and achieve a
higher<00:10:45.000><c> level</c><00:10:45.060><c> of</c><00:10:45.300><c> confidence</c><00:10:45.600><c> so</c><00:10:46.440><c> we</c><00:10:46.860><c> are</c><00:10:46.980><c> now</c>

00:10:47.150 --> 00:10:47.160 align:start position:0%
higher level of confidence so we are now
 

00:10:47.160 --> 00:10:49.190 align:start position:0%
higher level of confidence so we are now
looking<00:10:47.519><c> at</c><00:10:48.180><c> the</c>

00:10:49.190 --> 00:10:49.200 align:start position:0%
looking at the
 

00:10:49.200 --> 00:10:52.430 align:start position:0%
looking at the
um<00:10:49.620><c> at</c><00:10:50.220><c> a</c><00:10:50.399><c> property</c><00:10:51.060><c> test</c><00:10:51.300><c> so</c>

00:10:52.430 --> 00:10:52.440 align:start position:0%
um at a property test so
 

00:10:52.440 --> 00:10:54.350 align:start position:0%
um at a property test so
um that<00:10:52.800><c> is</c><00:10:52.980><c> basically</c><00:10:53.519><c> just</c><00:10:53.820><c> like</c><00:10:54.000><c> a</c><00:10:54.240><c> unit</c>

00:10:54.350 --> 00:10:54.360 align:start position:0%
um that is basically just like a unit
 

00:10:54.360 --> 00:10:55.670 align:start position:0%
um that is basically just like a unit
test

00:10:55.670 --> 00:10:55.680 align:start position:0%
test
 

00:10:55.680 --> 00:10:57.889 align:start position:0%
test
um but<00:10:55.920><c> it</c><00:10:56.040><c> has</c><00:10:56.220><c> parameters</c><00:10:56.820><c> parameters</c><00:10:57.660><c> to</c>

00:10:57.889 --> 00:10:57.899 align:start position:0%
um but it has parameters parameters to
 

00:10:57.899 --> 00:11:00.710 align:start position:0%
um but it has parameters parameters to
it<00:10:58.019><c> so</c><00:10:58.740><c> it</c><00:10:58.980><c> has</c><00:10:59.100><c> two</c><00:10:59.339><c> parameters</c><00:10:59.940><c> shares</c><00:11:00.600><c> per</c>

00:11:00.710 --> 00:11:00.720 align:start position:0%
it so it has two parameters shares per
 

00:11:00.720 --> 00:11:04.250 align:start position:0%
it so it has two parameters shares per
asset<00:11:01.079><c> which</c><00:11:01.500><c> should</c><00:11:01.920><c> just</c><00:11:02.160><c> uh</c><00:11:03.000><c> it's</c><00:11:03.480><c> just</c><00:11:03.660><c> the</c>

00:11:04.250 --> 00:11:04.260 align:start position:0%
asset which should just uh it's just the
 

00:11:04.260 --> 00:11:06.530 align:start position:0%
asset which should just uh it's just the
current<00:11:04.380><c> exchange</c><00:11:04.860><c> rate</c><00:11:05.040><c> and</c><00:11:05.880><c> it</c><00:11:06.120><c> has</c><00:11:06.300><c> another</c>

00:11:06.530 --> 00:11:06.540 align:start position:0%
current exchange rate and it has another
 

00:11:06.540 --> 00:11:09.350 align:start position:0%
current exchange rate and it has another
very<00:11:06.899><c> in</c><00:11:07.320><c> another</c><00:11:07.620><c> parameter</c><00:11:08.160><c> assets</c><00:11:08.579><c> and</c>

00:11:09.350 --> 00:11:09.360 align:start position:0%
very in another parameter assets and
 

00:11:09.360 --> 00:11:11.509 align:start position:0%
very in another parameter assets and
when<00:11:09.480><c> this</c><00:11:09.720><c> test</c><00:11:09.899><c> is</c><00:11:10.140><c> run</c>

00:11:11.509 --> 00:11:11.519 align:start position:0%
when this test is run
 

00:11:11.519 --> 00:11:15.230 align:start position:0%
when this test is run
um<00:11:11.660><c> uh</c><00:11:12.660><c> Foundry</c><00:11:13.519><c> by</c><00:11:14.519><c> the</c><00:11:14.760><c> way</c><00:11:14.820><c> that's</c><00:11:15.060><c> a</c>

00:11:15.230 --> 00:11:15.240 align:start position:0%
um uh Foundry by the way that's a
 

00:11:15.240 --> 00:11:17.090 align:start position:0%
um uh Foundry by the way that's a
Foundry<00:11:15.540><c> test</c><00:11:15.720><c> I</c><00:11:15.959><c> don't</c><00:11:16.019><c> know</c><00:11:16.140><c> if</c><00:11:16.200><c> I</c><00:11:16.440><c> have</c><00:11:16.620><c> said</c>

00:11:17.090 --> 00:11:17.100 align:start position:0%
Foundry test I don't know if I have said
 

00:11:17.100 --> 00:11:18.350 align:start position:0%
Foundry test I don't know if I have said
that

00:11:18.350 --> 00:11:18.360 align:start position:0%
that
 

00:11:18.360 --> 00:11:21.230 align:start position:0%
that
um

00:11:21.230 --> 00:11:21.240 align:start position:0%
 
 

00:11:21.240 --> 00:11:24.110 align:start position:0%
 
so<00:11:21.660><c> and</c><00:11:21.839><c> when</c><00:11:22.019><c> Foundry</c><00:11:22.440><c> wants</c><00:11:22.860><c> this</c><00:11:23.040><c> test</c><00:11:23.220><c> it</c>

00:11:24.110 --> 00:11:24.120 align:start position:0%
so and when Foundry wants this test it
 

00:11:24.120 --> 00:11:27.769 align:start position:0%
so and when Foundry wants this test it
will<00:11:24.420><c> like</c><00:11:24.959><c> insert</c><00:11:25.800><c> call</c><00:11:26.100><c> this</c><00:11:26.339><c> test</c><00:11:26.579><c> with</c><00:11:26.880><c> a</c>

00:11:27.769 --> 00:11:27.779 align:start position:0%
will like insert call this test with a
 

00:11:27.779 --> 00:11:30.290 align:start position:0%
will like insert call this test with a
bunch<00:11:28.200><c> of</c><00:11:28.440><c> random</c><00:11:28.860><c> inputs</c>

00:11:30.290 --> 00:11:30.300 align:start position:0%
bunch of random inputs
 

00:11:30.300 --> 00:11:33.949 align:start position:0%
bunch of random inputs
um<00:11:30.360><c> like</c><00:11:30.959><c> uh</c><00:11:32.399><c> and</c><00:11:32.820><c> that's</c><00:11:32.940><c> the</c><00:11:33.180><c> benefit</c><00:11:33.360><c> of</c><00:11:33.839><c> a</c>

00:11:33.949 --> 00:11:33.959 align:start position:0%
um like uh and that's the benefit of a
 

00:11:33.959 --> 00:11:36.230 align:start position:0%
um like uh and that's the benefit of a
unit<00:11:34.200><c> test</c><00:11:34.500><c> when</c><00:11:34.740><c> you</c><00:11:34.860><c> have</c><00:11:34.980><c> a</c><00:11:35.100><c> unit</c><00:11:35.220><c> test</c><00:11:35.519><c> and</c>

00:11:36.230 --> 00:11:36.240 align:start position:0%
unit test when you have a unit test and
 

00:11:36.240 --> 00:11:38.150 align:start position:0%
unit test when you have a unit test and
you<00:11:36.600><c> want</c><00:11:36.779><c> to</c><00:11:36.899><c> detect</c><00:11:37.140><c> such</c><00:11:37.320><c> routing</c><00:11:37.860><c> error</c>

00:11:38.150 --> 00:11:38.160 align:start position:0%
you want to detect such routing error
 

00:11:38.160 --> 00:11:40.850 align:start position:0%
you want to detect such routing error
you<00:11:38.700><c> basically</c><00:11:39.000><c> need</c><00:11:39.540><c> to</c><00:11:39.660><c> be</c><00:11:39.779><c> lucky</c><00:11:40.079><c> and</c><00:11:40.560><c> like</c>

00:11:40.850 --> 00:11:40.860 align:start position:0%
you basically need to be lucky and like
 

00:11:40.860 --> 00:11:42.590 align:start position:0%
you basically need to be lucky and like
put<00:11:41.100><c> the</c><00:11:41.339><c> right</c><00:11:41.459><c> numbers</c><00:11:41.700><c> into</c><00:11:42.000><c> the</c><00:11:42.180><c> unit</c><00:11:42.300><c> test</c>

00:11:42.590 --> 00:11:42.600 align:start position:0%
put the right numbers into the unit test
 

00:11:42.600 --> 00:11:45.110 align:start position:0%
put the right numbers into the unit test
and<00:11:42.839><c> guess</c><00:11:43.019><c> the</c><00:11:43.260><c> counter</c><00:11:43.620><c> example</c><00:11:44.100><c> like</c><00:11:44.760><c> with</c>

00:11:45.110 --> 00:11:45.120 align:start position:0%
and guess the counter example like with
 

00:11:45.120 --> 00:11:47.150 align:start position:0%
and guess the counter example like with
this<00:11:45.480><c> Foundry</c><00:11:45.839><c> test</c><00:11:46.079><c> Foundry</c><00:11:46.740><c> does</c><00:11:46.920><c> a</c>

00:11:47.150 --> 00:11:47.160 align:start position:0%
this Foundry test Foundry does a
 

00:11:47.160 --> 00:11:49.370 align:start position:0%
this Foundry test Foundry does a
guessing<00:11:47.459><c> for</c><00:11:47.640><c> you</c><00:11:47.760><c> and</c><00:11:47.940><c> can</c><00:11:48.360><c> it</c><00:11:48.540><c> do</c><00:11:49.140><c> much</c>

00:11:49.370 --> 00:11:49.380 align:start position:0%
guessing for you and can it do much
 

00:11:49.380 --> 00:11:51.829 align:start position:0%
guessing for you and can it do much
quicker<00:11:49.800><c> than</c><00:11:49.980><c> you</c><00:11:50.160><c> ever</c><00:11:50.459><c> could</c><00:11:50.700><c> like</c><00:11:51.300><c> it</c><00:11:51.600><c> can</c>

00:11:51.829 --> 00:11:51.839 align:start position:0%
quicker than you ever could like it can
 

00:11:51.839 --> 00:11:54.530 align:start position:0%
quicker than you ever could like it can
one<00:11:52.380><c> like</c><00:11:52.620><c> 1000</c><00:11:53.339><c> samples</c><00:11:53.700><c> or</c><00:11:54.000><c> two</c><00:11:54.240><c> thousand</c>

00:11:54.530 --> 00:11:54.540 align:start position:0%
one like 1000 samples or two thousand
 

00:11:54.540 --> 00:11:56.509 align:start position:0%
one like 1000 samples or two thousand
two<00:11:54.839><c> thousand</c><00:11:55.200><c> samples</c><00:11:55.620><c> in</c><00:11:56.100><c> a</c><00:11:56.279><c> couple</c><00:11:56.399><c> of</c>

00:11:56.509 --> 00:11:56.519 align:start position:0%
two thousand samples in a couple of
 

00:11:56.519 --> 00:11:58.310 align:start position:0%
two thousand samples in a couple of
milliseconds

00:11:58.310 --> 00:11:58.320 align:start position:0%
milliseconds
 

00:11:58.320 --> 00:12:01.610 align:start position:0%
milliseconds
um<00:11:58.920><c> so</c><00:11:59.519><c> and</c><00:11:59.700><c> I</c><00:12:00.060><c> want</c><00:12:00.300><c> now</c><00:12:00.660><c> to</c><00:12:01.019><c> have</c><00:12:01.200><c> you</c><00:12:01.320><c> a</c><00:12:01.500><c> look</c>

00:12:01.610 --> 00:12:01.620 align:start position:0%
um so and I want now to have you a look
 

00:12:01.620 --> 00:12:06.470 align:start position:0%
um so and I want now to have you a look
at<00:12:01.980><c> line</c><00:12:02.160><c> 14</c><00:12:02.760><c> and</c><00:12:03.600><c> 15</c><00:12:04.040><c> and</c><00:12:05.040><c> see</c><00:12:05.880><c> that</c><00:12:06.240><c> it</c>

00:12:06.470 --> 00:12:06.480 align:start position:0%
at line 14 and 15 and see that it
 

00:12:06.480 --> 00:12:09.590 align:start position:0%
at line 14 and 15 and see that it
resembles<00:12:07.200><c> the</c><00:12:07.560><c> property</c><00:12:08.040><c> that</c><00:12:09.000><c> we</c><00:12:09.180><c> specified</c>

00:12:09.590 --> 00:12:09.600 align:start position:0%
resembles the property that we specified
 

00:12:09.600 --> 00:12:11.690 align:start position:0%
resembles the property that we specified
above<00:12:10.200><c> so</c><00:12:10.500><c> I</c><00:12:10.680><c> hope</c><00:12:10.860><c> that</c><00:12:11.040><c> you</c><00:12:11.160><c> can</c><00:12:11.279><c> see</c><00:12:11.399><c> in</c><00:12:11.519><c> line</c>

00:12:11.690 --> 00:12:11.700 align:start position:0%
above so I hope that you can see in line
 

00:12:11.700 --> 00:12:14.630 align:start position:0%
above so I hope that you can see in line
14<00:12:11.940><c> that</c><00:12:12.660><c> we</c><00:12:12.839><c> are</c><00:12:13.019><c> like</c><00:12:13.200><c> executing</c><00:12:13.920><c> a</c><00:12:14.160><c> deposit</c>

00:12:14.630 --> 00:12:14.640 align:start position:0%
14 that we are like executing a deposit
 

00:12:14.640 --> 00:12:17.269 align:start position:0%
14 that we are like executing a deposit
function<00:12:14.940><c> and</c><00:12:15.660><c> in</c><00:12:15.839><c> the</c><00:12:15.959><c> same</c><00:12:16.079><c> transaction</c><00:12:16.620><c> we</c>

00:12:17.269 --> 00:12:17.279 align:start position:0%
function and in the same transaction we
 

00:12:17.279 --> 00:12:19.910 align:start position:0%
function and in the same transaction we
are<00:12:17.459><c> executing</c><00:12:18.120><c> the</c><00:12:18.240><c> redeem</c><00:12:18.720><c> function</c><00:12:19.079><c> and</c>

00:12:19.910 --> 00:12:19.920 align:start position:0%
are executing the redeem function and
 

00:12:19.920 --> 00:12:21.530 align:start position:0%
are executing the redeem function and
like<00:12:20.160><c> that</c><00:12:20.339><c> is</c><00:12:20.519><c> exactly</c><00:12:20.820><c> what</c><00:12:21.000><c> the</c><00:12:21.240><c> property</c>

00:12:21.530 --> 00:12:21.540 align:start position:0%
like that is exactly what the property
 

00:12:21.540 --> 00:12:24.829 align:start position:0%
like that is exactly what the property
is<00:12:21.660><c> above</c><00:12:21.980><c> uh</c><00:12:22.980><c> what</c><00:12:23.100><c> the</c><00:12:23.279><c> property</c><00:12:23.519><c> above</c><00:12:23.820><c> says</c>

00:12:24.829 --> 00:12:24.839 align:start position:0%
is above uh what the property above says
 

00:12:24.839 --> 00:12:26.690 align:start position:0%
is above uh what the property above says
so<00:12:25.380><c> and</c><00:12:25.560><c> then</c><00:12:25.740><c> then</c><00:12:25.980><c> there's</c><00:12:26.399><c> some</c>

00:12:26.690 --> 00:12:26.700 align:start position:0%
so and then then there's some
 

00:12:26.700 --> 00:12:28.790 align:start position:0%
so and then then there's some
boilerplate<00:12:27.360><c> code</c><00:12:27.480><c> to</c><00:12:27.720><c> to</c><00:12:27.959><c> that</c><00:12:28.200><c> test</c><00:12:28.380><c> as</c><00:12:28.620><c> well</c>

00:12:28.790 --> 00:12:28.800 align:start position:0%
boilerplate code to to that test as well
 

00:12:28.800 --> 00:12:32.210 align:start position:0%
boilerplate code to to that test as well
uh<00:12:29.640><c> that's</c><00:12:29.820><c> like</c><00:12:30.240><c> it's</c><00:12:30.480><c> not</c><00:12:31.019><c> like</c><00:12:31.380><c> mandatory</c>

00:12:32.210 --> 00:12:32.220 align:start position:0%
uh that's like it's not like mandatory
 

00:12:32.220 --> 00:12:34.190 align:start position:0%
uh that's like it's not like mandatory
to<00:12:32.399><c> understand</c><00:12:32.579><c> but</c><00:12:33.300><c> like</c><00:12:33.600><c> if</c><00:12:33.720><c> you</c><00:12:33.839><c> look</c><00:12:33.959><c> at</c>

00:12:34.190 --> 00:12:34.200 align:start position:0%
to understand but like if you look at
 

00:12:34.200 --> 00:12:37.130 align:start position:0%
to understand but like if you look at
lines<00:12:34.620><c> two</c><00:12:35.160><c> to</c><00:12:35.399><c> line</c><00:12:35.579><c> sevens</c><00:12:36.240><c> uh</c><00:12:36.779><c> to</c><00:12:36.899><c> line</c>

00:12:37.130 --> 00:12:37.140 align:start position:0%
lines two to line sevens uh to line
 

00:12:37.140 --> 00:12:39.350 align:start position:0%
lines two to line sevens uh to line
seven<00:12:37.380><c> these</c><00:12:38.279><c> are</c><00:12:38.399><c> just</c><00:12:38.579><c> some</c><00:12:38.880><c> assumptions</c>

00:12:39.350 --> 00:12:39.360 align:start position:0%
seven these are just some assumptions
 

00:12:39.360 --> 00:12:43.370 align:start position:0%
seven these are just some assumptions
that<00:12:39.600><c> I</c><00:12:39.720><c> make</c><00:12:39.899><c> over</c><00:12:40.260><c> the</c><00:12:40.620><c> inputs</c><00:12:41.660><c> and</c><00:12:42.660><c> I</c><00:12:43.079><c> put</c>

00:12:43.370 --> 00:12:43.380 align:start position:0%
that I make over the inputs and I put
 

00:12:43.380 --> 00:12:45.290 align:start position:0%
that I make over the inputs and I put
these<00:12:43.620><c> assumptions</c><00:12:44.040><c> there</c><00:12:44.459><c> just</c><00:12:44.760><c> to</c><00:12:45.000><c> avoid</c>

00:12:45.290 --> 00:12:45.300 align:start position:0%
these assumptions there just to avoid
 

00:12:45.300 --> 00:12:47.090 align:start position:0%
these assumptions there just to avoid
arithmetic<00:12:46.019><c> overflow</c><00:12:46.440><c> and</c><00:12:46.560><c> arithmetic</c>

00:12:47.090 --> 00:12:47.100 align:start position:0%
arithmetic overflow and arithmetic
 

00:12:47.100 --> 00:12:49.370 align:start position:0%
arithmetic overflow and arithmetic
underflow<00:12:47.700><c> because</c><00:12:48.120><c> if</c><00:12:48.420><c> I</c><00:12:48.660><c> went</c><00:12:48.779><c> into</c><00:12:49.019><c> such</c><00:12:49.260><c> a</c>

00:12:49.370 --> 00:12:49.380 align:start position:0%
underflow because if I went into such a
 

00:12:49.380 --> 00:12:51.230 align:start position:0%
underflow because if I went into such a
situation<00:12:49.740><c> my</c><00:12:50.040><c> test</c><00:12:50.220><c> would</c><00:12:50.519><c> simply</c><00:12:50.760><c> revert</c>

00:12:51.230 --> 00:12:51.240 align:start position:0%
situation my test would simply revert
 

00:12:51.240 --> 00:12:54.290 align:start position:0%
situation my test would simply revert
and<00:12:51.720><c> I</c><00:12:51.839><c> I</c><00:12:52.079><c> only</c><00:12:52.380><c> want</c><00:12:52.620><c> to</c><00:12:52.740><c> execute</c><00:12:53.160><c> like</c><00:12:53.399><c> uh</c><00:12:54.060><c> the</c>

00:12:54.290 --> 00:12:54.300 align:start position:0%
and I I only want to execute like uh the
 

00:12:54.300 --> 00:12:56.930 align:start position:0%
and I I only want to execute like uh the
happy<00:12:54.420><c> path</c><00:12:54.779><c> with</c><00:12:55.320><c> this</c><00:12:55.500><c> test</c>

00:12:56.930 --> 00:12:56.940 align:start position:0%
happy path with this test
 

00:12:56.940 --> 00:12:59.389 align:start position:0%
happy path with this test
um and<00:12:57.240><c> then</c><00:12:57.360><c> like</c><00:12:57.839><c> line</c><00:12:58.139><c> eight</c><00:12:58.500><c> to</c><00:12:58.860><c> line</c><00:12:59.100><c> 12</c>

00:12:59.389 --> 00:12:59.399 align:start position:0%
um and then like line eight to line 12
 

00:12:59.399 --> 00:13:01.790 align:start position:0%
um and then like line eight to line 12
is<00:12:59.760><c> just</c><00:12:59.940><c> a</c><00:13:00.120><c> basic</c><00:13:00.420><c> test</c><00:13:00.600><c> setup</c><00:13:01.019><c> so</c><00:13:01.320><c> that</c><00:13:01.560><c> I</c>

00:13:01.790 --> 00:13:01.800 align:start position:0%
is just a basic test setup so that I
 

00:13:01.800 --> 00:13:04.009 align:start position:0%
is just a basic test setup so that I
that<00:13:02.160><c> my</c><00:13:02.339><c> contract</c><00:13:02.579><c> is</c><00:13:02.760><c> in</c><00:13:02.940><c> the</c><00:13:03.120><c> state</c><00:13:03.240><c> that</c><00:13:03.779><c> it</c>

00:13:04.009 --> 00:13:04.019 align:start position:0%
that my contract is in the state that it
 

00:13:04.019 --> 00:13:05.690 align:start position:0%
that my contract is in the state that it
can<00:13:04.200><c> actually</c><00:13:04.380><c> fulfill</c><00:13:05.100><c> the</c><00:13:05.279><c> transfer</c>

00:13:05.690 --> 00:13:05.700 align:start position:0%
can actually fulfill the transfer
 

00:13:05.700 --> 00:13:09.769 align:start position:0%
can actually fulfill the transfer
functions<00:13:06.180><c> that</c><00:13:06.839><c> I'm</c><00:13:07.019><c> calling</c><00:13:07.380><c> in</c><00:13:07.500><c> line</c><00:13:07.620><c> 14.</c>

00:13:09.769 --> 00:13:09.779 align:start position:0%
functions that I'm calling in line 14.
 

00:13:09.779 --> 00:13:11.449 align:start position:0%
functions that I'm calling in line 14.
so

00:13:11.449 --> 00:13:11.459 align:start position:0%
so
 

00:13:11.459 --> 00:13:14.210 align:start position:0%
so
um

00:13:14.210 --> 00:13:14.220 align:start position:0%
 
 

00:13:14.220 --> 00:13:16.610 align:start position:0%
 
fuzzing<00:13:15.120><c> is</c><00:13:15.360><c> good</c><00:13:15.540><c> and</c><00:13:15.899><c> you</c><00:13:16.079><c> should</c><00:13:16.380><c> actually</c>

00:13:16.610 --> 00:13:16.620 align:start position:0%
fuzzing is good and you should actually
 

00:13:16.620 --> 00:13:18.769 align:start position:0%
fuzzing is good and you should actually
you<00:13:17.279><c> should</c><00:13:17.399><c> do</c><00:13:17.700><c> it</c><00:13:17.880><c> when</c><00:13:18.120><c> you</c><00:13:18.300><c> test</c><00:13:18.480><c> for</c>

00:13:18.769 --> 00:13:18.779 align:start position:0%
you should do it when you test for
 

00:13:18.779 --> 00:13:21.710 align:start position:0%
you should do it when you test for
rounding<00:13:19.260><c> errors</c><00:13:19.560><c> but</c><00:13:19.920><c> like</c><00:13:20.639><c> fuzzing</c><00:13:21.300><c> is</c><00:13:21.540><c> not</c>

00:13:21.710 --> 00:13:21.720 align:start position:0%
rounding errors but like fuzzing is not
 

00:13:21.720 --> 00:13:24.710 align:start position:0%
rounding errors but like fuzzing is not
enough<00:13:22.019><c> that's</c><00:13:22.620><c> the</c><00:13:23.040><c> uh</c><00:13:23.880><c> the</c><00:13:24.300><c> sad</c><00:13:24.480><c> message</c>

00:13:24.710 --> 00:13:24.720 align:start position:0%
enough that's the uh the sad message
 

00:13:24.720 --> 00:13:27.710 align:start position:0%
enough that's the uh the sad message
here<00:13:25.019><c> like</c><00:13:25.740><c> the</c><00:13:26.040><c> third</c><00:13:26.220><c> example</c><00:13:26.639><c> from</c><00:13:27.060><c> the</c><00:13:27.600><c> um</c>

00:13:27.710 --> 00:13:27.720 align:start position:0%
here like the third example from the um
 

00:13:27.720 --> 00:13:30.829 align:start position:0%
here like the third example from the um
from<00:13:28.079><c> the</c><00:13:28.380><c> first</c><00:13:28.860><c> slide</c><00:13:29.220><c> that</c><00:13:29.459><c> I</c><00:13:29.579><c> showed</c><00:13:29.880><c> you</c>

00:13:30.829 --> 00:13:30.839 align:start position:0%
from the first slide that I showed you
 

00:13:30.839 --> 00:13:32.329 align:start position:0%
from the first slide that I showed you
um

00:13:32.329 --> 00:13:32.339 align:start position:0%
um
 

00:13:32.339 --> 00:13:35.269 align:start position:0%
um
this<00:13:33.240><c> example</c><00:13:33.899><c> it</c><00:13:34.500><c> was</c>

00:13:35.269 --> 00:13:35.279 align:start position:0%
this example it was
 

00:13:35.279 --> 00:13:41.389 align:start position:0%
this example it was
um<00:13:35.339><c> the</c><00:13:36.180><c> uh</c><00:13:36.980><c> Stables</c><00:13:37.980><c> stable</c><00:13:38.899><c> swap</c><00:13:39.899><c> contract</c>

00:13:41.389 --> 00:13:41.399 align:start position:0%
um the uh Stables stable swap contract
 

00:13:41.399 --> 00:13:42.230 align:start position:0%
um the uh Stables stable swap contract
um

00:13:42.230 --> 00:13:42.240 align:start position:0%
um
 

00:13:42.240 --> 00:13:44.990 align:start position:0%
um
uh<00:13:43.019><c> suffered</c><00:13:43.560><c> from</c><00:13:44.040><c> this</c><00:13:44.339><c> rounding</c><00:13:44.760><c> Direction</c>

00:13:44.990 --> 00:13:45.000 align:start position:0%
uh suffered from this rounding Direction
 

00:13:45.000 --> 00:13:48.710 align:start position:0%
uh suffered from this rounding Direction
vinyl<00:13:45.720><c> ability</c><00:13:46.339><c> although</c><00:13:47.339><c> it</c><00:13:48.060><c> was</c><00:13:48.240><c> heavily</c>

00:13:48.710 --> 00:13:48.720 align:start position:0%
vinyl ability although it was heavily
 

00:13:48.720 --> 00:13:51.410 align:start position:0%
vinyl ability although it was heavily
fast<00:13:48.959><c> and</c><00:13:49.800><c> like</c><00:13:50.100><c> this</c><00:13:50.399><c> excerpt</c><00:13:50.820><c> that</c><00:13:51.180><c> you</c><00:13:51.300><c> see</c>

00:13:51.410 --> 00:13:51.420 align:start position:0%
fast and like this excerpt that you see
 

00:13:51.420 --> 00:13:55.069 align:start position:0%
fast and like this excerpt that you see
here<00:13:51.720><c> is</c><00:13:52.500><c> like</c><00:13:52.740><c> from</c><00:13:52.980><c> the</c><00:13:53.160><c> blog</c><00:13:53.459><c> post</c><00:13:53.720><c> uh</c><00:13:54.720><c> that</c>

00:13:55.069 --> 00:13:55.079 align:start position:0%
here is like from the blog post uh that
 

00:13:55.079 --> 00:13:57.889 align:start position:0%
here is like from the blog post uh that
explains<00:13:55.980><c> this</c><00:13:56.160><c> vinyl</c><00:13:56.519><c> ability</c><00:13:56.880><c> and</c><00:13:57.240><c> just</c><00:13:57.540><c> let</c>

00:13:57.889 --> 00:13:57.899 align:start position:0%
explains this vinyl ability and just let
 

00:13:57.899 --> 00:14:00.889 align:start position:0%
explains this vinyl ability and just let
it<00:13:58.079><c> read</c><00:13:58.260><c> me</c><00:13:58.500><c> let</c><00:13:59.100><c> it</c><00:13:59.279><c> uh</c><00:14:00.120><c> let</c><00:14:00.360><c> me</c><00:14:00.480><c> read</c><00:14:00.600><c> it</c><00:14:00.779><c> out</c>

00:14:00.889 --> 00:14:00.899 align:start position:0%
it read me let it uh let me read it out
 

00:14:00.899 --> 00:14:03.410 align:start position:0%
it read me let it uh let me read it out
to<00:14:01.079><c> you</c><00:14:01.320><c> so</c><00:14:01.680><c> another</c><00:14:02.279><c> interesting</c><00:14:02.940><c> takeaway</c>

00:14:03.410 --> 00:14:03.420 align:start position:0%
to you so another interesting takeaway
 

00:14:03.420 --> 00:14:05.269 align:start position:0%
to you so another interesting takeaway
is<00:14:03.779><c> that</c><00:14:03.899><c> fuzzing</c><00:14:04.380><c> can</c><00:14:04.500><c> give</c><00:14:04.680><c> you</c><00:14:04.800><c> a</c><00:14:04.980><c> false</c>

00:14:05.269 --> 00:14:05.279 align:start position:0%
is that fuzzing can give you a false
 

00:14:05.279 --> 00:14:07.610 align:start position:0%
is that fuzzing can give you a false
sense<00:14:05.459><c> of</c><00:14:05.639><c> security</c><00:14:06.019><c> prior</c><00:14:07.019><c> to</c><00:14:07.200><c> our</c><00:14:07.380><c> report</c>

00:14:07.610 --> 00:14:07.620 align:start position:0%
sense of security prior to our report
 

00:14:07.620 --> 00:14:09.769 align:start position:0%
sense of security prior to our report
saber<00:14:08.279><c> had</c><00:14:08.459><c> already</c><00:14:08.639><c> deployed</c><00:14:09.120><c> comprehensive</c>

00:14:09.769 --> 00:14:09.779 align:start position:0%
saber had already deployed comprehensive
 

00:14:09.779 --> 00:14:12.290 align:start position:0%
saber had already deployed comprehensive
fuzzles<00:14:10.260><c> for</c><00:14:10.800><c> their</c><00:14:11.040><c> state</c><00:14:11.279><c> for</c><00:14:11.700><c> their</c><00:14:11.940><c> swept</c>

00:14:12.290 --> 00:14:12.300 align:start position:0%
fuzzles for their state for their swept
 

00:14:12.300 --> 00:14:14.329 align:start position:0%
fuzzles for their state for their swept
implementation<00:14:12.720><c> a</c><00:14:13.380><c> researcher</c><00:14:13.860><c> looking</c><00:14:14.100><c> at</c>

00:14:14.329 --> 00:14:14.339 align:start position:0%
implementation a researcher looking at
 

00:14:14.339 --> 00:14:16.370 align:start position:0%
implementation a researcher looking at
the<00:14:14.519><c> code</c><00:14:14.639><c> coverage</c><00:14:15.060><c> alone</c><00:14:15.360><c> might</c><00:14:15.959><c> come</c><00:14:16.200><c> to</c>

00:14:16.370 --> 00:14:16.380 align:start position:0%
the code coverage alone might come to
 

00:14:16.380 --> 00:14:17.810 align:start position:0%
the code coverage alone might come to
the<00:14:16.500><c> incorrect</c><00:14:16.860><c> conclusion</c><00:14:17.279><c> that</c><00:14:17.579><c> such</c>

00:14:17.810 --> 00:14:17.820 align:start position:0%
the incorrect conclusion that such
 

00:14:17.820 --> 00:14:20.150 align:start position:0%
the incorrect conclusion that such
extensively<00:14:18.360><c> fast</c><00:14:18.660><c> code</c><00:14:18.959><c> couldn't</c><00:14:19.620><c> possibly</c>

00:14:20.150 --> 00:14:20.160 align:start position:0%
extensively fast code couldn't possibly
 

00:14:20.160 --> 00:14:22.009 align:start position:0%
extensively fast code couldn't possibly
have<00:14:20.399><c> a</c><00:14:20.579><c> vulnerability</c>

00:14:22.009 --> 00:14:22.019 align:start position:0%
have a vulnerability
 

00:14:22.019 --> 00:14:24.350 align:start position:0%
have a vulnerability
all<00:14:22.560><c> right</c><00:14:22.800><c> so</c><00:14:22.980><c> what</c><00:14:23.339><c> else</c><00:14:23.459><c> can</c><00:14:23.700><c> we</c><00:14:23.880><c> do</c><00:14:24.000><c> to</c>

00:14:24.350 --> 00:14:24.360 align:start position:0%
all right so what else can we do to
 

00:14:24.360 --> 00:14:26.150 align:start position:0%
all right so what else can we do to
increase<00:14:24.480><c> our</c><00:14:24.899><c> confidence</c><00:14:25.260><c> in</c><00:14:25.740><c> in</c><00:14:25.920><c> our</c>

00:14:26.150 --> 00:14:26.160 align:start position:0%
increase our confidence in in our
 

00:14:26.160 --> 00:14:29.269 align:start position:0%
increase our confidence in in our
implementation<00:14:26.720><c> and</c><00:14:27.720><c> like</c><00:14:28.139><c> one</c><00:14:28.860><c> possible</c>

00:14:29.269 --> 00:14:29.279 align:start position:0%
implementation and like one possible
 

00:14:29.279 --> 00:14:32.030 align:start position:0%
implementation and like one possible
solution<00:14:29.700><c> is</c><00:14:30.120><c> that</c><00:14:30.480><c> we</c><00:14:30.720><c> could</c><00:14:30.899><c> use</c><00:14:31.260><c> like</c><00:14:31.800><c> that</c>

00:14:32.030 --> 00:14:32.040 align:start position:0%
solution is that we could use like that
 

00:14:32.040 --> 00:14:34.670 align:start position:0%
solution is that we could use like that
we<00:14:32.279><c> could</c><00:14:32.339><c> use</c><00:14:32.519><c> symbolic</c><00:14:33.060><c> execution</c><00:14:33.660><c> on</c><00:14:34.500><c> top</c>

00:14:34.670 --> 00:14:34.680 align:start position:0%
we could use symbolic execution on top
 

00:14:34.680 --> 00:14:37.250 align:start position:0%
we could use symbolic execution on top
of<00:14:34.860><c> fuzzing</c><00:14:35.339><c> so</c><00:14:35.639><c> if</c><00:14:36.120><c> you</c><00:14:36.240><c> see</c><00:14:36.420><c> that</c><00:14:36.660><c> table</c><00:14:36.899><c> on</c>

00:14:37.250 --> 00:14:37.260 align:start position:0%
of fuzzing so if you see that table on
 

00:14:37.260 --> 00:14:39.530 align:start position:0%
of fuzzing so if you see that table on
the<00:14:37.380><c> left</c><00:14:37.560><c> hand</c><00:14:37.740><c> side</c><00:14:37.980><c> there</c><00:14:38.639><c> are</c><00:14:38.880><c> some</c><00:14:39.060><c> like</c>

00:14:39.530 --> 00:14:39.540 align:start position:0%
the left hand side there are some like
 

00:14:39.540 --> 00:14:43.730 align:start position:0%
the left hand side there are some like
some<00:14:40.500><c> properties</c><00:14:41.120><c> uh</c><00:14:42.120><c> uh</c><00:14:42.899><c> that</c><00:14:43.079><c> that</c><00:14:43.139><c> fuzzing</c>

00:14:43.730 --> 00:14:43.740 align:start position:0%
some properties uh uh that that fuzzing
 

00:14:43.740 --> 00:14:45.410 align:start position:0%
some properties uh uh that that fuzzing
has<00:14:43.920><c> and</c><00:14:44.100><c> on</c><00:14:44.279><c> the</c><00:14:44.399><c> right</c><00:14:44.519><c> hand</c><00:14:44.699><c> side</c><00:14:44.880><c> on</c><00:14:45.300><c> the</c>

00:14:45.410 --> 00:14:45.420 align:start position:0%
has and on the right hand side on the
 

00:14:45.420 --> 00:14:47.269 align:start position:0%
has and on the right hand side on the
white<00:14:45.540><c> column</c><00:14:45.899><c> you</c><00:14:46.019><c> see</c><00:14:46.199><c> some</c><00:14:46.380><c> properties</c><00:14:46.800><c> of</c>

00:14:47.269 --> 00:14:47.279 align:start position:0%
white column you see some properties of
 

00:14:47.279 --> 00:14:50.150 align:start position:0%
white column you see some properties of
symbolic<00:14:48.060><c> execution</c><00:14:48.600><c> but</c><00:14:49.380><c> I</c><00:14:49.740><c> don't</c><00:14:49.860><c> want</c><00:14:50.040><c> to</c>

00:14:50.150 --> 00:14:50.160 align:start position:0%
symbolic execution but I don't want to
 

00:14:50.160 --> 00:14:52.850 align:start position:0%
symbolic execution but I don't want to
want<00:14:50.699><c> you</c><00:14:50.820><c> to</c><00:14:51.000><c> think</c><00:14:51.240><c> about</c><00:14:51.420><c> like</c><00:14:51.959><c> this</c><00:14:52.560><c> slide</c>

00:14:52.850 --> 00:14:52.860 align:start position:0%
want you to think about like this slide
 

00:14:52.860 --> 00:14:56.210 align:start position:0%
want you to think about like this slide
as<00:14:53.220><c> fuzzing</c><00:14:53.940><c> versus</c><00:14:54.740><c> symbolic</c><00:14:55.740><c> execution</c>

00:14:56.210 --> 00:14:56.220 align:start position:0%
as fuzzing versus symbolic execution
 

00:14:56.220 --> 00:14:59.930 align:start position:0%
as fuzzing versus symbolic execution
it's<00:14:57.180><c> like</c><00:14:57.660><c> you</c><00:14:58.440><c> can</c><00:14:58.860><c> get</c><00:14:59.040><c> the</c><00:14:59.279><c> best</c><00:14:59.459><c> of</c><00:14:59.699><c> both</c>

00:14:59.930 --> 00:14:59.940 align:start position:0%
it's like you can get the best of both
 

00:14:59.940 --> 00:15:02.090 align:start position:0%
it's like you can get the best of both
worlds<00:15:00.420><c> if</c><00:15:00.839><c> you</c><00:15:01.019><c> combine</c><00:15:01.380><c> both</c><00:15:01.680><c> of</c><00:15:01.860><c> these</c>

00:15:02.090 --> 00:15:02.100 align:start position:0%
worlds if you combine both of these
 

00:15:02.100 --> 00:15:05.269 align:start position:0%
worlds if you combine both of these
efforts<00:15:02.579><c> and</c><00:15:03.420><c> we</c><00:15:03.839><c> recently</c>

00:15:05.269 --> 00:15:05.279 align:start position:0%
efforts and we recently
 

00:15:05.279 --> 00:15:07.850 align:start position:0%
efforts and we recently
um<00:15:05.339><c> so</c><00:15:05.699><c> we</c><00:15:05.940><c> at</c><00:15:06.300><c> one</c><00:15:06.480><c> time</c><00:15:06.660><c> verification</c><00:15:07.199><c> we</c>

00:15:07.850 --> 00:15:07.860 align:start position:0%
um so we at one time verification we
 

00:15:07.860 --> 00:15:10.250 align:start position:0%
um so we at one time verification we
have<00:15:08.040><c> a</c><00:15:08.279><c> symbolic</c><00:15:08.760><c> execution</c><00:15:09.180><c> engine</c><00:15:09.540><c> that's</c>

00:15:10.250 --> 00:15:10.260 align:start position:0%
have a symbolic execution engine that's
 

00:15:10.260 --> 00:15:12.769 align:start position:0%
have a symbolic execution engine that's
called<00:15:10.560><c> KVM</c><00:15:11.279><c> that's</c><00:15:12.000><c> it's</c><00:15:12.180><c> a</c><00:15:12.360><c> symbolic</c>

00:15:12.769 --> 00:15:12.779 align:start position:0%
called KVM that's it's a symbolic
 

00:15:12.779 --> 00:15:15.350 align:start position:0%
called KVM that's it's a symbolic
execution<00:15:13.139><c> engine</c><00:15:13.380><c> tailored</c><00:15:13.920><c> to</c><00:15:14.040><c> the</c><00:15:14.760><c> um</c><00:15:14.820><c> to</c>

00:15:15.350 --> 00:15:15.360 align:start position:0%
execution engine tailored to the um to
 

00:15:15.360 --> 00:15:18.110 align:start position:0%
execution engine tailored to the um to
to<00:15:15.480><c> the</c><00:15:15.720><c> ethereum</c><00:15:16.199><c> virtual</c><00:15:16.560><c> machine</c><00:15:16.880><c> and</c><00:15:17.880><c> we</c>

00:15:18.110 --> 00:15:18.120 align:start position:0%
to the ethereum virtual machine and we
 

00:15:18.120 --> 00:15:20.150 align:start position:0%
to the ethereum virtual machine and we
recently<00:15:18.600><c> added</c><00:15:18.959><c> a</c><00:15:19.079><c> feature</c><00:15:19.440><c> to</c><00:15:19.620><c> that</c><00:15:19.800><c> that</c>

00:15:20.150 --> 00:15:20.160 align:start position:0%
recently added a feature to that that
 

00:15:20.160 --> 00:15:23.930 align:start position:0%
recently added a feature to that that
allows<00:15:20.639><c> you</c><00:15:20.820><c> to</c><00:15:21.959><c> put</c><00:15:22.620><c> Foundry</c><00:15:23.160><c> tests</c><00:15:23.519><c> into</c><00:15:23.639><c> it</c>

00:15:23.930 --> 00:15:23.940 align:start position:0%
allows you to put Foundry tests into it
 

00:15:23.940 --> 00:15:26.389 align:start position:0%
allows you to put Foundry tests into it
and<00:15:24.779><c> instead</c><00:15:25.139><c> of</c><00:15:25.380><c> fuzzing</c><00:15:26.040><c> over</c><00:15:26.160><c> the</c>

00:15:26.389 --> 00:15:26.399 align:start position:0%
and instead of fuzzing over the
 

00:15:26.399 --> 00:15:28.970 align:start position:0%
and instead of fuzzing over the
parameters<00:15:26.940><c> so</c><00:15:27.120><c> instead</c><00:15:27.420><c> of</c><00:15:27.540><c> choosing</c><00:15:28.199><c> random</c>

00:15:28.970 --> 00:15:28.980 align:start position:0%
parameters so instead of choosing random
 

00:15:28.980 --> 00:15:31.850 align:start position:0%
parameters so instead of choosing random
input<00:15:29.399><c> variables</c><00:15:30.000><c> for</c><00:15:30.180><c> the</c><00:15:30.360><c> parameters</c><00:15:30.959><c> and</c>

00:15:31.850 --> 00:15:31.860 align:start position:0%
input variables for the parameters and
 

00:15:31.860 --> 00:15:34.610 align:start position:0%
input variables for the parameters and
we<00:15:32.220><c> do</c><00:15:32.399><c> symbolic</c><00:15:32.940><c> execution</c><00:15:33.420><c> over</c><00:15:33.779><c> the</c><00:15:34.199><c> uh</c>

00:15:34.610 --> 00:15:34.620 align:start position:0%
we do symbolic execution over the uh
 

00:15:34.620 --> 00:15:37.129 align:start position:0%
we do symbolic execution over the uh
over<00:15:34.980><c> the</c><00:15:35.220><c> parameters</c><00:15:35.820><c> and</c><00:15:36.360><c> that</c><00:15:36.480><c> has</c><00:15:36.720><c> like</c>

00:15:37.129 --> 00:15:37.139 align:start position:0%
over the parameters and that has like
 

00:15:37.139 --> 00:15:40.189 align:start position:0%
over the parameters and that has like
different<00:15:37.680><c> trade-offs</c><00:15:38.579><c> so</c>

00:15:40.189 --> 00:15:40.199 align:start position:0%
different trade-offs so
 

00:15:40.199 --> 00:15:43.670 align:start position:0%
different trade-offs so
um<00:15:40.260><c> the</c><00:15:41.160><c> nice</c><00:15:41.279><c> thing</c><00:15:41.579><c> is</c><00:15:41.820><c> that</c><00:15:42.360><c> well</c><00:15:42.720><c> for</c>

00:15:43.670 --> 00:15:43.680 align:start position:0%
um the nice thing is that well for
 

00:15:43.680 --> 00:15:45.949 align:start position:0%
um the nice thing is that well for
Foundry<00:15:44.100><c> and</c><00:15:44.399><c> for</c><00:15:44.639><c> symbolic</c><00:15:45.360><c> execution</c><00:15:45.779><c> with</c>

00:15:45.949 --> 00:15:45.959 align:start position:0%
Foundry and for symbolic execution with
 

00:15:45.959 --> 00:15:48.650 align:start position:0%
Foundry and for symbolic execution with
the<00:15:46.139><c> evm</c><00:15:46.860><c> you</c><00:15:47.279><c> get</c><00:15:47.459><c> to</c><00:15:47.639><c> specify</c><00:15:48.120><c> your</c><00:15:48.360><c> tests</c>

00:15:48.650 --> 00:15:48.660 align:start position:0%
the evm you get to specify your tests
 

00:15:48.660 --> 00:15:50.810 align:start position:0%
the evm you get to specify your tests
and<00:15:48.899><c> your</c><00:15:49.079><c> specifications</c><00:15:49.620><c> in</c><00:15:50.399><c> Foundry</c>

00:15:50.810 --> 00:15:50.820 align:start position:0%
and your specifications in Foundry
 

00:15:50.820 --> 00:15:54.230 align:start position:0%
and your specifications in Foundry
itself<00:15:51.440><c> in</c><00:15:52.440><c> solidity</c><00:15:52.920><c> itself</c><00:15:53.279><c> sorry</c>

00:15:54.230 --> 00:15:54.240 align:start position:0%
itself in solidity itself sorry
 

00:15:54.240 --> 00:15:57.230 align:start position:0%
itself in solidity itself sorry
uh<00:15:54.839><c> so</c><00:15:55.079><c> that's</c><00:15:55.320><c> that's</c><00:15:55.560><c> like</c><00:15:55.860><c> easier</c><00:15:56.339><c> than</c><00:15:57.120><c> um</c>

00:15:57.230 --> 00:15:57.240 align:start position:0%
uh so that's that's like easier than um
 

00:15:57.240 --> 00:16:00.710 align:start position:0%
uh so that's that's like easier than um
than<00:15:57.779><c> having</c><00:15:58.079><c> to</c><00:15:58.620><c> uh</c><00:15:59.339><c> to</c><00:15:59.820><c> to</c><00:15:59.820><c> write</c><00:16:00.240><c> your</c><00:16:00.420><c> tests</c>

00:16:00.710 --> 00:16:00.720 align:start position:0%
than having to uh to to write your tests
 

00:16:00.720 --> 00:16:02.810 align:start position:0%
than having to uh to to write your tests
in<00:16:00.839><c> JavaScript</c><00:16:01.199><c> or</c><00:16:01.440><c> typescript</c><00:16:01.860><c> developers</c>

00:16:02.810 --> 00:16:02.820 align:start position:0%
in JavaScript or typescript developers
 

00:16:02.820 --> 00:16:04.970 align:start position:0%
in JavaScript or typescript developers
like<00:16:03.120><c> Foundry</c><00:16:03.720><c> especially</c><00:16:04.139><c> because</c><00:16:04.500><c> of</c><00:16:04.800><c> this</c>

00:16:04.970 --> 00:16:04.980 align:start position:0%
like Foundry especially because of this
 

00:16:04.980 --> 00:16:06.530 align:start position:0%
like Foundry especially because of this
property

00:16:06.530 --> 00:16:06.540 align:start position:0%
property
 

00:16:06.540 --> 00:16:07.129 align:start position:0%
property
um

00:16:07.129 --> 00:16:07.139 align:start position:0%
um
 

00:16:07.139 --> 00:16:09.410 align:start position:0%
um
so<00:16:07.620><c> but</c><00:16:07.800><c> that</c><00:16:07.980><c> also</c><00:16:08.399><c> means</c>

00:16:09.410 --> 00:16:09.420 align:start position:0%
so but that also means
 

00:16:09.420 --> 00:16:11.329 align:start position:0%
so but that also means
like<00:16:09.779><c> when</c><00:16:09.899><c> it</c><00:16:10.079><c> comes</c><00:16:10.199><c> to</c><00:16:10.380><c> Foundry</c><00:16:10.860><c> that</c><00:16:11.100><c> you</c>

00:16:11.329 --> 00:16:11.339 align:start position:0%
like when it comes to Foundry that you
 

00:16:11.339 --> 00:16:12.710 align:start position:0%
like when it comes to Foundry that you
are<00:16:11.459><c> somewhat</c><00:16:11.820><c> limited</c><00:16:12.240><c> to</c><00:16:12.420><c> the</c>

00:16:12.710 --> 00:16:12.720 align:start position:0%
are somewhat limited to the
 

00:16:12.720 --> 00:16:15.230 align:start position:0%
are somewhat limited to the
expressiveness<00:16:13.380><c> of</c><00:16:13.680><c> solidity</c><00:16:14.160><c> and</c><00:16:14.880><c> there</c><00:16:15.060><c> are</c>

00:16:15.230 --> 00:16:15.240 align:start position:0%
expressiveness of solidity and there are
 

00:16:15.240 --> 00:16:17.090 align:start position:0%
expressiveness of solidity and there are
a<00:16:15.480><c> bunch</c><00:16:15.660><c> of</c><00:16:15.839><c> like</c>

00:16:17.090 --> 00:16:17.100 align:start position:0%
a bunch of like
 

00:16:17.100 --> 00:16:19.370 align:start position:0%
a bunch of like
um<00:16:17.160><c> safety</c><00:16:17.639><c> properties</c><00:16:18.120><c> that</c><00:16:18.899><c> you</c><00:16:19.139><c> simply</c>

00:16:19.370 --> 00:16:19.380 align:start position:0%
um safety properties that you simply
 

00:16:19.380 --> 00:16:21.829 align:start position:0%
um safety properties that you simply
cannot<00:16:19.740><c> express</c><00:16:20.040><c> in</c><00:16:20.399><c> solidity</c><00:16:20.940><c> and</c><00:16:21.600><c> that's</c>

00:16:21.829 --> 00:16:21.839 align:start position:0%
cannot express in solidity and that's
 

00:16:21.839 --> 00:16:23.870 align:start position:0%
cannot express in solidity and that's
like<00:16:22.079><c> one</c><00:16:22.500><c> advantage</c><00:16:22.980><c> of</c><00:16:23.279><c> this</c><00:16:23.399><c> symbolic</c>

00:16:23.870 --> 00:16:23.880 align:start position:0%
like one advantage of this symbolic
 

00:16:23.880 --> 00:16:25.310 align:start position:0%
like one advantage of this symbolic
execution

00:16:25.310 --> 00:16:25.320 align:start position:0%
execution
 

00:16:25.320 --> 00:16:27.590 align:start position:0%
execution
um<00:16:25.380><c> approach</c><00:16:25.920><c> like</c><00:16:26.699><c> that</c><00:16:27.000><c> you</c><00:16:27.180><c> can</c><00:16:27.360><c> actually</c>

00:16:27.590 --> 00:16:27.600 align:start position:0%
um approach like that you can actually
 

00:16:27.600 --> 00:16:31.069 align:start position:0%
um approach like that you can actually
you<00:16:28.199><c> can</c><00:16:28.320><c> escape</c><00:16:28.620><c> from</c><00:16:29.279><c> from</c><00:16:29.579><c> the</c><00:16:30.000><c> uh</c><00:16:30.540><c> from</c><00:16:30.959><c> the</c>

00:16:31.069 --> 00:16:31.079 align:start position:0%
you can escape from from the uh from the
 

00:16:31.079 --> 00:16:32.990 align:start position:0%
you can escape from from the uh from the
specification<00:16:31.620><c> format</c><00:16:32.160><c> and</c><00:16:32.699><c> you</c><00:16:32.880><c> can</c>

00:16:32.990 --> 00:16:33.000 align:start position:0%
specification format and you can
 

00:16:33.000 --> 00:16:36.170 align:start position:0%
specification format and you can
actually<00:16:33.260><c> use</c><00:16:34.260><c> uh</c><00:16:34.680><c> the</c><00:16:34.920><c> the</c><00:16:35.040><c> K</c><00:16:35.339><c> language</c><00:16:35.639><c> to</c>

00:16:36.170 --> 00:16:36.180 align:start position:0%
actually use uh the the K language to
 

00:16:36.180 --> 00:16:38.449 align:start position:0%
actually use uh the the K language to
specify<00:16:36.660><c> uh</c><00:16:37.380><c> to</c><00:16:37.560><c> gain</c><00:16:37.980><c> additional</c>

00:16:38.449 --> 00:16:38.459 align:start position:0%
specify uh to gain additional
 

00:16:38.459 --> 00:16:40.069 align:start position:0%
specify uh to gain additional
expressiveness<00:16:39.240><c> and</c><00:16:39.480><c> express</c><00:16:39.660><c> more</c>

00:16:40.069 --> 00:16:40.079 align:start position:0%
expressiveness and express more
 

00:16:40.079 --> 00:16:41.629 align:start position:0%
expressiveness and express more
properties

00:16:41.629 --> 00:16:41.639 align:start position:0%
properties
 

00:16:41.639 --> 00:16:43.009 align:start position:0%
properties
um

00:16:43.009 --> 00:16:43.019 align:start position:0%
um
 

00:16:43.019 --> 00:16:46.850 align:start position:0%
um
so<00:16:43.940><c> Foundry</c><00:16:44.940><c> fuzzing</c><00:16:45.600><c> is</c><00:16:45.959><c> extremely</c><00:16:46.560><c> fast</c>

00:16:46.850 --> 00:16:46.860 align:start position:0%
so Foundry fuzzing is extremely fast
 

00:16:46.860 --> 00:16:50.150 align:start position:0%
so Foundry fuzzing is extremely fast
it's<00:16:47.339><c> like</c><00:16:47.519><c> you</c><00:16:48.060><c> can</c><00:16:48.180><c> run</c><00:16:48.779><c> 1</c><00:16:49.440><c> 000</c><00:16:49.500><c> samples</c><00:16:49.920><c> and</c>

00:16:50.150 --> 00:16:50.160 align:start position:0%
it's like you can run 1 000 samples and
 

00:16:50.160 --> 00:16:52.550 align:start position:0%
it's like you can run 1 000 samples and
a<00:16:50.279><c> couple</c><00:16:50.399><c> of</c><00:16:50.519><c> milliseconds</c><00:16:51.240><c> and</c><00:16:52.139><c> that</c><00:16:52.380><c> is</c>

00:16:52.550 --> 00:16:52.560 align:start position:0%
a couple of milliseconds and that is
 

00:16:52.560 --> 00:16:54.470 align:start position:0%
a couple of milliseconds and that is
like<00:16:52.800><c> really</c><00:16:53.040><c> important</c><00:16:53.459><c> for</c><00:16:53.699><c> for</c><00:16:53.940><c> developers</c>

00:16:54.470 --> 00:16:54.480 align:start position:0%
like really important for for developers
 

00:16:54.480 --> 00:16:56.749 align:start position:0%
like really important for for developers
who<00:16:54.660><c> want</c><00:16:54.839><c> to</c><00:16:54.959><c> get</c><00:16:55.019><c> instant</c><00:16:55.380><c> feedback</c>

00:16:56.749 --> 00:16:56.759 align:start position:0%
who want to get instant feedback
 

00:16:56.759 --> 00:16:57.350 align:start position:0%
who want to get instant feedback
um

00:16:57.350 --> 00:16:57.360 align:start position:0%
um
 

00:16:57.360 --> 00:17:00.110 align:start position:0%
um
so<00:16:58.019><c> and</c><00:16:58.380><c> compared</c><00:16:58.860><c> to</c><00:16:58.920><c> that</c><00:16:59.220><c> symbolic</c>

00:17:00.110 --> 00:17:00.120 align:start position:0%
so and compared to that symbolic
 

00:17:00.120 --> 00:17:03.889 align:start position:0%
so and compared to that symbolic
execution<00:17:00.680><c> is</c><00:17:01.680><c> slow</c><00:17:02.040><c> so</c>

00:17:03.889 --> 00:17:03.899 align:start position:0%
execution is slow so
 

00:17:03.899 --> 00:17:06.169 align:start position:0%
execution is slow so
um

00:17:06.169 --> 00:17:06.179 align:start position:0%
 
 

00:17:06.179 --> 00:17:08.270 align:start position:0%
 
um<00:17:06.360><c> and</c><00:17:07.020><c> there's</c><00:17:07.380><c> a</c><00:17:07.559><c> reason</c><00:17:07.679><c> for</c><00:17:07.919><c> that</c><00:17:08.100><c> so</c>

00:17:08.270 --> 00:17:08.280 align:start position:0%
um and there's a reason for that so
 

00:17:08.280 --> 00:17:10.429 align:start position:0%
um and there's a reason for that so
symbolic<00:17:08.819><c> execution</c><00:17:09.240><c> can</c><00:17:09.540><c> can</c><00:17:09.780><c> give</c><00:17:10.020><c> you</c><00:17:10.199><c> much</c>

00:17:10.429 --> 00:17:10.439 align:start position:0%
symbolic execution can can give you much
 

00:17:10.439 --> 00:17:13.370 align:start position:0%
symbolic execution can can give you much
more<00:17:10.740><c> safety</c><00:17:11.400><c> guarantees</c><00:17:11.880><c> than</c><00:17:12.240><c> than</c><00:17:12.839><c> fuzzing</c>

00:17:13.370 --> 00:17:13.380 align:start position:0%
more safety guarantees than than fuzzing
 

00:17:13.380 --> 00:17:16.549 align:start position:0%
more safety guarantees than than fuzzing
can<00:17:13.579><c> but</c><00:17:14.579><c> that</c><00:17:14.699><c> also</c><00:17:15.000><c> means</c><00:17:15.299><c> like</c><00:17:15.480><c> it's</c>

00:17:16.549 --> 00:17:16.559 align:start position:0%
can but that also means like it's
 

00:17:16.559 --> 00:17:18.309 align:start position:0%
can but that also means like it's
it's<00:17:17.699><c> um</c>

00:17:18.309 --> 00:17:18.319 align:start position:0%
it's um
 

00:17:18.319 --> 00:17:20.870 align:start position:0%
it's um
computationally<00:17:19.319><c> much</c><00:17:19.860><c> more</c><00:17:20.100><c> expensive</c><00:17:20.640><c> than</c>

00:17:20.870 --> 00:17:20.880 align:start position:0%
computationally much more expensive than
 

00:17:20.880 --> 00:17:22.429 align:start position:0%
computationally much more expensive than
fuzzing

00:17:22.429 --> 00:17:22.439 align:start position:0%
fuzzing
 

00:17:22.439 --> 00:17:24.829 align:start position:0%
fuzzing
um<00:17:22.500><c> so</c><00:17:23.040><c> it's</c><00:17:23.280><c> slow</c><00:17:23.520><c> but</c><00:17:23.939><c> it's</c><00:17:24.059><c> not</c><00:17:24.299><c> too</c><00:17:24.600><c> slow</c>

00:17:24.829 --> 00:17:24.839 align:start position:0%
um so it's slow but it's not too slow
 

00:17:24.839 --> 00:17:27.350 align:start position:0%
um so it's slow but it's not too slow
like<00:17:25.199><c> uh</c><00:17:25.980><c> it</c><00:17:26.339><c> works</c><00:17:26.579><c> for</c><00:17:26.760><c> example</c><00:17:27.000><c> you</c><00:17:27.240><c> could</c>

00:17:27.350 --> 00:17:27.360 align:start position:0%
like uh it works for example you could
 

00:17:27.360 --> 00:17:30.049 align:start position:0%
like uh it works for example you could
simply<00:17:27.919><c> integrate</c><00:17:28.919><c> it</c><00:17:29.100><c> into</c><00:17:29.400><c> your</c><00:17:29.700><c> CI</c>

00:17:30.049 --> 00:17:30.059 align:start position:0%
simply integrate it into your CI
 

00:17:30.059 --> 00:17:32.750 align:start position:0%
simply integrate it into your CI
Pipeline<00:17:30.660><c> and</c><00:17:31.140><c> let</c><00:17:31.320><c> the</c><00:17:31.980><c> um</c><00:17:31.980><c> let</c><00:17:32.280><c> the</c><00:17:32.400><c> prover</c>

00:17:32.750 --> 00:17:32.760 align:start position:0%
Pipeline and let the um let the prover
 

00:17:32.760 --> 00:17:35.090 align:start position:0%
Pipeline and let the um let the prover
run<00:17:33.120><c> like</c><00:17:33.720><c> on</c><00:17:34.080><c> your</c><00:17:34.200><c> nightly</c><00:17:34.500><c> builds</c><00:17:34.919><c> for</c>

00:17:35.090 --> 00:17:35.100 align:start position:0%
run like on your nightly builds for
 

00:17:35.100 --> 00:17:38.150 align:start position:0%
run like on your nightly builds for
example<00:17:35.419><c> and</c><00:17:36.419><c> like</c><00:17:36.900><c> this</c><00:17:37.320><c> shows</c><00:17:37.740><c> like</c><00:17:37.919><c> the</c>

00:17:38.150 --> 00:17:38.160 align:start position:0%
example and like this shows like the
 

00:17:38.160 --> 00:17:41.870 align:start position:0%
example and like this shows like the
benefit<00:17:38.340><c> of</c><00:17:39.000><c> like</c><00:17:39.620><c> composing</c><00:17:40.620><c> both</c>

00:17:41.870 --> 00:17:41.880 align:start position:0%
benefit of like composing both
 

00:17:41.880 --> 00:17:44.270 align:start position:0%
benefit of like composing both
um<00:17:41.940><c> strategies</c><00:17:42.840><c> like</c><00:17:43.140><c> fuzzing</c><00:17:43.620><c> with</c><00:17:43.740><c> Foundry</c>

00:17:44.270 --> 00:17:44.280 align:start position:0%
um strategies like fuzzing with Foundry
 

00:17:44.280 --> 00:17:47.210 align:start position:0%
um strategies like fuzzing with Foundry
and<00:17:44.940><c> then</c><00:17:45.059><c> symbolic</c><00:17:45.660><c> execution</c><00:17:46.140><c> with</c><00:17:46.799><c> um</c><00:17:46.860><c> with</c>

00:17:47.210 --> 00:17:47.220 align:start position:0%
and then symbolic execution with um with
 

00:17:47.220 --> 00:17:49.549 align:start position:0%
and then symbolic execution with um with
KVM

00:17:49.549 --> 00:17:49.559 align:start position:0%
KVM
 

00:17:49.559 --> 00:17:51.230 align:start position:0%
KVM
um

00:17:51.230 --> 00:17:51.240 align:start position:0%
um
 

00:17:51.240 --> 00:17:53.990 align:start position:0%
um
so

00:17:53.990 --> 00:17:54.000 align:start position:0%
so
 

00:17:54.000 --> 00:17:56.990 align:start position:0%
so
uh

00:17:56.990 --> 00:17:57.000 align:start position:0%
 
 

00:17:57.000 --> 00:17:59.270 align:start position:0%
 
I<00:17:57.660><c> don't</c><00:17:57.780><c> want</c><00:17:57.900><c> to</c><00:17:58.020><c> go</c><00:17:58.200><c> over</c><00:17:58.380><c> every</c><00:17:58.679><c> line</c><00:17:59.039><c> in</c>

00:17:59.270 --> 00:17:59.280 align:start position:0%
I don't want to go over every line in
 

00:17:59.280 --> 00:18:01.070 align:start position:0%
I don't want to go over every line in
this<00:17:59.460><c> table</c><00:17:59.640><c> and</c><00:18:00.120><c> but</c><00:18:00.360><c> I</c><00:18:00.539><c> want</c><00:18:00.660><c> to</c><00:18:00.780><c> talk</c><00:18:00.960><c> about</c>

00:18:01.070 --> 00:18:01.080 align:start position:0%
this table and but I want to talk about
 

00:18:01.080 --> 00:18:03.950 align:start position:0%
this table and but I want to talk about
the<00:18:01.559><c> false</c><00:18:02.400><c> positives</c><00:18:02.880><c> and</c><00:18:03.480><c> the</c><00:18:03.600><c> false</c>

00:18:03.950 --> 00:18:03.960 align:start position:0%
the false positives and the false
 

00:18:03.960 --> 00:18:05.029 align:start position:0%
the false positives and the false
negatives

00:18:05.029 --> 00:18:05.039 align:start position:0%
negatives
 

00:18:05.039 --> 00:18:06.350 align:start position:0%
negatives
so

00:18:06.350 --> 00:18:06.360 align:start position:0%
so
 

00:18:06.360 --> 00:18:09.049 align:start position:0%
so
Foundry<00:18:07.020><c> doesn't</c><00:18:07.260><c> have</c><00:18:07.620><c> false</c><00:18:08.160><c> positives</c><00:18:08.640><c> and</c>

00:18:09.049 --> 00:18:09.059 align:start position:0%
Foundry doesn't have false positives and
 

00:18:09.059 --> 00:18:11.270 align:start position:0%
Foundry doesn't have false positives and
what<00:18:09.299><c> I</c><00:18:09.419><c> mean</c><00:18:09.539><c> by</c><00:18:09.660><c> that</c><00:18:09.900><c> is</c><00:18:10.200><c> when</c><00:18:10.740><c> Foundry</c>

00:18:11.270 --> 00:18:11.280 align:start position:0%
what I mean by that is when Foundry
 

00:18:11.280 --> 00:18:14.630 align:start position:0%
what I mean by that is when Foundry
comes<00:18:12.179><c> up</c><00:18:12.240><c> with</c><00:18:12.419><c> a</c><00:18:12.600><c> counter</c><00:18:12.900><c> example</c><00:18:13.640><c> that</c>

00:18:14.630 --> 00:18:14.640 align:start position:0%
comes up with a counter example that
 

00:18:14.640 --> 00:18:16.850 align:start position:0%
comes up with a counter example that
means<00:18:14.940><c> that</c><00:18:15.240><c> counterexample</c><00:18:16.200><c> really</c><00:18:16.440><c> works</c>

00:18:16.850 --> 00:18:16.860 align:start position:0%
means that counterexample really works
 

00:18:16.860 --> 00:18:19.250 align:start position:0%
means that counterexample really works
it<00:18:17.039><c> breaks</c><00:18:17.400><c> your</c><00:18:17.520><c> code</c><00:18:17.700><c> so</c><00:18:18.600><c> it</c><00:18:18.960><c> doesn't</c><00:18:19.020><c> come</c>

00:18:19.250 --> 00:18:19.260 align:start position:0%
it breaks your code so it doesn't come
 

00:18:19.260 --> 00:18:21.950 align:start position:0%
it breaks your code so it doesn't come
up<00:18:19.440><c> with</c><00:18:19.620><c> a</c><00:18:19.860><c> with</c><00:18:20.580><c> a</c><00:18:20.820><c> counter</c><00:18:21.299><c> example</c><00:18:21.720><c> that</c>

00:18:21.950 --> 00:18:21.960 align:start position:0%
up with a with a counter example that
 

00:18:21.960 --> 00:18:23.690 align:start position:0%
up with a with a counter example that
does<00:18:22.080><c> not</c><00:18:22.200><c> work</c><00:18:22.440><c> your</c><00:18:22.740><c> code</c><00:18:22.919><c> so</c><00:18:23.280><c> there's</c><00:18:23.460><c> no</c>

00:18:23.690 --> 00:18:23.700 align:start position:0%
does not work your code so there's no
 

00:18:23.700 --> 00:18:25.250 align:start position:0%
does not work your code so there's no
false<00:18:24.059><c> positive</c>

00:18:25.250 --> 00:18:25.260 align:start position:0%
false positive
 

00:18:25.260 --> 00:18:29.690 align:start position:0%
false positive
but<00:18:26.179><c> Foundry</c><00:18:27.179><c> has</c><00:18:27.480><c> false</c><00:18:28.380><c> negatives</c><00:18:28.740><c> and</c><00:18:29.460><c> that</c>

00:18:29.690 --> 00:18:29.700 align:start position:0%
but Foundry has false negatives and that
 

00:18:29.700 --> 00:18:31.850 align:start position:0%
but Foundry has false negatives and that
is<00:18:29.820><c> simply</c><00:18:30.179><c> if</c><00:18:30.600><c> Foundry</c><00:18:31.080><c> is</c><00:18:31.260><c> not</c><00:18:31.440><c> able</c><00:18:31.740><c> to</c>

00:18:31.850 --> 00:18:31.860 align:start position:0%
is simply if Foundry is not able to
 

00:18:31.860 --> 00:18:34.610 align:start position:0%
is simply if Foundry is not able to
choose<00:18:32.220><c> the</c><00:18:32.460><c> right</c><00:18:32.640><c> input</c><00:18:33.059><c> variables</c>

00:18:34.610 --> 00:18:34.620 align:start position:0%
choose the right input variables
 

00:18:34.620 --> 00:18:36.770 align:start position:0%
choose the right input variables
um<00:18:34.679><c> that</c><00:18:35.400><c> means</c><00:18:35.640><c> it</c><00:18:35.880><c> fails</c><00:18:36.179><c> to</c><00:18:36.299><c> guess</c><00:18:36.539><c> the</c>

00:18:36.770 --> 00:18:36.780 align:start position:0%
um that means it fails to guess the
 

00:18:36.780 --> 00:18:39.230 align:start position:0%
um that means it fails to guess the
right<00:18:36.960><c> counter</c><00:18:37.440><c> example</c><00:18:37.860><c> and</c><00:18:38.640><c> at</c><00:18:39.000><c> the</c><00:18:39.120><c> end</c>

00:18:39.230 --> 00:18:39.240 align:start position:0%
right counter example and at the end
 

00:18:39.240 --> 00:18:41.630 align:start position:0%
right counter example and at the end
founder<00:18:40.020><c> will</c><00:18:40.140><c> tell</c><00:18:40.380><c> you</c><00:18:40.500><c> that</c><00:18:40.860><c> test</c><00:18:41.160><c> that</c>

00:18:41.630 --> 00:18:41.640 align:start position:0%
founder will tell you that test that
 

00:18:41.640 --> 00:18:44.150 align:start position:0%
founder will tell you that test that
that<00:18:41.820><c> test</c><00:18:42.179><c> actually</c><00:18:42.539><c> passed</c><00:18:43.140><c> and</c><00:18:43.740><c> that</c><00:18:43.919><c> is</c>

00:18:44.150 --> 00:18:44.160 align:start position:0%
that test actually passed and that is
 

00:18:44.160 --> 00:18:46.789 align:start position:0%
that test actually passed and that is
like<00:18:44.520><c> the</c><00:18:45.000><c> false</c><00:18:45.419><c> sense</c><00:18:45.720><c> of</c><00:18:45.900><c> security</c><00:18:46.200><c> that</c>

00:18:46.789 --> 00:18:46.799 align:start position:0%
like the false sense of security that
 

00:18:46.799 --> 00:18:48.049 align:start position:0%
like the false sense of security that
you<00:18:46.919><c> get</c><00:18:47.100><c> from</c>

00:18:48.049 --> 00:18:48.059 align:start position:0%
you get from
 

00:18:48.059 --> 00:18:51.529 align:start position:0%
you get from
um<00:18:48.120><c> using</c><00:18:48.600><c> Foundry</c><00:18:49.080><c> alone</c><00:18:49.460><c> so</c><00:18:50.460><c> if</c><00:18:51.299><c> we</c><00:18:51.419><c> use</c>

00:18:51.529 --> 00:18:51.539 align:start position:0%
um using Foundry alone so if we use
 

00:18:51.539 --> 00:18:54.950 align:start position:0%
um using Foundry alone so if we use
symbolic<00:18:52.020><c> executions</c><00:18:52.860><c> like</c><00:18:53.580><c> we</c><00:18:53.880><c> cover</c><00:18:54.059><c> 100</c><00:18:54.419><c> of</c>

00:18:54.950 --> 00:18:54.960 align:start position:0%
symbolic executions like we cover 100 of
 

00:18:54.960 --> 00:18:56.870 align:start position:0%
symbolic executions like we cover 100 of
the<00:18:55.080><c> input</c><00:18:55.380><c> domain</c><00:18:55.799><c> and</c><00:18:56.100><c> we</c><00:18:56.280><c> will</c><00:18:56.460><c> find</c><00:18:56.700><c> that</c>

00:18:56.870 --> 00:18:56.880 align:start position:0%
the input domain and we will find that
 

00:18:56.880 --> 00:18:59.390 align:start position:0%
the input domain and we will find that
counter<00:18:57.240><c> example</c><00:18:57.600><c> there's</c><00:18:57.780><c> no</c><00:18:58.020><c> matter</c><00:18:58.140><c> what</c>

00:18:59.390 --> 00:18:59.400 align:start position:0%
counter example there's no matter what
 

00:18:59.400 --> 00:19:01.789 align:start position:0%
counter example there's no matter what
um<00:18:59.520><c> so</c><00:18:59.940><c> there</c><00:19:00.240><c> are</c><00:19:00.360><c> no</c><00:19:00.660><c> false</c><00:19:01.080><c> negatives</c><00:19:01.380><c> when</c>

00:19:01.789 --> 00:19:01.799 align:start position:0%
um so there are no false negatives when
 

00:19:01.799 --> 00:19:05.330 align:start position:0%
um so there are no false negatives when
you<00:19:01.980><c> use</c><00:19:02.220><c> uh</c><00:19:02.640><c> when</c><00:19:03.299><c> you</c><00:19:03.480><c> use</c><00:19:03.600><c> kevm</c>

00:19:05.330 --> 00:19:05.340 align:start position:0%
you use uh when you use kevm
 

00:19:05.340 --> 00:19:05.990 align:start position:0%
you use uh when you use kevm
um

00:19:05.990 --> 00:19:06.000 align:start position:0%
um
 

00:19:06.000 --> 00:19:07.610 align:start position:0%
um
then<00:19:06.539><c> there's</c><00:19:06.780><c> a</c><00:19:06.960><c> diff</c><00:19:07.080><c> there's</c><00:19:07.440><c> another</c>

00:19:07.610 --> 00:19:07.620 align:start position:0%
then there's a diff there's another
 

00:19:07.620 --> 00:19:09.350 align:start position:0%
then there's a diff there's another
trade-off<00:19:08.220><c> and</c><00:19:08.460><c> that</c><00:19:08.640><c> is</c><00:19:08.760><c> Foundry</c><00:19:09.240><c> is</c>

00:19:09.350 --> 00:19:09.360 align:start position:0%
trade-off and that is Foundry is
 

00:19:09.360 --> 00:19:11.810 align:start position:0%
trade-off and that is Foundry is
extremely<00:19:09.840><c> easy</c><00:19:10.080><c> to</c><00:19:10.320><c> use</c><00:19:10.500><c> I</c><00:19:11.100><c> I'd</c><00:19:11.280><c> argue</c><00:19:11.700><c> it's</c>

00:19:11.810 --> 00:19:11.820 align:start position:0%
extremely easy to use I I'd argue it's
 

00:19:11.820 --> 00:19:14.270 align:start position:0%
extremely easy to use I I'd argue it's
even<00:19:12.059><c> easier</c><00:19:12.480><c> to</c><00:19:12.720><c> use</c><00:19:12.900><c> than</c><00:19:13.260><c> than</c><00:19:13.559><c> hardhead</c><00:19:14.039><c> or</c>

00:19:14.270 --> 00:19:14.280 align:start position:0%
even easier to use than than hardhead or
 

00:19:14.280 --> 00:19:17.270 align:start position:0%
even easier to use than than hardhead or
or<00:19:14.640><c> truffle</c><00:19:15.299><c> uh</c><00:19:15.900><c> for</c><00:19:16.140><c> testing</c><00:19:16.440><c> because</c><00:19:16.679><c> well</c>

00:19:17.270 --> 00:19:17.280 align:start position:0%
or truffle uh for testing because well
 

00:19:17.280 --> 00:19:19.130 align:start position:0%
or truffle uh for testing because well
the<00:19:17.820><c> developers</c><00:19:18.299><c> the</c><00:19:18.600><c> smart</c><00:19:18.780><c> contract</c>

00:19:19.130 --> 00:19:19.140 align:start position:0%
the developers the smart contract
 

00:19:19.140 --> 00:19:22.310 align:start position:0%
the developers the smart contract
developers<00:19:19.620><c> are</c><00:19:19.860><c> already</c><00:19:20.039><c> familiar</c><00:19:20.760><c> with</c><00:19:22.260><c> um</c>

00:19:22.310 --> 00:19:22.320 align:start position:0%
developers are already familiar with um
 

00:19:22.320 --> 00:19:24.650 align:start position:0%
developers are already familiar with um
with<00:19:22.919><c> solidity</c><00:19:23.640><c> like</c><00:19:23.940><c> the</c><00:19:24.179><c> language</c><00:19:24.299><c> that</c>

00:19:24.650 --> 00:19:24.660 align:start position:0%
with solidity like the language that
 

00:19:24.660 --> 00:19:27.470 align:start position:0%
with solidity like the language that
they<00:19:24.780><c> use</c><00:19:24.960><c> to</c><00:19:25.200><c> write</c><00:19:25.380><c> their</c><00:19:25.620><c> contracts</c><00:19:26.100><c> and</c>

00:19:27.470 --> 00:19:27.480 align:start position:0%
they use to write their contracts and
 

00:19:27.480 --> 00:19:30.130 align:start position:0%
they use to write their contracts and
um<00:19:27.539><c> so</c><00:19:27.840><c> that</c><00:19:28.080><c> makes</c><00:19:28.260><c> foundu</c><00:19:28.980><c> very</c><00:19:29.280><c> easy</c><00:19:29.460><c> to</c><00:19:29.700><c> use</c>

00:19:30.130 --> 00:19:30.140 align:start position:0%
um so that makes foundu very easy to use
 

00:19:30.140 --> 00:19:34.789 align:start position:0%
um so that makes foundu very easy to use
uh<00:19:31.160><c> symbolic</c><00:19:32.160><c> execution</c><00:19:32.640><c> with</c><00:19:33.000><c> KVM</c><00:19:33.600><c> is</c><00:19:33.960><c> is</c><00:19:34.559><c> a</c>

00:19:34.789 --> 00:19:34.799 align:start position:0%
uh symbolic execution with KVM is is a
 

00:19:34.799 --> 00:19:37.370 align:start position:0%
uh symbolic execution with KVM is is a
little<00:19:34.860><c> bit</c><00:19:35.039><c> different</c><00:19:35.460><c> like</c><00:19:35.940><c> it's</c><00:19:36.780><c> very</c><00:19:37.080><c> easy</c>

00:19:37.370 --> 00:19:37.380 align:start position:0%
little bit different like it's very easy
 

00:19:37.380 --> 00:19:39.950 align:start position:0%
little bit different like it's very easy
to<00:19:37.919><c> try</c><00:19:38.160><c> out</c><00:19:38.400><c> it's</c><00:19:38.760><c> it's</c><00:19:39.000><c> like</c><00:19:39.360><c> if</c><00:19:39.600><c> you</c><00:19:39.720><c> have</c><00:19:39.840><c> it</c>

00:19:39.950 --> 00:19:39.960 align:start position:0%
to try out it's it's like if you have it
 

00:19:39.960 --> 00:19:42.169 align:start position:0%
to try out it's it's like if you have it
installed<00:19:40.260><c> on</c><00:19:40.380><c> your</c><00:19:40.559><c> machine</c><00:19:40.799><c> and</c><00:19:41.640><c> you</c><00:19:42.000><c> have</c>

00:19:42.169 --> 00:19:42.179 align:start position:0%
installed on your machine and you have
 

00:19:42.179 --> 00:19:44.810 align:start position:0%
installed on your machine and you have
Foundry<00:19:42.600><c> tests</c><00:19:42.960><c> specified</c><00:19:43.380><c> you</c><00:19:44.100><c> can</c><00:19:44.160><c> just</c><00:19:44.400><c> try</c>

00:19:44.810 --> 00:19:44.820 align:start position:0%
Foundry tests specified you can just try
 

00:19:44.820 --> 00:19:45.950 align:start position:0%
Foundry tests specified you can just try
running

00:19:45.950 --> 00:19:45.960 align:start position:0%
running
 

00:19:45.960 --> 00:19:47.510 align:start position:0%
running
um<00:19:46.020><c> the</c><00:19:46.140><c> KVM</c><00:19:46.679><c> on</c><00:19:46.860><c> that</c><00:19:46.980><c> and</c><00:19:47.160><c> maybe</c><00:19:47.340><c> you're</c>

00:19:47.510 --> 00:19:47.520 align:start position:0%
um the KVM on that and maybe you're
 

00:19:47.520 --> 00:19:50.570 align:start position:0%
um the KVM on that and maybe you're
lucky<00:19:47.760><c> and</c><00:19:48.539><c> maybe</c><00:19:48.840><c> uh</c><00:19:49.380><c> the</c><00:19:49.559><c> KVM</c><00:19:50.039><c> will</c><00:19:50.340><c> tell</c><00:19:50.460><c> you</c>

00:19:50.570 --> 00:19:50.580 align:start position:0%
lucky and maybe uh the KVM will tell you
 

00:19:50.580 --> 00:19:53.750 align:start position:0%
lucky and maybe uh the KVM will tell you
right<00:19:50.820><c> your</c><00:19:51.179><c> test</c><00:19:51.360><c> pass</c><00:19:51.600><c> or</c><00:19:52.320><c> your</c><00:19:52.500><c> your</c><00:19:52.679><c> your</c>

00:19:53.750 --> 00:19:53.760 align:start position:0%
right your test pass or your your your
 

00:19:53.760 --> 00:19:56.570 align:start position:0%
right your test pass or your your your
um yeah<00:19:54.600><c> your</c><00:19:54.900><c> test</c><00:19:55.080><c> was</c><00:19:55.320><c> proven</c><00:19:55.740><c> or</c><00:19:56.280><c> it</c><00:19:56.460><c> was</c>

00:19:56.570 --> 00:19:56.580 align:start position:0%
um yeah your test was proven or it was
 

00:19:56.580 --> 00:19:58.909 align:start position:0%
um yeah your test was proven or it was
like<00:19:56.820><c> or</c><00:19:57.059><c> we</c><00:19:57.240><c> found</c><00:19:57.360><c> a</c><00:19:57.539><c> counter</c><00:19:57.900><c> example</c><00:19:58.260><c> but</c>

00:19:58.909 --> 00:19:58.919 align:start position:0%
like or we found a counter example but
 

00:19:58.919 --> 00:20:00.590 align:start position:0%
like or we found a counter example but
in<00:19:59.220><c> some</c><00:19:59.340><c> cases</c>

00:20:00.590 --> 00:20:00.600 align:start position:0%
in some cases
 

00:20:00.600 --> 00:20:02.690 align:start position:0%
in some cases
um<00:20:00.660><c> you</c><00:20:01.140><c> will</c><00:20:01.260><c> get</c><00:20:01.440><c> like</c><00:20:01.679><c> a</c><00:20:01.919><c> third</c><00:20:02.100><c> state</c><00:20:02.400><c> that</c>

00:20:02.690 --> 00:20:02.700 align:start position:0%
um you will get like a third state that
 

00:20:02.700 --> 00:20:05.270 align:start position:0%
um you will get like a third state that
is<00:20:02.820><c> you</c><00:20:03.419><c> didn't</c><00:20:03.840><c> pass</c><00:20:04.080><c> you</c><00:20:04.440><c> didn't</c><00:20:04.559><c> fail</c><00:20:04.860><c> but</c>

00:20:05.270 --> 00:20:05.280 align:start position:0%
is you didn't pass you didn't fail but
 

00:20:05.280 --> 00:20:08.510 align:start position:0%
is you didn't pass you didn't fail but
we<00:20:05.400><c> are</c><00:20:05.580><c> not</c><00:20:05.640><c> sure</c><00:20:06.120><c> like</c><00:20:06.900><c> we</c><00:20:07.500><c> don't</c><00:20:07.620><c> know</c><00:20:07.860><c> and</c>

00:20:08.510 --> 00:20:08.520 align:start position:0%
we are not sure like we don't know and
 

00:20:08.520 --> 00:20:10.130 align:start position:0%
we are not sure like we don't know and
if<00:20:08.760><c> you</c><00:20:08.880><c> end</c><00:20:09.059><c> up</c><00:20:09.179><c> in</c><00:20:09.419><c> this</c><00:20:09.539><c> we</c><00:20:09.840><c> don't</c><00:20:09.960><c> know</c>

00:20:10.130 --> 00:20:10.140 align:start position:0%
if you end up in this we don't know
 

00:20:10.140 --> 00:20:11.450 align:start position:0%
if you end up in this we don't know
State

00:20:11.450 --> 00:20:11.460 align:start position:0%
State
 

00:20:11.460 --> 00:20:13.990 align:start position:0%
State
um that<00:20:12.240><c> is</c><00:20:12.419><c> when</c><00:20:12.780><c> a</c><00:20:13.260><c> human</c>

00:20:13.990 --> 00:20:14.000 align:start position:0%
um that is when a human
 

00:20:14.000 --> 00:20:17.270 align:start position:0%
um that is when a human
needs<00:20:15.000><c> to</c><00:20:15.179><c> drive</c><00:20:15.480><c> the</c><00:20:15.840><c> proof</c><00:20:16.140><c> forward</c><00:20:16.559><c> and</c>

00:20:17.270 --> 00:20:17.280 align:start position:0%
needs to drive the proof forward and
 

00:20:17.280 --> 00:20:20.090 align:start position:0%
needs to drive the proof forward and
that<00:20:17.460><c> is</c><00:20:17.580><c> actually</c><00:20:17.820><c> something</c><00:20:18.480><c> uh</c><00:20:19.260><c> that</c><00:20:19.679><c> needs</c>

00:20:20.090 --> 00:20:20.100 align:start position:0%
that is actually something uh that needs
 

00:20:20.100 --> 00:20:22.190 align:start position:0%
that is actually something uh that needs
some<00:20:20.340><c> practice</c><00:20:20.580><c> I</c><00:20:21.000><c> think</c><00:20:21.360><c> I</c><00:20:21.660><c> don't</c><00:20:21.780><c> think</c><00:20:21.960><c> it's</c>

00:20:22.190 --> 00:20:22.200 align:start position:0%
some practice I think I don't think it's
 

00:20:22.200 --> 00:20:24.770 align:start position:0%
some practice I think I don't think it's
impossible<00:20:22.620><c> to</c><00:20:22.860><c> learn</c><00:20:23.039><c> uh</c><00:20:23.880><c> I</c><00:20:24.059><c> learned</c><00:20:24.360><c> it</c><00:20:24.480><c> so</c>

00:20:24.770 --> 00:20:24.780 align:start position:0%
impossible to learn uh I learned it so
 

00:20:24.780 --> 00:20:26.750 align:start position:0%
impossible to learn uh I learned it so
I'm<00:20:25.080><c> sure</c><00:20:25.320><c> you</c><00:20:25.500><c> guys</c><00:20:25.679><c> can</c>

00:20:26.750 --> 00:20:26.760 align:start position:0%
I'm sure you guys can
 

00:20:26.760 --> 00:20:29.270 align:start position:0%
I'm sure you guys can
um<00:20:26.880><c> but</c><00:20:27.120><c> it's</c><00:20:27.419><c> it's</c><00:20:27.720><c> harder</c><00:20:28.140><c> than</c><00:20:28.320><c> just</c><00:20:28.679><c> uh</c>

00:20:29.270 --> 00:20:29.280 align:start position:0%
um but it's it's harder than just uh
 

00:20:29.280 --> 00:20:34.070 align:start position:0%
um but it's it's harder than just uh
just<00:20:29.940><c> calling</c><00:20:30.840><c> um</c><00:20:30.960><c> a</c><00:20:31.380><c> Foundry</c><00:20:31.860><c> test</c><00:20:32.039><c> so</c>

00:20:34.070 --> 00:20:34.080 align:start position:0%
just calling um a Foundry test so
 

00:20:34.080 --> 00:20:36.289 align:start position:0%
just calling um a Foundry test so
uh

00:20:36.289 --> 00:20:36.299 align:start position:0%
uh
 

00:20:36.299 --> 00:20:39.529 align:start position:0%
uh
one<00:20:37.080><c> final</c><00:20:37.260><c> example</c><00:20:37.799><c> of</c><00:20:38.400><c> running</c><00:20:38.700><c> running</c>

00:20:39.529 --> 00:20:39.539 align:start position:0%
one final example of running running
 

00:20:39.539 --> 00:20:42.350 align:start position:0%
one final example of running running
Foundry<00:20:40.200><c> and</c><00:20:40.440><c> running</c><00:20:40.740><c> the</c><00:20:41.100><c> KVM</c><00:20:41.700><c> symbolic</c>

00:20:42.350 --> 00:20:42.360 align:start position:0%
Foundry and running the KVM symbolic
 

00:20:42.360 --> 00:20:44.210 align:start position:0%
Foundry and running the KVM symbolic
execution<00:20:42.720><c> engine</c><00:20:42.960><c> on</c><00:20:43.320><c> the</c><00:20:43.500><c> same</c><00:20:43.620><c> test</c><00:20:43.799><c> Suite</c>

00:20:44.210 --> 00:20:44.220 align:start position:0%
execution engine on the same test Suite
 

00:20:44.220 --> 00:20:47.510 align:start position:0%
execution engine on the same test Suite
so<00:20:44.880><c> on</c><00:20:45.179><c> the</c><00:20:45.299><c> uh</c><00:20:45.780><c> on</c><00:20:46.020><c> the</c><00:20:46.140><c> top</c><00:20:46.260><c> image</c><00:20:46.740><c> I</c><00:20:47.340><c> just</c>

00:20:47.510 --> 00:20:47.520 align:start position:0%
so on the uh on the top image I just
 

00:20:47.520 --> 00:20:49.970 align:start position:0%
so on the uh on the top image I just
called<00:20:47.880><c> Forge</c><00:20:48.660><c> test</c>

00:20:49.970 --> 00:20:49.980 align:start position:0%
called Forge test
 

00:20:49.980 --> 00:20:53.690 align:start position:0%
called Forge test
um<00:20:50.100><c> and</c><00:20:50.760><c> I</c><00:20:50.940><c> can</c><00:20:51.059><c> see</c><00:20:51.240><c> the</c><00:20:51.419><c> output</c><00:20:51.840><c> like</c>

00:20:53.690 --> 00:20:53.700 align:start position:0%
um and I can see the output like
 

00:20:53.700 --> 00:20:57.110 align:start position:0%
um and I can see the output like
um<00:20:53.760><c> that</c><00:20:54.539><c> tells</c><00:20:54.840><c> me</c><00:20:54.900><c> okay</c><00:20:55.400><c> uh</c><00:20:56.400><c> I</c><00:20:56.880><c> was</c><00:20:56.940><c> running</c>

00:20:57.110 --> 00:20:57.120 align:start position:0%
um that tells me okay uh I was running
 

00:20:57.120 --> 00:20:59.210 align:start position:0%
um that tells me okay uh I was running
one<00:20:57.480><c> test</c>

00:20:59.210 --> 00:20:59.220 align:start position:0%
one test
 

00:20:59.220 --> 00:21:04.090 align:start position:0%
one test
um<00:20:59.280><c> and</c><00:21:00.059><c> it</c><00:21:00.539><c> passed</c><00:21:01.440><c> I</c><00:21:02.400><c> tried</c>

00:21:04.090 --> 00:21:04.100 align:start position:0%
um and it passed I tried
 

00:21:04.100 --> 00:21:07.730 align:start position:0%
um and it passed I tried
256<00:21:05.240><c> uh</c><00:21:06.240><c> samples</c><00:21:06.660><c> on</c><00:21:06.840><c> that</c><00:21:07.020><c> tested</c><00:21:07.320><c> that</c><00:21:07.500><c> it</c>

00:21:07.730 --> 00:21:07.740 align:start position:0%
256 uh samples on that tested that it
 

00:21:07.740 --> 00:21:09.590 align:start position:0%
256 uh samples on that tested that it
means<00:21:07.980><c> Foundry</c>

00:21:09.590 --> 00:21:09.600 align:start position:0%
means Foundry
 

00:21:09.600 --> 00:21:12.830 align:start position:0%
means Foundry
um<00:21:09.720><c> uh</c><00:21:10.559><c> won</c><00:21:10.799><c> this</c><00:21:10.980><c> test</c><00:21:11.220><c> was</c><00:21:11.460><c> 256</c><00:21:12.419><c> different</c>

00:21:12.830 --> 00:21:12.840 align:start position:0%
um uh won this test was 256 different
 

00:21:12.840 --> 00:21:14.450 align:start position:0%
um uh won this test was 256 different
inputs

00:21:14.450 --> 00:21:14.460 align:start position:0%
inputs
 

00:21:14.460 --> 00:21:15.230 align:start position:0%
inputs
um

00:21:15.230 --> 00:21:15.240 align:start position:0%
um
 

00:21:15.240 --> 00:21:18.710 align:start position:0%
um
and<00:21:15.720><c> then</c><00:21:15.900><c> I</c><00:21:16.740><c> can</c><00:21:16.919><c> use</c><00:21:17.220><c> like</c><00:21:17.940><c> after</c><00:21:18.179><c> I've</c><00:21:18.480><c> won</c>

00:21:18.710 --> 00:21:18.720 align:start position:0%
and then I can use like after I've won
 

00:21:18.720 --> 00:21:21.950 align:start position:0%
and then I can use like after I've won
the<00:21:18.900><c> founder</c><00:21:19.500><c> test</c><00:21:19.620><c> I</c><00:21:19.919><c> can</c><00:21:20.100><c> run</c><00:21:20.419><c> KVM</c><00:21:21.419><c> Foundry</c>

00:21:21.950 --> 00:21:21.960 align:start position:0%
the founder test I can run KVM Foundry
 

00:21:21.960 --> 00:21:24.890 align:start position:0%
the founder test I can run KVM Foundry
compile<00:21:22.380><c> and</c><00:21:22.860><c> give</c><00:21:23.039><c> it</c><00:21:23.240><c> a</c><00:21:24.240><c> Foundry</c><00:21:24.720><c> out</c>

00:21:24.890 --> 00:21:24.900 align:start position:0%
compile and give it a Foundry out
 

00:21:24.900 --> 00:21:27.169 align:start position:0%
compile and give it a Foundry out
directory<00:21:25.500><c> as</c><00:21:25.740><c> a</c><00:21:25.919><c> parameter</c><00:21:26.400><c> and</c><00:21:26.880><c> what</c><00:21:27.059><c> this</c>

00:21:27.169 --> 00:21:27.179 align:start position:0%
directory as a parameter and what this
 

00:21:27.179 --> 00:21:30.230 align:start position:0%
directory as a parameter and what this
comment<00:21:27.480><c> will</c><00:21:27.660><c> do</c><00:21:27.900><c> is</c><00:21:28.200><c> it</c><00:21:28.740><c> will</c><00:21:28.919><c> turn</c><00:21:29.240><c> The</c>

00:21:30.230 --> 00:21:30.240 align:start position:0%
comment will do is it will turn The
 

00:21:30.240 --> 00:21:32.390 align:start position:0%
comment will do is it will turn The
Foundry<00:21:30.659><c> test</c><00:21:30.840><c> Suite</c><00:21:31.380><c> into</c><00:21:31.860><c> a</c><00:21:32.100><c> proof</c>

00:21:32.390 --> 00:21:32.400 align:start position:0%
Foundry test Suite into a proof
 

00:21:32.400 --> 00:21:34.970 align:start position:0%
Foundry test Suite into a proof
obligation<00:21:32.940><c> for</c><00:21:33.840><c> the</c><00:21:34.140><c> symbolic</c><00:21:34.559><c> execution</c>

00:21:34.970 --> 00:21:34.980 align:start position:0%
obligation for the symbolic execution
 

00:21:34.980 --> 00:21:39.110 align:start position:0%
obligation for the symbolic execution
engine<00:21:35.280><c> like</c><00:21:35.940><c> it's</c><00:21:36.120><c> a</c><00:21:36.299><c> compile</c><00:21:36.539><c> step</c><00:21:36.840><c> and</c><00:21:37.740><c> then</c>

00:21:39.110 --> 00:21:39.120 align:start position:0%
engine like it's a compile step and then
 

00:21:39.120 --> 00:21:40.010 align:start position:0%
engine like it's a compile step and then
um

00:21:40.010 --> 00:21:40.020 align:start position:0%
um
 

00:21:40.020 --> 00:21:42.470 align:start position:0%
um
when<00:21:40.500><c> I've</c><00:21:40.740><c> done</c><00:21:40.919><c> that</c><00:21:41.100><c> I</c><00:21:41.580><c> can</c><00:21:41.760><c> actually</c><00:21:41.940><c> try</c>

00:21:42.470 --> 00:21:42.480 align:start position:0%
when I've done that I can actually try
 

00:21:42.480 --> 00:21:44.810 align:start position:0%
when I've done that I can actually try
to<00:21:42.840><c> discharge</c><00:21:43.380><c> this</c><00:21:43.559><c> proof</c><00:21:43.860><c> obligation</c><00:21:44.280><c> by</c>

00:21:44.810 --> 00:21:44.820 align:start position:0%
to discharge this proof obligation by
 

00:21:44.820 --> 00:21:47.870 align:start position:0%
to discharge this proof obligation by
one<00:21:45.000><c> in</c><00:21:45.240><c> KVM</c><00:21:45.780><c> Foundry</c><00:21:46.380><c> proof</c>

00:21:47.870 --> 00:21:47.880 align:start position:0%
one in KVM Foundry proof
 

00:21:47.880 --> 00:21:50.930 align:start position:0%
one in KVM Foundry proof
um<00:21:48.020><c> and</c><00:21:49.020><c> the</c><00:21:49.799><c> output</c><00:21:50.039><c> that</c><00:21:50.220><c> you</c><00:21:50.400><c> see</c><00:21:50.580><c> here</c><00:21:50.760><c> is</c>

00:21:50.930 --> 00:21:50.940 align:start position:0%
um and the output that you see here is
 

00:21:50.940 --> 00:21:56.390 align:start position:0%
um and the output that you see here is
the<00:21:51.120><c> lucky</c><00:21:51.659><c> case</c><00:21:52.520><c> that</c><00:21:54.020><c> our</c><00:21:55.020><c> like</c><00:21:55.679><c> symbolic</c>

00:21:56.390 --> 00:21:56.400 align:start position:0%
the lucky case that our like symbolic
 

00:21:56.400 --> 00:21:59.149 align:start position:0%
the lucky case that our like symbolic
execution<00:21:56.820><c> was</c><00:21:57.120><c> actually</c><00:21:57.480><c> able</c><00:21:58.020><c> to</c><00:21:58.679><c> discharge</c>

00:21:59.149 --> 00:21:59.159 align:start position:0%
execution was actually able to discharge
 

00:21:59.159 --> 00:22:01.549 align:start position:0%
execution was actually able to discharge
the<00:21:59.280><c> proof</c><00:21:59.520><c> obligation</c><00:22:00.000><c> and</c><00:22:00.720><c> that's</c><00:22:01.020><c> why</c><00:22:01.260><c> it</c>

00:22:01.549 --> 00:22:01.559 align:start position:0%
the proof obligation and that's why it
 

00:22:01.559 --> 00:22:04.250 align:start position:0%
the proof obligation and that's why it
says<00:22:01.799><c> top</c><00:22:02.220><c> top</c><00:22:02.580><c> at</c><00:22:03.000><c> the</c><00:22:03.120><c> bottom</c>

00:22:04.250 --> 00:22:04.260 align:start position:0%
says top top at the bottom
 

00:22:04.260 --> 00:22:05.210 align:start position:0%
says top top at the bottom
um

00:22:05.210 --> 00:22:05.220 align:start position:0%
um
 

00:22:05.220 --> 00:22:06.649 align:start position:0%
um
so

00:22:06.649 --> 00:22:06.659 align:start position:0%
so
 

00:22:06.659 --> 00:22:09.409 align:start position:0%
so
but<00:22:07.320><c> well</c><00:22:07.919><c> when</c><00:22:08.280><c> this</c><00:22:08.520><c> when</c><00:22:08.760><c> a</c><00:22:08.940><c> test</c><00:22:09.059><c> doesn't</c>

00:22:09.409 --> 00:22:09.419 align:start position:0%
but well when this when a test doesn't
 

00:22:09.419 --> 00:22:11.330 align:start position:0%
but well when this when a test doesn't
pass<00:22:09.720><c> you</c><00:22:10.020><c> will</c><00:22:10.140><c> get</c><00:22:10.320><c> a</c><00:22:10.440><c> counter</c><00:22:10.740><c> example</c><00:22:11.039><c> that</c>

00:22:11.330 --> 00:22:11.340 align:start position:0%
pass you will get a counter example that
 

00:22:11.340 --> 00:22:14.930 align:start position:0%
pass you will get a counter example that
is<00:22:11.520><c> not</c><00:22:11.760><c> as</c><00:22:12.179><c> easy</c><00:22:12.419><c> like</c><00:22:13.260><c> to</c><00:22:13.799><c> link</c><00:22:14.220><c> back</c><00:22:14.520><c> to</c><00:22:14.760><c> the</c>

00:22:14.930 --> 00:22:14.940 align:start position:0%
is not as easy like to link back to the
 

00:22:14.940 --> 00:22:17.690 align:start position:0%
is not as easy like to link back to the
original<00:22:15.120><c> code</c><00:22:15.539><c> of</c><00:22:15.720><c> the</c><00:22:15.900><c> test</c><00:22:16.080><c> than</c><00:22:16.500><c> the</c>

00:22:17.690 --> 00:22:17.700 align:start position:0%
original code of the test than the
 

00:22:17.700 --> 00:22:20.810 align:start position:0%
original code of the test than the
um<00:22:17.820><c> then</c><00:22:18.659><c> The</c><00:22:18.780><c> Foundry</c><00:22:19.080><c> country</c><00:22:19.260><c> example</c><00:22:19.860><c> or</c>

00:22:20.810 --> 00:22:20.820 align:start position:0%
um then The Foundry country example or
 

00:22:20.820 --> 00:22:22.730 align:start position:0%
um then The Foundry country example or
even<00:22:21.299><c> worse</c><00:22:21.539><c> it</c><00:22:21.720><c> will</c><00:22:21.900><c> give</c><00:22:22.020><c> you</c><00:22:22.140><c> this</c><00:22:22.380><c> unknown</c>

00:22:22.730 --> 00:22:22.740 align:start position:0%
even worse it will give you this unknown
 

00:22:22.740 --> 00:22:24.590 align:start position:0%
even worse it will give you this unknown
State<00:22:23.039><c> and</c><00:22:23.460><c> like</c><00:22:23.700><c> making</c><00:22:23.880><c> sense</c><00:22:24.179><c> of</c><00:22:24.360><c> this</c>

00:22:24.590 --> 00:22:24.600 align:start position:0%
State and like making sense of this
 

00:22:24.600 --> 00:22:26.330 align:start position:0%
State and like making sense of this
unknown<00:22:24.900><c> State</c><00:22:25.140><c> really</c><00:22:25.620><c> requires</c><00:22:26.159><c> some</c>

00:22:26.330 --> 00:22:26.340 align:start position:0%
unknown State really requires some
 

00:22:26.340 --> 00:22:28.370 align:start position:0%
unknown State really requires some
practice<00:22:26.580><c> you</c><00:22:27.000><c> you</c><00:22:27.179><c> need</c><00:22:27.419><c> to</c><00:22:27.539><c> to</c><00:22:27.840><c> learn</c><00:22:28.080><c> to</c>

00:22:28.370 --> 00:22:28.380 align:start position:0%
practice you you need to to learn to
 

00:22:28.380 --> 00:22:30.350 align:start position:0%
practice you you need to to learn to
read<00:22:28.500><c> these</c><00:22:28.740><c> configurations</c><00:22:29.220><c> to</c><00:22:29.580><c> need</c><00:22:29.820><c> to</c><00:22:30.240><c> eat</c>

00:22:30.350 --> 00:22:30.360 align:start position:0%
read these configurations to need to eat
 

00:22:30.360 --> 00:22:32.990 align:start position:0%
read these configurations to need to eat
these<00:22:30.600><c> stuck</c><00:22:30.780><c> States</c>

00:22:32.990 --> 00:22:33.000 align:start position:0%
these stuck States
 

00:22:33.000 --> 00:22:36.770 align:start position:0%
these stuck States
um<00:22:33.480><c> so</c><00:22:34.200><c> that's</c><00:22:34.679><c> basically</c><00:22:35.159><c> it</c><00:22:35.400><c> with</c><00:22:35.820><c> my</c><00:22:36.000><c> talk</c>

00:22:36.770 --> 00:22:36.780 align:start position:0%
um so that's basically it with my talk
 

00:22:36.780 --> 00:22:38.210 align:start position:0%
um so that's basically it with my talk
um<00:22:36.840><c> I've</c><00:22:37.140><c> just</c>

00:22:38.210 --> 00:22:38.220 align:start position:0%
um I've just
 

00:22:38.220 --> 00:22:41.930 align:start position:0%
um I've just
um<00:22:38.280><c> one</c><00:22:38.820><c> more</c><00:22:39.059><c> a</c><00:22:39.960><c> couple</c><00:22:40.200><c> of</c><00:22:40.380><c> more</c><00:22:40.500><c> notes</c><00:22:40.980><c> so</c><00:22:41.640><c> I</c>

00:22:41.930 --> 00:22:41.940 align:start position:0%
um one more a couple of more notes so I
 

00:22:41.940 --> 00:22:43.789 align:start position:0%
um one more a couple of more notes so I
work<00:22:42.059><c> at</c><00:22:42.240><c> one</c><00:22:42.419><c> time</c><00:22:42.600><c> verification</c><00:22:43.200><c> and</c><00:22:43.620><c> we</c>

00:22:43.789 --> 00:22:43.799 align:start position:0%
work at one time verification and we
 

00:22:43.799 --> 00:22:46.250 align:start position:0%
work at one time verification and we
have<00:22:43.919><c> a</c><00:22:44.100><c> research</c><00:22:44.460><c> department</c><00:22:44.720><c> and</c><00:22:45.720><c> we</c><00:22:45.960><c> just</c>

00:22:46.250 --> 00:22:46.260 align:start position:0%
have a research department and we just
 

00:22:46.260 --> 00:22:47.750 align:start position:0%
have a research department and we just
recently

00:22:47.750 --> 00:22:47.760 align:start position:0%
recently
 

00:22:47.760 --> 00:22:50.270 align:start position:0%
recently
um<00:22:47.820><c> posted</c><00:22:48.360><c> some</c><00:22:48.720><c> open</c><00:22:49.020><c> research</c><00:22:49.799><c> challenges</c>

00:22:50.270 --> 00:22:50.280 align:start position:0%
um posted some open research challenges
 

00:22:50.280 --> 00:22:52.669 align:start position:0%
um posted some open research challenges
on<00:22:50.520><c> our</c><00:22:50.640><c> website</c><00:22:51.179><c> research</c><00:22:52.080><c> dot</c><00:22:52.380><c> runtime</c>

00:22:52.669 --> 00:22:52.679 align:start position:0%
on our website research dot runtime
 

00:22:52.679 --> 00:22:54.950 align:start position:0%
on our website research dot runtime
verification.com<00:22:53.520><c> and</c><00:22:54.000><c> if</c><00:22:54.539><c> you</c><00:22:54.720><c> are</c><00:22:54.840><c> a</c>

00:22:54.950 --> 00:22:54.960 align:start position:0%
verification.com and if you are a
 

00:22:54.960 --> 00:22:57.649 align:start position:0%
verification.com and if you are a
researcher<00:22:55.620><c> go</c><00:22:56.100><c> to</c><00:22:56.220><c> that</c><00:22:56.400><c> website</c><00:22:56.820><c> see</c><00:22:57.480><c> if</c>

00:22:57.649 --> 00:22:57.659 align:start position:0%
researcher go to that website see if
 

00:22:57.659 --> 00:22:59.390 align:start position:0%
researcher go to that website see if
something<00:22:57.840><c> interests</c><00:22:58.500><c> you</c><00:22:58.620><c> and</c><00:22:58.919><c> we</c><00:22:59.100><c> have</c><00:22:59.220><c> like</c>

00:22:59.390 --> 00:22:59.400 align:start position:0%
something interests you and we have like
 

00:22:59.400 --> 00:23:01.070 align:start position:0%
something interests you and we have like
multiple<00:22:59.820><c> ways</c><00:23:00.120><c> to</c><00:23:00.240><c> collaborate</c><00:23:00.720><c> with</c><00:23:00.960><c> you</c>

00:23:01.070 --> 00:23:01.080 align:start position:0%
multiple ways to collaborate with you
 

00:23:01.080 --> 00:23:03.529 align:start position:0%
multiple ways to collaborate with you
like<00:23:01.679><c> if</c><00:23:01.919><c> everything</c><00:23:02.159><c> if</c><00:23:02.640><c> anything</c><00:23:02.820><c> interests</c>

00:23:03.529 --> 00:23:03.539 align:start position:0%
like if everything if anything interests
 

00:23:03.539 --> 00:23:04.310 align:start position:0%
like if everything if anything interests
you

00:23:04.310 --> 00:23:04.320 align:start position:0%
you
 

00:23:04.320 --> 00:23:06.830 align:start position:0%
you
all<00:23:04.980><c> right</c><00:23:05.220><c> and</c><00:23:05.760><c> then</c><00:23:06.120><c> like</c><00:23:06.480><c> one</c><00:23:06.720><c> other</c>

00:23:06.830 --> 00:23:06.840 align:start position:0%
all right and then like one other
 

00:23:06.840 --> 00:23:08.210 align:start position:0%
all right and then like one other
announcement

00:23:08.210 --> 00:23:08.220 align:start position:0%
announcement
 

00:23:08.220 --> 00:23:09.470 align:start position:0%
announcement
um

00:23:09.470 --> 00:23:09.480 align:start position:0%
um
 

00:23:09.480 --> 00:23:11.930 align:start position:0%
um
a<00:23:09.659><c> colleague</c><00:23:10.200><c> of</c><00:23:10.320><c> mine</c><00:23:10.580><c> Richardson</c><00:23:11.580><c> audience</c>

00:23:11.930 --> 00:23:11.940 align:start position:0%
a colleague of mine Richardson audience
 

00:23:11.940 --> 00:23:15.169 align:start position:0%
a colleague of mine Richardson audience
somewhere<00:23:12.360><c> I</c><00:23:12.659><c> see</c><00:23:12.840><c> them</c><00:23:13.020><c> uh</c><00:23:13.980><c> he's</c><00:23:14.220><c> giving</c><00:23:14.460><c> a</c>

00:23:15.169 --> 00:23:15.179 align:start position:0%
somewhere I see them uh he's giving a
 

00:23:15.179 --> 00:23:17.630 align:start position:0%
somewhere I see them uh he's giving a
workshop<00:23:15.659><c> on</c><00:23:16.080><c> formal</c><00:23:16.559><c> methods</c><00:23:17.159><c> for</c><00:23:17.460><c> the</c>

00:23:17.630 --> 00:23:17.640 align:start position:0%
workshop on formal methods for the
 

00:23:17.640 --> 00:23:23.330 align:start position:0%
workshop on formal methods for the
working<00:23:17.820><c> D5</c><00:23:18.360><c> Dev</c><00:23:18.720><c> tomorrow</c><00:23:19.280><c> at</c><00:23:20.280><c> uh</c><00:23:21.240><c> at</c><00:23:21.740><c> 11AM</c><00:23:22.740><c> in</c>

00:23:23.330 --> 00:23:23.340 align:start position:0%
working D5 Dev tomorrow at uh at 11AM in
 

00:23:23.340 --> 00:23:26.270 align:start position:0%
working D5 Dev tomorrow at uh at 11AM in
Workshop<00:23:23.700><c> room</c><00:23:23.880><c> number</c><00:23:24.179><c> three</c><00:23:24.539><c> so</c><00:23:25.500><c> uh</c><00:23:25.919><c> if</c><00:23:26.159><c> you</c>

00:23:26.270 --> 00:23:26.280 align:start position:0%
Workshop room number three so uh if you
 

00:23:26.280 --> 00:23:28.610 align:start position:0%
Workshop room number three so uh if you
like<00:23:26.400><c> this</c><00:23:26.700><c> talk</c><00:23:26.940><c> uh</c><00:23:27.720><c> go</c><00:23:27.960><c> ahead</c><00:23:28.200><c> and</c><00:23:28.500><c> visit</c>

00:23:28.610 --> 00:23:28.620 align:start position:0%
like this talk uh go ahead and visit
 

00:23:28.620 --> 00:23:31.130 align:start position:0%
like this talk uh go ahead and visit
Richard's<00:23:29.460><c> talk</c><00:23:29.580><c> it's</c><00:23:29.940><c> uh</c><00:23:30.600><c> I</c><00:23:30.960><c> highly</c>

00:23:31.130 --> 00:23:31.140 align:start position:0%
Richard's talk it's uh I highly
 

00:23:31.140 --> 00:23:33.830 align:start position:0%
Richard's talk it's uh I highly
recommend<00:23:31.620><c> it</c><00:23:31.799><c> right</c><00:23:32.520><c> and</c><00:23:33.000><c> that's</c><00:23:33.360><c> it</c><00:23:33.539><c> I</c><00:23:33.720><c> think</c>

00:23:33.830 --> 00:23:33.840 align:start position:0%
recommend it right and that's it I think
 

00:23:33.840 --> 00:23:36.710 align:start position:0%
recommend it right and that's it I think
we<00:23:34.020><c> have</c><00:23:34.080><c> some</c><00:23:34.320><c> time</c><00:23:34.500><c> for</c><00:23:34.679><c> questions</c><00:23:34.980><c> do</c><00:23:35.520><c> we</c>

00:23:36.710 --> 00:23:36.720 align:start position:0%
we have some time for questions do we
 

00:23:36.720 --> 00:23:40.250 align:start position:0%
we have some time for questions do we
we<00:23:37.260><c> have</c>

00:23:40.250 --> 00:23:40.260 align:start position:0%
 
 

00:23:40.260 --> 00:23:44.690 align:start position:0%
 
do<00:23:40.679><c> we</c><00:23:40.860><c> have</c><00:23:40.980><c> a</c><00:23:41.220><c> microphone</c><00:23:41.700><c> for</c><00:23:42.120><c> questions</c>

00:23:44.690 --> 00:23:44.700 align:start position:0%
 
 

00:23:44.700 --> 00:23:48.049 align:start position:0%
 
hello<00:23:45.299><c> uh</c><00:23:46.140><c> great</c><00:23:46.440><c> great</c><00:23:46.679><c> presentation</c><00:23:47.220><c> uh</c><00:23:47.880><c> I</c>

00:23:48.049 --> 00:23:48.059 align:start position:0%
hello uh great great presentation uh I
 

00:23:48.059 --> 00:23:49.430 align:start position:0%
hello uh great great presentation uh I
have<00:23:48.179><c> a</c><00:23:48.299><c> couple</c><00:23:48.419><c> of</c><00:23:48.539><c> questions</c><00:23:48.780><c> can</c><00:23:49.140><c> you</c><00:23:49.260><c> go</c>

00:23:49.430 --> 00:23:49.440 align:start position:0%
have a couple of questions can you go
 

00:23:49.440 --> 00:23:52.130 align:start position:0%
have a couple of questions can you go
back<00:23:49.620><c> to</c><00:23:49.860><c> the</c><00:23:50.039><c> table</c><00:23:50.220><c> that</c><00:23:50.700><c> you</c><00:23:50.880><c> show</c><00:23:51.120><c> both</c><00:23:51.480><c> uh</c>

00:23:52.130 --> 00:23:52.140 align:start position:0%
back to the table that you show both uh
 

00:23:52.140 --> 00:23:57.049 align:start position:0%
back to the table that you show both uh
like<00:23:52.919><c> fasting</c><00:23:53.640><c> and</c><00:23:53.880><c> symbolic</c><00:23:54.419><c> execution</c>

00:23:57.049 --> 00:23:57.059 align:start position:0%
 
 

00:23:57.059 --> 00:23:58.789 align:start position:0%
 
I<00:23:57.480><c> have</c><00:23:57.600><c> it</c><00:23:57.720><c> on</c><00:23:57.840><c> the</c><00:23:57.960><c> screen</c><00:23:58.140><c> but</c><00:23:58.380><c> I</c><00:23:58.559><c> don't</c><00:23:58.679><c> have</c>

00:23:58.789 --> 00:23:58.799 align:start position:0%
I have it on the screen but I don't have
 

00:23:58.799 --> 00:24:02.990 align:start position:0%
I have it on the screen but I don't have
it<00:23:58.919><c> on</c><00:23:59.100><c> the</c><00:23:59.280><c> projector</c>

00:24:02.990 --> 00:24:03.000 align:start position:0%
 
 

00:24:03.000 --> 00:24:03.480 align:start position:0%
 
um

00:24:03.480 --> 00:24:03.490 align:start position:0%
um
 

00:24:03.490 --> 00:24:04.730 align:start position:0%
um
[Music]

00:24:04.730 --> 00:24:04.740 align:start position:0%
[Music]
 

00:24:04.740 --> 00:24:08.870 align:start position:0%
[Music]
there<00:24:05.159><c> it</c><00:24:05.340><c> is</c><00:24:05.460><c> okay</c><00:24:06.120><c> great</c><00:24:06.720><c> so</c><00:24:07.440><c> you</c><00:24:08.280><c> you</c><00:24:08.580><c> put</c>

00:24:08.870 --> 00:24:08.880 align:start position:0%
there it is okay great so you you put
 

00:24:08.880 --> 00:24:11.270 align:start position:0%
there it is okay great so you you put
like<00:24:09.120><c> in</c><00:24:09.360><c> the</c><00:24:09.539><c> fasting</c><00:24:10.020><c> column</c><00:24:10.559><c> that</c><00:24:11.039><c> it</c>

00:24:11.270 --> 00:24:11.280 align:start position:0%
like in the fasting column that it
 

00:24:11.280 --> 00:24:14.510 align:start position:0%
like in the fasting column that it
requires<00:24:11.760><c> no</c><00:24:12.179><c> inter</c><00:24:12.799><c> in</c><00:24:13.799><c> human</c><00:24:13.980><c> intervention</c>

00:24:14.510 --> 00:24:14.520 align:start position:0%
requires no inter in human intervention
 

00:24:14.520 --> 00:24:16.970 align:start position:0%
requires no inter in human intervention
but<00:24:15.120><c> you</c><00:24:15.299><c> need</c><00:24:15.480><c> someone</c><00:24:15.780><c> to</c><00:24:16.260><c> write</c><00:24:16.500><c> the</c>

00:24:16.970 --> 00:24:16.980 align:start position:0%
but you need someone to write the
 

00:24:16.980 --> 00:24:18.649 align:start position:0%
but you need someone to write the
properties<00:24:17.400><c> it's</c><00:24:17.880><c> the</c><00:24:18.120><c> same</c><00:24:18.240><c> for</c><00:24:18.480><c> the</c>

00:24:18.649 --> 00:24:18.659 align:start position:0%
properties it's the same for the
 

00:24:18.659 --> 00:24:21.710 align:start position:0%
properties it's the same for the
symbolic<00:24:19.100><c> execution</c><00:24:20.100><c> right</c><00:24:21.000><c> so</c><00:24:21.299><c> if</c><00:24:21.480><c> you</c><00:24:21.600><c> have</c>

00:24:21.710 --> 00:24:21.720 align:start position:0%
symbolic execution right so if you have
 

00:24:21.720 --> 00:24:24.350 align:start position:0%
symbolic execution right so if you have
good<00:24:21.960><c> properties</c><00:24:22.380><c> you</c><00:24:22.740><c> will</c><00:24:22.860><c> catch</c><00:24:23.340><c> good</c><00:24:23.880><c> bags</c>

00:24:24.350 --> 00:24:24.360 align:start position:0%
good properties you will catch good bags
 

00:24:24.360 --> 00:24:26.330 align:start position:0%
good properties you will catch good bags
if<00:24:24.539><c> you</c><00:24:24.659><c> don't</c><00:24:24.780><c> have</c><00:24:24.960><c> good</c><00:24:25.260><c> properties</c><00:24:25.679><c> you</c>

00:24:26.330 --> 00:24:26.340 align:start position:0%
if you don't have good properties you
 

00:24:26.340 --> 00:24:28.909 align:start position:0%
if you don't have good properties you
will<00:24:26.520><c> have</c><00:24:26.640><c> catch</c><00:24:27.179><c> no</c><00:24:27.360><c> bugs</c><00:24:27.780><c> right</c><00:24:28.020><c> and</c><00:24:28.740><c> this</c>

00:24:28.909 --> 00:24:28.919 align:start position:0%
will have catch no bugs right and this
 

00:24:28.919 --> 00:24:30.890 align:start position:0%
will have catch no bugs right and this
is<00:24:29.039><c> the</c><00:24:29.280><c> same</c><00:24:29.460><c> with</c><00:24:29.940><c> the</c><00:24:30.059><c> examples</c><00:24:30.480><c> that</c><00:24:30.720><c> you</c>

00:24:30.890 --> 00:24:30.900 align:start position:0%
is the same with the examples that you
 

00:24:30.900 --> 00:24:34.250 align:start position:0%
is the same with the examples that you
show<00:24:31.140><c> like</c><00:24:31.500><c> see</c><00:24:32.280><c> fasting</c><00:24:32.760><c> is</c><00:24:32.880><c> not</c><00:24:33.059><c> enough</c><00:24:33.260><c> uh</c>

00:24:34.250 --> 00:24:34.260 align:start position:0%
show like see fasting is not enough uh
 

00:24:34.260 --> 00:24:36.590 align:start position:0%
show like see fasting is not enough uh
this<00:24:34.559><c> code</c><00:24:34.679><c> was</c><00:24:34.919><c> fast</c><00:24:35.159><c> but</c><00:24:35.520><c> perhaps</c><00:24:35.880><c> they</c><00:24:36.240><c> are</c>

00:24:36.590 --> 00:24:36.600 align:start position:0%
this code was fast but perhaps they are
 

00:24:36.600 --> 00:24:40.130 align:start position:0%
this code was fast but perhaps they are
not<00:24:36.780><c> using</c><00:24:37.260><c> the</c><00:24:37.679><c> correct</c><00:24:38.360><c> uh</c><00:24:39.360><c> properties</c><00:24:39.780><c> so</c>

00:24:40.130 --> 00:24:40.140 align:start position:0%
not using the correct uh properties so
 

00:24:40.140 --> 00:24:42.590 align:start position:0%
not using the correct uh properties so
what<00:24:40.320><c> is</c><00:24:40.500><c> what</c><00:24:40.799><c> is</c><00:24:40.919><c> your</c><00:24:41.159><c> take</c><00:24:41.400><c> on</c><00:24:41.640><c> this</c><00:24:41.880><c> yeah</c>

00:24:42.590 --> 00:24:42.600 align:start position:0%
what is what is your take on this yeah
 

00:24:42.600 --> 00:24:45.409 align:start position:0%
what is what is your take on this yeah
yeah<00:24:42.780><c> that's</c><00:24:43.140><c> true</c><00:24:43.380><c> so</c><00:24:43.860><c> uh</c><00:24:44.460><c> this</c><00:24:44.820><c> is</c><00:24:44.940><c> not</c><00:24:45.179><c> like</c>

00:24:45.409 --> 00:24:45.419 align:start position:0%
yeah that's true so uh this is not like
 

00:24:45.419 --> 00:24:47.990 align:start position:0%
yeah that's true so uh this is not like
fully<00:24:45.840><c> automatic</c><00:24:46.380><c> like</c><00:24:46.620><c> for</c><00:24:46.860><c> example</c><00:24:47.100><c> when</c>

00:24:47.990 --> 00:24:48.000 align:start position:0%
fully automatic like for example when
 

00:24:48.000 --> 00:24:49.789 align:start position:0%
fully automatic like for example when
you<00:24:48.179><c> run</c><00:24:48.480><c> a</c><00:24:48.659><c> static</c><00:24:48.960><c> analysis</c><00:24:49.320><c> tool</c><00:24:49.620><c> on</c><00:24:49.679><c> your</c>

00:24:49.789 --> 00:24:49.799 align:start position:0%
you run a static analysis tool on your
 

00:24:49.799 --> 00:24:51.649 align:start position:0%
you run a static analysis tool on your
code<00:24:49.980><c> base</c><00:24:50.159><c> then</c><00:24:50.760><c> you</c><00:24:50.940><c> essentially</c><00:24:51.240><c> have</c><00:24:51.539><c> to</c>

00:24:51.649 --> 00:24:51.659 align:start position:0%
code base then you essentially have to
 

00:24:51.659 --> 00:24:53.870 align:start position:0%
code base then you essentially have to
do<00:24:51.780><c> nothing</c><00:24:52.020><c> you</c><00:24:52.620><c> can</c><00:24:52.679><c> just</c><00:24:52.860><c> like</c><00:24:53.400><c> hit</c><00:24:53.700><c> a</c>

00:24:53.870 --> 00:24:53.880 align:start position:0%
do nothing you can just like hit a
 

00:24:53.880 --> 00:24:55.490 align:start position:0%
do nothing you can just like hit a
button<00:24:54.120><c> and</c><00:24:54.240><c> one</c><00:24:54.419><c> Slither</c><00:24:54.720><c> on</c><00:24:54.960><c> your</c><00:24:55.080><c> code</c><00:24:55.260><c> base</c>

00:24:55.490 --> 00:24:55.500 align:start position:0%
button and one Slither on your code base
 

00:24:55.500 --> 00:24:59.210 align:start position:0%
button and one Slither on your code base
so<00:24:56.159><c> for</c><00:24:56.340><c> fuzzing</c><00:24:56.940><c> you</c><00:24:57.840><c> need</c><00:24:58.200><c> to</c><00:24:58.559><c> write</c><00:24:58.919><c> down</c>

00:24:59.210 --> 00:24:59.220 align:start position:0%
so for fuzzing you need to write down
 

00:24:59.220 --> 00:25:02.270 align:start position:0%
so for fuzzing you need to write down
the<00:24:59.520><c> tests</c><00:24:59.820><c> and</c><00:25:00.419><c> like</c><00:25:00.780><c> like</c><00:25:01.380><c> getting</c><00:25:01.919><c> the</c>

00:25:02.270 --> 00:25:02.280 align:start position:0%
the tests and like like getting the
 

00:25:02.280 --> 00:25:05.210 align:start position:0%
the tests and like like getting the
tests<00:25:02.640><c> getting</c><00:25:03.179><c> the</c><00:25:03.539><c> white</c><00:25:03.960><c> tests</c><00:25:04.440><c> is</c><00:25:04.679><c> is</c><00:25:05.100><c> a</c>

00:25:05.210 --> 00:25:05.220 align:start position:0%
tests getting the white tests is is a
 

00:25:05.220 --> 00:25:06.890 align:start position:0%
tests getting the white tests is is a
challenge<00:25:05.400><c> on</c><00:25:05.640><c> its</c><00:25:05.820><c> own</c><00:25:05.880><c> it's</c><00:25:06.120><c> not</c><00:25:06.299><c> like</c><00:25:06.539><c> it</c>

00:25:06.890 --> 00:25:06.900 align:start position:0%
challenge on its own it's not like it
 

00:25:06.900 --> 00:25:09.830 align:start position:0%
challenge on its own it's not like it
doesn't<00:25:07.020><c> come</c><00:25:07.260><c> easy</c><00:25:07.500><c> it</c><00:25:07.919><c> has</c><00:25:08.220><c> to</c><00:25:08.340><c> be</c><00:25:08.460><c> practiced</c>

00:25:09.830 --> 00:25:09.840 align:start position:0%
doesn't come easy it has to be practiced
 

00:25:09.840 --> 00:25:13.490 align:start position:0%
doesn't come easy it has to be practiced
um<00:25:10.220><c> and</c><00:25:11.220><c> the</c><00:25:11.760><c> same</c><00:25:12.000><c> is</c><00:25:12.419><c> even</c><00:25:12.659><c> more</c><00:25:12.900><c> to</c><00:25:13.080><c> when</c><00:25:13.380><c> you</c>

00:25:13.490 --> 00:25:13.500 align:start position:0%
um and the same is even more to when you
 

00:25:13.500 --> 00:25:15.649 align:start position:0%
um and the same is even more to when you
do<00:25:13.620><c> symbolic</c><00:25:14.100><c> execution</c>

00:25:15.649 --> 00:25:15.659 align:start position:0%
do symbolic execution
 

00:25:15.659 --> 00:25:17.750 align:start position:0%
do symbolic execution
um because<00:25:16.200><c> where</c><00:25:16.620><c> symbolic</c><00:25:17.100><c> execution</c><00:25:17.520><c> can</c>

00:25:17.750 --> 00:25:17.760 align:start position:0%
um because where symbolic execution can
 

00:25:17.760 --> 00:25:20.029 align:start position:0%
um because where symbolic execution can
also<00:25:18.059><c> can</c><00:25:18.299><c> also</c><00:25:18.539><c> be</c><00:25:18.659><c> a</c><00:25:18.780><c> foot</c><00:25:18.900><c> gun</c><00:25:19.140><c> if</c><00:25:19.740><c> you</c><00:25:19.860><c> don't</c>

00:25:20.029 --> 00:25:20.039 align:start position:0%
also can also be a foot gun if you don't
 

00:25:20.039 --> 00:25:22.490 align:start position:0%
also can also be a foot gun if you don't
know<00:25:20.220><c> how</c><00:25:20.460><c> to</c><00:25:20.580><c> use</c><00:25:20.700><c> it</c><00:25:20.880><c> appropriately</c><00:25:21.500><c> all</c>

00:25:22.490 --> 00:25:22.500 align:start position:0%
know how to use it appropriately all
 

00:25:22.500 --> 00:25:24.289 align:start position:0%
know how to use it appropriately all
right<00:25:22.620><c> yeah</c><00:25:22.799><c> yeah</c><00:25:23.039><c> definitely</c><00:25:23.400><c> and</c><00:25:23.940><c> the</c><00:25:24.179><c> other</c>

00:25:24.289 --> 00:25:24.299 align:start position:0%
right yeah yeah definitely and the other
 

00:25:24.299 --> 00:25:26.210 align:start position:0%
right yeah yeah definitely and the other
thing<00:25:24.539><c> very</c><00:25:24.720><c> quickly</c><00:25:25.020><c> you</c><00:25:25.260><c> put</c><00:25:25.500><c> like</c><00:25:25.679><c> false</c>

00:25:26.210 --> 00:25:26.220 align:start position:0%
thing very quickly you put like false
 

00:25:26.220 --> 00:25:29.210 align:start position:0%
thing very quickly you put like false
negatives<00:25:26.580><c> like</c><00:25:27.480><c> on</c><00:25:27.960><c> fun</c><00:25:28.200><c> on</c><00:25:28.440><c> fasting</c><00:25:28.980><c> which</c>

00:25:29.210 --> 00:25:29.220 align:start position:0%
negatives like on fun on fasting which
 

00:25:29.220 --> 00:25:31.909 align:start position:0%
negatives like on fun on fasting which
is<00:25:29.400><c> which</c><00:25:30.120><c> I</c><00:25:30.360><c> agree</c><00:25:30.600><c> and</c><00:25:30.960><c> you</c><00:25:31.080><c> put</c><00:25:31.260><c> no</c><00:25:31.559><c> false</c>

00:25:31.909 --> 00:25:31.919 align:start position:0%
is which I agree and you put no false
 

00:25:31.919 --> 00:25:34.250 align:start position:0%
is which I agree and you put no false
negative<00:25:32.159><c> on</c><00:25:32.400><c> symbolic</c><00:25:32.880><c> execution</c><00:25:33.480><c> or</c>

00:25:34.250 --> 00:25:34.260 align:start position:0%
negative on symbolic execution or
 

00:25:34.260 --> 00:25:36.890 align:start position:0%
negative on symbolic execution or
whatever<00:25:34.440><c> you</c><00:25:34.980><c> said</c><00:25:35.220><c> that</c><00:25:35.880><c> you</c><00:25:36.299><c> could</c><00:25:36.419><c> have</c><00:25:36.600><c> at</c>

00:25:36.890 --> 00:25:36.900 align:start position:0%
whatever you said that you could have at
 

00:25:36.900 --> 00:25:38.750 align:start position:0%
whatever you said that you could have at
third<00:25:37.200><c> state</c><00:25:37.440><c> in</c><00:25:37.799><c> which</c><00:25:37.980><c> you</c><00:25:38.220><c> don't</c><00:25:38.340><c> know</c><00:25:38.520><c> if</c>

00:25:38.750 --> 00:25:38.760 align:start position:0%
third state in which you don't know if
 

00:25:38.760 --> 00:25:40.610 align:start position:0%
third state in which you don't know if
it's<00:25:38.880><c> true</c><00:25:39.120><c> or</c><00:25:39.299><c> is</c><00:25:39.419><c> false</c>

00:25:40.610 --> 00:25:40.620 align:start position:0%
it's true or is false
 

00:25:40.620 --> 00:25:42.890 align:start position:0%
it's true or is false
that<00:25:41.279><c> sounds</c><00:25:41.460><c> like</c><00:25:41.640><c> a</c><00:25:41.880><c> false</c><00:25:42.120><c> negative</c><00:25:42.480><c> to</c><00:25:42.779><c> me</c>

00:25:42.890 --> 00:25:42.900 align:start position:0%
that sounds like a false negative to me
 

00:25:42.900 --> 00:25:45.470 align:start position:0%
that sounds like a false negative to me
like<00:25:43.799><c> you</c><00:25:44.100><c> you</c><00:25:44.220><c> don't</c><00:25:44.460><c> know</c><00:25:44.640><c> the</c><00:25:44.820><c> answer</c><00:25:45.000><c> the</c>

00:25:45.470 --> 00:25:45.480 align:start position:0%
like you you don't know the answer the
 

00:25:45.480 --> 00:25:48.049 align:start position:0%
like you you don't know the answer the
tool<00:25:45.720><c> doesn't</c><00:25:45.840><c> know</c><00:25:46.080><c> the</c><00:25:46.260><c> answer</c><00:25:46.380><c> so</c><00:25:46.740><c> it</c><00:25:47.460><c> is</c><00:25:47.580><c> it</c>

00:25:48.049 --> 00:25:48.059 align:start position:0%
tool doesn't know the answer so it is it
 

00:25:48.059 --> 00:25:50.870 align:start position:0%
tool doesn't know the answer so it is it
is<00:25:48.299><c> like</c><00:25:48.539><c> yeah</c><00:25:48.779><c> but</c><00:25:49.080><c> it</c><00:25:49.799><c> doesn't</c><00:25:49.919><c> say</c><00:25:50.220><c> I</c>

00:25:50.870 --> 00:25:50.880 align:start position:0%
is like yeah but it doesn't say I
 

00:25:50.880 --> 00:25:52.490 align:start position:0%
is like yeah but it doesn't say I
discharged<00:25:51.480><c> this</c><00:25:51.600><c> proof</c><00:25:51.900><c> application</c><00:25:52.260><c> and</c>

00:25:52.490 --> 00:25:52.500 align:start position:0%
discharged this proof application and
 

00:25:52.500 --> 00:25:54.049 align:start position:0%
discharged this proof application and
everything<00:25:52.679><c> is</c><00:25:52.980><c> right</c><00:25:53.159><c> it</c><00:25:53.520><c> says</c><00:25:53.760><c> you</c><00:25:53.880><c> I'm</c>

00:25:54.049 --> 00:25:54.059 align:start position:0%
everything is right it says you I'm
 

00:25:54.059 --> 00:25:55.850 align:start position:0%
everything is right it says you I'm
stuck<00:25:54.299><c> and</c><00:25:54.539><c> that</c><00:25:54.779><c> is</c><00:25:55.440><c> um</c><00:25:55.500><c> you</c><00:25:55.740><c> should</c>

00:25:55.850 --> 00:25:55.860 align:start position:0%
stuck and that is um you should
 

00:25:55.860 --> 00:25:58.250 align:start position:0%
stuck and that is um you should
interpret<00:25:56.460><c> this</c><00:25:56.640><c> as</c>

00:25:58.250 --> 00:25:58.260 align:start position:0%
interpret this as
 

00:25:58.260 --> 00:26:00.590 align:start position:0%
interpret this as
um I<00:25:58.620><c> need</c><00:25:58.799><c> to</c><00:25:58.919><c> put</c><00:25:59.159><c> more</c><00:25:59.460><c> effort</c><00:25:59.880><c> in</c><00:26:00.480><c> the</c>

00:26:00.590 --> 00:26:00.600 align:start position:0%
um I need to put more effort in the
 

00:26:00.600 --> 00:26:04.730 align:start position:0%
um I need to put more effort in the
proof<00:26:00.960><c> or</c><00:26:01.140><c> in</c><00:26:01.320><c> the</c><00:26:01.440><c> code</c><00:26:01.620><c> to</c><00:26:02.580><c> get</c><00:26:02.940><c> it</c><00:26:03.120><c> to</c><00:26:03.659><c> like</c><00:26:04.140><c> a</c>

00:26:04.730 --> 00:26:04.740 align:start position:0%
proof or in the code to get it to like a
 

00:26:04.740 --> 00:26:06.950 align:start position:0%
proof or in the code to get it to like a
final<00:26:04.980><c> state</c><00:26:05.340><c> that</c><00:26:05.640><c> says</c><00:26:05.940><c> true</c><00:26:06.179><c> or</c><00:26:06.360><c> false</c><00:26:06.779><c> yeah</c>

00:26:06.950 --> 00:26:06.960 align:start position:0%
final state that says true or false yeah
 

00:26:06.960 --> 00:26:09.049 align:start position:0%
final state that says true or false yeah
but<00:26:07.140><c> it's</c><00:26:07.320><c> the</c><00:26:07.799><c> same</c><00:26:07.919><c> for</c><00:26:08.100><c> for</c><00:26:08.340><c> fasting</c><00:26:08.820><c> when</c>

00:26:09.049 --> 00:26:09.059 align:start position:0%
but it's the same for for fasting when
 

00:26:09.059 --> 00:26:11.570 align:start position:0%
but it's the same for for fasting when
you<00:26:09.240><c> when</c><00:26:09.480><c> you</c><00:26:09.659><c> say</c><00:26:09.840><c> like</c><00:26:10.200><c> a</c><00:26:10.440><c> past</c><00:26:10.860><c> like</c><00:26:11.400><c> a</c>

00:26:11.570 --> 00:26:11.580 align:start position:0%
you when you say like a past like a
 

00:26:11.580 --> 00:26:14.630 align:start position:0%
you when you say like a past like a
tested<00:26:12.120><c> pass</c><00:26:12.419><c> it's</c><00:26:13.380><c> simply</c><00:26:13.740><c> because</c><00:26:13.980><c> you</c>

00:26:14.630 --> 00:26:14.640 align:start position:0%
tested pass it's simply because you
 

00:26:14.640 --> 00:26:16.750 align:start position:0%
tested pass it's simply because you
didn't<00:26:14.820><c> you</c><00:26:15.059><c> didn't</c><00:26:15.179><c> put</c><00:26:15.480><c> enough</c><00:26:15.600><c> enough</c><00:26:16.140><c> time</c>

00:26:16.750 --> 00:26:16.760 align:start position:0%
didn't you didn't put enough enough time
 

00:26:16.760 --> 00:26:20.269 align:start position:0%
didn't you didn't put enough enough time
right<00:26:17.760><c> to</c><00:26:18.480><c> to</c><00:26:18.840><c> run</c><00:26:19.080><c> it</c><00:26:19.260><c> so</c><00:26:19.440><c> it's</c><00:26:19.559><c> it's</c><00:26:19.740><c> a</c><00:26:20.159><c> matter</c>

00:26:20.269 --> 00:26:20.279 align:start position:0%
right to to run it so it's it's a matter
 

00:26:20.279 --> 00:26:22.190 align:start position:0%
right to to run it so it's it's a matter
of<00:26:20.520><c> interpretation</c><00:26:21.120><c> and</c><00:26:21.360><c> it's</c><00:26:21.539><c> a</c><00:26:22.020><c> little</c>

00:26:22.190 --> 00:26:22.200 align:start position:0%
of interpretation and it's a little
 

00:26:22.200 --> 00:26:25.370 align:start position:0%
of interpretation and it's a little
misleading<00:26:23.179><c> you</c><00:26:24.179><c> could</c><00:26:24.299><c> try</c><00:26:24.659><c> like</c><00:26:24.900><c> passing</c>

00:26:25.370 --> 00:26:25.380 align:start position:0%
misleading you could try like passing
 

00:26:25.380 --> 00:26:26.149 align:start position:0%
misleading you could try like passing
over

00:26:26.149 --> 00:26:26.159 align:start position:0%
over
 

00:26:26.159 --> 00:26:29.210 align:start position:0%
over
um<00:26:26.220><c> like</c><00:26:27.000><c> the</c><00:26:27.240><c> entire</c><00:26:27.539><c> input</c><00:26:27.900><c> space</c><00:26:28.200><c> and</c><00:26:29.039><c> then</c>

00:26:29.210 --> 00:26:29.220 align:start position:0%
um like the entire input space and then
 

00:26:29.220 --> 00:26:31.850 align:start position:0%
um like the entire input space and then
you<00:26:29.700><c> will</c><00:26:29.820><c> also</c><00:26:30.120><c> have</c><00:26:30.299><c> like</c><00:26:30.600><c> no</c><00:26:30.840><c> false</c><00:26:31.320><c> uh</c><00:26:31.620><c> no</c>

00:26:31.850 --> 00:26:31.860 align:start position:0%
you will also have like no false uh no
 

00:26:31.860 --> 00:26:34.250 align:start position:0%
you will also have like no false uh no
false<00:26:32.220><c> negatives</c><00:26:32.580><c> you</c><00:26:33.059><c> could</c><00:26:33.179><c> try</c><00:26:33.480><c> that</c><00:26:33.720><c> but</c>

00:26:34.250 --> 00:26:34.260 align:start position:0%
false negatives you could try that but
 

00:26:34.260 --> 00:26:36.830 align:start position:0%
false negatives you could try that but
like<00:26:34.500><c> you</c><00:26:34.860><c> will</c><00:26:34.980><c> never</c><00:26:35.159><c> terminate</c><00:26:35.700><c> like</c><00:26:36.059><c> uh</c>

00:26:36.830 --> 00:26:36.840 align:start position:0%
like you will never terminate like uh
 

00:26:36.840 --> 00:26:39.289 align:start position:0%
like you will never terminate like uh
but<00:26:37.500><c> but</c><00:26:37.679><c> that</c><00:26:37.980><c> would</c><00:26:38.159><c> work</c><00:26:38.400><c> yeah</c><00:26:38.580><c> come</c><00:26:39.000><c> to</c><00:26:39.179><c> my</c>

00:26:39.289 --> 00:26:39.299 align:start position:0%
but but that would work yeah come to my
 

00:26:39.299 --> 00:26:41.149 align:start position:0%
but but that would work yeah come to my
talk<00:26:39.539><c> tomorrow</c><00:26:39.779><c> because</c><00:26:40.200><c> we'll</c><00:26:40.440><c> be</c><00:26:40.559><c> be</c><00:26:40.980><c> going</c>

00:26:41.149 --> 00:26:41.159 align:start position:0%
talk tomorrow because we'll be be going
 

00:26:41.159 --> 00:26:42.710 align:start position:0%
talk tomorrow because we'll be be going
over<00:26:41.279><c> how</c><00:26:41.520><c> to</c><00:26:41.700><c> write</c><00:26:41.820><c> properties</c><00:26:42.240><c> that's</c>

00:26:42.710 --> 00:26:42.720 align:start position:0%
over how to write properties that's
 

00:26:42.720 --> 00:26:46.460 align:start position:0%
over how to write properties that's
basically<00:26:43.200><c> the</c><00:26:43.380><c> next</c><00:26:43.559><c> talk</c>

00:26:46.460 --> 00:26:46.470 align:start position:0%
 
 

00:26:46.470 --> 00:26:49.819 align:start position:0%
 
[Music]

