84 karma · joined August 19, 2015
>using a parser combinator framework (like https://github.com
>/Geal/nom) over parser generators.
Why?
> Lean is written in pretty principled C++.
For how long this will last? Many will agree here, that C++ is known for its ineptitude for "long-term" projects where maintenance issues are of crucial importance. I presume that proof assistants belong to that class. If Leo is the only developer of this project for the rest of life, then it is OK, I guess.
>correct themselves, lacking a formalization of the target
>language's semantics.
CertiCoq project aims to provide a certified compiler from Coq into CLight (formalized subset of "Safe C"). In this respect,
it is superior to what you have mentioned, I guess.
Offtopic: Lean's effort seems strange to me. Usage of C++ as its implementation language gets me really nervous,
I feel doubt in its reliability.
while "true" extractor has to be written in Coq, as I understand :-)
Its just a little out of scope of the current thread, because the author of parent message was talking about using pure Ada/SPARK, without help of TLA+ (As I understand it in the first place), so my comment about using contracts was in that context.
As far as I understand modern truly reliable system (commerical avionics-like) still must be relatively simple to be verified up to hardware level.
Runtime checks are good as to prevent something from happening, but they are not able to guarantee the absence of an error in the first place, right?
I think the phrase 'reliable systems' is more appropriate to what you are up to, as opposed to the phrase 'correct systems' which usually corresponds to formal verification.
Well I really enjoy reading articles from top-tier venues (PL theory). It means that committee does a good work filtering and improving articles, definitely not without mistakes.
> They just use the model checker, that can check
> liveness, too
This is not quite true. Liveness is about infinite number of states, but any real model checking is bounded by definition.
For an engineer this is not a problem at all, but as for comp.sci researcher your ability to use TLA+ is limited in this respect.
> Lamport has repeatedly said "temporal logic is evil"
Well I respect Mr.Lamport`s point, but to prove liveness you are almost doomed to use temporal logic.
On the other hand a logical model can be encoded in a rather short amount of time by someone who is doing it periodically.
This hypothetical guy could benefit from this activity by co-authoring the paper. Original authors would benefit from it by reinforcing both the protocol and the paper.
1. Add a system model description under which your protocol is expected to operate.
2. Add description of fault-tolerant properties of the protocol.
3. Do you plan to prove correctness of the algorithm more formally? Maybe you could model the algorithm before publishing. If you prove a safety property using model checking it could considerably reduce doubt about an algorithm correctness.