|
|
|
|
|
by the_french
2077 days ago
|
|
I'm starting my PhD under the supervision of one of the Frama-C authors, if you have questions I can relay them. In general I've found deductive verification techniques interesting / promising because they free engineers of a lot of required but tedious details you'd have in ITPs. However, I think there's a LOT of room for improvement in terms of ergonomics of proof debugging. For a frequent (for me) problem when debugging invariants is conditionals that break the invariant. if i have some code doing something like while (X) {
invariant { forall i. 0 <= i < N .... }
if j < i A else B
}
But it turns out that one of the branches A, B doesn't preserve the invariant well all the provers will tell me is 'can't prove this!' it's up to you to perform the transformations that split the two cases (granted in this example it's trivial) so that you can see that only _one_ branch was failing.I think that there should be transforms that automatically do things like split the range of an interval along relevant points (aka j) to help you figure out which portions are failing. There are tons of other issues related to proof ergonomics that could be improved, the UIs are really stuck in the 90s! |
|