Replies: 5 comments 5 replies
-
This sounds like a splendid idea! Let's do this. |
Beta Was this translation helpful? Give feedback.
-
I'm curious, is Kind2 mature enough to use for our proofs instead of Coq, or is that still too new or not have the features we need? |
Beta Was this translation helpful? Give feedback.
-
What features you need? Kind still lacks some features that are important for serious mathematics, namely coverage/totality checking. You can use it to make any kind of formal proof you would on Coq, and it would be much more pleasing to work with (specially given how fast the checker is), but you'd need to make sure you don't write loops. Also, if you're a fan of tactics proving style, Kind doesn't have that. And it won't prove anything for you via complex unification, so you can't just skip impossible cases (like on Agda), you must write the proof explicitly, but I actually prefer it that way. All in all, there are differences that make it worse or better. It really depends on what you need to do. |
Beta Was this translation helpful? Give feedback.
-
I just wanted to shout out an extra thanks for pointing me to that course @rigille. I've gotten to the end of the first chapter, and it's pretty awesome! This is exactly the kind of thing I was looking around for, coincidentally enough, not even related directly to HVM initially. 🤩 Coq actually seems quite nice as a proof environment so far. I'm using the VSCode plugin and the workflow seems pretty enjoyable at least while going through the first chapter. |
Beta Was this translation helpful? Give feedback.
-
It would indeed be nice to have a formal verification of the HVM. (Especially the variant that will be used in Kindelia for smart-contract execution.) |
Beta Was this translation helpful? Give feedback.
-
HVM is well on its way to becoming the fastest functional runtime. Could it also become the most reliable functional runtime? After looking around in the current verification engineering ecosystem I think it can. My idea is to first define interaction nets in Coq, then define @VictorTaelin's memory model in C and prove that it's safe and preserves the semantics of inets even considering concurrent reduction of terms and other optimizations. So the roadmap sketch is
But is certain that more things will show up as we go. Would you like to help? Share you ideas. Read Software Foundations and you're good to go. We start after two people show interest. 😁
Beta Was this translation helpful? Give feedback.
All reactions