Skip to Content.
Sympa Menu

coq-club - Re: [Coq-Club] [isabelle] In a world of perfect interoperability between proof assistants, what tools would you combine?

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

Re: [Coq-Club] [isabelle] In a world of perfect interoperability between proof assistants, what tools would you combine?


Chronological Thread 
  • From: Kevin Sullivan <sullivan.kevinj AT gmail.com>
  • To: coq-club AT inria.fr
  • Cc: Talia Ringer <tringer AT cs.washington.edu>, isabelle-users <isabelle-users AT cl.cam.ac.uk>
  • Subject: Re: [Coq-Club] [isabelle] In a world of perfect interoperability between proof assistants, what tools would you combine?
  • Date: Tue, 19 May 2020 10:52:35 -0400
  • Authentication-results: mail3-smtp-sop.national.inria.fr; spf=None smtp.pra=sullivan.kevinj AT gmail.com; spf=Pass smtp.mailfrom=sullivan.kevinj AT gmail.com; spf=None smtp.helo=postmaster AT mail-ed1-f47.google.com
  • Ironport-phdr: 9a23:kmhCzBFXxr2vEq++3v2ATZ1GYnF86YWxBRYc798ds5kLTJ7yp8+wAkXT6L1XgUPTWs2DsrQY0reQ6vi/EjxYqb+681k6OKRWUBEEjchE1ycBO+WiTXPBEfjxciYhF95DXlI2t1uyMExSBdqsLwaK+i764jEdAAjwOhRoLerpBIHSk9631+ev8JHPfglEnjWwba5yIRmssAndqssbjYRhJ6ot1xDEvmZGd+NKyG1yOFmdhQz85sC+/J5i9yRfpfcs/NNeXKv5Yqo1U6VWACwpPG4p6sLrswLDTRaU6XsHTmoWiBtIDBPb4xz8Q5z8rzH1tut52CmdIM32UbU5Uims4qt3VBPljjoMOiUn+2/LlMN/kKNboAqgpxNhxY7UfJqVP+d6cq/EYN8WWXZNUsNXWidcAI2zcpEPAvIOMuZWrYbzp1UAoxijCweyGOzi0SVHimPs0KAgz+gtDQPL0Qo9FNwOqnTUq9D1Ob8XX++r0qnIzDPDZO5L1zfg7IjIdhEhoe+WUrJ2bMHczlIvFx7BjlWUqIzlISma1uIXv2iY8eVgS+Ovi2glqwxqrTivw90jiojNho4P1l/E8iB5zZ8zKNalR0F1fcSqH4FMtyGGKYR2WMUiTnlmtSs51rEKpJy2cDUFxZg5yBPSavKKf5aG7x79V+ucLit0iXB5dL+8hBu+70iux/DiWsS20VtHryRIn8fCuH4D0RHY98aJSvx4/ki72DaP0Rje6u5FIUAolarbNoUuzqQsmZoUtETOGDL9lkbujKKOaEko5uyl5/7kb7jmvJOQKZN4hwLkPqkhmMGyB/kzPBIUUGiB4+u80aXu/U3nT7VOif07iqzZv4rbJcQfv6K2HRJa3ps65xaxADqr0s4UnXYALFJCdxKHi5bmN0vSL/D/CPezm1WskDF1yPDaJrDtHInBI3zZnLrifbtx8VBQxBYwwNxF6J9ZCKkNIPfpVU/wsNzYAAU5Mwuxw+v/E9V9y4ceWWaOAq+HKqzSt0WE5uExLOmSZY8VvjT9JuMq5/7rl3A5mFsdcbO10psQbXC0Bu5mLFmBYXrwntcBFn8HsRY5TOzzkVGNTTpTZ2upUK8n/TE6CIemDZ/ZSYy3gbyB2j27HpxMaWxcBFCMCySgS4LRUPAVLSmWP8VJkzoeVLHnRZVy+wupsVrZxqRmKKLv5ykctIzq0pAh/PDXkRAs/DoyDMmD0mePZ25xl2IMATQx2fYs8gRG1l6f3P0g0LRjHttJ6qYMC19ibMKO/6lBE9n3Hzn5UJKRUl//G4epBDgwSpQ6xNpcOx8sSeXntQjK2m+RO5FQkrWKAJIu9aeFhir+Is98zzDN06xz1gB7EPsKDnWvg+tEzyaWB4PNlB/ExaOjdKBZ0SKUsWnfkiyBu0ZXVAM2WqLADygS

+1

On Tue, May 19, 2020 at 9:33 AM Mark Wassell <mpwassell AT gmail.com> wrote:
> Most notably on the existing work that can span proof assistants, I think of the SAIL project for hardware architectures which has an Isabelle
> (or HOL?) backend and a Coq backend (though it is a bit behind the other one).

As an aside: From the same stable as Sail there is also Lem (https://github.com/rems-project/lem) which follows the same idea of exporting to multiple backends including multiple theorem provers (Isabelle/HOL, HOL4 and Coq). Whilst targeted at "lightweight executable mathematics, for writing, managing, and publishing large-scale portable semantic" this is after all what a lot of us use theorem provers for.

Cheers

Mark

On Tue, 19 May 2020 at 14:23, Gregory Malecha <gregory AT bedrocksystems.com> wrote:
For me, the most useful things to be able to share would be formalizations of standards. These tend to be "boring" but necessary for building systems that run in real life. There is a lot of work in this and some of it is even portable due to its development.

Most notably on the existing work that can span proof assistants, I think of the SAIL project for hardware architectures which has an Isabelle (or HOL?) backend and a Coq backend (though it is a bit behind the other one).

As you move up the stack, however, things separate. I'm more familiar with the work in Coq, but many projects have already been listed. But one thing that I didn't notice are non-CPU hardware models. E.g. devices like interrupt controllers, ethernet cards, etc. Slightly more abstract would be things like the VirtIO specification which is generally fairly common across architectures and different software stacks.

Higher up the toolchain most people have already noted. Language standards are the things that we think about the most, CakeML, CompCert C, etc, but there are other ones as well. Robbert Krebber's thesis has a formalization of the C standard that attempts to follow the standard more closely than CompCert C, we are working on a model and program logic for the C++ standard, I'm aware of work on the Ethereum virtual machine in HOL as well. The work at UPenn on the semantics of LLVM is also very notable in this context.

It would be amazing to try to share automation-style tools across the different provers, but I think that is a more ambitious goal (one I'm not certain is entirely possible due to the vastly different styles). However, I think that it should be completely reasonable to write models in a slightly stylized way to achieve portability across theories.


On Mon, May 18, 2020 at 9:09 AM Peter Lammich <lammich AT in.tum.de> wrote:
Hi

I would like to see Compcert, at least its backend (IR, optimizations,
machine code generation), being usable from Isabelle.
Then I could probably retarget my Refinement Framework to use Compcert-
IR as a backend, closing the gap from very high-level specifications to
machine code. Similar for CakeML (Currently, the Refinement Framework
targets LLVM or SML).

--
  Peter



On Sun, 2020-05-17 at 16:42 -0700, Talia Ringer wrote:
> Say we one day are able to just take things from Isabelle/HOL and use
> them
> with Coq developments with no additional effort, or similarly in the
> opposite direction, or similarly for any other pair of proof
> assistants.
> Say we would get strong guarantees about these combined verified
> systems.
> Just humor this for a second.
>
> In such a world, what systems would you want to combine, and why?
>
> Talia



--

Gregory Malecha

Mail: gregory AT bedrocksystems.com

BedRock

Systems Inc
UNBREAKABLE FOUNDATION FOR

FORMALLY SECURED COMPUTING



Archive powered by MHonArc 2.6.19+.

Top of Page