Roy Bartsch and Wolfgang Goerigk
This paper is to show how mechanical theorem proving can be used to verify even complex and heuristic programs like mission critical expert systems. Our approach is mechanical in two ways: The basic idea of runtime result verification is to validate each program result (at runtime) rather than to verify the program itself beforehand. Filtering each result by a sufficient algorithmic correctness predicate guarantees partial correctness of the modified program, if successful checking is proved to imply correctness of the result. We use a mechanical theorem prover to prove the latter fact.