coq-club AT inria.fr
Subject: The Coq mailing list
List archive
- From: Timothy Carstens <intoverflow AT gmail.com>
- To: Coq Club <coq-club AT inria.fr>
- Subject: Re: [Coq-Club] A verified bootstrapping computer (academic curiousity)
- Date: Tue, 11 Jan 2022 08:26:50 -0800
- Authentication-results: mail3-smtp-sop.national.inria.fr; spf=None smtp.pra=intoverflow AT gmail.com; spf=Pass smtp.mailfrom=intoverflow AT gmail.com; spf=None smtp.helo=postmaster AT mail-pl1-f180.google.com
- Ironport-data: A9a23:qgay+6oLwA4d3lVMnM73EPQEoa9eBmJ3ZBIvgKrLsJaIsI5as4F+vmUXDT/VPPyIajejLYh+bNvl8k9TvZ/WzIRiGwpsqCw3Zn8b8sCt6faxfh6hZXvKRiHgZBs6tJtGMoGowPjZ/xYwnz/1WlTahSQ6hfHgqobUUraeYHgoHFY8Ek/NtDo68wIHqt4w6TSGK1jV0T/Ci5W31G6Ng1aYAEpMg06wgE8HUMDJhd8tlgdWicanE7PpvyJ94Jo3fcldJpZjK2VeNrbSq+3rlNlV8o5FlirBBO9Jkp6jGqELarvbPAzLkn4PHqb70kAEqSs13aI2cvEbbC+7iR3Tx4E3mIgL78XsD155ZsUgm8xFO/VcOyB4IapY9aXJJX+gmcOWxkzCNXDrxp2CCWlsYNRAoLgoaY1J3aVAdGplggq4r+mx2fewTvRmrt8yKdHieoIZoHBpiz/DZcvK67jXG/CQo4BMhWJowJhaR6OGIZBIOGN7N0GYJUBbZQI+FrYVmcOEhl3eehtksnarpI8jujCGlVU1iqyF3MH9f9WLQYBNmh/dqDuWpyL2BRYVMNHZwj2Amk9AT9TnxUvTML/+3pXhnhKrvLGS+oDXIBgfVF/+uf3gz0DnC4oZJEsT9S4j66M18SRHi/GVswKQ+Ba5Utw0ArK80NHWLCmCz6PV50CSAW1sovtpdok9rMFvLdA1/gbhoj4qbACDdJWaTHuc8vGfqjba1e09RYMdTXdscDbpKOUPbG3+Ytwjgzqj/GOIYgXJJAzN
- Ironport-hdrordr: A9a23:44uYSq93Mg6+yuzw24Fuk+DTI+orL9Y04lQ7vn2ZKCY0TiX2rauTdZggvyMc6wxxZJhDo7+90cC7KBvhHLFOjLX5Vo3NYOCSghrMEGgU1/qH/9SPIUHDH5ZmpMVdmv9Feb7NMWQ=
- Ironport-phdr: A9a23:0SBOXhHbXCrmAADqr/1Ox51Gf6hMhN3EVzX9CrIZgr5DOp6u447ldBSGo6k31RmQAN6Qu68MotGVmpioYXYH75eFvSJKW713fDhBt/8rmRc9CtWOE0zxIa2iRSU7GMNfSA0tpCnjYgBaF8nkelLdvGC54yIMFRXjLwp1Ifn+FpLPg8it2O2+5YDfbx9ViDe9b75+Ixa7oAXMvcQKnIVuLbo8xAHUqXVSYeRWwm1oJVOXnxni48q74YBu/SdNtf8/7sBMSar1cbg2QrxeFzQmLns65Nb3uhnZTAuA/WUTX2MLmRdVGQfF7RX6XpDssivms+d2xSeXMdHqQb0yRD+v9LlgRgP2hygbNj456GDXhdJ2jKJHuxKquhhzz5fJbI2JKPZye6XQds4YS2VcRMZcTyNOAo2+YIUPAeQPPvtWoZfhqFYVtxSyGROhCfnzxjNUhHL727Ax3eQ7EQHB2QwtB8wAsHXRrNXyKKcSUeC0x7TWwDrZdfNWwiv955bOchA6vPqBWrNwcczNyUkoCQPKkE+QqYLhPzOS2OUAqGeb7+96WuKuj24rsR1+oj+qxso1jITCm40axEze+ypj3IY1OcO3SFR9YdO8H5VduT2XO5dqT84gXW1mtzs2xL0atJO7YSQHyooqyhzfZfGIcYWF/xLtWeiSLDp7i39oebCyihWu/EWi1+DxSs+520tEoCpCl9nDrHEN1xrL58mHTft941uh2SuU2A/N8O1LPUc0la/DJ5Mj27I8iIYfvVnNEyPsmET2i7KWe0M58ear8+TqeqvqqoOYOoNuiQzzMr4iltKiDek3KAQCQmuW9fi62bb+50P2Wq9KgeczkqTBsJDVO8AbpqmhDg9QyIkj6hK/Ay6+0NQcgHULNVxFdA+EgoT1IV3OL/f4DfCwg1Sojjhn3ezJPrrkApnVL3jDlqnufapl5kJC1AY+ycpT6pFUB70bPv7/R0D8uMbFAhI6LwC42+PnB8981oMaV2KPGKiZMKbKvF+J4OIvP+6MZJELtzbnJfgl4/nujHEilF8SeKmmx5oXaHSiEvt6JEWZZGLggs0dHmcSogo+UOvqhUWeXj5Ufna+Rr4z5jUmCI29ForDXYCsgLmZ3CihBJFWZ2ZGCkqNEXjybYmEVe0MO2quJZpKlSVMfry8Qcd13ha38QT+1rBPL+zO+yReu4i1h/Zv4OiGqRA38iB0Hoy22nuWU2xyhStcRjkq275yu0J5zUir3q1xgvgeHttWsaAaGjwmPILRmrQpQ+v5XRjMK5LQEA7OqjqODjQ4T9Z3yNgLMR8V8zSKixnC22+yB+ZQmeXbXNo79aXT23W3LMF4mS6uPEwJgFwvQ88JPmqj1PYXyg==
I am reminded of the analogous question for metrology: starting from nothing, how do you build precise measurement tools?
You may enjoy this video which gives an answer in the context of metalworking/machining: https://www.youtube.com/watch?v=gNRnrn5DE58
But if you are low on time, allow me to summarize:
In a metal shop, the foundation of measurement is a thing called a "surface plate." These plates have the characteristic property of being extremely flat (see ASME B89.3.7-2013.) You can use them to make straight edges; from there the world is your oyster.
How do you make a surface plate? There is a simple trick:
1. Take two surfaces and rub them together. If you are lucky they will both wind up flat, but in all likelihood one will wind up concave and the other convex.
2. Now grab a third surface and rub it with the other two.
3. Observe that, if you have 3 surfaces and you keep rubbing them in pairs, then all will wind up flat.
Step (3) requires some basic mathematical reasoning: draw the complete graph with 3 nodes and label them according to the following rules:
i. If a node is flat, then every adjacent node must also be flat
ii. If a node is concave (resp convex), then every adjacent node must be convex (resp concave)
Of course, for the complete graph with 3 nodes, the only labeling consistent with (i) and (ii) is the labeling where all nodes are flat.
Now I ask: what is the TCB for this procedure?
Clearly it must contain the geometric argument given above together with some empirical observations about the materials in question (i.e., granite works well, mud does not).
End of story, right? Well, not exactly. The missing piece: a machine for doing the rubbing!
If you want to make some surface plates then you need to actually do the rubbing. What exact motion should you use? How much force should you apply? How often should you swap the plates? How many iterations should you perform? And most importantly: how can you build a reliable rubbing machine if you don't yet have a reliable flat surface to base your measurements on?
Answer: you don't have to!
The rubbing procedure is robust enough that, even if poorly applied, it will still generally improve flatness. This means you can use a crappy rubbing machine to make crappy surface plates, which in turn can be used to make a less-crappy rubbing machine, which then can make less-crappy surface plates, etc. Indeed, this is how humanity got to where we are today.
But it also means the "TCB" is not a "base" as much as it is a "layer."
So too with computers, I would think.
On Tue, Jan 11, 2022 at 6:23 AM Freek Wiedijk <freek AT cs.ru.nl> wrote:
Dear Sam,
> - "Trusted" hardware/software - the TCB - by contrast, is not
> formally verified to be correct. As such, a leap of faith is
> required in order for a person to trust that it will perform
> securely and correctly.
In the case of Coq often the OCaml system is taken to be
part of TCB in this sense. Now you can be almost sure that
software as big as OCaml has undetected bugs. So here is
a TCB that is very probably _not_ fully correct.
The trust then is that those bugs won't affect the correct
functioning of Coq, I guess. Which I feel one still can
be reasonably confident about.
Personally I find this kind of "trust" discussion not
very interesting. Before you know it, it degenerates into
philosophy :-)
Freek
- Re: [Coq-Club] A verified bootstrapping computer (academic curiousity), (continued)
- Re: [Coq-Club] A verified bootstrapping computer (academic curiousity), Adam Chlipala, 01/08/2022
- Re: [Coq-Club] A verified bootstrapping computer (academic curiousity), Talia Ringer, 01/08/2022
- Re: [Coq-Club] A verified bootstrapping computer (academic curiousity), Andrei Popescu, 01/08/2022
- Re: [Coq-Club] A verified bootstrapping computer (academic curiousity), Marco Servetto, 01/08/2022
- Re: [Coq-Club] A verified bootstrapping computer (academic curiousity), Talia Ringer, 01/08/2022
- Re: [Coq-Club] A verified bootstrapping computer (academic curiousity), Sam Kuper, 01/09/2022
- Re: [Coq-Club] A verified bootstrapping computer (academic curiousity), Freek Wiedijk, 01/10/2022
- Re: [Coq-Club] A verified bootstrapping computer (academic curiousity), Robert Solovay, 01/11/2022
- Re: [Coq-Club] A verified bootstrapping computer (academic curiousity), Jeremy Dawson, 01/11/2022
- Re: [Coq-Club] A verified bootstrapping computer (academic curiousity), Sam Kuper, 01/11/2022
- Re: [Coq-Club] A verified bootstrapping computer (academic curiousity), Freek Wiedijk, 01/11/2022
- Re: [Coq-Club] A verified bootstrapping computer (academic curiousity), Timothy Carstens, 01/11/2022
- Re: [Coq-Club] A verified bootstrapping computer (academic curiousity), D. Ben Knoble, 01/11/2022
- Re: [Coq-Club] A verified bootstrapping computer (academic curiousity), Timothy Carstens, 01/11/2022
- Re: [Coq-Club] A verified bootstrapping computer (academic curiousity), Freek Wiedijk, 01/11/2022
- Re: [Coq-Club] A verified bootstrapping computer (academic curiousity), Sam Kuper, 01/11/2022
- Re: [Coq-Club] A verified bootstrapping computer (academic curiousity), Jeremy Dawson, 01/11/2022
- Re: [Coq-Club] A verified bootstrapping computer (academic curiousity), Robert Solovay, 01/11/2022
- Re: [Coq-Club] A verified bootstrapping computer (academic curiousity), Adam Chlipala, 01/08/2022
Archive powered by MHonArc 2.6.19+.