Functional instantiation in first-order logic
Artificial intelligence and mathematical theory of computation
Automated proofs of object code for a widely used microprocessor
Automated proofs of object code for a widely used microprocessor
Applied cryptography (2nd ed.): protocols, algorithms, and source code in C
Applied cryptography (2nd ed.): protocols, algorithms, and source code in C
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Mechanized formal reasoning about programs and computing machines
Automated reasoning and its applications
A certifying compiler for Java
PLDI '00 Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation
Avoiding exponential explosion: generating compact verification conditions
POPL '01 Proceedings of the 28th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Guarded commands, nondeterminacy and formal derivation of programs
Communications of the ACM
An axiomatic basis for computer programming
Communications of the ACM
High-speed, analyzable simulators
Computer-Aided reasoning
Computer-Aided Reasoning: An Approach
Computer-Aided Reasoning: An Approach
Is Proof More Cost-Effective Than Testing?
IEEE Transactions on Software Engineering
Machine-Checking the Java Specification: Proving Type-Safety
Formal Syntax and Semantics of Java
Formal Verification of a Java Compiler in Isabelle
CADE-18 Proceedings of the 18th International Conference on Automated Deduction
Foundational Proof-Carrying Code
LICS '01 Proceedings of the 16th Annual IEEE Symposium on Logic in Computer Science
A program verifier
Journal of Automated Reasoning
A verifying core for a cryptographic language compiler
ACL2 '06 Proceedings of the sixth international workshop on the ACL2 theorem prover and its applications
A robust machine code proof framework for highly secure applications
ACL2 '06 Proceedings of the sixth international workshop on the ACL2 theorem prover and its applications
Efficient weakest preconditions
Information Processing Letters
Journal of Computer and System Sciences
Isabelle/HOL: a proof assistant for higher-order logic
Isabelle/HOL: a proof assistant for higher-order logic
TPHOLs'05 Proceedings of the 18th international conference on Theorem Proving in Higher Order Logics
Verification of BDD normalization
TPHOLs'05 Proceedings of the 18th international conference on Theorem Proving in Higher Order Logics
Formal verification of a SHA-1 circuit core using ACL2
TPHOLs'05 Proceedings of the 18th international conference on Theorem Proving in Higher Order Logics
A robust machine code proof framework for highly secure applications
ACL2 '06 Proceedings of the sixth international workshop on the ACL2 theorem prover and its applications
A Mechanical Analysis of Program Verification Strategies
Journal of Automated Reasoning
Proceedings of the 2008 International Conference on Formal Methods in Computer-Aided Design
Machine-code verification for multiple architectures: an application of decompilation into logic
Proceedings of the 2008 International Conference on Formal Methods in Computer-Aided Design
Mechanized information flow analysis through inductive assertions
Proceedings of the 2008 International Conference on Formal Methods in Computer-Aided Design
Transforming Programs into Recursive Functions
Electronic Notes in Theoretical Computer Science (ENTCS)
Verified just-in-time compiler on x86
Proceedings of the 37th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Structure of a proof-producing compiler for a subset of higher order logic
ESOP'07 Proceedings of the 16th European conference on Programming
Science of Computer Programming
Hi-index | 0.00 |
We present a method to convert (i) an operational semantics for a given machine language, and (ii) an off-the-shelf theorem prover, into a high assurance verification condition generator (VCG). Given a program annotated with assertions at cutpoints, we show how to use the theorem prover directly on the operational semantics to generate verification conditions analogous to those produced by a custom-built VCG. Thus no separate VCG is necessary, and the theorem prover can be employed both to generate and to discharge the verification conditions. The method handles both partial and total correctness. It is also compositional in that the correctness of a subroutine needs to be proved once, rather than at each call site. The method has been used to verify several machine-level programs using the ACL2 theorem prover.