A mechanically verified language implementation
Journal of Automated Reasoning
Communication and concurrency
Evolving algebras 1993: Lipari guide
Specification and validation methods
Javalight is type-safe—definitely
POPL '98 Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Reasonong about Classess in Object-Oriented Languages: Logical Models and Tools
ESOP '98 Proceedings of the 7th European Symposium on Programming: Programming Languages and Systems
Theoretical Computer Science - Foundations of software science and computation structures
Formal Verification of Dead Code Elimination in Isabelle/HOL
SEFM '05 Proceedings of the Third IEEE International Conference on Software Engineering and Formal Methods
Applying source-code verification to a microkernel: the VFiasco project
EW 10 Proceedings of the 10th workshop on ACM SIGOPS European workshop
A Proof Calculus for Natural Semantics Based on Greatest Fixed Point Semantics
Electronic Notes in Theoretical Computer Science (ENTCS)
ASMs versus natural semantics: a comparison with new insights
ASM'03 Proceedings of the abstract state machines 10th international conference on Advances in theory and practice
Isabelle/HOL: a proof assistant for higher-order logic
Isabelle/HOL: a proof assistant for higher-order logic
Mechanical verification of refactorings
PEPM '08 Proceedings of the 2008 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Trace-Based Coinductive Operational Semantics for While
TPHOLs '09 Proceedings of the 22nd International Conference on Theorem Proving in Higher Order Logics
Hi-index | 0.00 |
Formal verification methods have gained increased importance due to their ability to guarantee system correctness and improve reliability. Nevertheless, the question how proofs are to be formalized in theorem provers is far from being trivial, yet very important as one needs to spend much more time on verification if the formalization was not cleverly chosen. In this paper, we develop and compare two different possibilities to express coinductive proofs in the theorem prover Isabelle/HOL. Coinduction is a proof method that allows for the verification of properties of also non-terminating state-transition systems. Since coinduction is not as widely used as other proof techniques as e.g. induction, there are much fewer ''recipes'' available how to formalize corresponding proofs and there are also fewer proof strategies implemented in theorem provers for coinduction. In this paper, we investigate formalizations for coinductive proofs of properties on state transition sequences. In particular, we compare two different possibilities for their formalization and show their equivalence. The first of these two formalizations captures the mathematical intuition, while the second can be used more easily in a theorem prover. We have formally verified the equivalence of these criteria in Isabelle/HOL, thus establishing a coalgebraic verification framework. To demonstrate that our verification framework is suitable for the verification of compiler optimizations, we have introduced three different, rather simple transformations that capture typical problems in the verification of optimizing compilers, even for non-terminating source programs.