Hacker News new | past | comments | ask | show | jobs | submit login

Even coq have had its bugs where it was possible to prove that true is false: https://github.com/clarus/falso



True. That's why formal verification is only one of many techniques in high assurance (A1/EAL7) evaluations. The methods are all a check against each other with the minds of the designers and evaluators being the strongest check. That might seem counter-intuitive given we're doing formal verification due to people's inability to write code. Yet, people equipped properly can see mistakes in good specs or designs much better than they can do tedious work (eg low-level code) without error.

So, in high assurance, we use every tool at our disposal to counter problems and then some for redundancy. Works out fine. That said, I have a nice paper for you if you want to see how screwed up formal verification can get:

http://www.cypherpunks.to/~peter/04_verif_techniques.pdf

Things have gotten a bit better but plenty of truth left in that paper.


Coq's kernel isn't particularly small so bugs are to be expected. The bug exploited in "falso", however, was outside the kernel. It never threatened correctness of existing Coq proofs.


Even mathematicians have had bugs where they agreed with a proof but then it turned out to be wrong.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: