the_french
Joined 14 years ago
Joined 14 years ago
Additionally, my advisor collaborates with them on counterexample generation, especially with managing to get readable counterexamples out from the SMT. We've toyed a little with invariant generation but its very tricky to get something actually usable. Additionally, I have the personal (soft) requirement that the generated invariant should be injected into the source code and not purely internal / hidden.
Incidentally, I've started working on a VSCode frontend to Why3 to replace the existing GTK one (https://github.com/xldenis/whycode), I'm currently rewriting the PoC as an LSP extension.
More broadly in the context of a Frama-Rust, much like Frama-C Why3 would be one of many possible backends. I specifically want abstract interpreters, test generation and other analyses to integrate and co-operate to solve proof obligations.
Ie: abstract interpretation could infer a loop invariant which is then used by a deductive backend to prove the function contract. Or a deductive failure could produce a counterexample which is transformed into a test case automatically.
I think that the first step is to develop a shared specification language for Rust, one that eventually could even become official like SPARK for Ada, then we move forward on integrating tools into a platform.
I'm curious what kinds of software they want to (eventually) verify, my PhD thesis is developing a verification tool for Rust (https://github.com/xldenis/creusot) and I'm always on the look out for case studies to push me forward.
The road to formally verified Rust is still long but in my unbiased opinion looking quite bright, especially compared to other languages like C. Ownership typing really, really simplifies verification.
Looking at countries like the Netherlands this is not true. Train stations have rentable bikes which are always available in sufficient quantities.
> So what do we do? Uber-Tesla-Subway pods. I call it by phone, it shows up to my house, either transfers me or lets me dock with the subway and then brings me the last mile just to leave me there for the next thing it has to do.
Individual 'pods' will just never be a sufficiently scalable & ecologically friendly solution for any real city. There's just no way that having several hundred kilos of metal & plastic per individual, along with the space requirements (esp for safety) works.
On the other hand, autonomous & shared 'cars' could replace individual vehicles for hauling / transporting as peak usage would be much lower than for transit.
Nitpick, because those programs have no type they are not members of the Simply Typed Lambda Calculus but only of the underlying untyped calculus
If you wanted to use a TPM to store the FDE passphrase, well, you have the patience of a saint. Compare this to Mac or Windows where you click a single button and it's all setup, including TPM!
As much as I love linux for server environments, it remains a failure when it comes to modern desktop environments.