Higher-order unification with dependent function types
RTA-89 Proceedings of the 3rd international conference on Rewriting Techniques and Applications
Logic programming in the LF logical framework
Logical frameworks
A framework for defining logics
Journal of the ACM (JACM)
Using typed lambda calculus to implement formal systems on a machine
Journal of Automated Reasoning
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
The design and implementation of a certifying compiler
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
From system F to typed assembly language
ACM Transactions on Programming Languages and Systems (TOPLAS)
CCS '99 Proceedings of the 6th ACM conference on Computer and communications security
Java Virtual Machine Specification
Java Virtual Machine Specification
Towards a theory of type structure
Programming Symposium, Proceedings Colloque sur la Programmation
Elf: A Meta-Language for Deductive Systems (System Descrition)
CADE-12 Proceedings of the 12th International Conference on Automated Deduction
Efficient Representation and Validation of Proofs
LICS '98 Proceedings of the 13th Annual IEEE Symposium on Logic in Computer Science
Compiling with proofs
Formalizing the safety of Java, the Java virtual machine, and Java card
ACM Computing Surveys (CSUR)
Toward a foundational typed assembly language
POPL '03 Proceedings of the 30th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A Proof-Theoretic Foundation for Tabled Higher-Order Logic Programming
ICLP '02 Proceedings of the 18th International Conference on Logic Programming
A Scalable Architecture for Proof-Carrying Code
FLOPS '01 Proceedings of the 5th International Symposium on Functional and Logic Programming
ICFEM '02 Proceedings of the 4th International Conference on Formal Engineering Methods: Formal Methods and Software Engineering
Scalable Certification for Typed Assembly Language
TIC '00 Selected papers from the Third International Workshop on Types in Compilation
Temporal-Safety Proofs for Systems Code
CAV '02 Proceedings of the 14th International Conference on Computer Aided Verification
A portable Virtual Machine target for Proof-Carrying Code
Proceedings of the 2003 workshop on Interpreters, virtual machines and emulators
Foundational proof checkers with small witnesses
Proceedings of the 5th ACM SIGPLAN international conference on Principles and practice of declaritive programming
Journal of Automated Reasoning
The open verifier framework for foundational verifiers
TLDI '05 Proceedings of the 2005 ACM SIGPLAN international workshop on Types in languages design and implementation
Interactive and Probabilistic Proof of Mobile Code Safety
Automated Software Engineering
Formal certification of a compiler back-end or: programming a compiler with a proof assistant
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A portable virtual machine target for proof-carrying code
Science of Computer Programming - Special issue on advances in interpreters, virtual machines and emulators (IVME'03)
Proof-carrying code from certified abstract interpretation and fixpoint compression
Theoretical Computer Science - Applied semantics
Type systems equivalent to data-flow analyses for imperative languages
Theoretical Computer Science - Applied semantics
Enforcing resource bounds via static verification of dynamic checks
ACM Transactions on Programming Languages and Systems (TOPLAS) - Special Issue ESOP'05
Goal-directed weakening of abstract interpretation results
ACM Transactions on Programming Languages and Systems (TOPLAS)
VEP: a virtual machine for extended proof-carrying code
Proceedings of the 1st ACM workshop on Virtual machine security
Proof Checking Technology for Satisfiability Modulo Theories
Electronic Notes in Theoretical Computer Science (ENTCS)
Higher-order term indexing using substitution trees
ACM Transactions on Computational Logic (TOCL)
A Formally Verified Compiler Back-end
Journal of Automated Reasoning
Small witnesses for abstract interpretation-based proofs
ESOP'07 Proceedings of the 16th European conference on Programming
Functional pearl: every bit counts
Proceedings of the 15th ACM SIGPLAN international conference on Functional programming
Regular expression containment: coinductive axiomatization and computational interpretation
Proceedings of the 38th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
An extended proof-carrying code framework for security enforcement
Transactions on computational science XI
ICLP'05 Proceedings of the 21st international conference on Logic Programming
Overcoming performance barriers: efficient verification techniques for logical frameworks
ICLP'06 Proceedings of the 22nd international conference on Logic Programming
Reduced certificates for abstraction-carrying code
ICLP'06 Proceedings of the 22nd international conference on Logic Programming
How to securely outsource cryptographic computations
TCC'05 Proceedings of the Second international conference on Theory of Cryptography
Enforcing resource bounds via static verification of dynamic checks
ESOP'05 Proceedings of the 14th European conference on Programming Languages and Systems
Tabling for higher-order logic programming
CADE' 20 Proceedings of the 20th international conference on Automated Deduction
SAT-Based software certification
TACAS'06 Proceedings of the 12th international conference on Tools and Algorithms for the Construction and Analysis of Systems
A certificate infrastructure for machine-checked proofs of conditional information flow
POST'12 Proceedings of the First international conference on Principles of Security and Trust
Verified heap theorem prover by paramodulation
Proceedings of the 17th ACM SIGPLAN international conference on Functional programming
Incorporating tables into proofs
CSL'07/EACSL'07 Proceedings of the 21st international conference, and Proceedings of the 16th annuall conference on Computer Science Logic
Model-driven construction of certified binaries
MODELS'07 Proceedings of the 10th international conference on Model Driven Engineering Languages and Systems
SMT proof checking using a logical framework
Formal Methods in System Design
Hi-index | 0.00 |
We present a variant of Proof-Carrying Code (PCC) in which the trusted inference rules are represented as a higherorder logic program, the proof checker is replaced by a nondeterministic higher-order logic interpreter and the proof by an oracle implemented as a stream of bits that resolve the nondeterministic interpretation choices. In this setting, Proof-Carrying Code allows the receiver of the code the luxury of using nondeterminism in constructing a simple yet powerful checking procedure.This oracle-based variant of PCC is able to adapt quite naturally to situations when the property being checked is simple or there is a fairly directed search procedure for it. As an example, we demonstrate that if PCC is used to verify type safety of assembly language programs compiled from Java source programs, the oracles that are needed are on the average just 12% of the size of the code, which represents an improvement of a factor of 30 over previous syntactic representations of PCC proofs.