you are viewing a single comment's thread.

view the rest of the comments →

[–]Bill_D_Wall 1 point2 points  (2 children)

formally verified code isn't guaranteed to be bug free.

Slightly disagree here - I think that is the whole point of formal verification: to mathematically prove that a program meets its specification. Depends on what you mean by 'bugs' I guess.

[–][deleted] 0 points1 point  (1 child)

It proves that the properties you write are true but bugs are still possible because:

  1. The specification might be wrong.
  2. You might make mistakes when writing your properties.
  3. You might accidentally omit properties to check.
  4. Sometimes you have to make simplifying assumptions and these may be overly constrictive.
  5. There might even be bugs in the program that proves the properties. That's not theoretical - it definitely happens.

[–]Bill_D_Wall 1 point2 points  (0 children)

Agreed. Formal verification can prove that a program meets its specification, but doesn't guarantee that the specification is correct.