Designing programs that check their work
STOC '89 Proceedings of the twenty-first annual ACM symposium on Theory of computing
Introduction to HOL: a theorem proving environment for higher order logic
Introduction to HOL: a theorem proving environment for higher order logic
A Formally Verified Sorting Certifier
IEEE Transactions on Computers
LEDA: a platform for combinatorial and geometric computing
LEDA: a platform for combinatorial and geometric computing
A Theorem Prover for a Computational Logic
Proceedings of the 10th International Conference on Automated Deduction
Interactive Theorem Proving and Program Development
Interactive Theorem Proving and Program Development
Towards the Formal Verification of a C0 Compiler: Code Generation and Implementation Correctnes
SEFM '05 Proceedings of the Third IEEE International Conference on Software Engineering and Formal Methods
Verification of an Off-Line Checker for Priority Queues
SEFM '05 Proceedings of the Third IEEE International Conference on Software Engineering and Formal Methods
Imperative Functional Programming with Isabelle/HOL
TPHOLs '08 Proceedings of the 21st International Conference on Theorem Proving in Higher Order Logics
HOL-Boogie -- An Interactive Prover for the Boogie Program-Verifier
TPHOLs '08 Proceedings of the 21st International Conference on Theorem Proving in Higher Order Logics
Formal Verification of a Microkernel Used in Dependable Software Systems
SAFECOMP '09 Proceedings of the 28th International Conference on Computer Safety, Reliability, and Security
VCC: A Practical System for Verifying Concurrent C
TPHOLs '09 Proceedings of the 22nd International Conference on Theorem Proving in Higher Order Logics
Certification of Termination Proofs Using CeTA
TPHOLs '09 Proceedings of the 22nd International Conference on Theorem Proving in Higher Order Logics
HOL-Boogie--An Interactive Prover-Backend for the Verifying C Compiler
Journal of Automated Reasoning
seL4: formal verification of an operating-system kernel
Communications of the ACM
The Why/Krakatoa/Caduceus platform for deductive program verification
CAV'07 Proceedings of the 19th international conference on Computer aided verification
Isabelle/HOL: a proof assistant for higher-order logic
Isabelle/HOL: a proof assistant for higher-order logic
TACAS'08/ETAPS'08 Proceedings of the Theory and practice of software, 14th international conference on Tools and algorithms for the construction and analysis of systems
Industrial-strength certified SAT solving through verified SAT proof checking
ICTAC'10 Proceedings of the 7th International colloquium conference on Theoretical aspects of computing
Verification of certifying computations
CAV'11 Proceedings of the 23rd international conference on Computer aided verification
Characteristic formulae for the verification of imperative programs
Proceedings of the 16th ACM SIGPLAN international conference on Functional programming
Boogie: a modular reusable verifier for object-oriented programs
FMCO'05 Proceedings of the 4th international conference on Formal Methods for Components and Objects
Extending coq with imperative features and its application to SAT verification
ITP'10 Proceedings of the First international conference on Interactive Theorem Proving
Computer Science Review
ORIENTAIS: Formal Verified OSEK/VDX Real-Time Operating System
ICECCS '12 Proceedings of the 2012 IEEE 17th International Conference on Engineering of Complex Computer Systems
Hi-index | 0.00 |
Formal verification of complex algorithms is challenging. Verifying their implementations goes beyond the state of the art of current automatic verification tools and usually involves intricate mathematical theorems. Certifying algorithms compute in addition to each output a witness certifying that the output is correct. A checker for such a witness is usually much simpler than the original algorithm--yet it is all the user has to trust. The verification of checkers is feasible with current tools and leads to computations that can be completely trusted. We describe a framework to seamlessly verify certifying computations. We use the automatic verifier VCC for establishing the correctness of the checker and the interactive theorem prover Isabelle/HOL for high-level mathematical properties of algorithms. We demonstrate the effectiveness of our approach by presenting the verification of typical examples of the industrial-level and widespread algorithmic library LEDA.