XDuce: A statically typed XML processing language
ACM Transactions on Internet Technology (TOIT)
Generating error traces from verification-condition counterexamples
Science of Computer Programming - Formal methods for components and objects pragmatic aspects and applications
Simplify: a theorem prover for program checking
Journal of the ACM (JACM)
LINQ: reconciling object, relations and XML in the .NET framework
Proceedings of the 2006 ACM SIGMOD international conference on Management of data
Formal Translation of Bytecode into BoogiePL
Electronic Notes in Theoretical Computer Science (ENTCS)
Proceedings of the 2008 ACM SIGPLAN conference on Programming language design and implementation
A type system equivalent to a model checker
ACM Transactions on Programming Languages and Systems (TOPLAS)
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
A Type System Equivalent to the Modal Mu-Calculus Model Checking of Higher-Order Recursion Schemes
LICS '09 Proceedings of the 2009 24th Annual IEEE Symposium on Logic In Computer Science
A Precise Yet Efficient Memory Model For C
Electronic Notes in Theoretical Computer Science (ENTCS)
The Why/Krakatoa/Caduceus platform for deductive program verification
CAV'07 Proceedings of the 19th international conference on Computer aided verification
Semantic subtyping with an SMT solver
Proceedings of the 15th ACM SIGPLAN international conference on Functional programming
Refinement types for secure implementations
ACM Transactions on Programming Languages and Systems (TOPLAS)
HMC: verifying functional programs using abstract interpreters
CAV'11 Proceedings of the 23rd international conference on Computer aided verification
Boogie: a modular reusable verifier for object-oriented programs
FMCO'05 Proceedings of the 4th international conference on Formal Methods for Components and Objects
The spec# programming system: an overview
CASSIS'04 Proceedings of the 2004 international conference on Construction and Analysis of Safe, Secure, and Interoperable Smart Devices
Enforcing stateful authorization and information flow policies in fine
ESOP'10 Proceedings of the 19th European conference on Programming Languages and Systems
Hi-index | 0.00 |
In this paper we present a new technique for automatically verifying typing constraints in the setting of Dminor, a first-order data processing language with refinement types and dynamic type-tests. We achieve this by translating Dminor programs into a standard while language and then using a general-purpose verification tool. Our translation generates assertions in the while program that faithfully represent the sophisticated typing constraints in the original program. We use a generic verification condition generator together with an SMT solver to prove statically that these assertions succeed in all executions. We formalise our translation algorithm using an interactive theorem prover and provide a machine-checkable proof of its soundness. We provide a prototype implementation using Boogie and Z3 that can already be used to efficiently verify a large number of test programs.