Imperative functional programming
POPL '93 Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
PLDI '94 Proceedings of the ACM SIGPLAN 1994 conference on Programming language design and implementation
Single-Threaded Objects in ACL2
PADL '02 Proceedings of the 4th International Symposium on Practical Aspects of Declarative Languages
Verifying BDD Algorithms through Monadic Interpretation
VMCAI '02 Revised Papers from the Third International Workshop on Verification, Model Checking, and Abstract Interpretation
Journal of Functional Programming
A machine-checked model for a Java-like language, virtual machine, and compiler
ACM Transactions on Programming Languages and Systems (TOPLAS)
Polymorphism and separation in hoare type theory
Proceedings of the eleventh ACM SIGPLAN international conference on Functional programming
Types, bytes, and separation logic
Proceedings of the 34th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
The Why/Krakatoa/Caduceus platform for deductive program verification
CAV'07 Proceedings of the 19th international conference on Computer aided verification
A monad-based modeling and verification toolbox with application to security protocols
TPHOLs'07 Proceedings of the 20th international conference on Theorem proving in higher order logics
Partizan games in Isabelle/HOLZF
ICTAC'06 Proceedings of the Third international conference on Theoretical Aspects of Computing
Axiomatic constructor classes in Isabelle/HOLCF
TPHOLs'05 Proceedings of the 18th international conference on Theorem Proving in Higher Order Logics
TPHOLs '08 Proceedings of the 21st International Conference on Theorem Proving in Higher Order Logics
Practical Tactics for Separation Logic
TPHOLs '09 Proceedings of the 22nd International Conference on Theorem Proving in Higher Order Logics
Formal verification of a modern SAT solver by shallow embedding into Isabelle/HOL
Theoretical Computer Science
Industrial-strength certified SAT solving through verified SAT proof checking
ICTAC'10 Proceedings of the 7th International colloquium conference on Theoretical aspects of computing
Trace-based verification of imperative programs with I/O
Journal of Symbolic Computation
A monadic approach to automated reasoning for Bluespec SystemVerilog
Innovations in Systems and Software Engineering
Verification of the Schorr-Waite algorithm - from trees to graphs
LOPSTR'10 Proceedings of the 20th international conference on Logic-based program synthesis and transformation
Verification of certifying computations
CAV'11 Proceedings of the 23rd international conference on Computer aided verification
Animating the formalised semantics of a Java-like language
ITP'11 Proceedings of the Second international conference on Interactive theorem proving
Extending coq with imperative features and its application to SAT verification
ITP'10 Proceedings of the First international conference on Interactive Theorem Proving
The isabelle collections framework
ITP'10 Proceedings of the First international conference on Interactive Theorem Proving
A Framework for the Verification of Certifying Computations
Journal of Automated Reasoning
Hi-index | 0.00 |
We introduce a lightweight approach for reasoning about programs involving imperative data structures using the proof assistant Isabelle/HOL. It is based on shallow embedding of programs, a polymorphic heap model using enumeration encodings and type classes, and a state-exception monad similar to known counterparts from Haskell. Existing proof automation tools are easily adapted to provide a verification environment. The framework immediately allows for correct code generation to ML and Haskell. Two case studies demonstrate our approach: An array-based checker for resolution proofs, and a more efficient bytecode verifier.