Formal verification of containers

David Feuer david.feuer at gmail.com
Thu Feb 1 05:02:14 UTC 2018


I don't think we should limit containers development like that. I do
imagine it would be valuable to have a separate package, perhaps called
verified-containers, that tries to stay a few weeks or months behind
containers.

On Jan 31, 2018 11:18 PM, "Joachim Breitner" <mail at joachim-breitner.de>
wrote:

> Hi containers maintainers,
>
> you might have already read it between the lines, but some people here
> at Penn are currently using hs-to-coq to translate the containers
> library to Coq and verify it. We just reached a milestone by verifying
> a portion of Data.IntSet large enough to instantiate Coq’s
> FSetInterface:
> https://github.com/antalsz/hs-to-coq/blob/master/examples/
> containers/theories/IntSetProofs.v
>
> There is  work on verifying Data.Set as well:
> https://github.com/antalsz/hs-to-coq/blob/master/examples/
> containers/theories/SetProofs.v
>
> Isn’t that exciting?
>
> It raises the question whether there is value in integrating these
> proofs in some way into the development process of containers. One
> could imagine adding a job to travis that translates container’s master
> into Coq and checks if the proofs go through.
>
> On the one hand, that’s of course great, because it’d make containers
> one of the most thoroughly verified pieces of Haskell in use out there.
>
> On the other hand, we’d have to choose the least bad of a bunch of bad
> options when it comes to future contributions (I am listing unfeasible
> options as well):
>
>  - we essentially freeze the code
>  - we’d lose the verification again quickly, once someone makes a non-
>    trivial change to the code
>  - we’d have to restrict contributions to those who are able to update
>    the proofs
>  - we’d still welcome contributions that break the proofs, but let them
>
>    sit in pull requests until someone updates the proofs on the PR and
>    then merge
>  - (maybe a bit far fetched, but who knows)
>    we get funding to pay someone to keep the proofs in sync, without
>    slowing down other contributions
>
> I honestly don’t know which of these are the most viable, or if none of
> them make any sense and we should not hook up the verification with
> container’s development.
>
> What do you think?
>
> Cheers,
> Joachim
>
> --
> Joachim Breitner
>   mail at joachim-breitner.de
>   http://www.joachim-breitner.de/
>
> _______________________________________________
> Libraries mailing list
> Libraries at haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/libraries/attachments/20180201/b421406b/attachment.html>


More information about the Libraries mailing list