Or it means constraining your domain and only accepting those programs about which the properties you care about can be proved. Or it means accepting the risk that your system might break.
Re:Intelligence as a Halting Oracle
by ScottBurson on Monday November 05, 2018 @05:36PM
(#18386628)
Or it means accepting that your prover will need occasional hints from a human expert. I think this will always be true, when we're doing software verification. Another way to look at the problem, then, is: how do we reduce the need for manual intervention to a minimum?
So we have to accept incompleteness, but obviously we want our program-property prover to be able to prove as much as possible. How do we approach that? I don't think we can make much progress approaching it mathematically; I think we have to approach it as an AI problem. That means figuring out how humans manage to be "partial oracles" and doing the same thing as much as we can. It means heuristics, it means pattern matching, it means machine learning.