Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Principles of Program Analysis
Principles of Program Analysis
Systematic design of program analysis frameworks
POPL '79 Proceedings of the 6th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Proof-carrying code from certified abstract interpretation and fixpoint compression
Theoretical Computer Science - Applied semantics
Bytecode Analysis for Proof Carrying Code
Electronic Notes in Theoretical Computer Science (ENTCS)
Small witnesses for abstract interpretation-based proofs
ESOP'07 Proceedings of the 16th European conference on Programming
Reduced certificates for abstraction-carrying code
ICLP'06 Proceedings of the 22nd international conference on Logic Programming
Proof-producing program analysis
ICTAC'06 Proceedings of the Third international conference on Theoretical Aspects of Computing
Non-null references by default in java: alleviating the nullity annotation burden
ECOOP'07 Proceedings of the 21st European conference on Object-Oriented Programming
Preservation of Proof Obligations from Java to the Java Virtual Machine
IJCAR '08 Proceedings of the 4th international joint conference on Automated Reasoning
The MOBIUS Proof Carrying Code Infrastructure
Formal Methods for Components and Objects
An Abstract Model of Certificate Translation
ACM Transactions on Programming Languages and Systems (TOPLAS)
Hi-index | 0.00 |
In Proof-Carrying Code, the verification condition generator (VCgen) generates a set of formulas whose validity implies that the code satisfies the consumer policy. Applying a VCgen to a bytecode language with exceptions (such as Java bytecode) can result in a large number of proof obligations, due to the amount of branching instructions. We present a VCgen for Java bytecode that uses static analyses to reduce the number of proof obligations. As a result, the task of producing a proof is simpler, and the subsequent proof terms smaller. We formalize the VCgen as a deep embedding in Coq and prove soundness with respect to the Bicolano formalization of the Java bytecode semantics.