Skip to Content.
Sympa Menu

coq-club - Re: [Coq-Club] A verified bootstrapping computer (academic curiousity)

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

Re: [Coq-Club] A verified bootstrapping computer (academic curiousity)


Chronological Thread 
  • From: Talia Ringer <tringer AT cs.washington.edu>
  • To: coq-club AT inria.fr
  • Subject: Re: [Coq-Club] A verified bootstrapping computer (academic curiousity)
  • Date: Sat, 8 Jan 2022 13:20:44 -0600
  • Authentication-results: mail3-smtp-sop.national.inria.fr; spf=None smtp.pra=tringer AT cs.washington.edu; spf=Pass smtp.mailfrom=tringer AT cs.washington.edu; spf=None smtp.helo=postmaster AT mx6.cs.washington.edu
  • Ironport-data: A9a23:hj8OB625r+RK4ZraL/bD5Wtzkn2cJEfYwER7XOPLsXnJ1WglhTcBzGNNCmiEP6uDZTPwKd5+aYzj9EgDvZLXnNESHQtv/xmBbVoa8JufXYzxwmTYZn7JcJWbFCqL1yivAzX5BJhcokT0+1H9YtANkVEmjfvSHuOkWLaeUsxMbVYMpBkJ2UoLd9ER2dYAbeiRW2thiPuqyyHtEAfNNw1cbgr435m+RCZH55wejt+3UmsWPpintHeG/5Uc4Ql2yauZdxMUSaEMdgK2qnqq8V23wo/Z109F5tKNl6alNEYRBKHbJgiPjHVKXK7kjxRfzsAw+v9hZLxGMRcR12rPwokZJNZl7fRcTS81JKzKl+kHexJDVT53Jq1H/rDbJn75vMCOp6HDWyG0mK8yUh9e0Yowp78pUT8VnRACExgGaQnGjOarypqgW+x0j4IiKtPqNcURoBldIZvxZRo9aZXTHePB/plH1Swwh8ZBAfHYIccVdFJSgN37S0UnEj8q5FgWxY9ER0UTcgG0bHqQtfRx6HOV0wVq0LnrP8bSfJqHSdg9coOwzo7Z1zyRP/3YHIX3Jfm5HraEjfSJgirgWIMUG6G/8LhnjED7Kqk7FkgNTVXiyRWmohfWZj+cQnD4PgIltu4t/VerT9/yQxq+5nOIo3bwnvI4//ISsGmw90Yf3+pV6qXogNKMhBzKefLanQAX62I=
  • Ironport-hdrordr: A9a23:rqGyCK81epGjYFpWQuduk+DbI+orL9Y04lQ7vn2ZLiYlFfBw9vre+MjzuiWbtN98YhsdcKm7WZVoGEm9yXcW2/hyAV7KZmCPhILPFu5fBKTZrwEIcBeUygcy78pdm78XMqySMbCl5vyKhTWFLw==
  • Ironport-phdr: A9a23:ZG7mCBc3WeeIf9PqjTAVsipXlGM+TN7LVj580XLHo4xHfqnrxZn+JkuXvawr0AWQG9yHtrkV1KL/iOPJYSQ4+5GPsXQPItRndiQuroEopTEmG9OPEkbhLfTnPGQQFcVGU0J5rTngaRAGUMnxaEfPrXKs8DUcBgvwNRZvJuTyB4Xek9m72/q99pHNfglEniexbLxyIRm5qQjctNQdjJd/JKo21hbHuGZDdf5MxWNvK1KTnhL86dm18ZV+7SleuO8v+tBZX6nicKs2UbJXDDI9M2Ao/8LrrgXMTRGO5nQHTGoblAdDDhXf4xH7WpfxtTb6tvZ41SKHM8D6Uaw4VDK/5KptVRTmijoINyQh/W7YhMx/jqJVrhyiqRJi3YDbfJqYO+Bicq7HZ94WWXZNU8RXWidcAo28dYwPD+8ZMOhGtYb9o1oOogGjDgewBePvzDBIiWHs3aYn1OkhDRvG3A0mH9IBrnvUts74O7sJUeyvwqjH1y7Db/NX2Tf754jIbhchofeWUb1ubMXR1FAiGgXYhVqftYLrJSma1vgRs2eF9epgU/qihmwnpg1toTWi2skhh4bGi48R1F3J8Th0zok7KNC6VEN3fNypHIZMuyyZKoZ6X8wvTm92tCs+yLALt522cSYFxpkh2hXRaOSHfpCV7h79V+udOyl0iG5mdb6liBu/81Ksx+3hWsWszlpGsi5InsPPu30NzRDf98mKR/pn8ku82zuC2Qbe4fxeL08uj6rUMZshz6YwlpUNtUTDGTf7mED5jaKXbEkr5vOo5/7pY7r8vZ+cN450igfxMqQyncy/B/40PRYTUGiG4ei81bvj8lPlQLhSk/E6jKrUvIrEKcgHpaO1GQBY34Q55xu/EjuqyNEYkmMGLFJBdhKHlY/pO1TWLfDkF/e/glKskDh1yPDcJbDuHo7NImLNkbj7ZrZ9609cyAw8zdBD4JJUDKsNL+zuVU/srNDYFAM2MxSow+b7D9Vwzp8RWWWWAqOALKzStUKI6fk0LumXZI4VvS79JOI/6/7vi385g14dcrOz0ZsZcnDrVshhdk6eeD/nhsoLOWYMpAs3CuLw23OYVjsGW3+2Xqt03DA9B4+8RdPfXIGrj7Gb9CygWIJffWBHDF+QFnGueomZDaRfIBmOK9Nsx2RXHYOqTJUsgEnGXOrSwKEhMePP+iweuo7k0p546/CBzXnaGhR/FIKC2nqNTmd7gmQOATI6wfImyaSc4lKTj+5zmLpHHMdT5vVGTgA8c5PQ0r4iY+0=

Thanks, yes, that makes sense. Someone else I was talking to brought up that minimizing the TCB at each step is its own interesting constraint, but not necessarily the best one if your goal is to minimize the TCB in the end, and to do it efficiently.

But if we do separate those two, it does kind of raise a question to me about what the final TCB really means, if it relies on bootstrapping starting with a system with a very large TCB at an earlier step. Then you have a large TCB that you trust only once; is this better than many smaller TCBs that you trust once each at each step of the process? (I'd believe it's easier to do, I just don't know if it's more trustworthy.) How does self-validation change that, if at all?

I would love a course like this one day. I hope you're right.

Talia



On Sat, Jan 8, 2022, 1:13 PM Adam Chlipala <adamc AT csail.mit.edu> wrote:

Thanks for drawing attention to a worthy goal, which I think at least a few different research groups already have in mind, at least philosophically.

For such an effort, setting the goals properly can have a big effect on where it winds up.  I'm not sure it makes sense to ask to "minimize the TCB as much as possible at each step."  Rather, I'd expect that earlier stages are discarded as they are used to produce later stages, and the final stage can be used independently for self-validation.  So, shrinking the TCB in an earlier stage isn't necessarily a good deal, if it delays the completion of later stages.

There are plenty of high-impact proof-assistant developments that never could have been completed so soon if e.g. the original Coq team had decided to wait 20 additional years for the first release, to shrink the TCB as much as they could think up in brainstorming a project roadmap!

Also, I don't think this question has zero practical motivation.  I would hope that, 50 years from now, everyone takes for granted the existence of a repeatable process like you describe, leading to the systems they depend on.  And, even sooner, we should be able to run undergraduate courses that follow such processes toward more modest endpoints.

On 1/8/22 1:41 PM, Talia Ringer wrote:
Something that nerd-sniped me today: Suppose you are building a computer from the ground up, starting with building the hardware. You cannot use any other computers to build or verify anything; this is the only computer in the world, and you have only what you've built at each step. You have no languages, no operating systems, no compilers, no verification tools. All you can do is bootstrap.

Suppose you'd like to verify every single part of the hardware and software stack to the degree possible. It's OK (inevitable I guess) to start with unverified hardware, though, and replace it later with hardware you verify (has anyone done that? It sounds cool). You have two additional goals:

1) verify as much as possible at each each, and
2) minimize the TCB as much as possible at each step.

How would you go about this? What are the biggest conceptual barriers to this, if any? What is the smallest you can get the TCB at any step of the process, and in the end?

This is a purely academic and open-ended question, with zero practical motivation. It just sounds fun to think about and try, and like thinking about it might reveal interesting subproblems that actually have practical motivation.

Talia




Archive powered by MHonArc 2.6.19+.

Top of Page