A general formal memory framework in Coq for verifying the properties of programs based on higher-order logic theorem proving with increased automation, consistency, and reusability
Zheng Yang, Hang Lei

TL;DR
This paper introduces a flexible formal memory framework in Coq that enhances the verification of program properties across different languages, combining symbolic execution and theorem proving for increased automation and reusability.
Contribution
A novel, extensible formal memory framework in Coq supporting multiple verification specifications and an extension of Curry-Howard isomorphism called EVI for automation.
Findings
Successfully implemented a formal interpreter in Coq using GERM
Demonstrated application of EVI on a simple code segment
Framework supports diverse formal verification tasks
Abstract
In recent years, a number of lightweight programs have been deployed in critical domains, such as in smart contracts based on blockchain technology. Therefore, the security and reliability of such programs should be guaranteed by the most credible technology. Higher-order logic theorem proving is one of the most reliable technologies for verifying the properties of programs. However, programs may be developed by different high-level programming languages, and a general, extensible, and reusable formal memory (GERM) framework that can simultaneously support different formal verification specifications, particularly at the code level, is presently unavailable for verifying the properties of programs. Therefore, the present work proposes a GERM framework to fill this gap. The framework simulates physical memory hardware structure, including a low-level formal memory space, and provides a…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSecurity and Verification in Computing · Logic, programming, and type systems · Formal Methods in Verification
