This comment is deeply misleading. O'Hearn's
incorrectness logic that you cite in your [1] is perfectly sound. It just changes the
meaning of Hoare triples from over-approximation to under-approximation. In brief:
- Hoare logic soundly over-approximates
- Incorrectness logic soundly under-approximates
Sound under-approximation is extremely useful when you want to prove that a certain problem must arise in code, rather than may arise. The problem with logic based program verification has often been that your prover could not prove that a program was correct, but, due to over-approximation of traditional Hoare logic, the best you could learn from this failure was (simplifying a great deal) that something may go wrong. That is not particularly useful in practise, since often this is a false alert.