In this blog post, we present our development steps to build a tool to translate Go programs to the proof system Coq.
The goal is to formally verify Go programs to make them totally bug-free. It is actually possible to make a program totally bug-free, as formal verification can cover all execution cases and kinds of properties thanks to the use of mathematical methods. This corresponds to the highest level of the Evaluation Assurance Levels used for critical applications, such as the space industry.
All the code of our work is available on GitHub at github.com/formal-land/coq-of-go.